Commit Graph

93 Commits

Author SHA1 Message Date
Fangrui Song
fb3cd89b05 Move language_server_api.h structs to initialize.cc 2018-01-28 14:39:48 -08:00
Fangrui Song
bdb880e0a5 Serialize VarDefDefinitionData::{parent_kind,parent_id} 2018-01-28 12:34:31 -08:00
Fangrui Song
5763201838 Remove is_type_member & VarDefDefinitionData::declaring_type
Rename ClangStorageClass to StorageClass
Add semantic_parent & semantic_parent_kind (but not serialized yet)
Move query.h SymbolKind to indexer.h SymbolKind and make it uint8_t
2018-01-27 20:46:06 -08:00
Fangrui Song
351e7b6c95 Add ClangStorageClass storage; to {Func,Var}DefDefinitionData and semantic highlighting.
This can be used to differentiate local/global variables, template parameters.
Also make msgpack deserialization robust.
2018-01-26 09:47:42 -08:00
Fangrui Song
90c2a54bbc Better error reporting in ResponseMessage. Fix #317 2018-01-19 14:31:49 -08:00
Fangrui Song
5c43bd9a09 Remove IpcMessage 2018-01-19 01:06:02 -08:00
Fangrui Song
148a8b3f20 Add {Request,Notification}Message 2018-01-19 00:48:08 -08:00
Fangrui Song
162f995344 Better deserialization error messages 2018-01-19 00:14:47 -08:00
Jacob Dufault
67834ca783 Strongly typed semantic highlighting kind 2018-01-16 17:48:22 -08:00
Fangrui Song
c4935fb367 Add kind to Out_CqueryPublishSemanticHighlighting 2018-01-15 15:08:03 -08:00
Fangrui Song
27ddce4cd6 Reader reflection of std::variant<Ts...> 2018-01-10 23:17:27 -08:00
Jacob Dufault
54394ed868 Format 2018-01-10 18:43:01 -08:00
Fangrui Song
a8d403426d using lsRequestId = std::variant<std::monostate, int64_t, std::string>;
Emacs lsp-mode uses (gethash "id" json-data) to handle asynchronous
requests. The JavaScript `Number` type is really a hindrance.
2018-01-10 10:45:31 -08:00
Fangrui Song
38bfd26750 Add <iostream> 2018-01-10 10:08:39 -08:00
Fangrui Song
060b92b214 Change lsVersionedTextDocumentIdentifier::version to variant<monostate,int>
version: number | null

Maybe we need to change it to double
2018-01-09 23:57:44 -08:00
Fangrui Song
503127e0da Reflect std::variant and change lsRequestId to variant<monostate,double,string> (#279) 2018-01-09 22:34:58 -08:00
Fangrui Song
60e384a859 Make semantic highlighting symbol ranges non-overlapping using a scan line algorithm 2018-01-09 20:24:54 -08:00
Fangrui Song
11436c1f0d Flatten msgpack by replacing pack_array() with pack()
msgpack::unpacker is not a complete streaming deserializer. It returns maps/arrays as a whole but does not allow us to step into individual elements. There is some memory overhead and it is also likely less efficient. By flattening maps, we also no longer need to track how many fields a struct has, which is less error-prone.
2018-01-07 20:52:16 -08:00
Jacob Dufault
09d9d5eedc Progress output improvements
- Don't emit so many progress messages
- Allow user to control how often progress is emitted
- Include number of active threads in progress
2018-01-07 13:08:48 -08:00
Fangrui Song
fe0313f0b5 Add a parameter (number of __VA_ARGS__) to REFLECT_MEMBER_START
rapidjson StartArray StartObject do not need the number of fields, but msgpack-c does.
2018-01-06 16:42:22 -08:00
Fangrui Song
02a457f65d Make Reader/Writer abstract classes instead of type aliases of rapidjson classes
Added src/serializers/json.h (which includes rapidjson)
2018-01-06 14:47:43 -08:00
Fangrui Song
86768b7d36 [formatting] textDocument/rangeFormatting 2017-12-31 20:03:43 -08:00
Fangrui Song
12ad0303be [formatting] Add textDocument/rangeFormatting 2017-12-31 19:41:47 -08:00
Chao Shen
829b2fe18c Better order of the completion items. 2017-12-30 15:15:46 +08:00
Fangrui Song
48e88950e1 Complete CompletionItemKind 2017-12-29 16:32:43 -08:00
Jacob Dufault
48f3c75053 Add using declaration to optional.h, include STL optional if available or fallback to third-party one. 2017-12-29 12:00:52 -06:00
Fangrui Song
6636617b4d [comments] Import mpark/variant and make MarkedString a variant (#200) 2017-12-28 15:21:40 -08:00
Fangrui Song
20c156f71d Make lsTextDocumentContentChangeEvent::{range,rangeLength} optional. fix #185 (#189)
Also make lsVersionedTextDocumentIdentifier::version optional per specification
2017-12-25 00:58:26 -08:00
Jacob Dufault
12bfabf9c2 No more NonElidedVector 2017-12-11 21:20:29 -08:00
Jacob Dufault
b65a30c3f7 Move Ipc_* types into messages/ 2017-12-05 20:41:44 -08:00
Jacob Dufault
5093863b33 Move initialization Ipc structures into messages/ 2017-12-05 20:09:12 -08:00
Jacob Dufault
ad550f3f2c Enable global/static registration for IpcMessage. 2017-12-05 20:09:12 -08:00
Yuxuan Shui
2bd4671ddd Only set insertTextFormat to Snippet when we have placeholders 2017-12-05 09:47:33 -08:00
Jacob Dufault
b64b8b5493 Fix clang build 2017-12-03 22:49:50 -08:00
Jacob Dufault
b2736f8822 Semantic highlighting improvements.
- Semantic highlighting no longer disappears when switching between
files.
- Semantic highlighting for a symbol will remain stable as the file is
edited.
- Improved semantic highlighting colors.

Progress indicator also now shows the number of remaining index jobs
(not the total number).
2017-12-03 18:25:21 -08:00
Jacob Dufault
ab7ffa302a Add $cquery/textDocumentDidView.
This allows for more stable semantic highlighting, among other potential features. Requires custom support from the client, though.
2017-12-03 18:25:21 -08:00
Jacob Dufault
9b44bf7901 Run ./format.sh 2017-12-01 09:55:41 -08:00
topisani
28ad5b1ed1 Index file language and send it on hover 2017-11-30 14:12:41 -08:00
Jacob Dufault
f4acde7588 Add --log-stdin-stdout-to-stderr
Prints messages received and stdin/stdout to stderr. Useful when developing a new client that uses cquery as the backend.
2017-11-29 20:22:10 -08:00
Peter Elmers
750cc4ea30 Respond to comment 2017-11-26 12:12:59 -05:00
Jacob Dufault
5fa7fbf0d2 More improvements to semantic highlighting. Still not done though. 2017-11-11 11:18:55 -08:00
Jacob Dufault
8145a06534 First pass at semantic highlighting.
It is disabled by default.
2017-11-08 23:06:32 -08:00
Jacob Dufault
7734943620 Format all code in src/ 2017-10-31 12:49:19 -07:00
Jacob Dufault
235987bb58 Show progress indicator in status area 2017-10-25 00:12:11 -07:00
Jacob Dufault
772f547065 Update diagnostics on document change, not code completion.
This also changes the API used for reporting diagnostics, which will hopefully be more reliable. This requires reparsing the document, though, so it is much slower. We do this after reporting code completion though, so hopefully the performance delay is not too noticable.
2017-09-21 19:25:33 -07:00
Jacob Dufault
f5314b62b1 Reformat to Chromium style. 2017-09-21 18:14:57 -07:00
Jacob Dufault
1e995dc30e Cleanup call tree appearance
- Use up/down icons instead of [B] and [D]
- Don't show column number
- Show declaring type instead of path if applicable
2017-07-20 23:16:27 -07:00
Jacob Dufault
f498f0ccb1 Fix showing duplicate completion entries, always provide insertText. 2017-06-28 23:59:38 -07:00
Jacob Dufault
41d8cd9a0c Fix memory leaks 2017-06-08 23:22:00 -07:00
Jacob Dufault
79a4d8ad79 Proper error reporting when request fails due to missing file. 2017-05-27 00:10:21 -07:00