From b3f34c16b8d9851650273e691ea552c4c43a8a38 Mon Sep 17 00:00:00 2001 From: Ben Hamment Date: Fri, 3 Oct 2025 12:05:26 +0100 Subject: [PATCH 1/2] Add JS/ERB language support Introduces configuration, highlighting, and injection files for JS/ERB templates. Updates extension.toml to register JS/ERB with the Ruby LSP, enabling syntax and language server support for .js.erb files. --- extension.toml | 3 ++- languages/js-erb/config.toml | 7 +++++++ languages/js-erb/highlights.scm | 12 ++++++++++++ languages/js-erb/injections.scm | 7 +++++++ 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 languages/js-erb/config.toml create mode 100644 languages/js-erb/highlights.scm create mode 100644 languages/js-erb/injections.scm diff --git a/extension.toml b/extension.toml index 94f94e2..eb60624 100644 --- a/extension.toml +++ b/extension.toml @@ -13,13 +13,14 @@ languages = ["Ruby"] [language_servers.ruby-lsp] name = "Ruby LSP" -languages = ["Ruby", "ERB", "HTML/ERB", "YAML/ERB"] +languages = ["Ruby", "ERB", "HTML/ERB", "YAML/ERB", "JS/ERB"] [language_servers.ruby-lsp.language_ids] "Ruby" = "ruby" "ERB" = "erb" "HTML/ERB" = "erb" "YAML/ERB" = "erb" +"JS/ERB" = "erb" [language_servers.rubocop] name = "Rubocop" diff --git a/languages/js-erb/config.toml b/languages/js-erb/config.toml new file mode 100644 index 0000000..0017841 --- /dev/null +++ b/languages/js-erb/config.toml @@ -0,0 +1,7 @@ +name = "JS/ERB" +grammar = "embedded_template" +path_suffixes = ["js.erb"] +autoclose_before = ">})" +brackets = [{ start = "<", end = ">", close = true, newline = true }] +block_comment = ["<%#", "%>"] +word_characters = ["?", "!"] diff --git a/languages/js-erb/highlights.scm b/languages/js-erb/highlights.scm new file mode 100644 index 0000000..0bf76a7 --- /dev/null +++ b/languages/js-erb/highlights.scm @@ -0,0 +1,12 @@ +(comment_directive) @comment + +[ + "<%#" + "<%" + "<%=" + "<%_" + "<%-" + "%>" + "-%>" + "_%>" +] @keyword diff --git a/languages/js-erb/injections.scm b/languages/js-erb/injections.scm new file mode 100644 index 0000000..f90deea --- /dev/null +++ b/languages/js-erb/injections.scm @@ -0,0 +1,7 @@ +((code) @content + (#set! "language" "ruby") + (#set! "combined")) + +((content) @content + (#set! "language" "javascript") + (#set! "combined")) From 7f50577ca71f3be38b3a7aba61563455f9eb20b2 Mon Sep 17 00:00:00 2001 From: Ben Hamment Date: Wed, 8 Oct 2025 12:35:09 +0100 Subject: [PATCH 2/2] Update languages/js-erb/config.toml Co-authored-by: Marco Roth --- languages/js-erb/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/languages/js-erb/config.toml b/languages/js-erb/config.toml index 0017841..e213661 100644 --- a/languages/js-erb/config.toml +++ b/languages/js-erb/config.toml @@ -1,4 +1,4 @@ -name = "JS/ERB" +name = "JS+ERB" grammar = "embedded_template" path_suffixes = ["js.erb"] autoclose_before = ">})"