From e4675bc410ebf7889e63a691f59d5760aec4e0e9 Mon Sep 17 00:00:00 2001 From: Stephan Seitz Date: Mon, 20 Dec 2021 14:50:59 +0100 Subject: highlights(c/cpp): highlight case labels as constants --- queries/c/highlights.scm | 2 ++ queries/cpp/highlights.scm | 2 ++ tests/query/highlights/c/enums-as-constants.c | 21 +++++++++++++++++++ tests/query/highlights/cpp/enums-as-constants.cpp | 25 +++++++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 tests/query/highlights/c/enums-as-constants.c create mode 100644 tests/query/highlights/cpp/enums-as-constants.cpp diff --git a/queries/c/highlights.scm b/queries/c/highlights.scm index 019522c3b..2ea07a74a 100644 --- a/queries/c/highlights.scm +++ b/queries/c/highlights.scm @@ -139,6 +139,8 @@ (#lua-match? @constant "^[A-Z][A-Z0-9_]+$")) (enumerator name: (identifier) @constant) +(case_statement + value: (identifier) @constant) ;; Preproc def / undef (preproc_def diff --git a/queries/cpp/highlights.scm b/queries/cpp/highlights.scm index 46ce27bb2..e3139c7be 100644 --- a/queries/cpp/highlights.scm +++ b/queries/cpp/highlights.scm @@ -38,6 +38,8 @@ (#lua-match? @type "^[A-Z]")) ((namespace_identifier) @constant (#lua-match? @constant "^[A-Z][A-Z_0-9]*$")) +(case_statement + value: (qualified_identifier (identifier) @constant)) (namespace_definition name: (identifier) @namespace) diff --git a/tests/query/highlights/c/enums-as-constants.c b/tests/query/highlights/c/enums-as-constants.c new file mode 100644 index 000000000..8e6474466 --- /dev/null +++ b/tests/query/highlights/c/enums-as-constants.c @@ -0,0 +1,21 @@ +enum Foo{ + a, +// ^ @constant + aa, +// ^ @constant + C, +}; + +void foo(enum Foo f){ + switch ( f ) { + case a: + // ^ @constant + break; + case aa: + // ^ @constant + break; + case C: + break; + default: + } +} diff --git a/tests/query/highlights/cpp/enums-as-constants.cpp b/tests/query/highlights/cpp/enums-as-constants.cpp new file mode 100644 index 000000000..ae773e8d3 --- /dev/null +++ b/tests/query/highlights/cpp/enums-as-constants.cpp @@ -0,0 +1,25 @@ +enum class Foo{ + a, +// ^ @constant + aa, +// ^ @constant + C, +// ^ @constant +}; + +void foo(Foo f){ + switch ( f ) { + case Foo::a: + // ^ @type + // ^ @namespace + // ^ @constant + break; + case Foo::aa: + // ^ @constant + break; + case Foo::C: + // ^ @constant + break; + default: + } +} -- cgit v1.2.3-70-g09d2