dgoldman marked 5 inline comments as done.
dgoldman added inline comments.

================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:433
+scopeModifier(const NamedDecl *D, const HighlightingsBuilder &HB) {
+  if (!D)
+    return llvm::None;
----------------
kadircet wrote:
> why the null check now?
removed and check for it when visit an obj method expr


================
Comment at: clang-tools-extra/clangd/SemanticHighlighting.cpp:436
+  if (HB.inDefaultLibrary(D->getLocation()))
+    return HighlightingModifier::DefaultLibrary;
   const DeclContext *DC = D->getDeclContext();
----------------
sammccall wrote:
> dgoldman wrote:
> > sammccall wrote:
> > > kadircet wrote:
> > > > I don't use semantic highlighting enough to judge whether it is more 
> > > > useful to say `DefaultLibrary` than `{Class,Function}Scope`. (i.e. 
> > > > having the check here vs at the end of the function as a fallback). Can 
> > > > you provide some rationale about the decision (probably as comments in 
> > > > code)?
> > > > 
> > > > By looking at the testcase, I suppose you are trying to indicate 
> > > > "overriden"/"extended" attribute of a symbol, which makes sense but 
> > > > would be nice to know if there's more. I am just worried that this is 
> > > > very obj-c specific and won't really generalize to c/c++. As most of 
> > > > the system headers only provide platform specific structs (e.g. posix) 
> > > > and they are almost never extended. So it might be confusing for user 
> > > > to see different colors on some memberexprs.
> > > I think default-library isn't a scope modifier at all, it should be 
> > > independent.
> > > 
> > > e.g. std::string is defaultlLibrary | globalScope, while 
> > > std::string::push_back() is defaultLibrary | classScope.
> > I can break it up if you'd like - just let me know what you had in mind. I 
> > can change the scopeModifier function's name and then have it return a list 
> > of modifiers or I can just add a new function which all existing callers of 
> > scopeModifier will also need to call.
> > 
> > And what we're really trying to do here is color the system/SDK symbols 
> > differently - this is definitely useful for iOS dev since Apple has a very 
> > large SDK, but if it's not useful for C++ maybe we could just make this 
> > configurable?
> > just let me know what you had in mind
> 
> I think this should follow `isStatic()` etc: just a boolean function that 
> gets called in the minimum number of places needed.
> 
> scopeModifier is slightly different pattern because there are a bunch of 
> mutually-exclusive modifiers. defaultLibrary is (mostly) independent of other 
> modifiers.
> 
> > if it's not useful for C++ maybe we could just make this configurable
> 
> No need really - sending more modifiers is cheap (one string at startup and 
> one bit in an integer we're sending anyway).
> It's up to clients to style the ones they care about, and at least in VSCode 
> this can be customized per-lang I think. Important thing is that they don't 
> interact with other modifiers.
Swapped over, currently don't check on deduced types but we could add our 
isDefaultLibrary check there as well


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101554

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

Reply via email to