sammccall added inline comments.

================
Comment at: clangd/Protocol.h:390
+  /// Flattened from codeAction.codeActionLiteralSupport.
+  // FIXME: flatten other properties in this way.
+  bool codeActionLiteralSupport = false;
----------------
kadircet wrote:
> sammccall wrote:
> > kadircet wrote:
> > > What is the reason behind this one? Is it because clients must handle 
> > > unknown items on their own and fallback to a default one?
> > > 
> > > Since that default is client specific, behavior might change from client 
> > > to client. I agree that clients should be up-to-date with the specs and 
> > > handle all kinds of items but these might still create confusions during 
> > > the transition period.
> > > 
> > > For example, ycmd decided to fallback to None instead of Text when they 
> > > don't know about a symbolkind of a completion item, so users will get to 
> > > see "File" for the include insertions on both folders and files but when 
> > > they update to a newer clangd, they will start to see "File" for files 
> > > and "None" for directory elements. Which I believe might create 
> > > confusion, but we could still fallback to File for those elements(if we 
> > > handled them within clangd) and user experience would neither worsen or 
> > > improve.
> > > 
> > > (Currently ycmd's symbolkindcapabilities are actually up-to-date with 
> > > specs, so this issue wouldn't happen. Just wanted to make my point 
> > > clearer). 
> > Sorry, I don't really understand the question.
> > 
> > Are you talking about the default for `codeActionLiteralSupport`? The 
> > protocol says servers must send `Command`s unless the client indicates 
> > support for `CodeAction`s. There's no room for a different default here.
> > 
> > Or flattening of other properties? That will have no effect on logic, it 
> > just simplifies the code (see D53266).
> > 
> Ok, I thought we were also going to throw away the "valueset"s and just keep 
> whether the client has the capability(and therefore graceful handling) or not.
Ah, no. That might actually be a better complexity tradeoff, but I'm not 
proposing changing the existing behavior at the moment.

On the other hand, for CodeActions themselves, this patch does rely on the 
client handling arbitrary `CodeActionKind`s, it doesn't look at exactly which 
ones the client understands.


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D53213



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

Reply via email to