[PATCH] D50443: [clang] Store code completion token range in preprocessor.
This revision was automatically updated to reflect the committed changes. Closed by commit rL339540: [clang] Store code completion token range in preprocessor. (authored by kadircet, committed by ). Herald added a subscriber: llvm-commits. Repository: rL LLVM https://reviews.llvm.org/D50443 Files: cfe/trunk/include/clang/Lex/Preprocessor.h cfe/trunk/lib/Lex/Preprocessor.cpp Index: cfe/trunk/lib/Lex/Preprocessor.cpp === --- cfe/trunk/lib/Lex/Preprocessor.cpp +++ cfe/trunk/lib/Lex/Preprocessor.cpp @@ -868,6 +868,7 @@ if (Result.is(tok::code_completion) && Result.getIdentifierInfo()) { // Remember the identifier before code completion token. setCodeCompletionIdentifierInfo(Result.getIdentifierInfo()); +setCodeCompletionTokenRange(Result.getLocation(), Result.getEndLoc()); // Set IdenfitierInfo to null to avoid confusing code that handles both // identifiers and completion tokens. Result.setIdentifierInfo(nullptr); Index: cfe/trunk/include/clang/Lex/Preprocessor.h === --- cfe/trunk/include/clang/Lex/Preprocessor.h +++ cfe/trunk/include/clang/Lex/Preprocessor.h @@ -310,6 +310,9 @@ /// on the stem that is to be code completed. IdentifierInfo *CodeCompletionII = nullptr; + /// Range for the code completion token. + SourceRange CodeCompletionTokenRange; + /// The directory that the main file should be considered to occupy, /// if it does not correspond to a real file (as happens when building a /// module). @@ -1131,6 +1134,16 @@ CodeCompletionII = Filter; } + /// Set the code completion token range for detecting replacement range later + /// on. + void setCodeCompletionTokenRange(const SourceLocation Start, + const SourceLocation End) { +CodeCompletionTokenRange = {Start, End}; + } + SourceRange getCodeCompletionTokenRange() const { +return CodeCompletionTokenRange; + } + /// Get the code completion token for filtering purposes. StringRef getCodeCompletionFilter() { if (CodeCompletionII) Index: cfe/trunk/lib/Lex/Preprocessor.cpp === --- cfe/trunk/lib/Lex/Preprocessor.cpp +++ cfe/trunk/lib/Lex/Preprocessor.cpp @@ -868,6 +868,7 @@ if (Result.is(tok::code_completion) && Result.getIdentifierInfo()) { // Remember the identifier before code completion token. setCodeCompletionIdentifierInfo(Result.getIdentifierInfo()); +setCodeCompletionTokenRange(Result.getLocation(), Result.getEndLoc()); // Set IdenfitierInfo to null to avoid confusing code that handles both // identifiers and completion tokens. Result.setIdentifierInfo(nullptr); Index: cfe/trunk/include/clang/Lex/Preprocessor.h === --- cfe/trunk/include/clang/Lex/Preprocessor.h +++ cfe/trunk/include/clang/Lex/Preprocessor.h @@ -310,6 +310,9 @@ /// on the stem that is to be code completed. IdentifierInfo *CodeCompletionII = nullptr; + /// Range for the code completion token. + SourceRange CodeCompletionTokenRange; + /// The directory that the main file should be considered to occupy, /// if it does not correspond to a real file (as happens when building a /// module). @@ -1131,6 +1134,16 @@ CodeCompletionII = Filter; } + /// Set the code completion token range for detecting replacement range later + /// on. + void setCodeCompletionTokenRange(const SourceLocation Start, + const SourceLocation End) { +CodeCompletionTokenRange = {Start, End}; + } + SourceRange getCodeCompletionTokenRange() const { +return CodeCompletionTokenRange; + } + /// Get the code completion token for filtering purposes. StringRef getCodeCompletionFilter() { if (CodeCompletionII) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D50443: [clang] Store code completion token range in preprocessor.
kadircet updated this revision to Diff 160299. kadircet added a comment. - Resolve discussions. - Fix typo. Repository: rC Clang https://reviews.llvm.org/D50443 Files: include/clang/Lex/Preprocessor.h lib/Lex/Preprocessor.cpp Index: lib/Lex/Preprocessor.cpp === --- lib/Lex/Preprocessor.cpp +++ lib/Lex/Preprocessor.cpp @@ -868,6 +868,7 @@ if (Result.is(tok::code_completion) && Result.getIdentifierInfo()) { // Remember the identifier before code completion token. setCodeCompletionIdentifierInfo(Result.getIdentifierInfo()); +setCodeCompletionTokenRange(Result.getLocation(), Result.getEndLoc()); // Set IdenfitierInfo to null to avoid confusing code that handles both // identifiers and completion tokens. Result.setIdentifierInfo(nullptr); Index: include/clang/Lex/Preprocessor.h === --- include/clang/Lex/Preprocessor.h +++ include/clang/Lex/Preprocessor.h @@ -310,6 +310,9 @@ /// on the stem that is to be code completed. IdentifierInfo *CodeCompletionII = nullptr; + /// Range for the code completion token. + SourceRange CodeCompletionTokenRange; + /// The directory that the main file should be considered to occupy, /// if it does not correspond to a real file (as happens when building a /// module). @@ -1131,6 +1134,16 @@ CodeCompletionII = Filter; } + /// Set the code completion token range for detecting replacement range later + /// on. + void setCodeCompletionTokenRange(const SourceLocation Start, + const SourceLocation End) { +CodeCompletionTokenRange = {Start, End}; + } + SourceRange getCodeCompletionTokenRange() const { +return CodeCompletionTokenRange; + } + /// Get the code completion token for filtering purposes. StringRef getCodeCompletionFilter() { if (CodeCompletionII) Index: lib/Lex/Preprocessor.cpp === --- lib/Lex/Preprocessor.cpp +++ lib/Lex/Preprocessor.cpp @@ -868,6 +868,7 @@ if (Result.is(tok::code_completion) && Result.getIdentifierInfo()) { // Remember the identifier before code completion token. setCodeCompletionIdentifierInfo(Result.getIdentifierInfo()); +setCodeCompletionTokenRange(Result.getLocation(), Result.getEndLoc()); // Set IdenfitierInfo to null to avoid confusing code that handles both // identifiers and completion tokens. Result.setIdentifierInfo(nullptr); Index: include/clang/Lex/Preprocessor.h === --- include/clang/Lex/Preprocessor.h +++ include/clang/Lex/Preprocessor.h @@ -310,6 +310,9 @@ /// on the stem that is to be code completed. IdentifierInfo *CodeCompletionII = nullptr; + /// Range for the code completion token. + SourceRange CodeCompletionTokenRange; + /// The directory that the main file should be considered to occupy, /// if it does not correspond to a real file (as happens when building a /// module). @@ -1131,6 +1134,16 @@ CodeCompletionII = Filter; } + /// Set the code completion token range for detecting replacement range later + /// on. + void setCodeCompletionTokenRange(const SourceLocation Start, + const SourceLocation End) { +CodeCompletionTokenRange = {Start, End}; + } + SourceRange getCodeCompletionTokenRange() const { +return CodeCompletionTokenRange; + } + /// Get the code completion token for filtering purposes. StringRef getCodeCompletionFilter() { if (CodeCompletionII) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D50443: [clang] Store code completion token range in preprocessor.
ilya-biryukov added a comment. NIT: maybe also note the number of the clangd revision in this change's description Repository: rC Clang https://reviews.llvm.org/D50443 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D50443: [clang] Store code completion token range in preprocessor.
ilya-biryukov accepted this revision. ilya-biryukov added a comment. This revision is now accepted and ready to land. LGTM, but let's land together with a dependent revision to hove some code that actually tests it. Comment at: include/clang/Lex/Preprocessor.h:313 + /// Range for the code completion taken. + SourceRange CodeCompletionTokenRange; NIT: s/taken/token Repository: rC Clang https://reviews.llvm.org/D50443 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D50443: [clang] Store code completion token range in preprocessor.
kadircet updated this revision to Diff 159703. kadircet marked an inline comment as done. kadircet added a comment. - Resolve discussions. Repository: rC Clang https://reviews.llvm.org/D50443 Files: include/clang/Lex/Preprocessor.h lib/Lex/Preprocessor.cpp Index: lib/Lex/Preprocessor.cpp === --- lib/Lex/Preprocessor.cpp +++ lib/Lex/Preprocessor.cpp @@ -868,6 +868,7 @@ if (Result.is(tok::code_completion) && Result.getIdentifierInfo()) { // Remember the identifier before code completion token. setCodeCompletionIdentifierInfo(Result.getIdentifierInfo()); +setCodeCompletionTokenRange(Result.getLocation(), Result.getEndLoc()); // Set IdenfitierInfo to null to avoid confusing code that handles both // identifiers and completion tokens. Result.setIdentifierInfo(nullptr); Index: include/clang/Lex/Preprocessor.h === --- include/clang/Lex/Preprocessor.h +++ include/clang/Lex/Preprocessor.h @@ -310,6 +310,9 @@ /// on the stem that is to be code completed. IdentifierInfo *CodeCompletionII = nullptr; + /// Range for the code completion taken. + SourceRange CodeCompletionTokenRange; + /// The directory that the main file should be considered to occupy, /// if it does not correspond to a real file (as happens when building a /// module). @@ -1131,6 +1134,16 @@ CodeCompletionII = Filter; } + /// Set the code completion token range for detecting replacement range later + /// on. + void setCodeCompletionTokenRange(const SourceLocation Start, + const SourceLocation End) { +CodeCompletionTokenRange = {Start, End}; + } + SourceRange getCodeCompletionTokenRange() const { +return CodeCompletionTokenRange; + } + /// Get the code completion token for filtering purposes. StringRef getCodeCompletionFilter() { if (CodeCompletionII) Index: lib/Lex/Preprocessor.cpp === --- lib/Lex/Preprocessor.cpp +++ lib/Lex/Preprocessor.cpp @@ -868,6 +868,7 @@ if (Result.is(tok::code_completion) && Result.getIdentifierInfo()) { // Remember the identifier before code completion token. setCodeCompletionIdentifierInfo(Result.getIdentifierInfo()); +setCodeCompletionTokenRange(Result.getLocation(), Result.getEndLoc()); // Set IdenfitierInfo to null to avoid confusing code that handles both // identifiers and completion tokens. Result.setIdentifierInfo(nullptr); Index: include/clang/Lex/Preprocessor.h === --- include/clang/Lex/Preprocessor.h +++ include/clang/Lex/Preprocessor.h @@ -310,6 +310,9 @@ /// on the stem that is to be code completed. IdentifierInfo *CodeCompletionII = nullptr; + /// Range for the code completion taken. + SourceRange CodeCompletionTokenRange; + /// The directory that the main file should be considered to occupy, /// if it does not correspond to a real file (as happens when building a /// module). @@ -1131,6 +1134,16 @@ CodeCompletionII = Filter; } + /// Set the code completion token range for detecting replacement range later + /// on. + void setCodeCompletionTokenRange(const SourceLocation Start, + const SourceLocation End) { +CodeCompletionTokenRange = {Start, End}; + } + SourceRange getCodeCompletionTokenRange() const { +return CodeCompletionTokenRange; + } + /// Get the code completion token for filtering purposes. StringRef getCodeCompletionFilter() { if (CodeCompletionII) ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits