@@ -51,11 +51,12 @@ using namespace std;
51
51
class CustomCodeCompleteConsumer : public CodeCompleteConsumer {
52
52
CodeCompletionTUInfo TUInfo;
53
53
json output;
54
+ SourceManager &sm;
54
55
55
56
public:
56
57
57
- CustomCodeCompleteConsumer (const CodeCompleteOptions &opts) : CodeCompleteConsumer(opts, false ),
58
- TUInfo (std::make_shared<GlobalCodeCompletionAllocator>()), output(json::array()) {
58
+ CustomCodeCompleteConsumer (const CodeCompleteOptions &opts, SourceManager &sm ) : CodeCompleteConsumer(opts, false ),
59
+ TUInfo (std::make_shared<GlobalCodeCompletionAllocator>()), output(json::array()), sm(sm) {
59
60
}
60
61
61
62
void ProcessCodeCompleteResults (Sema &s, CodeCompletionContext ctx, CodeCompletionResult *res, unsigned n) override {
@@ -64,7 +65,7 @@ class CustomCodeCompleteConsumer : public CodeCompleteConsumer {
64
65
raw_string_ostream OS (ccStr);
65
66
CodeCompletionString *ccs = res[i].CreateCodeCompletionString (s, ctx, getAllocator (), TUInfo, includeBriefComments ());
66
67
// cout << encode(res[i], ccs).dump(2) << "\n";
67
- output.push_back (encode (res[i], ccs));
68
+ output.push_back (encode (res[i], ccs, sm ));
68
69
}
69
70
70
71
}
@@ -139,12 +140,15 @@ void DoCodeCompletion(const string &filename, const string &code, int line, int
139
140
lOpts.Bool = true ;
140
141
lOpts.GNUMode = true ;
141
142
143
+ ci.createFileManager ();
144
+ ci.createSourceManager (ci.getFileManager ());
145
+
142
146
CodeCompleteOptions ccOpts;
143
147
ccOpts.IncludeMacros = 1 ;
144
148
ccOpts.IncludeCodePatterns = 1 ;
145
149
ccOpts.IncludeGlobals = 1 ;
146
150
ccOpts.IncludeBriefComments = 1 ;
147
- CustomCodeCompleteConsumer *ccConsumer = new CustomCodeCompleteConsumer (ccOpts);
151
+ CustomCodeCompleteConsumer *ccConsumer = new CustomCodeCompleteConsumer (ccOpts, ci. getSourceManager () );
148
152
ci.setCodeCompletionConsumer (ccConsumer);
149
153
150
154
FrontendOptions& fOpts = ci.getFrontendOpts ();
0 commit comments