Commit Graph

77 Commits

Author SHA1 Message Date
Dan Čermák
990925d806 Only add include directories for LLVM, clang & rapidjson if they are not in CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
/usr/include/c++/9 comes before /usr/include in `{clang,gcc} -v -fsyntax-only -xc++ /dev/null`.

    target_include_directories(ccls SYSTEM PRIVATE ${RapidJSON_INCLUDE_DIRS})

If ${RapidJSON_INCLUDE_DIRS} resolves to /usr/include, /usr/include will
be shuffled before /usr/include/c++/9 and will cause `#include_next <stdlib.h>`
issues (see https://github.com/MaskRay/ccls/pull/417).

Check if the include directories are already in CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES.
2019-06-30 23:45:57 -07:00
Paul Smith
2c11b0dc47 Enhance the output of --version with Git describe results. (#342) 2019-05-13 00:26:55 -07:00
Fangrui Song
977e14c862 cmake: use {LLVM,Clang}Config.cmake
Combined Daan De Meyer's #227 with other simplification

* USE_SHARED_LLVM is deleted in favor of LLVM_LINK_LLVM_DYLIB
* LLVM_ENABLE_RTTI is deleted as it is provided by LLVMConfig.cmake
* Only direct Clang/LLVM dependencies are required in target_link_libraries
* Restrict -DCLANG_RESOURCE_DIRECTORY= to src/utils.cc
2019-05-13 00:26:55 -07:00
Fangrui Song
e73f5791bf cmake: add option to use system rapidjson if exists 2019-05-13 00:26:55 -07:00
Fangrui Song
9bc762961a cmake: delete SYSTEM_CLANG and auto-download mechanism 2019-03-17 18:50:25 -07:00
Fangrui Song
0dbf6c89f1 Drop support for clang 6 2019-03-17 18:50:25 -07:00
Fangrui Song
37a9ad3f81 cmake_minimum_required 3.8; clean up 2019-01-12 00:40:49 +08:00
Fangrui Song
ab48663ca0 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-01-12 00:40:49 +08:00
Fangrui Song
5a5165faa8 Merge query.hh and query_util.hh 2019-01-12 00:40:49 +08:00
Fangrui Song
5a723b489a Refactor Matcher to use pimpl and merge match.hh into utils.hh 2019-01-12 00:40:49 +08:00
Dso Tsin
77bec58a62 Fix VS2017 build issues and add Appveyor CI script (#118) 2019-01-09 15:19:23 +08:00
Fangrui Song
ea1271a84e Refactor message handler and namespace ccls 2019-01-09 15:19:23 +08:00
Fangrui Song
6e19a5964e Implement textDocument/documentLink 2019-01-09 15:19:23 +08:00
Fangrui Song
1d67a40ce8 Implement textDocument/foldingRange 2019-01-09 15:19:23 +08:00
Fangrui Song
fc1db06538 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
2019-01-09 15:19:17 +08:00
Fangrui Song
79352b451c 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
2019-01-09 15:17:19 +08:00
Fangrui Song
5a1ed4c943 Support workspace folders 2019-01-09 15:17:19 +08:00
Fangrui Song
da07cb2da4 Add $ccls/info 2018-10-01 16:56:53 -07:00
Fangrui Song
a127ca9b02 Support textDocument/{formatting,onTypeFormatting,rangeFormatting} 2018-09-28 10:18:04 -07:00
Fangrui Song
05109b6fa4 Merge textDocument_did{Change,Close,Open,Save}.cc 2018-09-27 22:16:42 -07:00
Fangrui Song
8f40c0c244 Remove clang_utils.* 2018-09-23 20:34:40 -07:00
Fangrui Song
4d76108d6b Delete file_consumer.* 2018-09-20 19:48:20 -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
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
Fangrui Song
8b3ebf234b Remove $ccls/base and clean up; deduplicate codeLens 2018-09-07 15:00:15 -07:00
Fangrui Song
0a51424c5c Add $ccls/navigate and improve textDocument/definition 2018-09-04 01:04:19 -07:00
Fangrui Song
48c92c05a1 Add LLVM_ENABLE_RTTI (default: OFF) to allow linking against Arch Linux extra/{llvm,clang} (-DLLVM_ENABLE_RTTI=ON) 2018-08-23 15:21:46 -07:00
Riatre Foo
344ade0420 Fix compile on Windows + MSYS2-MinGW64 (#46)
1. libClangDriver.a shipped by MSYS2 needs -lversion which is not
   included in CMAKE_CXX_STANDARD_LIBRARIES by default.
2. Use string literal for DEFAULT_RESOURCE_DIRECTORY to support
   backslashes in path.
2018-08-08 00:25:46 -07:00
Fangrui Song
b4aa0705a1 cmake: for -DSYSTEM_CLANG=off, 6.0.0 -> 6.0.1 2018-07-29 18:02:37 -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
Chao Shen
03aa024fe6 Misc. 2018-07-24 20:48:46 -07:00
Fangrui Song
0780e80f8a Fix FreeBSD build with -DUSE_SHARED_LLVM=off 2018-07-14 09:19:27 -07:00
Fangrui Song
0a304096df cmake: remove -lc++experimental -ldl -lexecinfo 2018-07-08 20:38:23 -07:00
Fangrui Song
ed1b221fab Remove submodule doctest 2018-07-08 17:20:48 -07:00
Fangrui Song
0df5a2cd66 rename 2018-07-03 11:19:01 -07:00
Fangrui Song
e5d8153d4b Internalize strings & remove diagnostics_publisher.cc 2018-06-08 10:39:38 -07:00
Fangrui Song
134126629a Infer system include paths from CompilerInvocation 2018-06-04 16:33:03 -07:00
Fangrui Song
7b1ff448b9 Use clang::PrintingPolicy and remove type_printer 2018-06-01 17:47:03 -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
b35d3c8fa8 Remove $ccls/random; remove DB::symbols; decrease DB::entities grow rate 2018-05-31 12:55:13 -07:00
Fangrui Song
c9f0b65062 Simplify pipeline 2018-05-28 16:13:44 -07:00
Fangrui Song
8fabe3d1ae Replace loguru with a custom logger 2018-05-27 15:14:33 -07:00
Fangrui Song
576959e460 Congratulations to Tea Deliverers 2018-05-14 09:47:21 -07:00
Fangrui Song
f145c4422f experimental/filesystem -> LLVM/Support/FileSystem.h; sparsepp -> DenseMap 2018-05-13 15:24:04 -07:00
Fangrui Song
d3a36a4ae6 Use llvm::cl and simplify main.cc import_pipeline.cc 2018-05-13 12:08:33 -07:00
Fangrui Song
224ba97f27 Use clang+llvm C++ in cmake; parse args with clang driver 2018-05-13 01:13:14 -07:00
Fangrui Song
99e7c56956 cmake: make FreeBSD 11,12 build 2018-05-12 11:45:21 -07:00
Fangrui Song
bac704f17b Backport and cleanup 2018-05-09 22:55:40 -07:00
scturtle
04a848e065 Add CLANG_USE_BUNDLED_LIBC++ to cmake 2018-05-07 23:56:53 -07:00