From 3006eb5063fa441f76c7d40b271f34a62729bfa9 Mon Sep 17 00:00:00 2001 From: Stephen Power <88420791+opensourcecheemsburgers@users.noreply.github.com> Date: Sun, 25 Jan 2026 18:51:50 +0200 Subject: [PATCH] Add support for LESS (#14303) --- book/src/generated/lang-support.md | 1 + languages.toml | 14 ++++++++++++ runtime/queries/less/highlights.scm | 35 +++++++++++++++++++++++++++++ runtime/queries/less/indents.scm | 7 ++++++ runtime/queries/less/injections.scm | 2 ++ runtime/queries/less/rainbows.scm | 15 +++++++++++++ 6 files changed, 74 insertions(+) create mode 100644 runtime/queries/less/highlights.scm create mode 100644 runtime/queries/less/indents.scm create mode 100644 runtime/queries/less/injections.scm create mode 100644 runtime/queries/less/rainbows.scm diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index e6707dd8..f963a80c 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -161,6 +161,7 @@ | ldif | ✓ | | | | | | | lean | ✓ | | | | | `lake` | | ledger | ✓ | | | | | | +| less | ✓ | | ✓ | | ✓ | `vscode-css-language-server` | | llvm | ✓ | ✓ | ✓ | | | | | llvm-mir | ✓ | ✓ | ✓ | | | | | llvm-mir-yaml | ✓ | | ✓ | | | | diff --git a/languages.toml b/languages.toml index 1a54d3c3..fbabe10b 100644 --- a/languages.toml +++ b/languages.toml @@ -1027,6 +1027,20 @@ indent = { tab-width = 2, unit = " " } name = "scss" source = { git = "https://github.com/serenadeai/tree-sitter-scss", rev = "c478c6868648eff49eb04a4df90d703dc45b312a" } +[[language]] +name = "less" +scope = "source.less" +injection-regex = "less" +file-types = ["less"] +block-comment-tokens = { start = "/*", end = "*/" } +language-servers = [ "vscode-css-language-server" ] +auto-format = true +indent = { tab-width = 2, unit = " " } + +[[grammar]] +name = "less" +source = { git = "https://github.com/jimliang/tree-sitter-less", rev = "e5ae6245f841b5778c79ac93b28fa4f56b679c5d" } + [[language]] name = "html" scope = "text.html.basic" diff --git a/runtime/queries/less/highlights.scm b/runtime/queries/less/highlights.scm new file mode 100644 index 00000000..2a3ebce5 --- /dev/null +++ b/runtime/queries/less/highlights.scm @@ -0,0 +1,35 @@ +; inherits: css + +[ + "@import" + "@namespace" + "@charset" +] @keyword + +(js_comment) @comment + +(function_name) @function + +[ + ">=" + "<=" +] @operator + +(plain_value) @string + +(keyword_query) @function + +(identifier) @variable + +(variable) @variable + +(arguments + (variable) @variable.parameter) + +[ + "[" + "]" +] @punctuation.bracket + +(import_statement + (identifier) @function) diff --git a/runtime/queries/less/indents.scm b/runtime/queries/less/indents.scm new file mode 100644 index 00000000..1dfd977d --- /dev/null +++ b/runtime/queries/less/indents.scm @@ -0,0 +1,7 @@ +[ + (block) +] @indent + +[ + "}" +] @outdent diff --git a/runtime/queries/less/injections.scm b/runtime/queries/less/injections.scm new file mode 100644 index 00000000..321c90ad --- /dev/null +++ b/runtime/queries/less/injections.scm @@ -0,0 +1,2 @@ +((comment) @injection.content + (#set! injection.language "comment")) diff --git a/runtime/queries/less/rainbows.scm b/runtime/queries/less/rainbows.scm new file mode 100644 index 00000000..66b60d51 --- /dev/null +++ b/runtime/queries/less/rainbows.scm @@ -0,0 +1,15 @@ +[ + (keyframe_block_list) + (block) + (attribute_selector) + (feature_query) + (parenthesized_query) + (selector_query) + (parenthesized_value) + (arguments) +] @rainbow.scope + +[ + "{" "}" + "(" ")" +] @rainbow.bracket -- 2.51.2