jeff-hykin / better-cpp-syntax

💾 The source of VS Code's C++ syntax highlighting
GNU General Public License v3.0
155 stars 30 forks source link

Provide a different scope for `throw` when used as a function exception specifier #625

Open akbyrd opened 1 year ago

akbyrd commented 1 year ago

Checklist

The code with a problem is:

void Foo() throw() {}

It looks like:

image

(akbyrd.akbyrd-vsc-theme)

It should look like:

image

The issue is that throw is classified as keyword.control.throw when it is used as a function exception specifier. In this case it's not a control keyword and should be able to be highlighted in a different way compared to throw expression. To be consistent with noexcept I would guess keyword.operator.functionlike, keyword.operator.throw are reasonable scopes.

The desired behavior is similar to how default is either keyword.other.constructor or keyword.control.default.cpp based on the context in which it's used.

https://github.com/microsoft/vscode-cpptools/issues/10544