anchor.diff:  
     let getAllProjectSymbols projectFile =
       async {
  -      try 
  +      try
           //let projectOptions = languageService.GetProjectCheckerOptions projectFile
  -        match languageService.GetAllProjectDeclarations projectFile with
  -        | Some v -> return v |> Array.toSeq
  +        match languageService.GetCachedProjectCheckResult projectFile with
  +        | Some v -> let! allSymbols =  v.GetAllUsesOfAllSymbols()
  +                    return allSymbols |> Array.toSeq
           | None -> return Seq.empty
         with ex ->
           LoggingService.LogError("Global Search (F#) error", ex)
  
positive.code:                          callback.ReportResult sr
  
                       with ex -> 
                        LoggingService.LogError("F# Global Serach error", ex) } |> Async.StartImmediate) , token )
  
  
negative.code:   let byPattern (cache:Dictionary<_,_>) pattern symbols =
  
      let matchName (matcher:StringMatcher) (name:string) =
        if name = null then (false, -1)
        else
          match cache.TryGetValue(name) with
          | true, v -> v
          | false, _ ->
            let doesMatch, rank = matcher.CalcMatchRank (name)
            let savedMatch = (doesMatch, rank)
            cache.Add(name, savedMatch)
            savedMatch
  
      let matcher = StringMatcher.GetMatcher (pattern, false)
  
      symbols
      |> Seq.choose (fun s -> let doesMatch, rank = matchName matcher (correctDisplayName s)
                              if doesMatch then Some(s, rank)
                              else None)
  
  type SymbolSearchResult(match', matchedString, rank, symbol:FSharpSymbolUse) =
  