[clangd-dev] Syntax highlighting of keywords

Nathan Ridge via clangd-dev clangd-dev at lists.llvm.org
Fri Oct 25 08:36:09 PDT 2019


I guess it depends how much one values accuracy :) In Eclipse, for example, we decided we did not want to keyword-highlight "override" as "final" if they occur as identifiers, even if that's rare, so we added them to the semantic coloring engine rather than the lexical one. In the LSP model, that would be a server-side highlighting.

________________________________________
From: Ilya Biryukov <ibiryukov at google.com>
Sent: October 25, 2019 2:31 PM
To: Nathan Ridge
Cc: Haojian Wu; via clangd-dev
Subject: Re: [clangd-dev] Syntax highlighting of keywords

They're rare as identifiers, though, so I don't see why editors wouldn't just always highlight them as keywords.

On Fri, Oct 25, 2019 at 4:30 PM Nathan Ridge <zeratul976 at hotmail.com<mailto:zeratul976 at hotmail.com>> wrote:
It would be useful if clangd highlighted context-sensitive keywords, such as "override" and "final" (and, in C++20, likely "import" and "module"). Because of their context-sensitivity, clients can't highlight those as easily as hard keywords.

________________________________________
From: clangd-dev <clangd-dev-bounces at lists.llvm.org<mailto:clangd-dev-bounces at lists.llvm.org>> on behalf of Ilya Biryukov via clangd-dev <clangd-dev at lists.llvm.org<mailto:clangd-dev at lists.llvm.org>>
Sent: October 25, 2019 9:55 AM
To: Haojian Wu
Cc: via clangd-dev
Subject: Re: [clangd-dev] Syntax highlighting of keywords

Highlighting typedefs to primitive types in a special manner seems ok, I was referring specifically to highlightings of keywords.

So unless anyone objects, I'll send a patch to remove highlightings of keywords. Typedefs to simple types will still be highlighted with 'primitive' highlighting type.

On Fri, Oct 25, 2019 at 10:21 AM Haojian Wu <hokein at google.com<mailto:hokein at google.com><mailto:hokein at google.com<mailto:hokein at google.com>>> wrote:
I agree editors handle keyword highlightings very well, but they don't have sufficient knowledge to highlight typealias/typedefs for primitive types.

// We want to highlight A, B as primitive types.
using A = int;
typedef int B;


On Fri, Oct 25, 2019 at 9:59 AM Ilya Biryukov <ibiryukov at google.com<mailto:ibiryukov at google.com><mailto:ibiryukov at google.com<mailto:ibiryukov at google.com>>> wrote:
Hi clangd-dev,

I was wondering whether there's any value in the highlighting for "primitive" types being added on keywords like 'void', 'int', etc?

- Any editor handles those with default syntax highlight.
- It's trivial and does not require actual semantic knowledge.

With that in mind, I wonder whether we should drop this completely and just let the editors handle the keywords?
What do people think?

--
Regards,
Ilya Biryukov


--
Regards,
Ilya Biryukov


--
Regards,
Ilya Biryukov


More information about the clangd-dev mailing list