Commit Graph

1434 Commits

Author SHA1 Message Date
Fangrui Song
763106c3d4 Simplify pipeline and fix race 2018-09-20 01:08:31 -07:00
Fangrui Song
14b73f0d6f Add hierarchicalDocumentSymbolSupport 2018-09-16 20:53:52 -07:00
Fangrui Song
a18977b9fc Add clang.pathMappings to reuse cache files with differect source paths 2018-09-16 20:53:52 -07:00
Fangrui Song
34c1ebcefd Remove [spell.start, spell.end) -> [spell.start, extent.end) hack 2018-09-16 20:53:50 -07:00
Fangrui Song
56c6ec43df Skip informative scope foo:: 2018-09-16 17:00:59 -07:00
Fangrui Song
70deeca8ad Rename hierarchies to $ccls/{call,inheritance,member}
bool flat = false; -> bool hierarchy = false; (set it to true to enable hierarchical view)

Delete $ccls/callers (which is what $ccls/call does now)
2018-09-13 14:55:27 -07:00
Fangrui Song
a174105abe Better diagnostics 2018-09-13 14:55:27 -07:00
Fangrui Song
1969731781 textDocument/documentSymbol 2018-09-13 14:55:27 -07:00
Fangrui Song
6bca153ee3 Make $ccls/inheritanceHierarchy and textDocument/typeDefinition find declarations if definitions do not exist; spelling ranges of operator= 2018-09-13 14:55:24 -07:00
Fangrui Song
e2f29d7b1b pipeline improvement for files not having a project entry (e.g. .h) 2018-09-12 17:01:52 -07:00
Fangrui Song
c7a6c5cd12 Make $ccls/reload reset DB and reload cached index files
$ccls/reload is renamed from $ccls/freshenIndex

This is useful when DB (merged index) diverges from backing IndexFile.

Also fix a semantic highlighting bug.
2018-09-12 17:01:52 -07:00
Riatre Foo
a607dcec24 Normalize paths on Windows
1. Normalize paths in LSP document URIs and project root to forward
slash and uppercase drive letters.
2. Normalize paths in compile_commands.json to forward slash and
uppercase drive letters.
3. Normalize paths from directory listing to forward slash. (Drive
letter should be same as input dir path, which is already uppercase
since path of project root dir is normalized)
4. Add llvm::sys::path::convert_to_slash after certain llvm::sys::path
and llvm::fs calls.
2018-09-12 17:01:52 -07:00
Fangrui Song
a45686ae1b diagnostics; use custom DenseMapInfo 2018-09-12 17:01:52 -07:00
Fangrui Song
c9e6b31dd0 Revamp completion and signatureHelp, set completion.detailedLabel: true and add completion.duplicateOptional 2018-09-12 17:01:48 -07:00
Fangrui Song
a7c1633b51 Misc 2018-09-11 20:22:49 -07:00
Fangrui Song
c202dd3775 Make CXXConversion references wider; use getTypedefNameForAnonDecl; improve CXXDestructor CXXConversion spell 2018-09-11 16:21:46 -07:00
Fangrui Song
92ee7f3e0f Add diagnostics.onSave 2018-09-11 16:21:42 -07:00
Fangrui Song
da982a6506 Reuse preamble (built by "comp-preload") in indexer 2018-09-10 00:45:56 -07:00
Fangrui Song
58191fd335 Support empty cacheDirectory and fix cache load 2018-09-08 15:46:52 -07:00
Fangrui Song
82d31a2012 Implement index.onChange: true; enable spell checking for diagnostics 2018-09-08 14:27:49 -07:00
Fangrui Song
e20a8e7a1b Add DeclUse as element type of declarations 2018-09-08 14:27:44 -07:00
Fangrui Song
8b3ebf234b Remove $ccls/base and clean up; deduplicate codeLens 2018-09-07 15:00:15 -07:00
Fangrui Song
b77fba6ea8 Improve hover and documentSymbol 2018-09-06 00:22:40 -07:00
Fangrui Song
56da577df9 Add clang.excludeArgs and rename diagnostics.onType to onChange 2018-09-04 13:10:18 -07:00
Fangrui Song
0a51424c5c Add $ccls/navigate and improve textDocument/definition 2018-09-04 01:04:19 -07:00
Fangrui Song
e92378df9c Add all: boolean to textDocument/documentSymbol 2018-09-03 14:25:49 -07:00
Fangrui Song
aebf2dfaed Add index.multiVersion{Black,White}list
They allow files matching specified patterns to be indexed only once
even if index.multiVersion > 0. An example is to exclude system headers
with index.multiVersionBlacklist: ["^/usr/include"]
2018-09-03 12:28:55 -07:00
Fangrui Song
a33f4df404 index.multiVersion: int
Before, QueryFile::Def::{all_symbols,outline} were built by indexers.
Now, {symbol,outline}2refcnt are used instead, built by main thread.
*_removed are augmented with Query*:Def to allow removal of old {symbol,outline}2refcnt entries.
2018-09-03 12:27:26 -07:00
Fangrui Song
145630ba1a Fix unaligned load/store; add index.multiVersion prototype, rename index.onParse to index.OnOpen
Don't call getFieldOffset() on RD->isInvalidDecl()
2018-09-02 23:10:03 -07:00
Fangrui Song
11e92d52a8 README 2018-09-02 14:01:28 -07:00
Fangrui Song
407c7cc29d Remove ASTUnit from indexer and clean up 2018-08-31 09:47:37 -07:00
scturtle
5cc3006a3a Filter deps with index.blacklist. (#64) 2018-08-30 09:46:03 -07:00
Fangrui Song
1ae97c64ed detailed_name: "{\n}" -> "{}" ; completion 2018-08-29 23:40:40 -07:00
firstlove
74790e2421 fix clang_tu.h && clang_complete.cc (#61) 2018-08-29 20:52:44 -07:00
Fangrui Song
87c5491536 New diagnostics 2018-08-29 20:52:44 -07:00
Fangrui Song
f808dd8f8a Use StoreInMemory Preamble for CodeComplete 2018-08-29 20:52:32 -07:00
Fangrui Song
bd3e06796e SkipFunctionBodiesScope; improve fuzzy 2018-08-28 00:27:16 -07:00
Fangrui Song
caddc18860 Uniquify $ccls/inheritanceHierarchy and add flat to $ccls/memberHierarchy 2018-08-24 10:37:47 -07:00
Fangrui Song
ec2b893ee4 Fix VarDef::is_local; default cacheDirectory to ".ccls-cache" 2018-08-22 20:45:29 -07:00
Fangrui Song
f3490a3e6c Add license notice 2018-08-20 22:27:52 -07:00
Amos Bird
66b027910a correctly grabbing the ownership of index files. (#54) 2018-08-20 09:58:27 -07:00
Fangrui Song
431eef2167 textDocument/hover: prefer definitions in the same file 2018-08-19 13:11:47 -07:00
Fangrui Song
2f5fcadc39 Remove CompileCommandsEntry and reduce clangDriver invocations 2018-08-19 11:03:37 -07:00
Fangrui Song
8cbb317dc2 clang-format
DEF CON 26 CTF
2018-08-09 10:13:54 -07:00
Fangrui Song
b9e1c2ee07 Add flat to $ccls/inheritanceHierarchy 2018-08-08 00:25:46 -07:00
Fangrui Song
3931951406 Validate RecordDecl 2018-08-08 00:25:43 -07:00
Fangrui Song
924fedbb02 Uniquify textDocument/references
There can be duplicates with template instantiation.
2018-07-30 18:00:54 -07:00
Fangrui Song
0bb311ac56 Add textDocument/codeAction for clang FixIt
What do you think of the challenge ccls-fringe in Real World CTF?
2018-07-29 01:03:30 -07:00
Fangrui Song
c71047189f Misc 2018-07-29 01:03:24 -07:00
Chao Shen
b95b47540d Fix diagnostics on MacOS and duplicated bases. 2018-07-26 20:51:30 -07:00
Fangrui Song
122eda1c53 Improve comment and outline 2018-07-25 10:53:36 -07:00
Chao Shen
03aa024fe6 Misc. 2018-07-24 20:48:46 -07:00
Chao Shen
ff102c9b7e Fix preload completion session. 2018-07-24 20:48:41 -07:00
Fangrui Song
8b4a8d2d48 Fix Twine; index TypedefNameDecl to specialization; anonymous RecordDecl fields 2018-07-23 00:26:05 -07:00
Fangrui Song
e67ea3af87 Use ContainerDC for extent, index callees, set StaticMethod 2018-07-21 00:54:34 -07:00
Fangrui Song
27d641bf64 Add Query*::file_id to allow textDocument/hover on declarations
Also change StorageClass storage to uint8_t
2018-07-20 23:48:19 -07:00
Fangrui Song
46d397f4b3 --init 2018-07-18 10:51:18 -07:00
Fangrui Song
0732d37817 Better bases/derived and initializer 2018-07-17 21:13:56 -07:00
Fangrui Song
af54645e5e Fix spell for clang < 7 2018-07-16 09:49:37 -07:00
Fangrui Song
73ac788f9e Remove libclang 2018-07-16 09:34:48 -07:00
Fangrui Song
344f00fbb2 CrashRecoveryContext 2018-07-15 23:06:27 -07:00
Fangrui Song
8912b00381 Support BindingDecl and VarTemplate{,Partial}SpecializationDecl 2018-07-15 18:56:04 -07:00
Fangrui Song
814f054e6e Misc improvement to indexer
* Make CXXConstructor span one more column to left/right
* Use OrigD to collect Decl::Record members
* Better comment parsing
* Limit lines of initializers and macro definition to 3
* Attribute macro arg uses to spelling loc
* Remove FuncDef::declaring_type
2018-07-15 16:51:20 -07:00
Fangrui Song
dd05ad9f65 Diagnostics 2018-07-15 13:29:47 -07:00
Fangrui Song
eea1b92825 Enable clangDriver in project.cc
https://bugs.llvm.org/show_bug.cgi?id=37695 is not fixed. But since we have eliminated libclang for indexing and completion the bug no longer bothers us.
2018-07-15 01:22:02 -07:00
Fangrui Song
df72a9eb72 Simplify 2018-07-15 00:55:11 -07:00
Fangrui Song
5dcccea285 Use Clang C++ for completion and diagnostics 2018-07-15 00:15:31 -07:00
Fangrui Song
4612aa062b $ccls/publishSemanticHighlighting: support both line/character-style and position-style ranges 2018-07-14 14:03:51 -07:00
Fangrui Song
d604fc38dc Use Sema/CodeCompleteConsumer 2018-07-14 11:41:16 -07:00
Fangrui Song
39d4bbfe67 Use clangTooling 2018-07-14 00:58:33 -07:00
Fangrui Song
3737d4c60f Support uses from other files and improve references in macro replacement-list 2018-07-13 16:44:48 -07:00
Fangrui Song
0c50ee79f2 Cleanup 2018-07-12 12:42:02 -07:00
Fangrui Song
c04d0620c0 Add some ObjC kinds 2018-07-12 12:27:34 -07:00
Fangrui Song
7c1ff07dc9 Fix memberHierarchy 2018-07-08 23:31:40 -07:00
Fangrui Song
7d1d4b410b $ccls/publishSemanticHighlighting: use pair<int,int> in place of lsRange 2018-07-08 20:38:23 -07:00
Fangrui Song
c6553c79ab clangIndex 2018-07-08 20:38:16 -07:00
Fangrui Song
ed1b221fab Remove submodule doctest 2018-07-08 17:20:48 -07:00
Fangrui Song
eb8acf9cdb pipeline 2018-07-08 13:40:19 -07:00
Fangrui Song
cc65ea94ed Misc changes to clangIndex 2018-07-08 12:24:42 -07:00
Fangrui Song
df02c29a7d clangIndex 2018-07-08 00:34:31 -07:00
Fangrui Song
2196e17222 Clean up clang_tu 2018-07-07 15:43:49 -07:00
Fangrui Song
7dd0241a4c First draft: replace libclang indexer with clangIndex 2018-07-07 15:43:05 -07:00
Fangrui Song
f81454b9ec textDocument/references: add excludeRole 2018-07-04 19:16:56 -07:00
Fangrui Song
6a8837d612 diagnostics 2018-07-03 21:51:24 -07:00
Fangrui Song
0df5a2cd66 rename 2018-07-03 11:19:01 -07:00
Fangrui Song
8a9640a56b Add all to textDocument/documentSymbol 2018-07-01 10:19:37 -07:00
Fangrui Song
207e79ea98 Use ChangeStd{in,out}ToBinary 2018-07-01 10:19:35 -07:00
Fangrui Song
559a68a261 Display diagnostics from header files 2018-06-23 10:50:15 -07:00
Fangrui Song
c5dc759831 Put static const into IndexVar::def (a definition is not required unless odr-used) 2018-06-17 13:30:19 -07:00
Fangrui Song
6a1902aeb6 Fix .. in compdb path; better type alias 2018-06-17 12:45:16 -07:00
Fangrui Song
e5d8153d4b Internalize strings & remove diagnostics_publisher.cc 2018-06-08 10:39:38 -07:00
Fangrui Song
c8a81aeae3 Inject anonymous struct/union into parent scopes 2018-06-06 10:29:16 -07:00
Fangrui Song
134126629a Infer system include paths from CompilerInvocation 2018-06-04 16:33:03 -07:00
Fangrui Song
0decb01a0f Add Config->reparseForDependency
Specify 1 if for large projects you don't want to reparse dependents at load time when a common .h changes.
2018-06-02 00:57:18 -07:00
Fangrui Song
7b1ff448b9 Use clang::PrintingPolicy and remove type_printer 2018-06-01 17:47:03 -07:00
Fangrui Song
66580104ba Add Config->largeFileSize; pure virtual or defaulted methods are definitions; fix $ccls/callHierarchy 2018-06-01 16:06:21 -07:00
Fangrui Song
a36e548e03 Remove Timer and PerformanceImportFile 2018-05-31 23:52:51 -07:00
Fangrui Song
39a17a9fd7 Remove WithFileContent & lex_utils.{cc,h} 2018-05-31 21:07:59 -07:00
Fangrui Song
ec00f854a0 $ccls/vars: differentiate local/field/parameter 2018-05-31 19:51:58 -07:00
Fangrui Song
b35d3c8fa8 Remove $ccls/random; remove DB::symbols; decrease DB::entities grow rate 2018-05-31 12:55:13 -07:00