fix(highlights): improve member/property distinction

This commit is contained in:
ObserverOfTime 2024-01-10 18:05:37 +02:00 committed by Christian Clason
parent 2f38c36294
commit fa38f4e6f9
34 changed files with 106 additions and 95 deletions

View file

@ -33,12 +33,12 @@
(variation) @type.qualifier (variation) @type.qualifier
(alias) @property (alias) @keyword.directive
(number) @number (number) @number
(argument (argument
key: (string) @label key: (string) @property
value: (string) @string) value: (string) @string)
(escape) @string.escape (escape) @string.escape

View file

@ -16,7 +16,7 @@
(_) @string.special) (_) @string.special)
(_ (_
key: (_) @label) key: (_) @property)
(number) @number (number) @number

View file

@ -6,11 +6,11 @@
; Properties ; Properties
;----------- ;-----------
(property_identifier) @property (property_identifier) @variable.member
(shorthand_property_identifier) @property (shorthand_property_identifier) @variable.member
(private_property_identifier) @property (private_property_identifier) @variable.member
(variable_declarator (variable_declarator
name: name:

View file

@ -33,7 +33,7 @@
service_name: (identifier) @type) service_name: (identifier) @type)
(error_set (error_set
(identifier) @property) (identifier) @variable.member)
(error_set (error_set
name: (identifier) @type) name: (identifier) @type)
@ -70,10 +70,10 @@
] @attribute.builtin ] @attribute.builtin
(parameter (parameter
name: (identifier) @property) name: (identifier) @variable.parameter)
(field (field
name: (identifier) @variable) name: (identifier) @variable.member)
(method (method
name: (identifier) @function.method) name: (identifier) @function.method)

View file

@ -235,7 +235,7 @@
; Properties ; Properties
(derived_type_member_expression (derived_type_member_expression
(type_member) @property) (type_member) @variable.member)
; Operators ; Operators
[ [

View file

@ -128,20 +128,20 @@
arguments: arguments:
(arguments (arguments
(argument (argument
label: (label) @property)?)) label: (label) @variable.member)?))
(record_pattern_argument (record_pattern_argument
label: (label) @property) label: (label) @variable.member)
(record_update_argument (record_update_argument
label: (label) @property) label: (label) @variable.member)
(field_access (field_access
record: (identifier) @variable record: (identifier) @variable
field: (label) @property) field: (label) @variable.member)
(data_constructor_argument (data_constructor_argument
(label) @property) (label) @variable.member)
; Types ; Types
[ [

View file

@ -8,7 +8,7 @@
((tag_name) @constructor ((tag_name) @constructor
(#lua-match? @constructor "^%u")) (#lua-match? @constructor "^%u"))
(attribute_name) @property (attribute_name) @attribute
(string_literal) @string (string_literal) @string

View file

@ -1,4 +1,9 @@
; highlights.scm ; highlights.scm
[
(key_string)
(json_key_string)
] @property
[ [
"[QueryStringParams]" "[QueryStringParams]"
"[FormParams]" "[FormParams]"
@ -8,9 +13,7 @@
"[Asserts]" "[Asserts]"
"[Options]" "[Options]"
"[BasicAuth]" "[BasicAuth]"
(key_string) ] @module
(json_key_string)
] @property
[ [
"\\" "\\"

View file

@ -8,7 +8,7 @@
(number) @number (number) @number
(pair (pair
key: (string) @label) key: (string) @property)
(pair (pair
value: (string) @string) value: (string) @string)

View file

@ -25,17 +25,17 @@
"@" @variable.builtin) "@" @variable.builtin)
(class_parameter (class_parameter
(simple_identifier) @property) (simple_identifier) @variable.member)
(class_body (class_body
(property_declaration (property_declaration
(variable_declaration (variable_declaration
(simple_identifier) @property))) (simple_identifier) @variable.member)))
; id_1.id_2.id_3: `id_2` and `id_3` are assumed as object properties ; id_1.id_2.id_3: `id_2` and `id_3` are assumed as object properties
(_ (_
(navigation_suffix (navigation_suffix
(simple_identifier) @property)) (simple_identifier) @variable.member))
; SCREAMING CASE identifiers are assumed to be constants ; SCREAMING CASE identifiers are assumed to be constants
((simple_identifier) @constant ((simple_identifier) @constant

View file

@ -86,14 +86,14 @@
(superclass (superclass
"." "."
(identifier) @property) (identifier) @variable.member)
(property_name (property_name
"." "."
(identifier) @property) (identifier) @variable.member)
(property (property
name: (identifier) @property) name: (identifier) @variable.member)
; Types ; Types
(class_definition (class_definition

View file

@ -229,10 +229,10 @@
; Properties ; Properties
(property_implementation (property_implementation
"@synthesize" "@synthesize"
(identifier) @property) (identifier) @variable.member)
((identifier) @property ((identifier) @variable.member
(#has-ancestor? @property struct_declaration)) (#has-ancestor? @variable.member struct_declaration))
; Parameters ; Parameters
(method_parameter (method_parameter

View file

@ -76,13 +76,16 @@
((value_name) @function.builtin ((value_name) @function.builtin
(#any-of? @function.builtin "raise" "raise_notrace" "failwith" "invalid_arg")) (#any-of? @function.builtin "raise" "raise_notrace" "failwith" "invalid_arg"))
; Properties ; Fields
;----------- ;-------
[ [
(label_name)
(field_name) (field_name)
(instance_variable_name) (instance_variable_name)
] @property ] @variable.member
; Labels
; ------
(label_name) @label
; Constants ; Constants
;---------- ;----------
@ -306,7 +309,7 @@
; Attributes ; Attributes
;----------- ;-----------
(attribute_id) @property (attribute_id) @attribute
; Comments ; Comments
;--------- ;---------

View file

@ -325,10 +325,10 @@
name: (identifier) @function) name: (identifier) @function)
(declProp (declProp
getter: (identifier) @property) getter: (identifier) @variable.member)
(declProp (declProp
setter: (identifier) @property) setter: (identifier) @variable.member)
; -- Function parameters ; -- Function parameters
(declArg (declArg
@ -399,26 +399,26 @@
; -- Fields ; -- Fields
(exprDot (exprDot
rhs: (identifier) @property) rhs: (identifier) @variable.member)
(exprDot (exprDot
rhs: (exprDot) @property) rhs: (exprDot) @variable.member)
(declClass (declClass
(declField (declField
name: (identifier) @property)) name: (identifier) @variable.member))
(declSection (declSection
(declField (declField
name: (identifier) @property)) name: (identifier) @variable.member))
(declSection (declSection
(declVars (declVars
(declVar (declVar
name: (identifier) @property))) name: (identifier) @variable.member)))
(recInitializerField (recInitializerField
name: (identifier) @property) name: (identifier) @variable.member)
; ---------------------------------------------- ;;; ; ---------------------------------------------- ;;;
; EVERYTHING BELOW THIS IS OF QUESTIONABLE VALUE ;;; ; EVERYTHING BELOW THIS IS OF QUESTIONABLE VALUE ;;;

View file

@ -8,7 +8,7 @@
(tag (tag
(tag_name) @_tag (tag_name) @_tag
(#eq? @_tag "@property") (#eq? @_tag "@property")
(variable_name) @property) (variable_name) @variable.member)
(tag (tag
(tag_name) @_tag (tag_name) @_tag

View file

@ -36,14 +36,14 @@
(default_case (default_case
"default" @keyword.conditional) "default" @keyword.conditional)
; Properties ; Attributes
(attribute (attribute
name: (identifier) @property) name: (identifier) @attribute)
(attribute (attribute
name: name:
(variable (variable
(identifier) @property)) (identifier) @attribute))
; Parameters ; Parameters
(lambda (lambda

View file

@ -53,7 +53,7 @@
[ [
(ivar_name) (ivar_name)
(cvar_name) (cvar_name)
] @property ] @variable.member
(alias_member (alias_member
(method_name) @function) (method_name) @function)
@ -80,7 +80,7 @@
(const_name (const_name
(constant) @constant) (constant) @constant)
(global_name) @property (global_name) @variable.global
; Standard Arguments ; Standard Arguments
(parameter (parameter

View file

@ -3,7 +3,7 @@
(enum_variant) @constant (enum_variant) @constant
(struct_entry (struct_entry
(identifier) @property) (identifier) @variable.member)
(struct_entry (struct_entry
(enum_variant (enum_variant

View file

@ -122,7 +122,7 @@
[ [
(class_variable) (class_variable)
(instance_variable) (instance_variable)
] @label ] @variable.member
((identifier) @constant.builtin ((identifier) @constant.builtin
(#any-of? @constant.builtin "__callee__" "__dir__" "__id__" "__method__" "__send__" "__ENCODING__" "__FILE__" "__LINE__")) (#any-of? @constant.builtin "__callee__" "__dir__" "__id__" "__method__" "__send__" "__ENCODING__" "__FILE__" "__LINE__"))
@ -176,7 +176,7 @@
[ [
(heredoc_beginning) (heredoc_beginning)
(heredoc_end) (heredoc_end)
] @constant ] @label
[ [
(bare_symbol) (bare_symbol)

View file

@ -123,7 +123,7 @@
; expressions ; expressions
(field_expression (field_expression
field: (identifier) @property) field: (identifier) @variable.member)
(field_expression (field_expression
value: (identifier) @type value: (identifier) @type

View file

@ -73,7 +73,7 @@
; Fields ; Fields
(field_identifier) @variable.member (field_identifier) @variable.member
(annotation_key) @attribute (annotation_key) @variable.member
((field_identifier) @constant ((field_identifier) @constant
(#lua-match? @constant "^[%u_]*$")) (#lua-match? @constant "^[%u_]*$"))

View file

@ -1,33 +1,33 @@
(field_identifier (field_identifier
(identifier) @property) (identifier) @variable.member)
(field_identifier (field_identifier
(dotted_identifier (dotted_identifier
(identifier) @property)) (identifier) @variable.member))
(type_of_clause (type_of_clause
(identifier) @property) (identifier) @variable.member)
(when_expression (when_expression
(identifier) @type) (identifier) @type)
(when_expression (when_expression
(field_list (field_list
(identifier) @property)) (identifier) @variable.member))
(when_expression (when_expression
(field_list (field_list
(dotted_identifier (dotted_identifier
(identifier) @property))) (identifier) @variable.member)))
(else_expression (else_expression
(field_list (field_list
(identifier) @property)) (identifier) @variable.member))
(else_expression (else_expression
(field_list (field_list
(dotted_identifier (dotted_identifier
(identifier) @property))) (identifier) @variable.member)))
(alias_expression (alias_expression
(identifier) @label) (identifier) @label)

View file

@ -85,16 +85,16 @@
(deref_expression (deref_expression
"." "."
. .
(identifier) @property) (identifier) @variable.member)
(member_declaration (member_declaration
(identifier) @property (identifier) @variable.member
. .
"=") "=")
((table_slot ((table_slot
. .
(identifier) @property (identifier) @variable.member
. .
[ [
"=" "="

View file

@ -95,18 +95,18 @@
(class_body (class_body
(property_declaration (property_declaration
(pattern (pattern
(simple_identifier) @property))) (simple_identifier) @variable.member)))
(protocol_property_declaration (protocol_property_declaration
(pattern (pattern
(simple_identifier) @property)) (simple_identifier) @variable.member))
(navigation_expression (navigation_expression
(navigation_suffix (navigation_suffix
(simple_identifier) @property)) (simple_identifier) @variable.member))
(value_argument (value_argument
name: (value_argument_label) @property) name: (value_argument_label) @variable.member)
(import_declaration (import_declaration
"import" @keyword.import) "import" @keyword.import)

View file

@ -110,7 +110,7 @@
(type_identifier) @type (type_identifier) @type
(field_identifier) @property (field_identifier) @variable.member
(identifier) @variable (identifier) @variable

View file

@ -7,6 +7,10 @@
(pair (pair
(bare_key)) @property (bare_key)) @property
(pair
(dotted_key
(bare_key) @property))
; Literals ; Literals
;--------- ;---------
(boolean) @boolean (boolean) @boolean

View file

@ -257,7 +257,7 @@
] @label ] @label
(literal_dictionary (literal_dictionary
(literal_key) @label) (literal_key) @property)
((scoped_identifier ((scoped_identifier
(scope) @_scope (scope) @_scope

View file

@ -2,7 +2,7 @@
(reference_identifier) @variable (reference_identifier) @variable
(member_identifier) @property (member_identifier) @variable.member
; Classes ; Classes
(custom_type) @type (custom_type) @type

View file

@ -19,9 +19,10 @@
(comment) @comment @spell (comment) @comment @spell
(anchor_name) @type [
(anchor_name)
(alias_name) @type (alias_name)
] @label
(tag) @type (tag) @type
@ -37,13 +38,13 @@
[ [
(double_quote_scalar) (double_quote_scalar)
(single_quote_scalar) (single_quote_scalar)
] @variable.member)) ] @property))
(block_mapping_pair (block_mapping_pair
key: key:
(flow_node (flow_node
(plain_scalar (plain_scalar
(string_scalar) @variable.member))) (string_scalar) @property)))
(flow_mapping (flow_mapping
(_ (_
@ -52,14 +53,14 @@
[ [
(double_quote_scalar) (double_quote_scalar)
(single_quote_scalar) (single_quote_scalar)
] @variable.member))) ] @property)))
(flow_mapping (flow_mapping
(_ (_
key: key:
(flow_node (flow_node
(plain_scalar (plain_scalar
(string_scalar) @variable.member)))) (string_scalar) @property))))
[ [
"," ","

View file

@ -1,15 +1,15 @@
class H { class H {
pub_field = "Hello"; pub_field = "Hello";
// ^ @property // ^ @variable.member
#priv_field = "World!"; #priv_field = "World!";
// ^ @property // ^ @variable.member
#private_method() { #private_method() {
// ^ @function.method // ^ @function.method
return `${this.pub_field} -- ${this.#priv_field}`; return `${this.pub_field} -- ${this.#priv_field}`;
// ^ @property // ^ @variable.member
// ^ @property // ^ @variable.member
} }
public_method() { public_method() {

View file

@ -6,11 +6,11 @@ pub type Cat {
Cat(name: String, cuteness: Int) Cat(name: String, cuteness: Int)
// <- @constructor // <- @constructor
// ^ @punctuation.bracket // ^ @punctuation.bracket
// ^^^^ @property // ^^^^ @variable.member
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^^^ @type.builtin // ^^^^^^ @type.builtin
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^^^^^ @property // ^^^^^^^^ @variable.member
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^ @type.builtin // ^^^ @type.builtin
// ^ @punctuation.bracket // ^ @punctuation.bracket
@ -20,11 +20,11 @@ fn cats() {
Cat(name: "Nubi", cuteness: 2001) Cat(name: "Nubi", cuteness: 2001)
// <- @type // <- @type
// ^ @punctuation.bracket // ^ @punctuation.bracket
// ^^^^ @property // ^^^^ @variable.member
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^^^ @string // ^^^^^^ @string
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^^^^^ @property // ^^^^^^^^ @variable.member
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^ @number // ^^^^ @number
// ^ @punctuation.bracket // ^ @punctuation.bracket
@ -47,7 +47,7 @@ type Box(inner_type) {
Box(inner: inner_type) Box(inner: inner_type)
// <- @constructor // <- @constructor
// ^ @punctuation.bracket // ^ @punctuation.bracket
// ^^^^^ @property // ^^^^^ @variable.member
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^^^^^^^ @type // ^^^^^^^^^^ @type
// ^ @punctuation.bracket // ^ @punctuation.bracket
@ -69,15 +69,15 @@ pub fn have_birthday(person) {
// ^^ @operator // ^^ @operator
// ^^^^^^ @variable // ^^^^^^ @variable
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^ @property // ^^^ @variable.member
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^^^ @variable // ^^^^^^ @variable
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^ @property // ^^^ @variable.member
// ^ @operator // ^ @operator
// ^ @number // ^ @number
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^^^^^ @property // ^^^^^^^^ @variable.member
// ^ @punctuation.delimiter // ^ @punctuation.delimiter
// ^^^^ @boolean // ^^^^ @boolean
// ^ @punctuation.bracket // ^ @punctuation.bracket

View file

@ -6,16 +6,16 @@ type int_array = array of int
/* ^ @type.builtin */ /* ^ @type.builtin */
type record = {a: int, b: string} type record = {a: int, b: string}
/* ^ @property */ /* ^ @variable.member */
/* ^ @type.builtin */ /* ^ @type.builtin */
/* ^ @property */ /* ^ @variable.member */
/* ^ @type.builtin */ /* ^ @type.builtin */
var record := record {a = 12, b = "27"} var record := record {a = 12, b = "27"}
/* ^ @variable */ /* ^ @variable */
/* ^ @type */ /* ^ @type */
/* ^ @property */ /* ^ @variable.member */
/* ^ @property */ /* ^ @variable.member */
var array := int_array[12] of 27; var array := int_array[12] of 27;
/* ^ @variable */ /* ^ @variable */

View file

@ -21,7 +21,7 @@ let
/* ^ @keyword.operator */ /* ^ @keyword.operator */
in in
object.a := 27; object.a := 27;
/* ^ @property */ /* ^ @variable.member */
object.meth() object.meth()
/* ^ @function.method */ /* ^ @function.method */

View file

@ -1,4 +1,4 @@
test1.test2.test3(); test1.test2.test3();
// <- @variable // <- @variable
// ^ @property // ^ @variable.member
// ^ @function.method.call // ^ @function.method.call