anchor.diff:              match itemsByDocumentId.Get(key) with
               | :? PerDocumentSavedData as data when data.Hash = textVersionHash -> return data.Items
               | _ -> 
  -                let! items = getNavigableItems(document, parsingOptions)
  +                let! items = getNavigableItems(document, parsingOptions, kinds)
                   let indexedItems = Index.build items
                   let data = { Hash= textVersionHash; Items = indexedItems }
                   let cacheItem = CacheItem(key, data)
  
positive.code:         projectInfoManager: FSharpProjectOptionsManager
      ) =
  
      // Save the backing navigation data in a memory cache held in a sliding window
      let itemsByDocumentId = new MemoryCache("FSharp.Editor.FSharpNavigateToSearchService")
  
      let getNavigableItems(document: Document, parsingOptions: FSharpParsingOptions) =
          async {
              let! cancellationToken = Async.CancellationToken
              let! sourceText = document.GetTextAsync(cancellationToken) |> Async.AwaitTask
              let! parseResults = checkerProvider.Checker.ParseFile(document.FilePath, sourceText.ToString(), parsingOptions)
              return 
                  match parseResults.ParseTree |> Option.map NavigateTo.getNavigableItems with
                  | Some items ->
                      [| for item in items do
                           match RoslynHelpers.TryFSharpRangeToTextSpan(sourceText, item.Range) with 
  
negative.code:         | PatternMatchKind.Fuzzy -> NavigateToMatchKind.Regular
          | _ -> NavigateToMatchKind.Regular
  
      interface INavigateToSearchService_RemoveInterfaceAboveAndRenameThisAfterInternalsVisibleToUsersUpdate with
          member __.SearchProjectAsync(project, searchPattern, kinds, cancellationToken) : Task<ImmutableArray<INavigateToSearchResult>> =
              asyncMaybe {
                  let! parsingOptions, _site, _options = projectInfoManager.TryGetOptionsForProject(project.Id)
                  let! items =
                      project.Documents
                      |> Seq.map (fun document -> getCachedIndexedNavigableItems(document, parsingOptions, kinds))
                      |> Async.Parallel
                      |> liftAsync
                  
                  let items =
                      if searchPattern.Length = 1 then
                          items 
                          |> Array.map (fun items -> items.Find(searchPattern))
                          |> Array.concat
                          |> Array.filter (fun x -> x.Name.Length = 1 && String.Equals(x.Name, searchPattern, StringComparison.InvariantCultureIgnoreCase))
                      else
  