Commit Graph

1105 Commits

Author SHA1 Message Date
Fangrui Song
420e84329b Derive SymbolRef,Use from Reference and add lexical container to func/var/type uses 2018-02-10 17:33:56 -08:00
scturtle
a50bff0b24 Make gcc happy. 2018-02-10 19:50:39 +08:00
Fangrui Song
bd4482df5e GetDefinitionSpellingOfSymbol: optional -> Maybe 2018-02-10 00:19:17 -08:00
Fangrui Song
749ecf0faa Add {Index,Query}Family to simplify template parameters 2018-02-10 00:06:45 -08:00
Fangrui Song
e7c90b62b5 $cquery/base for virtual void f() = 0 2018-02-09 23:12:34 -08:00
scturtle
1342522f2a Make CI happy. 2018-02-10 12:43:48 +08:00
Fangrui Song
c28426bbb4 Remove QueryLocation and clean up 2018-02-09 19:13:50 -08:00
Fangrui Song
50cf05763b Query* structs: QueryLocation -> Reference 2018-02-09 17:50:47 -08:00
Fangrui Song
aa125e34f3 Work around SIGSEGV and simplify SymbolIdx 2018-02-09 17:05:17 -08:00
Fangrui Song
95515643d8 Remove ToSymbol 2018-02-09 15:39:55 -08:00
Fangrui Song
c4bd7ef44b Rename Reference members 2018-02-09 14:12:35 -08:00
Chao Shen
c5f08c5eb8 Fix a bunch of stuffs in completion. 2018-02-09 20:51:59 +08:00
Fangrui Song
a131ccdcb4 Remove ToQueryLocation 2018-02-08 23:43:18 -08:00
Fangrui Song
67e8132dbe struct QueryFuncRef : Reference {}; 2018-02-08 23:10:54 -08:00
Fangrui Song
4bfb5a3586 struct IndexFuncRef : Reference {}; 2018-02-08 22:06:09 -08:00
Fangrui Song
82b429bfbc QueryLocation -> Reference 2018-02-08 21:26:34 -08:00
Fangrui Song
2d255da07b {Index,Query}Type::uses: Range/QueryLocation -> Reference
And add serialization for Reference
2018-02-08 18:26:09 -08:00
Jacob Dufault
5f85867f88 Scan root directory for includes 2018-02-08 15:27:53 -08:00
Fangrui Song
48a6f836ca Fix SymbolRole serialization and make it hashable 2018-02-08 12:24:48 -08:00
Fangrui Song
715fece4dd QueryLocation and QueryRef 2018-02-08 10:15:55 -08:00
scturtle
be1ed58fc5 Reuse isIncomplete.
Add -fno-limit-debug-info for debugging.
2018-02-09 00:55:39 +08:00
Fangrui Song
dbdab02ff4 Change is_implicit to role in {Index,Query}FuncRef
Add `FileId file` to *DefDefinitionData::Def
2018-02-07 23:27:35 -08:00
Fangrui Song
10c2843846 Add IndexLocation and add role to QueryLocation
IndexFuncRef should be deprecated in favor of IndexLocation
2018-02-07 19:10:39 -08:00
Fangrui Song
9b0256355e Address ODR violation spot by @Riatre and work around .o .a in compile_commands.json 2018-02-07 10:27:30 -08:00
Chao Shen
8bee5c6ccf Disable limiting completion result.
Because vscode cache the include completion results.
But for emacs, the json is too large to load.
TODO Make some fields optional.
2018-02-08 00:28:35 +08:00
scturtle
2e6d596a5a Speedup sorting and limit number of completion results. 2018-02-07 16:15:29 +08:00
Fangrui Song
e76a336f19 Remove --debug in favor of LIBCLANG_DISABLE_CRASH_RECOVERY=1
ci/before_deploy.sh: Use the latest libclang.so
2018-02-07 00:00:04 -08:00
Fangrui Song
9e730aacd4 Make before_deploy.sh work on FreeBSD 2018-02-06 22:46:05 -08:00
Fangrui Song
e440a7c52f Convert some copy constructors to move constructors in query.cc 2018-02-06 21:45:58 -08:00
Fangrui Song
55c7519e93 Move ImportOrUpdate and header cleanup 2018-02-06 21:27:07 -08:00
Fangrui Song
0016d214c3 Convert copy constructor to move constructors piecemeal
If I replace all the important constructors used in query.cc, there will be a weird issue that strings following "Applying index update for " are empty.
2018-02-06 20:54:17 -08:00
Jacob Dufault
0cfb5391d1 Add --record in favor of --log-stdin-stdout-to-stderr.
This should be more useful and can hopefully be adapted to writing tests.
2018-02-06 20:27:35 -08:00
Peter Elmers
47a8f20b20 Match directory before looking at included files. 2018-02-06 15:05:30 -08:00
Chao Shen
1e3815db2d Fix include completion with filterText.
Fix #423
2018-02-06 16:14:05 +08:00
Fangrui Song
1a82f1f113 We may should represent Query{Func,Type,Var} as a bag of definitions and references 2018-02-05 10:16:43 -08:00
Fangrui Song
cd96cb9570 threaded_queue: queue -> deque
IndexMergeIndexUpdates: use TryPopBack() and see
2018-02-04 22:15:48 -08:00
Fangrui Song
3839d1e5ab Decouple QueryDb_ImportMain 2018-02-04 21:22:21 -08:00
Fangrui Song
a8fb2264a9 Reflect IndexFuncRef 2018-02-04 17:49:00 -08:00
Chao Shen
093dbac30c Fix compilation. 2018-02-05 09:34:39 +08:00
Fangrui Song
217d238c78 Use clang_getCursorPrettyPrinted if CINDEX_VERSION >= 47
Closes #366
2018-02-04 15:23:23 -08:00
Fangrui Song
1349cbfde3 Simplify EachWithGen 2018-02-04 13:43:29 -08:00
Fangrui Song
d573a68130 Simplify operator== 2018-02-04 10:09:58 -08:00
Guillaume Papin
65d7edd9b9 refactor CompareLsCompletionItem (#412)
Since not everything is a reference,
std::make_tuple() seems more appropriate than std::tie().
For heavy types, std::cref() can be used to preserve the reference.
2018-02-04 09:31:23 -08:00
Guillaume Papin
24702a25b0 add detailedLabel completion style
Some completion UI, such as Emacs' completion-at-point and company-lsp,
display completion item label and detail side by side.
This does not look right, when you see things like:
    "foo" "int foo()"
    "bar" "void bar(int i = 0)"
When this option is enabled, the completion item label is very detailed,
it shows the full signature of the candidate.
The detail just contains the completion item parent context.
Also, in this mode, functions with default arguments,
generates one more item per default argument
so that the right function call can be selected.
That is, you get something like:
    "int foo()" "Foo"
    "void bar()" "Foo"
    "void bar(int i = 0)" "Foo"
Be wary, this is quickly quite verbose,
items can end up truncated by the UIs.
2018-02-03 20:56:14 -08:00
Fangrui Song
7a1464cadb Fix #410 2018-02-03 20:37:39 -08:00
Fangrui Song
985dec101d Generation 2018-02-03 19:51:30 -08:00
Fangrui Song
0a721ff247 Simplify query.h 2018-02-03 18:16:30 -08:00
scturtle
15dd552610 Complex include completion. 2018-02-04 09:45:58 +08:00
Chao Shen
e16753d261 Improve completion. 2018-02-04 09:45:58 +08:00
Fangrui Song
e5128d3db9 Wrap Query* references with WithGen 2018-02-03 17:44:20 -08:00
Fangrui Song
3d6d000297 Add Generation gen; to Query{Func,Type,Var} and corresponding ToQueryLocation 2018-02-03 14:52:26 -08:00
Riatre Foo
54c587a700 Look for .cquery in any directory above the source file in the hierarchy. (#409)
* Look for .cquery in any directory above the source file in the hierarchy.

Currently cquery only reads compiler arguments (.cquery) from project
root. Under some circumstances (e.g. remote compiling), generating a
compilation database with correct path in it is non-trivial, and
allowing per directory compile arguments usually helps.

* unused var buf
2018-02-03 13:16:38 -08:00
Fangrui Song
6933870962 Change symbol id from size_t to RawId (uint32_t currently) 2018-02-03 10:35:17 -08:00
Riatre Foo
b145243a64 Fix #393 again. (#402)
28cd33e actually changed the behaviour of GetFilesInFolderHelper.
2018-02-02 10:51:14 -08:00
Fangrui Song
12e41c609e Fix #393 2018-02-01 23:35:34 -08:00
Fangrui Song
e42f6b6191 optional<...> GetQuery*IdFromUsr -> Maybe 2018-02-01 23:17:34 -08:00
Fangrui Song
ae999f9c92 size_t Query*::symbol_idx -> Maybe<Id<void>> 2018-02-01 22:52:03 -08:00
Fangrui Song
3c6f3f661f Use Maybe<Id<T>> for {Func,Type,Var}DefDefinitionData
sizeof(db->funcs[0].def) 224  (-24)
sizeof(db->types[0].def) 248  (-24)
sizeof(db->vars[0].def) 160   (-24)
2018-02-01 22:31:43 -08:00
Fangrui Song
392cd79d04 Add Maybe<T> and change definition_{spelling,extent} from optional to Maybe
sizeof(db->funcs[0].def) decreases from 248 to 232
sizeof(db->types[0].def) decreases from 272 to 256
sizeof(db->vars[0].def) decreases from 184 to 168
2018-02-01 21:39:23 -08:00
Nathan Ridge
74f9be1d6f Use symbol kind 'Parameter' for template parameters
Clients can distinguish between function and template parameters based
on storage class.
2018-02-01 20:07:11 -08:00
Fangrui Song
ce6f1c7294 QueryDatabase::{detailed_names,short_names} -> GetSymbol{DetailedName,ShortName} 2018-02-01 18:15:22 -08:00
Fangrui Song
2fb85732c0 Add RemoveSymbol 2018-02-01 17:25:06 -08:00
Fangrui Song
642975ea17 Reflect string_view and fix workspace/symbol 2018-02-01 13:48:41 -08:00
Fangrui Song
0d715e7bcf Handle int8_t int16_t uint8_t uint16_t enum constants
Clean up clang_complete
2018-02-01 12:21:58 -08:00
Chao Shen
5b6945d909 Remove last CR. 2018-02-01 17:12:36 +08:00
Fangrui Song
490f52205f Clean serializer 2018-02-01 00:39:31 -08:00
Chao Shen
57ea5f7cb9 Check the function name appearance before publish semantic highlight. 2018-02-01 16:27:31 +08:00
Jacob Dufault
e0e3a39d5d Fix clang 3.5 compile error 2018-01-31 21:49:56 -08:00
Jacob Dufault
c98d53cfe2 Indexer now has access to |config| 2018-01-31 21:48:49 -08:00
Fangrui Song
e259bb91d3 Use string_view for lsSymbolInformation 2018-01-31 21:40:40 -08:00
Fangrui Song
6d6c1639d0 Type-dependent member access expressions 2018-01-31 21:23:00 -08:00
Jacob Dufault
b02c92e335 Reduce file reads in import_pipeline 2018-01-31 21:20:38 -08:00
Jacob Dufault
301d295f79 Remove std::experimental uses 2018-01-31 21:18:32 -08:00
Jacob Dufault
a2c1cb4a83 Enable make* indexing by default 2018-01-31 20:21:16 -08:00
Fangrui Song
8108de0cfa Change short_names/detailed_names from const std::string& to std::string_view 2018-01-31 19:53:50 -08:00
Fangrui Song
c33aa113db Use short_name for tests but short_name_{offset,size} for lang server 2018-01-31 17:22:30 -08:00
Fangrui Song
9944617df6 Fix #385 2018-01-31 16:48:26 -08:00
Fangrui Song
768f4ecb6e Enable "Make" hack only if config->index.make_unique is true. 2018-01-31 11:10:20 -08:00
Fangrui Song
871ae34a1b Hotfix of stale file contents in 186898 2018-01-31 08:42:25 -08:00
Fangrui Song
3e16055b31 Change some API const std::string& -> std::string_view 2018-01-31 00:35:04 -08:00
Fangrui Song
4c895bef0b Make optional<string> {hover,comments} non-optional 2018-01-30 23:48:34 -08:00
Fangrui Song
77dca1936b Change TypeDefDefinition::short_name from string to string_view 2018-01-30 23:01:59 -08:00
Fangrui Song
93269ecfd4 Change std::string FuncDefDefinition::short_name to ShortName() 2018-01-30 22:40:02 -08:00
Fangrui Song
41f87887bb Change std::string VarDefDefinition::short_name to ShortName() 2018-01-30 22:04:55 -08:00
scturtle
699d2f3655 Fix completion of headers. 2018-01-31 09:59:51 +08:00
Fangrui Song
5d88eb959d Remove index.builtinTypes and fix doc 2018-01-30 09:16:20 -08:00
Riatre Foo
ab2a836d57 Remove unused variable ex in initialize.cc (#376) 2018-01-30 09:03:46 -08:00
Fangrui Song
c8605dc4a9 Group source files outside of the project by a cache sub-directory 2018-01-29 23:53:32 -08:00
Jacob Dufault
fe3b9c4a8a Revert "Fix completion of headers."
This reverts commit ce0aab3afa4b7d80d46c901d1bb8234ac18fa70b.
2018-01-29 21:52:38 -08:00
Jacob Dufault
f6a2a55209 Import pipeline improvements
- Cache manager is created by request
- Index is always associated with its contents
- Reduced frequently of file reads
2018-01-29 21:34:36 -08:00
Jacob Dufault
a8b68d21d7 Fix potential crash 2018-01-29 21:34:36 -08:00
scturtle
e145f77996 Fix completion of headers. 2018-01-30 13:11:56 +08:00
Fangrui Song
5bd466ab17 Fix #372 2018-01-29 19:08:19 -08:00
Jacob Dufault
0eb7d415d7 usr_to_file uses new NormalizedPath type 2018-01-29 16:56:00 -08:00
Jacob Dufault
7579d71b85 Simplify MAKE_REFLECT_TYPE_PROXY 2018-01-29 16:35:01 -08:00
Jacob Dufault
a392301be3 Format 2018-01-29 16:27:43 -08:00
Jacob Dufault
233a108814 Add docs to config.h, remove enableCacheRead/enableCacheWrite. 2018-01-29 16:14:23 -08:00
Jacob Dufault
55338e7481 Simplify, readd --wait-for-input 2018-01-29 15:43:22 -08:00
Fangrui Song
09d7da2893 Don't emit semantic highlight for operators or lambda (#369)
Fixes #368
2018-01-29 09:28:17 -08:00
Fangrui Song
795dfc670c Update tests after specialization handling 2018-01-28 23:40:57 -08:00