Fangrui Song
52e0289245
Handle file deletion and register workspace/didChangeWatchedFiles
...
* In the "initialized" callback, send client/registerCapability with DidChangeWatchedFilesRegistrationOptions
* In workspace/didChangeWatchedFiles callback, call pipeline::Index
* In pipeline::Index, add a `deleted` status
2019-11-09 20:09:13 -08:00
Fangrui Song
49ae9e8912
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-11-09 20:09:13 -08:00
Fangrui Song
c941ca1bcd
query: fix UpdateUses when a new entity is seen; simplify {DeclRef,Use,Usr}Update
...
Thanks to Leszek Swirski
2019-11-09 20:09:13 -08:00
Fangrui Song
a47fb42e30
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-11-09 20:09:13 -08:00
Fangrui Song
9ad2450009
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-11-09 20:09:13 -08:00
Fangrui Song
880c515d64
Merge query.hh and query_util.hh
2019-11-09 20:09:13 -08:00
Fangrui Song
0d4f4b68c0
Remove ls
prefix from many LSP interfaces
...
Rename SymbolKind to Kind & lsSymbolKind to SymbolKind
Use textDocumentSync: TextDocumentSyncOptions
2019-11-09 20:09:13 -08:00
Fangrui Song
c8e57ee7b3
textDocument/references workspace/symbol: add folders
...
For textDocument/reference, base/excludeRole/role has been lifted from params.context.* to params.*
2019-11-09 20:09:13 -08:00
Fangrui Song
bbce333042
*.h -> *.hh
2019-11-09 20:09:13 -08:00
Fangrui Song
3cd0ee2fc7
Refactor message handler and namespace ccls
2019-11-09 20:09:11 -08:00
Fangrui Song
5fbe4eac83
Add ExtentRef; merge symbol2refcnt and outline2refcnt
...
Fix hierarchical document symbol for namespaces when there are multiple declarations.
2019-11-09 20:03:28 -08:00
Fangrui Song
2864f2c647
Use DeclRef spell to represent Use spell + Use extent
2019-11-09 20:03:28 -08:00
Fangrui Song
08b09bc1da
Redesign SymbolRef, Ref, Use
...
Remove lsLocationEx
2019-11-09 20:03:28 -08:00
Fangrui Song
97e773081b
intern strings in dependencies and IndexInclude::resolved_path
2019-11-09 19:58:32 -08:00
Fangrui Song
f939b6cc44
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.
2019-11-09 19:58:32 -08:00
Fangrui Song
fa8b032301
diagnostics; use custom DenseMapInfo
2019-11-09 19:58:32 -08:00
Fangrui Song
1b367eeb4b
Misc
2019-11-09 19:58:32 -08:00
Fangrui Song
017a91c30e
Add DeclUse as element type of declarations
2019-11-09 19:58:32 -08:00
Fangrui Song
69f749ac9f
Improve hover and documentSymbol
2019-11-09 19:58:32 -08:00
Fangrui Song
4f67bd03d5
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.
2019-10-24 01:13:24 -07:00
Fangrui Song
a8bb605d4a
Fix unaligned load/store; add index.multiVersion prototype, rename index.onParse to index.OnOpen
...
Don't call getFieldOffset() on RD->isInvalidDecl()
2019-10-24 01:13:24 -07:00
Fangrui Song
27a5b24b59
Add license notice
2019-10-24 01:01:21 -07:00
Fangrui Song
39787d2851
clang-format
...
DEF CON 26 CTF
2019-10-24 01:01:21 -07:00
Fangrui Song
fc6e2af66f
Uniquify textDocument/references
...
There can be duplicates with template instantiation.
2019-10-24 01:01:21 -07:00
Fangrui Song
c50f0c5900
Add Query*::file_id to allow textDocument/hover on declarations
...
Also change StorageClass storage to uint8_t
2019-10-24 01:01:20 -07:00
Fangrui Song
b759798e5d
Support uses from other files and improve references in macro replacement-list
2019-10-24 01:01:20 -07:00
Fangrui Song
32dad17e81
Remove submodule doctest
2019-10-24 01:01:20 -07:00
Fangrui Song
96e0f0fafa
clangIndex
2019-10-24 00:55:39 -07:00
Fangrui Song
103aa711d3
First draft: replace libclang indexer with clangIndex
2019-10-24 00:53:16 -07:00
Fangrui Song
1830103ec6
Internalize strings & remove diagnostics_publisher.cc
2019-10-24 00:17:28 -07:00
Fangrui Song
f0559bba54
Remove Timer and PerformanceImportFile
2019-10-24 00:17:28 -07:00
Fangrui Song
34dc1e93e9
Remove WithFileContent & lex_utils.{cc,h}
2019-10-24 00:17:28 -07:00
Fangrui Song
bb08fdfa02
Remove $ccls/random; remove DB::symbols; decrease DB::entities grow rate
2019-10-24 00:17:25 -07:00
Fangrui Song
cf0d16fa0c
Replace loguru with a custom logger
2019-10-23 21:56:51 -07:00
Fangrui Song
c279090ac5
cmake: link against zlib; use StringMap
2019-10-23 21:56:51 -07:00
Fangrui Song
36729818c3
experimental/filesystem -> LLVM/Support/FileSystem.h; sparsepp -> DenseMap
2019-10-23 21:56:51 -07:00
Fangrui Song
b349983e13
cmake: make FreeBSD 11,12 build
2019-10-23 21:56:51 -07:00
Fangrui Song
49e042e070
Redesign import_pipeline.cc and mitigate race (duplicate Query*::uses for initial indexing)
2019-10-23 21:56:51 -07:00
Fangrui Song
aba672203f
README
2019-10-23 21:56:51 -07:00
Fangrui Song
8e703af84e
.
2019-10-23 21:56:51 -07:00
Fangrui Song
eb057c7acd
Use usr as primary key and remove id; simplify import pipeline
...
Remove on_id_map, IndexMergeIndexUpdates
2019-10-23 21:56:51 -07:00
Fangrui Song
73bd987b1a
Add caseSensitivity to config->{completion,workspaceSymbol}
2019-10-23 21:56:51 -07:00
Fangrui Song
662933e64c
Simplify indexer and query
2019-10-23 21:56:51 -07:00
Fangrui Song
5fb88749a9
Simplify Position & Range; prettify Maybe; remove file_contents.{h,cc}
2019-10-23 21:56:50 -07:00
Fangrui Song
a52d56a453
Add qual_name_offset to Index* structs; improve workspace/symbol and documentSymbol
2019-10-23 21:56:50 -07:00
Fangrui Song
eb7d0951ce
.
2019-10-23 21:56:50 -07:00
Fangrui Song
e1398ff319
.
2019-10-23 21:56:50 -07:00
Fangrui Song
b839389f77
Resurrection of ccls
2019-10-23 21:56:50 -07:00
Fangrui Song
09dd20226f
Rename FuncDefDefinitionData::locals to vars, remove constants from EnumDecl's vars
2018-02-26 17:53:37 -08:00
Fangrui Song
95797be730
Rename *DefDefinitionData::{base,parents} to bases and add inheritanceHierarchy{Initial,Expand}
2018-02-25 18:52:30 -08:00