summaryrefslogtreecommitdiff
path: root/dev-util/ccls/files/ccls-0.20210330-llvm14.patch
blob: 79bf0f124422bd901a93de7199e3bd5999be6f70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
https://github.com/MaskRay/ccls/commit/3ce756e39ae48204f016a58684652ad62b4dd9f9.patch
https://github.com/MaskRay/ccls/commit/8422f0a522b6fbcb4412a8ec73d80b4acbc7e00f.patch
https://github.com/MaskRay/ccls/commit/790daca4b2d9d5873623fee86283cd61212df674.patch

From: Fangrui Song <i@maskray.me>
Date: Thu, 23 Sep 2021 13:36:01 -0700
Subject: [PATCH] Adaopt llvmorg-14-init-3863-g601102d282d5: refactor
 clang::isIdentifierBody

---
 src/clang_tu.hh      | 4 ++++
 src/indexer.cc       | 6 +++---
 src/working_files.cc | 9 ++++++---
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/clang_tu.hh b/src/clang_tu.hh
index b37950926..7dbfc4a88 100644
--- a/src/clang_tu.hh
+++ b/src/clang_tu.hh
@@ -17,6 +17,10 @@ namespace vfs = clang::vfs;
 }
 #endif
 
+#if LLVM_VERSION_MAJOR < 14 // llvmorg-14-init-3863-g601102d282d5
+#define isAsciiIdentifierContinue isIdentifierBody
+#endif
+
 namespace ccls {
 std::string pathFromFileEntry(const clang::FileEntry &file);
 
diff --git a/src/indexer.cc b/src/indexer.cc
index 89d78959e..644c0ccbb 100644
--- a/src/indexer.cc
+++ b/src/indexer.cc
@@ -527,8 +527,8 @@ class IndexDataConsumer : public index::IndexDataConsumer {
     auto i = name.find(short_name);
     if (short_name.size())
       while (i != std::string::npos &&
-             ((i && isIdentifierBody(name[i - 1])) ||
-              isIdentifierBody(name[i + short_name.size()])))
+             ((i && isAsciiIdentifierContinue(name[i - 1])) ||
+              isAsciiIdentifierContinue(name[i + short_name.size()])))
         i = name.find(short_name, i + short_name.size());
     if (i == std::string::npos) {
       // e.g. operator type-parameter-1
@@ -552,7 +552,7 @@ class IndexDataConsumer : public index::IndexDataConsumer {
         paren++;
       else if (name[i - 1] == '(')
         paren--;
-      else if (!(paren > 0 || isIdentifierBody(name[i - 1]) ||
+      else if (!(paren > 0 || isAsciiIdentifierContinue(name[i - 1]) ||
                  name[i - 1] == ':'))
         break;
     }
diff --git a/src/working_files.cc b/src/working_files.cc
index f80f21053..4904388be 100644
--- a/src/working_files.cc
+++ b/src/working_files.cc
@@ -342,7 +342,10 @@ std::optional<int> WorkingFile::getIndexPosFromBufferPos(int line, int *column,
 Position WorkingFile::getCompletionPosition(Position pos, std::string *filter) const {
   int start = getOffsetForPosition(pos, buffer_content);
   int i = start;
-  while (i > 0 && isIdentifierBody(buffer_content[i - 1]))
+#if LLVM_VERSION_MAJOR < 14 // llvmorg-14-init-3863-g601102d282d5
+#define isAsciiIdentifierContinue isIdentifierBody
+#endif
+  while (i > 0 && isAsciiIdentifierContinue(buffer_content[i - 1]))
     --i;
   *filter = buffer_content.substr(i, start - i);
   return getPositionForOffset(buffer_content, i);
@@ -455,10 +458,10 @@ std::string_view lexIdentifierAroundPos(Position position,
     c = content[start - 1];
     if (c == ':' && start > 1 && content[start - 2] == ':')
       start--;
-    else if (!isIdentifierBody(c))
+    else if (!isAsciiIdentifierContinue(c))
       break;
   }
-  for (; end < content.size() && isIdentifierBody(content[end]); end++)
+  for (; end < content.size() && isAsciiIdentifierContinue(content[end]); end++)
     ;
 
   return content.substr(start, end - start);


From: Fangrui Song <i@maskray.me>
Date: Sun, 9 Jan 2022 12:25:07 -0800
Subject: [PATCH] Adapt llvmorg-14-init-13600-g92417eaf3329: braced constructor
 call

---
 src/messages/textDocument_signatureHelp.cc | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/messages/textDocument_signatureHelp.cc b/src/messages/textDocument_signatureHelp.cc
index 8e8a7277..4192272a 100644
--- a/src/messages/textDocument_signatureHelp.cc
+++ b/src/messages/textDocument_signatureHelp.cc
@@ -80,6 +80,10 @@ class SignatureHelpConsumer : public CodeCompleteConsumer {
 #if LLVM_VERSION_MAJOR >= 8
                                  ,
                                  SourceLocation openParLoc
+#endif
+#if LLVM_VERSION_MAJOR >= 14
+                                 ,
+                                 bool braced
 #endif
                                  ) override {
     ls_sighelp.activeParameter = (int)currentArg;
@@ -93,7 +97,11 @@ class SignatureHelpConsumer : public CodeCompleteConsumer {
           cand = OverloadCandidate(pattern);
 
       const auto *ccs =
+#if LLVM_VERSION_MAJOR >= 14
+          cand.CreateSignatureString(currentArg, s, *alloc, cCTUInfo, true, braced);
+#else
           cand.CreateSignatureString(currentArg, s, *alloc, cCTUInfo, true);
+#endif
 
       const char *ret_type = nullptr;
       SignatureInformation &ls_sig = ls_sighelp.signatures.emplace_back();


From: Fangrui Song <i@maskray.me>
Date: Sun, 30 Jan 2022 11:17:32 -0800
Subject: [PATCH] query: include llvm/ADT/STLExtras.h

The header is no longer transitively included in 2022-01.
--- a/src/query.cc
+++ b/src/query.cc
@@ -9,6 +9,8 @@
 
 #include <rapidjson/document.h>
 
+#include <llvm/ADT/STLExtras.h>
+
 #include <assert.h>
 #include <functional>
 #include <limits.h>