aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSathish Manohar <sathish.design11@gmail.com>2022-10-15 02:31:50 +0530
committerGitHub <noreply@github.com>2022-10-14 23:01:50 +0200
commit887b40b9d43f89a57646fb3e400f6875c4345f89 (patch)
tree683551aafb827654a5a78108f62ba33f99164ea1
parenta59f687eae4f52fca555285316c26e3e6e792efa (diff)
downloadlite-xl-plugins-887b40b9d43f89a57646fb3e400f6875c4345f89.tar.gz
lite-xl-plugins-887b40b9d43f89a57646fb3e400f6875c4345f89.zip
Add language plugin for ERB files (#131)
* Add language plugin for ERB files erb files typically has filename.html.erb extension they contain html markup and embedded ruby code this file should properly syntax highlight both html and ruby parts * merge html/htm in filetype check
-rw-r--r--plugins/language_erb.lua55
1 files changed, 55 insertions, 0 deletions
diff --git a/plugins/language_erb.lua b/plugins/language_erb.lua
new file mode 100644
index 0000000..e63c7b0
--- /dev/null
+++ b/plugins/language_erb.lua
@@ -0,0 +1,55 @@
+-- mod-version:2
+local syntax = require "core.syntax"
+
+syntax.add {
+ name = "html-eruby",
+ files = { "%.html?%.erb$", "%.erb$" },
+ block_comment = { "<!--", "-->" },
+ patterns = {
+ {
+ pattern = {
+ "<%s*[sS][cC][rR][iI][pP][tT]%f[%s>].->",
+ "<%s*/%s*[sS][cC][rR][iI][pP][tT]%s*>"
+ },
+ syntax = ".js",
+ type = "function"
+ },
+ {
+ pattern = {
+ "<%s*[sS][tT][yY][lL][eE]%f[%s>].->",
+ "<%s*/%s*[sS][tT][yY][lL][eE]%s*>"
+ },
+ syntax = ".css",
+ type = "function"
+ },
+ {
+ pattern = {
+ "<%%",
+ "%%>"
+ },
+ syntax = ".rb",
+ type = "function"
+ },
+ {
+ pattern = {
+ "<%%=",
+ "%%>"
+ },
+ syntax = ".rb",
+ type = "function"
+ },
+ { pattern = { "<!%-%-", "%-%->" }, type = "comment" },
+ { pattern = { '%f[^>][^<]', '%f[<]' }, type = "normal" },
+ { pattern = { '"', '"', '\\' }, type = "string" },
+ { pattern = { "'", "'", '\\' }, type = "string" },
+ { pattern = "0x[%da-fA-F]+", type = "number" },
+ { pattern = "-?%d+[%d%.]*f?", type = "number" },
+ { pattern = "-?%.?%d+f?", type = "number" },
+ { pattern = "%f[^<]![%a_][%w_]*", type = "keyword2" },
+ { pattern = "%f[^<][%a_][%w_]*", type = "function" },
+ { pattern = "%f[^<]/[%a_][%w_]*", type = "function" },
+ { pattern = "[%a_][%w_]*", type = "keyword" },
+ { pattern = "[/<>=]", type = "operator" },
+ },
+ symbols = {},
+}