llvm-project/clang-tools-extra/clangd
Sam McCall a5ce243fa3 [clangd] Use fuzzy match to select top N index results.
Summary:
This makes performance slower but more predictable (it always processes
every symbol). We need to find ways to make this fast, possibly by precomputing
short queries or capping the number of scored results. But our current approach
is too naive.

It also no longer returns results in a "good" order. In fact it's pathological:
the top N results are ranked from worst to best. Indexes aren't responsible for
ranking and MergedIndex can't do a good job, so I'm pleased that this will make
any hidden assumptions we have more noticeable :-)

Reviewers: hokein

Subscribers: klimek, ilya-biryukov, cfe-commits

Differential Revision: https://reviews.llvm.org/D42060

llvm-svn: 322821
2018-01-18 08:35:04 +00:00
..
clients/clangd-vscode [clangd] Use the clang-tools-extra as the official repo for `vscode-clangd` extension. 2017-12-21 08:45:18 +00:00
fuzzer [clangd-fuzzer] Update ClangdLSPServer constructor call. 2017-12-20 22:29:23 +00:00
global-symbol-builder [clangd] Deduplicate symbols collected in global-symbol-builder tool. 2018-01-17 18:27:41 +00:00
index [clangd] Use fuzzy match to select top N index results. 2018-01-18 08:35:04 +00:00
tool [clangd] Add static index for the global code completion. 2018-01-10 14:44:34 +00:00
CMakeLists.txt [clangd] Merge results from static/dynamic index. 2018-01-15 12:33:00 +00:00
ClangdLSPServer.cpp [clangd] Don't crash on LSP calls for non-added files 2018-01-17 12:30:24 +00:00
ClangdLSPServer.h [clangd] Pass Context to onDiagnosticsReady callback 2018-01-10 17:59:27 +00:00
ClangdServer.cpp [clangd] Don't crash on LSP calls for non-added files 2018-01-17 12:30:24 +00:00
ClangdServer.h [clangd] Don't crash on LSP calls for non-added files 2018-01-17 12:30:24 +00:00
ClangdUnit.cpp [clangd] Add more symbol information for code completion. 2018-01-09 17:32:00 +00:00
ClangdUnit.h [clangd] Add more symbol information for code completion. 2018-01-09 17:32:00 +00:00
ClangdUnitStore.cpp [clangd] Build dynamic index and use it for code completion. 2017-12-19 18:00:37 +00:00
ClangdUnitStore.h [clangd] Build dynamic index and use it for code completion. 2017-12-19 18:00:37 +00:00
CodeComplete.cpp [clangd] Merge results from static/dynamic index. 2018-01-15 12:33:00 +00:00
CodeComplete.h [clangd] Merge results from static/dynamic index. 2018-01-15 12:33:00 +00:00
CodeCompletionStrings.cpp [clangd] Pull CodeCompletionString handling logic into its own file and add unit test. 2017-12-20 17:24:31 +00:00
CodeCompletionStrings.h [clangd] Pull CodeCompletionString handling logic into its own file and add unit test. 2017-12-20 17:24:31 +00:00
Compiler.cpp [clangd] Put all #includes in one block in clangd source files. NFC 2017-12-14 21:22:03 +00:00
Compiler.h [clangd] Put all #includes in one block in clangd source files. NFC 2017-12-14 21:22:03 +00:00
Context.cpp [clangd] Introduced a Context that stores implicit data 2017-12-12 11:16:45 +00:00
Context.h [clangd] Try to workaround MSVC compilation failure. 2017-12-13 13:43:47 +00:00
DraftStore.cpp Fixing compilation failures on buildbots. 2017-05-16 10:06:20 +00:00
DraftStore.h [clangd] Serialize onDiagnosticsReady callbacks for the same file. 2017-09-20 12:58:55 +00:00
Function.h [clangd] Made UniqueFunction's bool conversion explicit 2017-12-20 14:06:05 +00:00
FuzzyMatch.cpp [clangd] Avoid divide-by-zero 2018-01-17 15:25:55 +00:00
FuzzyMatch.h [clangd] Incorporate fuzzy-match into result rankings. 2018-01-12 16:16:09 +00:00
GlobalCompilationDatabase.cpp [clangd] Simplify GlobalCompilationDatabase, cache missing GCDs 2017-12-22 09:47:34 +00:00
GlobalCompilationDatabase.h [clangd] Simplify GlobalCompilationDatabase, cache missing GCDs 2017-12-22 09:47:34 +00:00
JSONExpr.cpp [clangd] Put all #includes in one block in clangd source files. NFC 2017-12-14 21:22:03 +00:00
JSONExpr.h [clangd] Put all #includes in one block in clangd source files. NFC 2017-12-14 21:22:03 +00:00
JSONRPCDispatcher.cpp Avoid int to string conversion in Twine or raw_ostream contexts. 2017-12-28 16:58:54 +00:00
JSONRPCDispatcher.h [clangd] Implemented logging using Context 2017-12-13 12:51:22 +00:00
Logger.cpp [clangd] Implemented logging using Context 2017-12-13 12:51:22 +00:00
Logger.h [clangd] Implemented logging using Context 2017-12-13 12:51:22 +00:00
Path.h Restored r303067 and fixed failing test. 2017-05-16 09:38:59 +00:00
Protocol.cpp [clangd] Get rid of unnecessary global variable. No functionality change. 2017-12-28 15:03:02 +00:00
Protocol.h [clangd] Incorporate fuzzy-match into result rankings. 2018-01-12 16:16:09 +00:00
ProtocolHandlers.cpp [clangd] Implemented logging using Context 2017-12-13 12:51:22 +00:00
ProtocolHandlers.h [clangd] Implemented logging using Context 2017-12-13 12:51:22 +00:00
SourceCode.cpp [clangd] Expose offset <-> LSP position functions, and fix bugs 2017-12-19 12:23:48 +00:00
SourceCode.h [clangd] Expose offset <-> LSP position functions, and fix bugs 2017-12-19 12:23:48 +00:00
Trace.cpp [clangd] Put all #includes in one block in clangd source files. NFC 2017-12-14 21:22:03 +00:00
Trace.h [clangd] Changed tracing interfaces 2017-12-14 15:33:38 +00:00
XRefs.cpp [clangd] Don't navigate to forward class declaration when go to definition. 2018-01-12 14:21:10 +00:00
XRefs.h [clangd] Split findDefs/highlights into XRefs, from ClangdUnit. NFC 2017-12-19 17:06:07 +00:00