Fangrui Song
b53314c89c
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
2018-12-28 12:35:33 -08:00
Fangrui Song
16393025f2
Add ReplyOnce::NotReady and error if didOpen is not seen
...
Use IgnoringDiagConsumer to override default TextDiagnosticPrinter
2018-12-28 12:35:33 -08:00
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
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
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
Riatre Foo
ccfabb9c72
Fix hierarchical document symbol
...
1. Fixed a bug on building document symbol tree: As sym2ds was updated in
place, nested funcs/types may be moved into children of another
lsDocumentSymbol before itself got processed.
2. Namespaces only have declarations, in the old implementation it wasn't included in the result, making the result less hierarchical. This
commit fixes this by including the declarations of a symbol if no
definitions found.
2018-10-15 22:49:12 -07:00
Fangrui Song
949aebacdd
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
2018-10-15 22:46:59 -07:00