llvm-project/clang-tools-extra/clangd/index
Kadir Cetinkaya 6d2fb3cefb
[clangd] Perform merging for stale symbols in MergeIndex
Clangd drops symbols from static index whenever the dynamic index is
authoritative for the file. This results in regressions when static and
dynamic index contains different set of information, e.g.
IncludeHeaders.

After this patch, we'll choose to merge symbols from static index with
dynamic one rather than just dropping. This implies correctness problems
when the definition/documentation of the symbol is deleted. But seems
like it is worth having in more cases.

We still drop symbols if dynamic index owns the file and didn't report
the symbol, which means symbol is deleted.

Differential Revision: https://reviews.llvm.org/D98538
2021-03-30 11:09:51 +02:00
..
dex [clangd] Use URIs instead of paths in the index file list 2021-03-06 10:47:05 +03:00
remote [clangd] Replace usages of dummy with more descriptive words 2021-03-22 12:49:24 +01:00
Background.cpp [clangd] Use URIs instead of paths in the index file list 2021-03-06 10:47:05 +03:00
Background.h [clangd] Remove some obsolete options that are now always on 2021-02-01 17:24:03 +01:00
BackgroundIndexLoader.cpp [clangd] Move non-clang base pieces into separate support/ lib. NFCI 2020-04-29 15:57:12 +02:00
BackgroundIndexLoader.h [clangd] Move non-clang base pieces into separate support/ lib. NFCI 2020-04-29 15:57:12 +02:00
BackgroundIndexStorage.cpp [clangd] Store index in '.cache/clangd/index' instead of '.clangd/index' 2020-07-07 14:53:45 +02:00
BackgroundQueue.cpp [clangd] Explicitly avoid background-indexing the same file twice. 2021-01-13 17:29:30 +01:00
BackgroundRebuild.cpp [clangd] Move non-clang base pieces into separate support/ lib. NFCI 2020-04-29 15:57:12 +02:00
BackgroundRebuild.h [clangd] Make background index thread count calculation clearer 2020-06-25 00:18:53 +02:00
CanonicalIncludes.cpp [clangd] Group filename calculations in SymbolCollector, and cache mroe. 2021-03-11 12:59:26 +01:00
CanonicalIncludes.h [clangd] Group filename calculations in SymbolCollector, and cache mroe. 2021-03-11 12:59:26 +01:00
FileIndex.cpp [clangd] Group filename calculations in SymbolCollector, and cache mroe. 2021-03-11 12:59:26 +01:00
FileIndex.h [clangd] Take into account what is in the index (symbols, references, etc.) at indexes merge 2021-02-05 13:35:07 +03:00
Index.cpp [clangd] Take into account what is in the index (symbols, references, etc.) at indexes merge 2021-02-05 13:35:07 +03:00
Index.h [clangd] Perform merging for stale symbols in MergeIndex 2021-03-30 11:09:51 +02:00
IndexAction.cpp [clangd] Index local classes, virtual and overriding methods. 2021-01-19 16:18:48 +01:00
IndexAction.h [clangd] Index API and implementations for relations 2019-06-15 02:26:47 +00:00
MemIndex.cpp [clangd] Use URIs instead of paths in the index file list 2021-03-06 10:47:05 +03:00
MemIndex.h [clangd] Take into account what is in the index (symbols, references, etc.) at indexes merge 2021-02-05 13:35:07 +03:00
Merge.cpp [clangd] Perform merging for stale symbols in MergeIndex 2021-03-30 11:09:51 +02:00
Merge.h [clangd] Take into account what is in the index (symbols, references, etc.) at indexes merge 2021-02-05 13:35:07 +03:00
ProjectAware.cpp [clangd] Make ProjectAwareIndex optionally sync 2021-03-11 20:30:35 +01:00
ProjectAware.h [clangd] Make ProjectAwareIndex optionally sync 2021-03-11 20:30:35 +01:00
Ref.cpp [clangd] Avoid wasteful data structures in RefSlab::Builder 2020-05-18 22:34:59 +02:00
Ref.h [clangd] Store the containing symbol for refs 2020-11-04 03:21:45 -05:00
Relation.cpp [clangd] Add OverridenBy Relation to index. 2020-11-18 06:59:49 +01:00
Relation.h [clangd] Add OverridenBy Relation to index. 2020-11-18 06:59:49 +01:00
Serialization.cpp Fix signed/unsigned comparison warning. NFCI. 2021-01-26 15:04:49 +00:00
Serialization.h [clangd] Extend dexp to support remote index 2020-04-24 13:59:21 +02:00
Symbol.cpp Cleanup: llvm::bsearch -> llvm::partition_point after r364719 2019-06-30 11:19:56 +00:00
Symbol.h [clangd] Fix race in FileIndex that sometimes temporarily lost updates. 2020-07-01 16:47:04 +02:00
SymbolCollector.cpp [clangd] Group filename calculations in SymbolCollector, and cache mroe. 2021-03-11 12:59:26 +01:00
SymbolCollector.h [clangd] Group filename calculations in SymbolCollector, and cache mroe. 2021-03-11 12:59:26 +01:00
SymbolID.cpp [clangd] makeStringError,make_error<StringError> -> error() 2020-09-14 11:48:31 +02:00
SymbolID.h [clangd] Value initialize SymbolIDs 2020-11-02 11:37:47 +01:00
SymbolLocation.cpp [clangd] Avoid wasteful data structures in RefSlab::Builder 2020-05-18 22:34:59 +02:00
SymbolLocation.h [clangd] Avoid wasteful data structures in RefSlab::Builder 2020-05-18 22:34:59 +02:00
SymbolOrigin.cpp [clangd] Add symbol origin for remote index 2020-11-28 15:38:11 +01:00
SymbolOrigin.h [clangd] Add symbol origin for remote index 2020-11-28 15:38:11 +01:00
YAMLSerialization.cpp [clangd] makeStringError,make_error<StringError> -> error() 2020-09-14 11:48:31 +02:00