unison/unison-src/transcripts/lsp-name-completion.output.md
Greg Pfeil 0031542faf
Add a space before code block info strings
This is for consistency with the `cmark` style. Now the blocks we still
pretty-print ourselves will match the bulk of them that `cmark`
produces.
2024-07-10 13:56:07 -06:00

1.5 KiB

foldMap = "top-level"
nested.deeply.foldMap = "nested"
lib.base.foldMap = "lib"
lib.dep.lib.transitive.foldMap = "transitive-lib"
-- A deeply nested definition with the same hash as the top level one.
-- This should not be included in the completion results if a better name with the same hash IS included.
lib.dep.lib.transitive_same_hash.foldMap = "top-level"
foldMapWith = "partial match"

other = "other"

Completion should find all the foldMap definitions in the codebase, sorted by number of name segments, shortest first.

Individual LSP clients may still handle sorting differently, e.g. doing a fuzzy match over returned results, or prioritizing exact matches over partial matches. We don't have any control over that.

scratch/main> debug.lsp-name-completion foldMap

  Matching Path   Name                             Hash
  foldMap         foldMap                          #o38ps8p4q6
  foldMapWith     foldMapWith                      #r9rs4mcb0m
  foldMap         nested.deeply.foldMap            #snrjegr5dk
  foldMap         lib.base.foldMap                 #jf4buul17k
  foldMap         lib.dep.lib.transitive.foldMap   #0o01gvr3fi

Should still find the term which has a matching hash to a better name if the better name doesn't match.

scratch/main> debug.lsp-name-completion transitive_same_hash.foldMap

  Matching Path                  Name                                       Hash
  transitive_same_hash.foldMap   lib.dep.lib.transitive_same_hash.foldMap   #o38ps8p4q6