sammccall added inline comments.

================
Comment at: clang-tools-extra/clangd/Selection.cpp:247
       return SelectionTree::Unselected;
-    // getTopMacroCallerLoc() allows selection of constructs in macro args. 
e.g:
+    // getFileRange() allows selecting macro arg expansions
     //   #define LOOP_FOREVER(Body) for(;;) { Body }
----------------
the new wording seems less clear to me


================
Comment at: clang-tools-extra/clangd/SourceCode.cpp:447
   BeginNamespace, // namespace <ns> {.     Payload is resolved <ns>.
-  EndNamespace,   // } // namespace <ns>.  Payload is resolved *outer* 
namespace.
-  UsingDirective  // using namespace <ns>. Payload is unresolved <ns>.
----------------
It looks like your editor might be set up to format the whole file, rather than 
just changed lines (`git clang-format` will also do this).

Please avoid this in general as it messes up blame history.
No need to go back and revert everything though.


================
Comment at: clang-tools-extra/clangd/SourceCode.cpp:655
+// Returns the location of the end of the token present at a given location
+static SourceLocation getLocationAtTokenEnd(SourceLocation Loc,
+                                            const SourceManager &SM,
----------------
This is Lexer::getLocForEndOfToken(Loc, 0,  SM, LangOpts), I think


================
Comment at: clang-tools-extra/clangd/SourceCode.cpp:663
+// Finds the union of two ranges. If any of the ranges is a Token Range, it 
uses
+// the token ending.
+static CharSourceRange unionCharSourceRange(CharSourceRange R1,
----------------
Returns a half-open CharSourceRange.
(Because closed character CharSourceRanges are also a thing...)


================
Comment at: clang-tools-extra/clangd/SourceCode.cpp:683
+    return {{Loc, getLocationAtTokenEnd(Loc, SM, LangOpts)}, false};
+  CharSourceRange FileRange({Loc}, false);
+  do {
----------------
nit: do the conversion from the previous line here, and write the loop as a 
regular while loop?


================
Comment at: clang-tools-extra/clangd/SourceCode.h:204
 
+// Return the FileRange for a given range where the ends can be in different
+// files. Note that the end of the FileRange is the end of the last token.
----------------
This is closely related to `toHalfOpenFileRange` and should be moved up there.

Actually... is this just a less-buggy replacement for `toHalfOpenFileRange`? If 
so, we should give it that name. It'd be nice to add a few unit tests (and 
verify that they fail with the old version of the function).


================
Comment at: clang-tools-extra/clangd/SourceCode.h:205
+// Return the FileRange for a given range where the ends can be in different
+// files. Note that the end of the FileRange is the end of the last token.
+SourceRange getFileRange(SourceRange Range, const SourceManager &SM, const 
LangOptions &LangOpts);
----------------
"end of the last token" is confusing: does it point to the last char, or 
one-past-last?

The latter seems nicest and is easily described by the existing "half-open" name


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D64329/new/

https://reviews.llvm.org/D64329



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to