Fangrui Song
8ca0978804
Make -v=1 work and log cflags for SemaManager session and Indexer
2019-01-12 00:40:49 +08:00
Fangrui Song
18e4be616c
Add strict
to FuzzyMatcher::Match
...
In completion, underscore prefixed builtin macros may be annoying when the first type character is not an underscore.
When `strict` is true, `Match` enforces the first characters should be loosely of the same category.
2019-01-12 00:40:49 +08:00
Fangrui Song
e0a6db8d9b
ParameterInformation: use label: [number, number]
...
Don't bother checking signatureHelp.signatureInformationparameterInformation.labelOffsetSupport
2019-01-12 00:40:49 +08:00
Fangrui Song
fc38442967
Support textDocument/declaration & LocationLink
...
textDocument/{declaration,definition,typeDefinition} return either LocationLink[] or Location[]
Add an initialization option client.linkSupport . When it is false, ccls will return Location[] disregarding client's linkSupport.
`struct LocationLink` does not include originSelectionRange as it is wasteful.
2019-01-12 00:40:49 +08:00
Fangrui Song
37a9ad3f81
cmake_minimum_required 3.8; clean up
2019-01-12 00:40:49 +08:00
Fangrui Song
df7221affc
Rendezvous after receiving "exit" notification ( #159 )
2019-01-12 00:40:49 +08:00
Fangrui Song
6945a56fb8
Support multiple -init=
...
Initialization options are applied (deserialized to the same object) in the following order:
* "initializationOptions" from client
* first -init=
* second -init=
* ...
Scalar options will be overridden but arrays will get concatenated, e.g.
ccls -log-file=/dev/stderr -index . -init='{"clang":{"extraArgs":["-DA"]}}' -init='{"clang":{"extraArgs":["-DB"]}}'
results in clang.extraArgs: ["-DA", "-DB"]
2019-01-12 00:40:49 +08:00
Leszek Swirski
259b9fefb3
Spin IncludeComplete's destructor until scanning completes ( #147 )
2019-01-12 00:40:49 +08:00
Fangrui Song
d43b994557
query: fix UpdateUses when a new entity is seen; simplify {DeclRef,Use,Usr}Update
...
Thanks to Leszek Swirski
2019-01-12 00:40:49 +08:00
Fangrui Song
04e80544b9
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-01-12 00:40:49 +08:00
Fangrui Song
872d7c5de9
Add ReplyOnce::NotReady and error if didOpen is not seen
...
Use IgnoringDiagConsumer to override default TextDiagnosticPrinter
2019-01-12 00:40:49 +08:00
Fangrui Song
ab48663ca0
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-01-12 00:40:49 +08:00
Fangrui Song
e5b4a404df
completion: use Text for Macro{Instantiation,Definition}
2019-01-12 00:40:49 +08:00
Fangrui Song
a37782dc0c
Fix ComputeGuessScore and delete dead code
...
Thanks to CXuesong
2019-01-12 00:40:49 +08:00
Fangrui Song
72ee893d26
Merge maybe.hh into utils.hh
2019-01-12 00:40:49 +08:00
Fangrui Song
5a5165faa8
Merge query.hh and query_util.hh
2019-01-12 00:40:49 +08:00
Fangrui Song
5a723b489a
Refactor Matcher to use pimpl and merge match.hh into utils.hh
2019-01-12 00:40:49 +08:00
Fangrui Song
e6510f7428
Make EmptyParam empty & rewrite LruCache
2019-01-12 00:40:49 +08:00
Fangrui Song
0606b95754
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.
2019-01-12 00:40:49 +08:00
Fangrui Song
9ffbf3c52e
codeAction: use codeActionProvider: CodeActionOptions and respect CodeActionParams::range
2019-01-12 00:40:49 +08:00
Fangrui Song
eacbc1e1e7
Make DocumentLink::range narrower
...
Thanks to Riatre #135
2019-01-12 00:40:49 +08:00
Fangrui Song
7a363d2259
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
2019-01-12 00:40:49 +08:00
Fangrui Song
3bcb5f23a4
serializer: make visitor/vis value/v consistent
2019-01-12 00:40:49 +08:00
Fangrui Song
58e996366d
Refactor ReplyOnce; error if InitializeParams.rootUri is null
2019-01-12 00:40:49 +08:00
Fangrui Song
f6fca76088
indexer: handle DecltypeType and empty main file; diag: -Wno-unused-function for headers
...
Don't replace name with qualified name in Cls::*name
2019-01-12 00:40:49 +08:00
Fangrui Song
afa654f0d1
.ccls: add %objective-c %objective-cpp
...
Also allow multiple directives on a line, e.g. %c %cpp -DFOO
2019-01-12 00:40:47 +08:00
Fangrui Song
8c73bbc3c7
Use clang::isIdentifierBody and clean up utils/working_files
2019-01-09 15:19:23 +08:00
Fangrui Song
b31a1c6b3e
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'
2019-01-09 15:19:23 +08:00
Fangrui Song
06dff21720
README: add client feature table
2019-01-09 15:19:23 +08:00
Nikolaus Wittenstein
6767b9bf24
Add Apache LICENSE file ( #121 )
2019-01-09 15:19:23 +08:00
Dso Tsin
77bec58a62
Fix VS2017 build issues and add Appveyor CI script ( #118 )
2019-01-09 15:19:23 +08:00
Fangrui Song
63a510ac21
Use SM.isWrittenInMainFile; suppress -Werror in preamble
...
SM.isWrittenInMainFile is to work around preamble bug: spurious err_pp_unterminated_conditional with circular #include
2019-01-09 15:19:23 +08:00
Fangrui Song
a24fe5a386
hierarchicalDocumentSymbol: display member function declarations
2019-01-09 15:19:23 +08:00
Fangrui Song
5736dd094d
Fix some MSVC 2017 errors
...
Thanks to Dso Tsin!
2019-01-09 15:19:23 +08:00
Fangrui Song
eeeb03c068
If clang >= 8, delete search path detection and use Sema::CodeCompleteIncludedFile
2019-01-09 15:19:23 +08:00
Fangrui Song
94d2b5821e
Work around relative --sysroot=
2019-01-09 15:19:23 +08:00
Fangrui Song
58c701d98a
Improve semantic highlight in templates
2019-01-09 15:19:23 +08:00
Fangrui Song
e0e00cb48a
Reduce MAKE_REFLECT_STRUCT in lsp.hh
...
Position -> Pos; lsPosition -> Position
2019-01-09 15:19:23 +08:00
Fangrui Song
11ba6b64ff
Remove ls
prefix from many LSP interfaces
...
Rename SymbolKind to Kind & lsSymbolKind to SymbolKind
Use textDocumentSync: TextDocumentSyncOptions
2019-01-09 15:19:23 +08:00
Fangrui Song
ac09b085ff
Misc
2019-01-09 15:19:23 +08:00
Fangrui Song
18e5d5c498
Simplify and work around vscode _sortTextLow
2019-01-09 15:19:23 +08:00
Fangrui Song
42b6b7b3f0
project.cc: deduplicate more cases
2019-01-09 15:19:23 +08:00
Fangrui Song
334557e9fe
Fix EnumConstantDecl's kind & EnumDecl's vars
2019-01-09 15:19:23 +08:00
Fangrui Song
90a94cbb4f
textDocument/references workspace/symbol: add folders
...
For textDocument/reference, base/excludeRole/role has been lifted from params.context.* to params.*
2019-01-09 15:19:23 +08:00
Fangrui Song
26d76b75c7
Report InvalidParams for serialization error
2019-01-09 15:19:23 +08:00
Fangrui Song
5599ddd343
Simplify and better compatibility with encodings retaining the feature of low bytes being 1-byte characters
2019-01-09 15:19:23 +08:00
Fangrui Song
df20969788
*.h -> *.hh
2019-01-09 15:19:23 +08:00
Fangrui Song
ea1271a84e
Refactor message handler and namespace ccls
2019-01-09 15:19:23 +08:00
Fangrui Song
6e19a5964e
Implement textDocument/documentLink
2019-01-09 15:19:23 +08:00
Fangrui Song
1d67a40ce8
Implement textDocument/foldingRange
2019-01-09 15:19:23 +08:00