From b8f9ad0dac7d6969e1854d8a54281a661dac613d Mon Sep 17 00:00:00 2001 From: Ashikur Rahman Shad <97606195+ashikur-rahman-shad@users.noreply.github.com> Date: Mon, 26 Jan 2026 12:10:12 +0600 Subject: [PATCH 1/2] Add syntax highlighting rules for .properties files --- runtime/syntax/properties.yaml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 runtime/syntax/properties.yaml diff --git a/runtime/syntax/properties.yaml b/runtime/syntax/properties.yaml new file mode 100644 index 000000000..052de18e9 --- /dev/null +++ b/runtime/syntax/properties.yaml @@ -0,0 +1,27 @@ +filetype: properties + +detect: + filename: "\\.properties$" + +rules: + # Key (Identifier) - Matches everything before the first = or : + - identifier: "^[[:space:]]*[^=:[:space:]]+" + + # Assignment operators + - statement: "[=:]" + + # Boolean constants + - constant: "\\b(true|false|TRUE|FALSE|yes|no|ON|OFF)\\b" + + # Strings/Values (Simple match for text after assignment) + - constant.string: "([=:][[:space:]]*).*$" + + # Comments - Properties files support both # and ! + - comment: + start: "[#!]" + end: "$" + rules: + - todo: "(TODO|XXX|FIXME):?" + + # Special characters like escaped spaces or newlines + - constant.specialChar: "\\\\([ tnfr'\"\\\\]|u[0-9a-fA-F]{4})" From ce144b08bf8e753963ac31019fd3a8c3f6e5e361 Mon Sep 17 00:00:00 2001 From: Ashikur Rahman Shad <97606195+ashikur-rahman-shad@users.noreply.github.com> Date: Tue, 27 Jan 2026 12:43:34 +0600 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Mikko --- runtime/syntax/properties.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/runtime/syntax/properties.yaml b/runtime/syntax/properties.yaml index 052de18e9..348494199 100644 --- a/runtime/syntax/properties.yaml +++ b/runtime/syntax/properties.yaml @@ -11,7 +11,8 @@ rules: - statement: "[=:]" # Boolean constants - - constant: "\\b(true|false|TRUE|FALSE|yes|no|ON|OFF)\\b" + - constant.bool.true: "\\b(true|TRUE|yes|ON)\\b" + - constant.bool.false: "\\b(false|FALSE|no|OFF)\\b" # Strings/Values (Simple match for text after assignment) - constant.string: "([=:][[:space:]]*).*$" @@ -24,4 +25,4 @@ rules: - todo: "(TODO|XXX|FIXME):?" # Special characters like escaped spaces or newlines - - constant.specialChar: "\\\\([ tnfr'\"\\\\]|u[0-9a-fA-F]{4})" + - constant.specialChar: "\\\\([ :=tnfr'\"\\\\]|u[0-9a-fA-F]{4})"