Fangrui Song
cc11d30dad
Refactor serializer
...
Delete virtual bases Reader & Writer
Delete unused MAKE_REFLECT_STRUCT_WRITER_AS_ARRAY
Merge serializers/{json,binary}.hh into serializer.{hh,cc}
MAKE_REFLECT_STRUCT => REFLECT_STRUCT
MAKE_REFLECT_TYPE_PROXY => REFLECT_UNDERLYING
2019-10-24 18:37:55 -07:00
Fangrui Song
d49119b364
Refactor WorkingFiles and CompletionManager
...
* WorkingFiles::files : vector -> unordered_map
* Add timestamp to WorkingFile
* Rename "comp-preload" thread to "preamble"
* Rename CompletionManager to SemaManager as it is used by "diag" "comp" "preamble"
* Rename clang_complete.* to sema_manager.*
* Merge SemaManager::{preloads,sessions}
* Add initialization option session.maxNum
* In DiagnosticMain, if an included file was modified, cancel the DiagTask and create a PreambleTask instead. The task sets `from_diag` so as to trigger immediate DiagTask after the preamble is built.
2019-10-24 18:37:55 -07:00
Fangrui Song
bf6fc50b54
Refactor Matcher to use pimpl and merge match.hh into utils.hh
2019-10-24 18:37:54 -07:00
Fangrui Song
008b1762c1
indexer: handle DecltypeType and empty main file; diag: -Wno-unused-function for headers
...
Don't replace name with qualified name in Cls::*name
2019-10-24 18:37:54 -07:00
Fangrui Song
c2cf488114
Use clang::isIdentifierBody and clean up utils/working_files
2019-10-24 18:37:54 -07:00
Fangrui Song
2e16b3c6bb
Use SM.isWrittenInMainFile; suppress -Werror in preamble
...
SM.isWrittenInMainFile is to work around preamble bug: spurious err_pp_unterminated_conditional with circular #include
2019-10-24 18:37:54 -07:00
Fangrui Song
50736827ca
Remove ls
prefix from many LSP interfaces
...
Rename SymbolKind to Kind & lsSymbolKind to SymbolKind
Use textDocumentSync: TextDocumentSyncOptions
2019-10-24 18:37:54 -07:00
Fangrui Song
041ce5b6f1
Fix EnumConstantDecl's kind & EnumDecl's vars
2019-10-24 18:37:54 -07:00
Fangrui Song
e3a2f1a9a8
*.h -> *.hh
2019-10-24 18:37:54 -07:00
Fangrui Song
67eb1e6b23
Refactor message handler and namespace ccls
2019-10-24 18:37:53 -07:00
Fangrui Song
a1094c0897
Improve DeducedType
2019-10-24 18:37:35 -07:00
Fangrui Song
610798f634
Improve extent of definition/declaration; uniquify typeDefinition
2019-10-24 18:37:35 -07:00
Fangrui Song
5fb2407685
Add namespace alias clang::vfs = llvm::vfs to adapt D52783
...
vfs::x should be written as llvm::vfs::x to work around a [namepace.udir] bug before GCC 8 when namespace alias is used
2019-10-24 18:37:35 -07:00
Fangrui Song
56c70ad1fd
Namespace: improve indexer and don't trace bases in $ccls/member
2019-10-24 18:37:35 -07:00
Fangrui Song
53e6a15f34
Use DeclRef spell to represent Use spell + Use extent
2019-10-24 18:37:35 -07:00
Fangrui Song
fc4b5b00c0
Redesign SymbolRef, Ref, Use
...
Remove lsLocationEx
2019-10-24 18:37:35 -07:00
Fangrui Song
46c99cda02
For $ccls/member, use unadjusted RecordDecl (if there is forward declaration) and handle ClassTemplateSpecialization
2019-10-24 18:37:35 -07:00
firstlove
334e4f32ac
regard conversion as method instead of constructor
2019-10-24 18:37:35 -07:00
Fangrui Song
0273c59ac7
Rename some initialization options
...
* Delete index.enabled which can be achieved with index.blacklist: ['.']
* Move completion.include* to completion.include.*
* move largeFileSize to highlight.largeFileSize
2019-10-24 18:37:35 -07:00
Fangrui Song
058ac08621
Simplify semantic highlighting; improve hover of auto &&
2019-10-24 18:37:35 -07:00
Fangrui Song
5b7758a6ca
Add GetAdjustedDecl to adjust Decl's that are missed by clangIndex
2019-10-24 18:37:35 -07:00
Fangrui Song
35cba6d49c
Remove clang_utils.*
2019-10-24 18:37:35 -07:00
Fangrui Song
395e9d8724
Misc
...
Move using below #include to make preamble happy
textDocument/references: if no references, first line or last line => list where this file is included
malloc_trim() only if files have been indexed in last cycle
Intern: use CachedHashStringRef
2019-10-24 18:37:35 -07:00
Fangrui Song
176039fe35
Misc
2019-10-24 18:37:35 -07:00
Fangrui Song
5a8b36c997
Fix spurious "Failed to index" errors
2019-10-24 18:37:35 -07:00
Fangrui Song
056d6d8093
Delete file_consumer.*
2019-10-24 18:37:35 -07:00
Fangrui Song
96a1d86074
Clean up FileConsumer and improve pipeline
2019-10-24 18:37:35 -07:00
Fangrui Song
e4ab3d44e9
Improve VarDef::type for textDocument/typeDefinition
2019-10-24 18:37:35 -07:00
Fangrui Song
24a8b53813
intern args
2019-10-24 18:37:35 -07:00
Fangrui Song
b4aa666860
intern strings in dependencies and IndexInclude::resolved_path
2019-10-24 18:37:35 -07:00
Fangrui Song
b08e59e8e1
Simplify pipeline and fix race
2019-10-24 18:37:35 -07:00
Fangrui Song
9616e5a2fe
Add hierarchicalDocumentSymbolSupport
2019-10-24 18:37:35 -07:00
Fangrui Song
57d7d76ba0
Make $ccls/inheritanceHierarchy and textDocument/typeDefinition find declarations if definitions do not exist; spelling ranges of operator=
2019-10-24 18:37:34 -07:00
Riatre Foo
3c5ab61762
Normalize paths on Windows
...
1. Normalize paths in LSP document URIs and project root to forward
slash and uppercase drive letters.
2. Normalize paths in compile_commands.json to forward slash and
uppercase drive letters.
3. Normalize paths from directory listing to forward slash. (Drive
letter should be same as input dir path, which is already uppercase
since path of project root dir is normalized)
4. Add llvm::sys::path::convert_to_slash after certain llvm::sys::path
and llvm::fs calls.
2019-10-24 18:37:30 -07:00
Fangrui Song
7149851ea2
Misc
2019-10-24 01:13:24 -07:00
Fangrui Song
bfe5693983
Make CXXConversion references wider; use getTypedefNameForAnonDecl; improve CXXDestructor CXXConversion spell
2019-10-24 01:13:24 -07:00
Fangrui Song
0ae7d9d0a4
Reuse preamble (built by "comp-preload") in indexer
2019-10-24 01:13:24 -07:00
Fangrui Song
b8c0b5ad9e
Support empty cacheDirectory and fix cache load
2019-10-24 01:13:24 -07:00
Fangrui Song
c067f6edb2
Implement index.onChange: true; enable spell checking for diagnostics
2019-10-24 01:13:24 -07:00
Fangrui Song
bd944cced5
Add DeclUse as element type of declarations
2019-10-24 01:13:24 -07:00
Fangrui Song
142ff883e5
Remove $ccls/base and clean up; deduplicate codeLens
2019-10-24 01:13:24 -07:00
Fangrui Song
d3e0a4c4fd
Add index.multiVersion{Black,White}list
...
They allow files matching specified patterns to be indexed only once
even if index.multiVersion > 0. An example is to exclude system headers
with index.multiVersionBlacklist: ["^/usr/include"]
2019-10-24 01:13:24 -07:00
Fangrui Song
4f67bd03d5
index.multiVersion: int
...
Before, QueryFile::Def::{all_symbols,outline} were built by indexers.
Now, {symbol,outline}2refcnt are used instead, built by main thread.
*_removed are augmented with Query*:Def to allow removal of old {symbol,outline}2refcnt entries.
2019-10-24 01:13:24 -07:00
Fangrui Song
a8bb605d4a
Fix unaligned load/store; add index.multiVersion prototype, rename index.onParse to index.OnOpen
...
Don't call getFieldOffset() on RD->isInvalidDecl()
2019-10-24 01:13:24 -07:00
Fangrui Song
6aee7b9648
Remove ASTUnit from indexer and clean up
2019-10-24 01:13:22 -07:00
Fangrui Song
5c0a146ee4
detailed_name: "{\n}" -> "{}" ; completion
2019-10-24 01:12:58 -07:00
Fangrui Song
27a5b24b59
Add license notice
2019-10-24 01:01:21 -07:00
Fangrui Song
39787d2851
clang-format
...
DEF CON 26 CTF
2019-10-24 01:01:21 -07:00
Fangrui Song
22627d7a1f
Validate RecordDecl
2019-10-24 01:01:21 -07:00
Fangrui Song
fc6e2af66f
Uniquify textDocument/references
...
There can be duplicates with template instantiation.
2019-10-24 01:01:21 -07:00