anchor.diff:                          else
                               let chngs = changes |>  List.choose (fun n -> let r = heightChange n in if r = 0 then None else Some (n.range.start.line, r) )
                               let fromCache = defaultArg (cache |> Map.tryFind doc.fileName) [||]
  -                            // printf "CodeLens - Result from cache."
                               // printf "CodeLens - FileName: %s, Version: %d" doc.fileName version
  -                            // printf "CodeLens - Chngs: %A" chngs
                               let res =
                                   fromCache
                                   |> Array.map (fun n ->
  
positive.code: 
          { new CodeLensProvider with
              member __.provideCodeLenses(doc, _) =
                  promise {
                      let! data =
                          if flag then
                              promise {
                                  let! result = LanguageService.declarations doc.fileName version
                                  // printf "CodeLens - Result from FSAC"
                                  // printf "CodeLens - FileName: %s, Version: %d" doc.fileName version
                                  return
                                      if isNotNull result then symbolsToCodeLens doc result.Data else [||]
                              }
                          else
                              Promise.lift [||]
  
negative.code: 
      let private textChangedHandler (event : TextDocumentChangeEvent) =
          if isNotNull window.activeTextEditor && event.document.fileName = window.activeTextEditor.document.fileName  then
              // printf "[%d:%d:%d:%d] CodeLens - File changed." DateTime.Now.Hour DateTime.Now.Minute DateTime.Now.Second  DateTime.Now.Millisecond
              changes <- [yield! changes; yield! event.contentChanges]
              refresh.fire(-1)
          ()
  
      let private fileOpenedHandler (event : TextEditor) =
  