Fangrui Song
5422afe35a
indexer: llvm::sys::fs::UniqueID -> clang::FileID
...
Fix a minor issue that an empty included file is not recorded.
Note, we need to skip invalid uid2lid_and_path because
otherwise lid2path may contain invalid entries with lid: 0,
which will cause the file entry with file_id 0 to have an empty path.
2019-10-24 18:37:55 -07:00
Fangrui Song
97af6fb889
💥 Rename FunctionName -> functionName, VarName -> var_name
2019-10-24 18:37:55 -07:00
Fangrui Song
689c19a5af
Construct SourceManager with UserFilesAreVolatile
...
Fix #235 . Close #453
In clang, it may be worth generalizing UserFilesAreVolatile (introduced in rC160074) to FilesAreVolatile.
2019-10-24 18:37:55 -07:00
Fangrui Song
1485c5064f
Adapt rL364464: clang::FrontendAction::Execute returns llvm::Error instead of bool
2019-10-24 18:37:55 -07:00
Fangrui Song
29f3071cf7
Set RetainRemappedFileBuffers to true
...
Reported by David Welch in #350 .
This fixes double-free of llvm::MemoryBuffer when parsing fails.
2019-10-24 18:37:55 -07:00
Fangrui Song
c0541342e9
Adapt clang rC357037: removal of setVirtualFileSystem
2019-10-24 18:37:55 -07:00
Fangrui Song
be8b1043a0
Add initialization option index.initialNoLinkage: false
...
By default, the background indexer doesn't handle names of no linkage.
They are indexed when their files are opened. This saves memory and
makes cache files smaller.
2019-10-24 18:37:55 -07:00
Fangrui Song
e8f40da198
Add initialization option index.name.suppressUnwrittenScope (default: false)
2019-10-24 18:37:55 -07:00
Fangrui Song
52180f1f1f
Misc
2019-10-24 18:37:55 -07:00
Fangrui Song
baae464195
Change Pos::line from int16_t to uint16_t
...
This allows representing line 0 ~ 65535.
2019-10-24 18:37:55 -07:00
Fangrui Song
03df4085fb
Make hover more detailed (e.g. include inheritance info)
2019-10-24 18:37:55 -07:00
Fangrui Song
ea852374a2
indexer: index TemplateTypeParmDecl and ParmVarDecl in declarations for clang >= 9
...
Index ParmVarDecl in declarations if index.parametersInDeclarations is true
And support some unhandled Decl::Kind
2019-10-24 18:37:55 -07:00
Fangrui Song
a833b0cb22
Add initialization option capabilities.*
and index.maxInitializerLines
...
indexer.cc: use index.maxInitializerLines instead of kInitializerMaxLines
messages/initialize.cc: some ServerCapabilities are toggable:
documentOnTypeFormattingProvider.firstTriggerCharacter
foldingRangeProvider
workspace.workspaceFolders.supported
2019-10-24 18:37:55 -07:00
Fangrui Song
520991c009
Compute CompletionItemKind from Declaration instead of CursorKind
2019-10-24 18:37:55 -07:00
Fangrui Song
a7b2ce5c1f
Drop support for clang 6
2019-10-24 18:37:55 -07:00
Fangrui Song
70e0eec831
Adjust FrontendOpts.Inputs[0] for inferred files
2019-10-24 18:37:55 -07:00
Fangrui Song
d430cb8ff9
Handle file deletion and register workspace/didChangeWatchedFiles
...
* In the "initialized" callback, send client/registerCapability with DidChangeWatchedFilesRegistrationOptions
* In workspace/didChangeWatchedFiles callback, call pipeline::Index
* In pipeline::Index, add a `deleted` status
2019-10-24 18:37:55 -07:00
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