Fangrui Song
c724779627
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.
2018-12-28 12:35:33 -08:00
Fangrui Song
df095b60bd
completion: use Text for Macro{Instantiation,Definition}
2018-12-28 12:35:33 -08:00
Fangrui Song
27fdecc140
Fix ComputeGuessScore and delete dead code
...
Thanks to CXuesong
2018-12-28 12:35:33 -08:00
Fangrui Song
15f07ca170
Merge maybe.hh into utils.hh
2018-12-28 12:35:33 -08:00
Fangrui Song
935117af76
Merge query.hh and query_util.hh
2018-12-28 12:35:33 -08:00
Fangrui Song
44075382a9
Refactor Matcher to use pimpl and merge match.hh into utils.hh
2018-12-28 12:35:33 -08:00
Fangrui Song
ff8caceafa
Make EmptyParam empty & rewrite LruCache
2018-12-28 12:35:33 -08:00
Fangrui Song
5b3be677ec
constexpr std::string_view -> const std::string_view
...
This works around gcc 7.2/clang rC347417 which have a bad interaction with libstdc++'s implementation of P0426
constexpr std::string_view also emits a string_view object in .rodata that cannot be optimized out by clang (which means larger object file size)
So use good old const.
2018-12-28 12:35:33 -08:00
Fangrui Song
27201f72d5
codeAction: use codeActionProvider: CodeActionOptions and respect CodeActionParams::range
2018-12-28 12:35:32 -08:00
Fangrui Song
7d0f8989a0
Make DocumentLink::range narrower
...
Thanks to Riatre #135
2018-12-20 00:28:12 -08:00
Fangrui Song
544610c959
completion: delete insertText; don't set filterText if it is the same as label
...
It decreases Content-Length: from 32K to 25K for the following case:
#include <bits/stdc++.h>
int main() { std::| }
Also
* make results deterministic when completion text is empty
* sort by newText, label, filterText
2018-12-20 00:28:12 -08:00
Fangrui Song
301b5c32ce
serializer: make visitor/vis value/v consistent
2018-12-20 00:28:12 -08:00
Fangrui Song
05b30265e5
Refactor ReplyOnce; error if InitializeParams.rootUri is null
2018-12-20 00:28:12 -08:00
Fangrui Song
5734ab2ad5
indexer: handle DecltypeType and empty main file; diag: -Wno-unused-function for headers
...
Don't replace name with qualified name in Cls::*name
2018-12-20 00:28:12 -08:00
Fangrui Song
1371be4274
.ccls: add %objective-c %objective-cpp
...
Also allow multiple directives on a line, e.g. %c %cpp -DFOO
2018-12-20 00:28:12 -08:00
Fangrui Song
f348186615
Use clang::isIdentifierBody and clean up utils/working_files
2018-12-20 00:28:12 -08:00
Fangrui Song
da31c7d608
hierarchicalDocumentSymbol: support SymbolKind::Function declaration and uniquify by range
...
Also ensure selectionRange is a subrange of range, otherwise VSCode won't show the item.
Use detailed_name for 'detail'
2018-12-20 00:27:34 -08:00
Fangrui Song
cf000ea7c8
README: add client feature table
2018-12-11 15:08:28 -08:00
Nikolaus Wittenstein
c2cc5567c0
Add Apache LICENSE file ( #121 )
2018-12-11 15:08:28 -08:00
Dso Tsin
428089b2e6
Fix VS2017 build issues and add Appveyor CI script ( #118 )
2018-12-11 15:08:28 -08:00
Fangrui Song
200651245e
Use SM.isWrittenInMainFile; suppress -Werror in preamble
...
SM.isWrittenInMainFile is to work around preamble bug: spurious err_pp_unterminated_conditional with circular #include
2018-12-11 15:08:01 -08:00
Fangrui Song
1ab10322ec
hierarchicalDocumentSymbol: display member function declarations
2018-12-11 15:04:00 -08:00
Fangrui Song
ae4a81cab9
Fix some MSVC 2017 errors
...
Thanks to Dso Tsin!
2018-12-11 15:04:00 -08:00
Fangrui Song
f37ef4f48b
If clang >= 8, delete search path detection and use Sema::CodeCompleteIncludedFile
2018-12-11 15:04:00 -08:00
Fangrui Song
adcf713e23
Work around relative --sysroot=
2018-12-11 15:04:00 -08:00
Fangrui Song
2bd69b66f2
Improve semantic highlight in templates
2018-12-11 15:04:00 -08:00
Fangrui Song
8f9e1c4ae4
Reduce MAKE_REFLECT_STRUCT in lsp.hh
...
Position -> Pos; lsPosition -> Position
2018-12-11 15:04:00 -08:00
Fangrui Song
8a68dfbf8f
Remove ls
prefix from many LSP interfaces
...
Rename SymbolKind to Kind & lsSymbolKind to SymbolKind
Use textDocumentSync: TextDocumentSyncOptions
2018-12-11 15:04:00 -08:00
Fangrui Song
f5df8bee42
Misc
2018-12-11 15:04:00 -08:00
Fangrui Song
6787f0129b
Simplify and work around vscode _sortTextLow
2018-12-11 15:04:00 -08:00
Fangrui Song
2184e94062
project.cc: deduplicate more cases
2018-12-11 15:04:00 -08:00
Fangrui Song
f3d4f8fe3f
Fix EnumConstantDecl's kind & EnumDecl's vars
2018-12-11 15:04:00 -08:00
Fangrui Song
c7c5abd40c
textDocument/references workspace/symbol: add folders
...
For textDocument/reference, base/excludeRole/role has been lifted from params.context.* to params.*
2018-12-11 15:04:00 -08:00
Fangrui Song
f29d03e9d3
Report InvalidParams for serialization error
2018-12-11 15:04:00 -08:00
Fangrui Song
93371b9b3b
Simplify and better compatibility with encodings retaining the feature of low bytes being 1-byte characters
2018-12-11 15:04:00 -08:00
Fangrui Song
7817821959
*.h -> *.hh
2018-12-11 15:04:00 -08:00
Fangrui Song
77e1f354fd
Refactor message handler and namespace ccls
2018-12-11 15:03:56 -08:00
Fangrui Song
323d2ec8bf
Implement textDocument/documentLink
2018-10-24 20:14:53 -07:00
Fangrui Song
e2478c8083
Implement textDocument/foldingRange
2018-10-24 17:48:44 -07:00
David F
cec7e3a419
Fix broken link in README.md ( #101 )
2018-10-24 17:48:44 -07:00
Fangrui Song
9b8947f304
Deprioritize completion items with additionTextEdits
2018-10-24 17:48:44 -07:00
Fangrui Song
6fc35ab866
Fix textDocument/implementation
2018-10-24 17:48:42 -07:00
Fangrui Song
e101e4782d
Add command line option -index=root to index without starting language server
2018-10-22 22:34:49 -07:00
Fangrui Song
252b0d6606
Improve DeducedType
2018-10-19 14:44:29 -07:00
Fangrui Song
5814fbb4e5
Improve extent of definition/declaration; uniquify typeDefinition
2018-10-19 10:14:51 -07:00
Fangrui Song
5f98d5b993
Simplify
2018-10-16 01:14:43 -07:00
Fangrui Song
f8a6f75ff5
Add ExtentRef; merge symbol2refcnt and outline2refcnt
...
Fix hierarchical document symbol for namespaces when there are multiple declarations.
2018-10-16 01:14:43 -07:00
Fangrui Song
53632bd920
Add pipeline::{Notify,Reply,ReplyError} and simplify message handling
...
Delete method.{cc,h}
Rename $ccls/setSkippedRanges to $ccls/publishSkippedRanges
Rename $ccls/publishSemanticHighlighting to $ccls/publishSemanticHighlight; stableId -> id
2018-10-16 01:14:43 -07:00
Fangrui Song
705ed77a85
Misc changes to project
...
* Better LanguageId detection with clangDriver (e.g. .cu -> types::TY_CUDA)
* fallback when there is no .ccls or compile_commands.json
Also Hide clangTooling options from --help
2018-10-16 01:14:43 -07:00
Fangrui Song
f83bc28be8
Adapt trunk change and write comments to PCH
2018-10-16 01:14:43 -07:00