parent
c08fbb0840
commit
dda5abb8e9
@ -0,0 +1,61 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
-- batch syntax for lite <liqube> |
||||
|
||||
-- windows batch files use caseless matching for symbols |
||||
local symtable = { |
||||
["keyword"] = { |
||||
"if", "else", "elsif", "not", "for", "do", "in", |
||||
"equ", "neq", "lss", "leq", "gtr", "geq", -- == != < <= > >= |
||||
"nul", "con", "prn", "prn", "lpt1", "com1", "com2", "com3", "com4", |
||||
"exist", "defined", |
||||
"errorlevel", "cmdextversion", |
||||
"goto", "call", "verify", |
||||
}, |
||||
["function"] = { |
||||
"set", "setlocal", "endlocal", "enabledelayedexpansion", |
||||
"echo", "type", |
||||
"cd", "chdir", |
||||
"md", "mkdir", |
||||
"pause", "choice", "exit", |
||||
"del", "rd", "rmdir", |
||||
"copy", "xcopy", |
||||
"move", "ren", |
||||
"find", "findstr", |
||||
"sort", "shift", "attrib", |
||||
"cmd", "command", |
||||
"forfiles", |
||||
}, |
||||
} |
||||
-- prepare a mixed symbol list |
||||
local function prepare_symbols(symtable) |
||||
local symbols = { } |
||||
for symtype, symlist in pairs(symtable) do |
||||
for _, symname in ipairs(symlist) do |
||||
symbols[symname:lower()] = symtype |
||||
symbols[symname:upper()] = symtype |
||||
end |
||||
end |
||||
return symbols |
||||
end |
||||
|
||||
syntax.add { |
||||
files = { "%.bat$", "%.cmd$" }, |
||||
comment = "rem", |
||||
patterns = { |
||||
{ pattern = "@echo off\n", type = "keyword" }, |
||||
{ pattern = "@echo on\n", type = "keyword" }, |
||||
{ pattern = "rem.-\n", type = "comment" }, -- rem comment line, rem, rem. |
||||
{ pattern = "REM.-\n", type = "comment" }, |
||||
{ pattern = "%s*:[%w%-]+", type = "symbol" }, -- :labels |
||||
{ pattern = "%:%:.-\n", type = "comment" }, -- :: comment line |
||||
{ pattern = "%%%w+%%", type = "symbol" }, -- %variable% |
||||
{ pattern = "%%%%?~?[%w:]+", type = "symbol" }, -- %1, %~dpn1, %~1:2, %%i, %%~i |
||||
{ pattern = "[!=()%>&%^/\\@]", type = "operator" }, -- operators |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, -- integer numbers |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, -- "strings" |
||||
{ pattern = "[%a_][%w_]*", type = "normal" }, |
||||
{ pattern = ":eof", type = "keyword" }, -- not quite as intended, but ok for now |
||||
}, |
||||
symbols = prepare_symbols(symtable), |
||||
} |
@ -0,0 +1,15 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.cmake$", "CMakeLists.txt$" }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = { "#", "[^\\]\n" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "normal" }, |
||||
{ pattern = "%${[%a_][%w_]*%}", type = "operator" }, |
||||
}, |
||||
symbols = {}, |
||||
} |
@ -0,0 +1,14 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.%$" }, |
||||
patterns = {}, |
||||
symbols = { |
||||
["TODO"] = "keyword", |
||||
["FIXME"] = "keyword", |
||||
["FIX"] = "keyword", |
||||
["BUG"] = "keyword", |
||||
["IMPROVEMENT"] = "keyword", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,121 @@ |
||||
pcall(require, "plugins.language_c") |
||||
|
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { |
||||
"%.h$", "%.inl$", "%.cpp$", "%.cc$", "%.C$", "%.cxx$", |
||||
"%.c++$", "%.hh$", "%.H$", "%.hxx$", "%.hpp$", "%.h++$" |
||||
}, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { "#", "[^\\]\n" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["alignof"] = "keyword", |
||||
["alignas"] = "keyword", |
||||
["and"] = "keyword", |
||||
["and_eq"] = "keyword", |
||||
["not"] = "keyword", |
||||
["not_eq"] = "keyword", |
||||
["or"] = "keyword", |
||||
["or_eq"] = "keyword", |
||||
["xor"] = "keyword", |
||||
["xor_eq"] = "keyword", |
||||
["private"] = "keyword", |
||||
["protected"] = "keyword", |
||||
["public"] = "keyword", |
||||
["register"] = "keyword", |
||||
["nullptr"] = "keyword", |
||||
["operator"] = "keyword", |
||||
["asm"] = "keyword", |
||||
["bitand"] = "keyword", |
||||
["bitor"] = "keyword", |
||||
["catch"] = "keyword", |
||||
["throw"] = "keyword", |
||||
["try"] = "keyword", |
||||
["class"] = "keyword", |
||||
["compl"] = "keyword", |
||||
["explicit"] = "keyword", |
||||
["export"] = "keyword", |
||||
["concept"] = "keyword", |
||||
["consteval"] = "keyword", |
||||
["constexpr"] = "keyword", |
||||
["constinit"] = "keyword", |
||||
["const_cast"] = "keyword", |
||||
["dynamic_cast"] = "keyword", |
||||
["reinterpret_cast"] = "keyword", |
||||
["static_cast"] = "keyword", |
||||
["static_assert"] = "keyword", |
||||
["template"] = "keyword", |
||||
["this"] = "keyword", |
||||
["thread_local"] = "keyword", |
||||
["requires"] = "keyword", |
||||
["co_wait"] = "keyword", |
||||
["co_return"] = "keyword", |
||||
["co_yield"] = "keyword", |
||||
["decltype"] = "keyword", |
||||
["delete"] = "keyword", |
||||
["export"] = "keyword", |
||||
["friend"] = "keyword", |
||||
["typeid"] = "keyword", |
||||
["typename"] = "keyword", |
||||
["mutable"] = "keyword", |
||||
["virtual"] = "keyword", |
||||
["using"] = "keyword", |
||||
["namespace"] = "keyword", |
||||
["new"] = "keyword", |
||||
["noexcept"] = "keyword", |
||||
["if"] = "keyword", |
||||
["then"] = "keyword", |
||||
["else"] = "keyword", |
||||
["elseif"] = "keyword", |
||||
["do"] = "keyword", |
||||
["while"] = "keyword", |
||||
["for"] = "keyword", |
||||
["break"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["return"] = "keyword", |
||||
["goto"] = "keyword", |
||||
["struct"] = "keyword", |
||||
["union"] = "keyword", |
||||
["typedef"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["extern"] = "keyword", |
||||
["static"] = "keyword", |
||||
["volatile"] = "keyword", |
||||
["const"] = "keyword", |
||||
["inline"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["case"] = "keyword", |
||||
["default"] = "keyword", |
||||
["auto"] = "keyword", |
||||
["const"] = "keyword", |
||||
["void"] = "keyword", |
||||
["int"] = "keyword2", |
||||
["short"] = "keyword2", |
||||
["long"] = "keyword2", |
||||
["float"] = "keyword2", |
||||
["double"] = "keyword2", |
||||
["char"] = "keyword2", |
||||
["unsigned"] = "keyword2", |
||||
["bool"] = "keyword2", |
||||
["true"] = "keyword2", |
||||
["false"] = "keyword2", |
||||
["wchar_t"] = "keyword2", |
||||
["char8_t"] = "keyword2", |
||||
["char16_t"] = "keyword2", |
||||
["char32_t"] = "keyword2", |
||||
["NULL"] = "literal", |
||||
}, |
||||
} |
@ -0,0 +1,120 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = "%.cs$", |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "[%$%@]?\"", '"', '\\' }, type = "string" }, -- string interpolation and verbatim |
||||
{ pattern = "'\\x%x?%x?%x?%x'", type = "string" }, -- character hexadecimal escape sequence |
||||
{ pattern = "'\\u%x%x%x%x'", type = "string" }, -- character unicode escape sequence |
||||
{ pattern = "'\\?.'", type = "string" }, -- character literal |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = "%?%?", type = "operator" }, -- ?? null-coalescing |
||||
{ pattern = "%?%.", type = "operator" }, -- ?. null-conditional |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
-- keywords and contextual keywords |
||||
["abstract"] = "keyword", |
||||
["as"] = "keyword", |
||||
["add"] = "keyword", |
||||
["await"] = "keyword", |
||||
["base"] = "keyword", |
||||
["break"] = "keyword", |
||||
["case"] = "keyword", |
||||
["catch"] = "keyword", |
||||
["checked"] = "keyword", |
||||
["class"] = "keyword", |
||||
["record"] = "keyword", |
||||
["const"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["default"] = "keyword", |
||||
["delegate"] = "keyword", |
||||
["do"] = "keyword", |
||||
["else"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["event"] = "keyword", |
||||
["explicit"] = "keyword", |
||||
["extern"] = "keyword", |
||||
["finally"] = "keyword", |
||||
["fixed"] = "keyword", |
||||
["for"] = "keyword", |
||||
["foreach"] = "keyword", |
||||
["get"] = "keyword", |
||||
["goto"] = "keyword", |
||||
["if"] = "keyword", |
||||
["implicit"] = "keyword", |
||||
["in"] = "keyword", |
||||
["interface"] = "keyword", |
||||
["internal"] = "keyword", |
||||
["is"] = "keyword", |
||||
["lock"] = "keyword", |
||||
["namespace"] = "keyword", |
||||
["new"] = "keyword", |
||||
["operator"] = "keyword", |
||||
["out"] = "keyword", |
||||
["override"] = "keyword", |
||||
["remove"] = "keyword", |
||||
["params"] = "keyword", |
||||
["partial"] = "keyword", |
||||
["private"] = "keyword", |
||||
["protected"] = "keyword", |
||||
["dynamic"] = "keyword", |
||||
["public"] = "keyword", |
||||
["readonly"] = "keyword", |
||||
["ref"] = "keyword", |
||||
["return"] = "keyword", |
||||
["sealed"] = "keyword", |
||||
["set"] = "keyword", |
||||
["sizeof"] = "keyword", |
||||
["stackalloc"] = "keyword", |
||||
["static"] = "keyword", |
||||
["struct"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["this"] = "keyword", |
||||
["throw"] = "keyword", |
||||
["try"] = "keyword", |
||||
["typeof"] = "keyword", |
||||
["unchecked"] = "keyword", |
||||
["unsafe"] = "keyword", |
||||
["using"] = "keyword", |
||||
["var"] = "keyword", |
||||
["value"] = "keyword", |
||||
["global"] = "keyword", |
||||
["virtual"] = "keyword", |
||||
["void"] = "keyword", |
||||
["volatile"] = "keyword", |
||||
["where"] = "keyword", |
||||
["when"] = "keyword", |
||||
["while"] = "keyword", |
||||
["yield"] = "keyword", |
||||
-- types |
||||
["bool"] = "keyword2", |
||||
["byte"] = "keyword2", |
||||
["char"] = "keyword2", |
||||
["decimal"] = "keyword2", |
||||
["double"] = "keyword2", |
||||
["float"] = "keyword2", |
||||
["int"] = "keyword2", |
||||
["long"] = "keyword2", |
||||
["object"] = "keyword2", |
||||
["sbyte"] = "keyword2", |
||||
["short"] = "keyword2", |
||||
["string"] = "keyword2", |
||||
["uint"] = "keyword2", |
||||
["ulong"] = "keyword2", |
||||
["ushort"] = "keyword2", |
||||
-- literals |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["null"] = "literal", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,135 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.d$", "%.di$" }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { "/%+", "%+/" }, type = "comment" }, |
||||
{ pattern = { '`', '`', '\\' }, type = "string" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&%$]+", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*!", type = "function" }, -- highlight templates |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
{ pattern = "@safe", type = "keyword" }, |
||||
{ pattern = "@trusted", type = "keyword" }, |
||||
{ pattern = "@nogc", type = "keyword" }, |
||||
}, |
||||
symbols = { |
||||
["abstract"] = "keyword", |
||||
["alias"] = "keyword", |
||||
["align"] = "keyword", |
||||
["asm"] = "keyword", |
||||
["assert"] = "keyword", |
||||
["auto"] = "keyword", |
||||
["body"] = "keyword", |
||||
["bool"] = "keyword2", |
||||
["break"] = "keyword", |
||||
["byte"] = "keyword2", |
||||
["case"] = "keyword", |
||||
["cast"] = "keyword", |
||||
["catch"] = "keyword", |
||||
["cdouble"] = "keyword2", |
||||
["cent"] = "keyword2", |
||||
["cfloat"] = "keyword2", |
||||
["char"] = "keyword2", |
||||
["class"] = "keyword", |
||||
["const"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["creal"] = "keyword2", |
||||
["dchar"] = "keyword2", |
||||
["debug"] = "keyword", |
||||
["default"] = "keyword", |
||||
["delegate"] = "keyword", |
||||
["deprecated"] = "keyword", |
||||
["do"] = "keyword", |
||||
["double"] = "keyword2", |
||||
["else"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["export"] = "keyword", |
||||
["extern"] = "keyword", |
||||
["false"] = "literal", |
||||
["final"] = "keyword", |
||||
["finally"] = "keyword", |
||||
["float"] = "keyword2", |
||||
["for"] = "keyword", |
||||
["foreach"] = "keyword", |
||||
["foreach_reverse"] = "keyword", |
||||
["function"] = "keyword", |
||||
["goto"] = "keyword", |
||||
["idouble"] = "keyword2", |
||||
["if"] = "keyword", |
||||
["ifloat"] = "keyword2", |
||||
["immutable"] = "keyword", |
||||
["import"] = "keyword", |
||||
["in"] = "keyword", |
||||
["inout"] = "keyword", |
||||
["int"] = "keyword2", |
||||
["interface"] = "keyword", |
||||
["invariant"] = "keyword", |
||||
["ireal"] = "keyword2", |
||||
["is"] = "keyword", |
||||
["lazy"] = "keyword", |
||||
["long"] = "keyword2", |
||||
["macro"] = "keyword", |
||||
["mixin"] = "keyword", |
||||
["module"] = "keyword", |
||||
["new"] = "keyword", |
||||
["nothrow"] = "keyword", |
||||
["null"] = "literal", |
||||
["out"] = "keyword", |
||||
["override"] = "keyword", |
||||
["package"] = "keyword", |
||||
["pragma"] = "keyword", |
||||
["private"] = "keyword", |
||||
["protected"] = "keyword", |
||||
["public"] = "keyword", |
||||
["pure"] = "keyword", |
||||
["real"] = "keyword2", |
||||
["ref"] = "keyword", |
||||
["return"] = "keyword", |
||||
["scope"] = "keyword", |
||||
["shared"] = "keyword", |
||||
["short"] = "keyword2", |
||||
["static"] = "keyword", |
||||
["struct"] = "keyword", |
||||
["super"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["synchronized"] = "keyword", |
||||
["template"] = "keyword", |
||||
["this"] = "keyword", |
||||
["throw"] = "keyword", |
||||
["true"] = "literal", |
||||
["try"] = "keyword", |
||||
["typeid"] = "keyword", |
||||
["typeof"] = "keyword", |
||||
["ubyte"] = "keyword2", |
||||
["ucent"] = "keyword2", |
||||
["uint"] = "keyword2", |
||||
["ulong"] = "keyword2", |
||||
["union"] = "keyword", |
||||
["unittest"] = "keyword", |
||||
["ushort"] = "keyword2", |
||||
["version"] = "keyword", |
||||
["void"] = "keyword", |
||||
["wchar"] = "keyword2", |
||||
["while"] = "keyword", |
||||
["with"] = "keyword", |
||||
["__FILE__"] = "keyword", |
||||
["__FILE_FULL_PATH__"] = "keyword", |
||||
["__MODULE__"] = "keyword", |
||||
["__LINE__"] = "keyword", |
||||
["__FUNCTION__"] = "keyword", |
||||
["__PRETTY_FUNCTION__"] = "keyword", |
||||
["__gshared"] = "keyword", |
||||
["__traits"] = "keyword", |
||||
["__vector"] = "keyword", |
||||
["__parameters"] = "keyword", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,62 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.dart$" }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = "///.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = "%?%?", type = "operator" }, |
||||
{ pattern = "%?%.", type = "operator" }, |
||||
{ pattern = { "[%$%@]?\"", '"', '\\' }, type = "string" }, |
||||
{ pattern = "'\\x%x?%x?%x?%x'", type = "string" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["await"] = "keyword", |
||||
["bool"] = "keyword2", |
||||
["break"] = "keyword", |
||||
["case"] = "keyword", |
||||
["class"] = "keyword", |
||||
["const"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["default"] = "keyword", |
||||
["do"] = "keyword", |
||||
["double"] = "keyword2", |
||||
["dynamic"] = "keyword2", |
||||
["else"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["false"] = "literal", |
||||
["final"] = "keyword", |
||||
["finally"] = "keyword", |
||||
["for"] = "keyword", |
||||
["Function"] = "keyword2", |
||||
["if"] = "keyword", |
||||
["in"] = "keyword", |
||||
["int"] = "keyword2", |
||||
["List"] = "keyword2", |
||||
["Map"] = "keyword2", |
||||
["new"] = "keyword", |
||||
["null"] = "literal", |
||||
["part of"] = "keyword", |
||||
["print"] = "keyword", |
||||
["return"] = "keyword", |
||||
["static"] = "keyword", |
||||
["String"] = "keyword2", |
||||
["switch"] = "keyword", |
||||
["then"] = "keyword", |
||||
["this"] = "keyword2", |
||||
["true"] = "literal", |
||||
["void"] = "keyword", |
||||
["while"] = "keyword", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,92 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.ex$", "%.exs$"}, |
||||
comment = "#", |
||||
patterns = { |
||||
{ pattern = "#.*\n", type = "comment" }, |
||||
{ pattern = { ':"', '"', '\\' }, type = "number" }, |
||||
{ pattern = { '"""', '"""', '\\' }, type = "string" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = { '~%a[/"|\'%(%[%{<]', '[/"|\'%)%]%}>]', '\\' }, type = "string"}, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = ':"?[%a_][%w_]*"?', type = "number" }, |
||||
{ pattern = "[%a][%w_!?]*%f[(]", type = "function" }, |
||||
{ pattern = "%u%w+", type = "normal" }, |
||||
{ pattern = "@[%a_][%w_]*", type = "keyword2" }, |
||||
{ pattern = "_%a[%w_]*", type = "keyword2" }, |
||||
{ pattern = "[%+%-=/%*<>!|&]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["def"] = "keyword", |
||||
["defp"] = "keyword", |
||||
["defguard"] = "keyword", |
||||
["defguardp"] = "keyword", |
||||
["defmodule"] = "keyword", |
||||
["defprotocol"] = "keyword", |
||||
["defimpl"] = "keyword", |
||||
["defrecord"] = "keyword", |
||||
["defrecordp"] = "keyword", |
||||
["defmacro"] = "keyword", |
||||
["defmacrop"] = "keyword", |
||||
["defdelegate"] = "keyword", |
||||
["defoverridable"] = "keyword", |
||||
["defexception"] = "keyword", |
||||
["defcallback"] = "keyword", |
||||
["defstruct"] = "keyword", |
||||
["for"] = "keyword", |
||||
["case"] = "keyword", |
||||
["when"] = "keyword", |
||||
["with"] = "keyword", |
||||
["cond"] = "keyword", |
||||
["if"] = "keyword", |
||||
["unless"] = "keyword", |
||||
["try"] = "keyword", |
||||
["receive"] = "keyword", |
||||
["after"] = "keyword", |
||||
["raise"] = "keyword", |
||||
["rescue"] = "keyword", |
||||
["catch"] = "keyword", |
||||
["else"] = "keyword", |
||||
["quote"] = "keyword", |
||||
["unquote"] = "keyword", |
||||
["super"] = "keyword", |
||||
["unquote_splicing"] = "keyword", |
||||
["do"] = "keyword", |
||||
["end"] = "keyword", |
||||
["fn"] = "keyword", |
||||
["import"] = "keyword2", |
||||
["alias"] = "keyword2", |
||||
["use"] = "keyword2", |
||||
["require"] = "keyword2", |
||||
["and"] = "operator", |
||||
["or"] = "operator", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["nil"] = "literal", |
||||
}, |
||||
} |
||||
|
||||
syntax.add { |
||||
files = { "%.l?eex$" }, |
||||
patterns = { |
||||
{ pattern = { "<!%-%-", "%-%->" }, type = "comment" }, |
||||
{ pattern = { '%f[^>][^<]', '%f[<]' }, type = "normal" }, |
||||
{ pattern = { '<%%=?', '%%>' }, 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 = {}, |
||||
} |
@ -0,0 +1,99 @@ |
||||
-- Support for the GDScript programming language: https://godotengine.org/ |
||||
-- Covers the most used keywords up to Godot version 3.2.x |
||||
|
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.gd$" }, |
||||
comment = "#", |
||||
patterns = { |
||||
{ pattern = "#.-\n", type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?0x%x*", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.e]*", type = "number" }, |
||||
{ pattern = "-?%.?%d+", type = "number" }, |
||||
{ pattern = "[%+%:%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
-- keywords |
||||
["if"] = "keyword", |
||||
["elif"] = "keyword", |
||||
["else"] = "keyword", |
||||
["for"] = "keyword", |
||||
["while"] = "keyword", |
||||
["match"] = "keyword", |
||||
["break"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["pass"] = "keyword", |
||||
["return"] = "keyword", |
||||
["class"] = "keyword", |
||||
["class_name"] = "keyword", |
||||
["extends"] = "keyword", |
||||
["is"] = "keyword", |
||||
["in"] = "keyword", |
||||
["as"] = "keyword", |
||||
["and"] = "keyword", |
||||
["or"] = "keyword", |
||||
["not"] = "keyword", |
||||
["self"] = "keyword", |
||||
["tool"] = "keyword", |
||||
["signal"] = "keyword", |
||||
["func"] = "keyword", |
||||
["static"] = "keyword", |
||||
["const"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["var"] = "keyword", |
||||
["onready"] = "keyword", |
||||
["export"] = "keyword", |
||||
["setget"] = "keyword", |
||||
["breakpoint"] = "keyword", |
||||
["preload"] = "keyword", |
||||
["yield"] = "keyword", |
||||
["assert"] = "keyword", |
||||
["remote"] = "keyword", |
||||
["master"] = "keyword", |
||||
["puppet"] = "keyword", |
||||
["remotesync"] = "keyword", |
||||
["mastersync"] = "keyword", |
||||
["puppetsync"] = "keyword", |
||||
-- types |
||||
["void"] = "keyword2", |
||||
["int"] = "keyword2", |
||||
["float"] = "keyword2", |
||||
["bool"] = "keyword2", |
||||
["String"] = "keyword2", |
||||
["Vector2"] = "keyword2", |
||||
["Rect2"] = "keyword2", |
||||
["Vector3"] = "keyword2", |
||||
["Transform2D"] = "keyword2", |
||||
["Plane"] = "keyword2", |
||||
["Quat"] = "keyword2", |
||||
["AABB"] = "keyword2", |
||||
["Basis"] = "keyword2", |
||||
["Transform"] = "keyword2", |
||||
["Color"] = "keyword2", |
||||
["NodePath"] = "keyword2", |
||||
["RID"] = "keyword2", |
||||
["Object"] = "keyword2", |
||||
["Array"] = "keyword2", |
||||
["PoolByteArray"] = "keyword2", |
||||
["PoolIntArray"] = "keyword2", |
||||
["PoolRealArray"] = "keyword2", |
||||
["PoolStringArray"] = "keyword2", |
||||
["PoolVector2Array"] = "keyword2", |
||||
["PoolVector3Array"] = "keyword2", |
||||
["PoolColorArray"] = "keyword2", |
||||
["Dictionary"] = "keyword2", |
||||
-- literals |
||||
["null"] = "literal", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["PI"] = "literal", |
||||
["TAU"] = "literal", |
||||
["INF"] = "literal", |
||||
["NAN"] = "literal", |
||||
}, |
||||
} |
@ -0,0 +1,387 @@ |
||||
|
||||
local style = require "core.style" |
||||
local common = require "core.common" |
||||
|
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.glsl$", "%.frag$", "%.vert$", }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { "#", "[^\\]\n" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
|
||||
{ pattern = "ivec[2-4]", type = "keyword2" }, |
||||
{ pattern = "bvec[2-4]", type = "keyword2" }, |
||||
{ pattern = "uvec[2-4]", type = "keyword2" }, |
||||
{ pattern = "vec[2-4]", type = "keyword2" }, |
||||
{ pattern = "dmat[2-4]x[2-4]", type = "keyword2" }, |
||||
{ pattern = "dmat[2-4]", type = "keyword2" }, |
||||
{ pattern = "mat[2-4]x[2-4]", type = "keyword2" }, |
||||
{ pattern = "mat[2-4]", type = "keyword2" }, |
||||
|
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
--https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.4.60.pdf |
||||
--The symbols are added here in the order they appear in the spec |
||||
["if"] = "keyword", |
||||
["else"] = "keyword", |
||||
["do"] = "keyword", |
||||
["while"] = "keyword", |
||||
["for"] = "keyword", |
||||
["break"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["return"] = "keyword", |
||||
["const"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["case"] = "keyword", |
||||
["default"] = "keyword", |
||||
["const"] = "keyword", |
||||
["void"] = "keyword", |
||||
["bool"] = "keyword2", |
||||
["int"] = "keyword2", |
||||
["uint"] = "keyword2", |
||||
["float"] = "keyword2", |
||||
["double"] = "keyword2", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["NULL"] = "literal", |
||||
|
||||
["attribute"] = "keyword", |
||||
["varying"] = "keyword", |
||||
["uniform"] = "keyword", |
||||
["buffer"] = "keyword", |
||||
["shared"] = "keyword", |
||||
["layout"] = "keyword", |
||||
["centroid"] = "keyword", |
||||
["flat"] = "keyword", |
||||
["smooth"] = "keyword", |
||||
["noperspective"]= "keyword", |
||||
["patch"] = "keyword", |
||||
["sample"] = "keyword", |
||||
["in"] = "keyword", |
||||
["out"] = "keyword", |
||||
["inout"] = "keyword", |
||||
["invariant"] = "keyword", |
||||
["precise"] = "keyword", |
||||
["lowp"] = "keyword", |
||||
["mediump"] = "keyword", |
||||
["highp"] = "keyword", |
||||
["precision"] = "keyword", |
||||
["struct"] = "keyword", |
||||
["subroutine"] = "keyword", |
||||
|
||||
["coherent"] = "keyword", |
||||
["volatile"] = "keyword", |
||||
["readonly"] = "keyword", |
||||
["writeonly"] = "keyword", |
||||
|
||||
["sampler1D"] = "keyword2", |
||||
["sampler2D"] = "keyword2", |
||||
["sampler3D"] = "keyword2", |
||||
["samplerCube"] = "keyword2", |
||||
["sampler1DShadow"] = "keyword2", |
||||
["sampler2DShadow"] = "keyword2", |
||||
["samplerCubeShadow"] = "keyword2", |
||||
["sampler1DArray"] = "keyword2", |
||||
["sampler2DArray"] = "keyword2", |
||||
["samplerCubeArray"] = "keyword2", |
||||
["sampler1DArrayShadow"] = "keyword2", |
||||
["sampler2DArrayShadow"] = "keyword2", |
||||
["samplerCubeArrayShadow"]= "keyword2", |
||||
["isampler1D"] = "keyword2", |
||||
["isampler2D"] = "keyword2", |
||||
["isampler3D"] = "keyword2", |
||||
["isamplerCube"] = "keyword2", |
||||
["sampler2DMS"] = "keyword2", |
||||
["isampler2DMS"] = "keyword2", |
||||
["usampler2DMS"] = "keyword2", |
||||
["sampler2DMSArray"] = "keyword2", |
||||
["isampler2DMSArray"] = "keyword2", |
||||
["usampler2DMSArray"] = "keyword2", |
||||
["isampler1DArray"] = "keyword2", |
||||
["isampler2DArray"] = "keyword2", |
||||
["usampler1D"] = "keyword2", |
||||
["usampler2D"] = "keyword2", |
||||
["usampler3D"] = "keyword2", |
||||
["usamplerCube"] = "keyword2", |
||||
["usampler1DArray"] = "keyword2", |
||||
["usampler2DArray"] = "keyword2", |
||||
["sampler2DRect"] = "keyword2", |
||||
["sampler2DRectShadow"] = "keyword2", |
||||
["isampler2DRect"] = "keyword2", |
||||
["usampler2DRect"] = "keyword2", |
||||
["samplerBuffer"] = "keyword2", |
||||
["isamplerBuffer"] = "keyword2", |
||||
["usamplerBuffer"] = "keyword2", |
||||
|
||||
["image1D"] = "keyword2", |
||||
["iimage1D"] = "keyword2", |
||||
["uimage1D"] = "keyword2", |
||||
["image1DArray"] = "keyword2", |
||||
["iimage1DArray"] = "keyword2", |
||||
["uimage1DArray"] = "keyword2", |
||||
["image2D"] = "keyword2", |
||||
["iimage2D"] = "keyword2", |
||||
["uimage2D"] = "keyword2", |
||||
["image2DArray"] = "keyword2", |
||||
["iimage2DArray"] = "keyword2", |
||||
["uimage2DArray"] = "keyword2", |
||||
["image2DRect"] = "keyword2", |
||||
["iimage2DRect"] = "keyword2", |
||||
["uimage2DRect"] = "keyword2", |
||||
["image2DMS"] = "keyword2", |
||||
["iimage2DMS"] = "keyword2", |
||||
["uimage2DMS"] = "keyword2", |
||||
["image2DMSArray"] = "keyword2", |
||||
["iimage2DMSArray"]= "keyword2", |
||||
["uimage2DMSArray"]= "keyword2", |
||||
["image3D"] = "keyword2", |
||||
["iimage3D"] = "keyword2", |
||||
["uimage3D"] = "keyword2", |
||||
["imageCube"] = "keyword2", |
||||
["iimageCube"] = "keyword2", |
||||
["uimageCube"] = "keyword2", |
||||
["imageCubeArray"] = "keyword2", |
||||
["iimageCubeArray"]= "keyword2", |
||||
["uimageCubeArray"]= "keyword2", |
||||
["imageBuffer"] = "keyword2", |
||||
["iimageBuffer"] = "keyword2", |
||||
["uimageBuffer"] = "keyword2", |
||||
|
||||
["atomic_uint"] = "keyword2", |
||||
|
||||
["radians"] = "keyword", |
||||
["degrees"] = "keyword", |
||||
["sin"] = "keyword", |
||||
["cos"] = "keyword", |
||||
["tan"] = "keyword", |
||||
["asin"] = "keyword", |
||||
["acos"] = "keyword", |
||||
["atan"] = "keyword", |
||||
["sinh"] = "keyword", |
||||
["cosh"] = "keyword", |
||||
["tanh"] = "keyword", |
||||
["asinh"] = "keyword", |
||||
["acosh"] = "keyword", |
||||
["pow"] = "keyword", |
||||
["exp"] = "keyword", |
||||
["exp2"] = "keyword", |
||||
["log2"] = "keyword", |
||||
["sqrt"] = "keyword", |
||||
["inversesqrt"] = "keyword", |
||||
["abs"] = "keyword", |
||||
["sign"] = "keyword", |
||||
["floor"] = "keyword", |
||||
["trunc"] = "keyword", |
||||
["round"] = "keyword", |
||||
["roundEven"] = "keyword", |
||||
["ceil"] = "keyword", |
||||
["fract"] = "keyword", |
||||
["mod"] = "keyword", |
||||
["modf"] = "keyword", |
||||
["min"] = "keyword", |
||||
["max"] = "keyword", |
||||
["clamp"] = "keyword", |
||||
["mix"] = "keyword", |
||||
["step"] = "keyword", |
||||
["smoothstep"] = "keyword", |
||||
["isnan"] = "keyword", |
||||
["isinf"] = "keyword", |
||||
["floatBitsToInt"] = "keyword", |
||||
["floatBitsToUint"] = "keyword", |
||||
["intBitsToFloat"] = "keyword", |
||||
["uintBitsToFloat"] = "keyword", |
||||
["fma"] = "keyword", |
||||
["frexp"] = "keyword", |
||||
["ldexp"] = "keyword", |
||||
["packUnorm2x16"] = "keyword", |
||||
["packSnorm2x16"] = "keyword", |
||||
["packUnorm4x8"] = "keyword", |
||||
["packSnorm4x8"] = "keyword", |
||||
["unpackUnorm2x16"] = "keyword", |
||||
["unpackSnorm2x16"] = "keyword", |
||||
["unpackUnorm4x8"] = "keyword", |
||||
["unpackSnorm4x8"] = "keyword", |
||||
["packHalf2x16"] = "keyword", |
||||
["unpackHalf2x16"] = "keyword", |
||||
["packDouble2x32"] = "keyword", |
||||
["unpackDouble2x32"] = "keyword", |
||||
["length"] = "keyword", |
||||
["distance"] = "keyword", |
||||
["dot"] = "keyword", |
||||
["cross"] = "keyword", |
||||
["normalize"] = "keyword", |
||||
["ftransform"] = "keyword", |
||||
["faceforward"] = "keyword", |
||||
["reflect"] = "keyword", |
||||
["refract"] = "keyword", |
||||
["matrixCompMult"] = "keyword", |
||||
["outerProduct"] = "keyword", |
||||
["transpose"] = "keyword", |
||||
["determinant"] = "keyword", |
||||
["inverse"] = "keyword", |
||||
["lessThan"] = "keyword", |
||||
["lessThanEqual"] = "keyword", |
||||
["greaterThan"] = "keyword", |
||||
["greaterThanEqual"] = "keyword", |
||||
["equal"] = "keyword", |
||||
["notEqual"] = "keyword", |
||||
["any"] = "keyword", |
||||
["all"] = "keyword", |
||||
["not"] = "keyword", |
||||
["uaddCarry"] = "keyword", |
||||
["usubBorrow"] = "keyword", |
||||
["umulExtended"] = "keyword", |
||||
["imulExtended"] = "keyword", |
||||
["bitfieldExtract"] = "keyword", |
||||
["bitfieldInsert"] = "keyword", |
||||
["bitfieldReverse"] = "keyword", |
||||
["bitCount"] = "keyword", |
||||
["findLSB"] = "keyword", |
||||
["findMSB"] = "keyword", |
||||
["textureSize"] = "keyword", |
||||
["textureQueryLod"] = "keyword", |
||||
["textureQueryLevels"] = "keyword", |
||||
["textureSamples"] = "keyword", |
||||
["texture"] = "keyword", |
||||
["textureProj"] = "keyword", |
||||
["textureLod"] = "keyword", |
||||
["textureOffset"] = "keyword", |
||||
["texelFetch"] = "keyword", |
||||
["texelFetchOffset"] = "keyword", |
||||
["textureProjOffset"] = "keyword", |
||||
["textureLodOffset"] = "keyword", |
||||
["textureProjLod"] = "keyword", |
||||
["textureProjLodOffset"] = "keyword", |
||||
["textureGrad"] = "keyword", |
||||
["textureGradOffset"] = "keyword", |
||||
["textureProjGrad"] = "keyword", |
||||
["textureProjGradOffset"]= "keyword", |
||||
["textureGather"] = "keyword", |
||||
["textureGatherOffset"] = "keyword", |
||||
["textureGatherOffsets"] = "keyword", |
||||
|
||||
--Atomic Counter Functions |
||||
["atomicCounterIncrement"]= "keyword", |
||||
["atomicCounterDecrement"]= "keyword", |
||||
["atomicCounter"] = "keyword", |
||||
["atomicCounterAdd"] = "keyword", |
||||
["atomicCounterSubtract"] = "keyword", |
||||
["atomicCounterMin"] = "keyword", |
||||
["atomicCounterMax"] = "keyword", |
||||
["atomicCounterAnd"] = "keyword", |
||||
["atomicCounterOr"] = "keyword", |
||||
["atomicCounterXor"] = "keyword", |
||||
["atomicCounterExchange"] = "keyword", |
||||
["atomicCounterCompSwap"] = "keyword", |
||||
--Atomic Memory Functions |
||||
["atomicAdd"] = "keyword", |
||||
["atomicMin"] = "keyword", |
||||
["atomicMax"] = "keyword", |
||||
["atomicAnd"] = "keyword", |
||||
["atomicOr"] = "keyword", |
||||
["atomicXor"] = "keyword", |
||||
["atomicExchange"]= "keyword", |
||||
["atomicCompSwap"]= "keyword", |
||||
--Image Functions |
||||
["imageSize"] = "keyword", |
||||
["imageSamples"] = "keyword", |
||||
["imageLoad"] = "keyword", |
||||
["imageStore"] = "keyword", |
||||
["imageAtomicAdd"] = "keyword", |
||||
["imageAtomicMin"] = "keyword", |
||||
["imageAtomicMax"] = "keyword", |
||||
["imageAtomicAnd"] = "keyword", |
||||
["imageAtomicOr"] = "keyword", |
||||
["imageAtomicXor"] = "keyword", |
||||
["imageAtomicExchange"]= "keyword", |
||||
["imageAtomicCompSwap"]= "keyword", |
||||
--Geometry Shader Functions |
||||
["EmitStreamVertex"] = "keyword", |
||||
["EndStreamPrimitive"] = "keyword", |
||||
["EmitVertex"] = "keyword", |
||||
["EndPrimitive"] = "keyword", |
||||
--Fragment Processing Functions |
||||
["dFdx"] = "keyword", |
||||
["dFdy"] = "keyword", |
||||
["dFdxFine"] = "keyword", |
||||
["dFdyFine"] = "keyword", |
||||
["dFdxCoarse"] = "keyword", |
||||
["dFdyCoarse"] = "keyword", |
||||
["fwidth"] = "keyword", |
||||
["fwidthFine"] = "keyword", |
||||
["fwidthCoarse"] = "keyword", |
||||
["interpolateAtCentroid"]= "keyword", |
||||
["interpolateAtSample"] = "keyword", |
||||
["interpolateAtOffset"] = "keyword", |
||||
--Shader Invocation Control Functions |
||||
["barrier"] = "keyword", |
||||
--Shader Memory Control Functions |
||||
["memoryBarrier"] = "keyword", |
||||
["memoryBarrierAtomicCounter"]= "keyword", |
||||
["memoryBarrierBuffer"] = "keyword", |
||||
["memoryBarrierShared"] = "keyword", |
||||
["memoryBarrierImage"] = "keyword", |
||||
["groupMemoryBarrier"] = "keyword", |
||||
--Subpass-Input Functions |
||||
["subpassLoad"] = "keyword", |
||||
--Shader Invocation Group Functions |
||||
["anyInvocation"] = "keyword", |
||||
["allInvocations"] = "keyword", |
||||
["allInvocationsEqual"]= "keyword", |
||||
|
||||
--"In addition, when targeting Vulkan, the following keywords also exist:" |
||||
["texture1D"] = "keyword", |
||||
["texture1DArray"] = "keyword", |
||||
["itexture1D"] = "keyword", |
||||
["itexture1DArray"] = "keyword", |
||||
["utexture1D"] = "keyword", |
||||
["utexture1DArray"] = "keyword", |
||||
["texture2D"] = "keyword", |
||||
["texture2DArray"] = "keyword", |
||||
["itexture2D"] = "keyword", |
||||
["itexture2DArray"] = "keyword", |
||||
["utexture2D"] = "keyword", |
||||
["utexture2DArray"] = "keyword", |
||||
["texture2DRect"] = "keyword", |
||||
["itexture2DRect"] = "keyword", |
||||
["utexture2DRect"] = "keyword", |
||||
["texture2DMS"] = "keyword", |
||||
["itexture2DMS"] = "keyword", |
||||
["utexture2DMS"] = "keyword", |
||||
["texture2DMSArray"] = "keyword", |
||||
["itexture2DMSArray"]= "keyword", |
||||
["utexture2DMSArray"]= "keyword", |
||||
["texture3D"] = "keyword", |
||||
["itexture3D"] = "keyword", |
||||
["utexture3D"] = "keyword", |
||||
["textureCube"] = "keyword", |
||||
["itextureCube"] = "keyword", |
||||
["utextureCube"] = "keyword", |
||||
["textureCubeArray"] = "keyword", |
||||
["itextureCubeArray"]= "keyword", |
||||
["utextureCubeArray"]= "keyword", |
||||
["textureBuffer"] = "keyword", |
||||
["itextureBuffer"] = "keyword", |
||||
["utextureBuffer"] = "keyword", |
||||
["sampler"] = "keyword2", |
||||
["samplerShadow"] = "keyword2", |
||||
["subpassInput"] = "keyword2", |
||||
["isubpassInput"] = "keyword2", |
||||
["usubpassInput"] = "keyword2", |
||||
["subpassInputMS"] = "keyword2", |
||||
["isubpassInputMS"] = "keyword2", |
||||
["usubpassInputMS"] = "keyword2", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,72 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.go$" }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "`", "`", '\\' }, type = "string" }, |
||||
{ pattern = "0[oO_][0-7]+", type = "number" }, |
||||
{ pattern = "-?0x[%x_]+", type = "number" }, |
||||
{ pattern = "-?%d+_%d", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = ":=", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["if"] = "keyword", |
||||
["else"] = "keyword", |
||||
["elseif"] = "keyword", |
||||
["for"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["return"] = "keyword", |
||||
["struct"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["case"] = "keyword", |
||||
["default"] = "keyword", |
||||
["const"] = "keyword", |
||||
["package"] = "keyword", |
||||
["import"] = "keyword", |
||||
["func"] = "keyword", |
||||
["var"] = "keyword", |
||||
["type"] = "keyword", |
||||
["interface"] = "keyword", |
||||
["select"] = "keyword", |
||||
["break"] = "keyword", |
||||
["range"] = "keyword", |
||||
["chan"] = "keyword", |
||||
["defer"] = "keyword", |
||||
["go"] = "keyword", |
||||
["fallthrough"] = "keyword", |
||||
["int"] = "keyword2", |
||||
["int64"] = "keyword2", |
||||
["int32"] = "keyword2", |
||||
["int16"] = "keyword2", |
||||
["int8"] = "keyword2", |
||||
["uint"] = "keyword2", |
||||
["uint64"] = "keyword2", |
||||
["uint32"] = "keyword2", |
||||
["uint16"] = "keyword2", |
||||
["uint8"] = "keyword2", |
||||
["uintptr"] = "keyword2", |
||||
["float64"] = "keyword2", |
||||
["float32"] = "keyword2", |
||||
["map"] = "keyword2", |
||||
["string"] = "keyword2", |
||||
["rune"] = "keyword2", |
||||
["bool"] = "keyword2", |
||||
["byte"] = "keyword2", |
||||
["error"] = "keyword2", |
||||
["complex64"] = "keyword2", |
||||
["complex128"] = "keyword2", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["nil"] = "literal", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,275 @@ |
||||
|
||||
local style = require "core.style" |
||||
local common = require "core.common" |
||||
|
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.hlsl$", }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { "#", "[^\\]\n" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
|
||||
{ pattern = "int[1-9]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "int1[0-6]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "int[1-9]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "int1[0-6]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "int[1-4]", type = "keyword2" }, |
||||
|
||||
{ pattern = "uint[1-9]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "uint1[0-6]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "uint[1-9]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "uint1[0-6]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "uint[1-4]", type = "keyword2" }, |
||||
|
||||
{ pattern = "dword[1-9]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "dword1[0-6]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "dword[1-9]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "dword1[0-6]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "dword[1-4]", type = "keyword2" }, |
||||
|
||||
{ pattern = "half[1-9]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "half1[0-6]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "half[1-9]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "half1[0-6]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "half[1-4]", type = "keyword2" }, |
||||
|
||||
{ pattern = "float[1-9]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "float1[0-6]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "float[1-9]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "float1[0-6]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "float[1-4]", type = "keyword2" }, |
||||
|
||||
{ pattern = "double[1-9]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "double1[0-6]x[1-9]", type = "keyword2" }, |
||||
{ pattern = "double[1-9]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "double1[0-6]x1[0-6]", type = "keyword2" }, |
||||
{ pattern = "double[1-4]", type = "keyword2" }, |
||||
|
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
--https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords |
||||
--The symbols are added in the order they appear on this webpage, which is alphabetically |
||||
["AppendStructuredBuffer"]= "keyword", |
||||
["asm"] = "keyword", |
||||
["asm_fragment"] = "keyword", |
||||
["BlendState"] = "keyword2", |
||||
["bool"] = "keyword2", |
||||
["break"] = "keyword", |
||||
["Buffer"] = "keyword2", |
||||
["ByteAddressBuffer"]= "keyword2", |
||||
["case"] = "keyword", |
||||
["cbuffer"] = "keyword2", |
||||
["centroid"] = "keyword2", |
||||
["class"] = "keyword", |
||||
["column_major"] = "keyword", |
||||
["compile"] = "keyword", |
||||
["compile_fragment"] = "keyword", |
||||
["CompileShader"] = "keyword", |
||||
["const"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["ComputeShader"] = "keyword", |
||||
["ConsumeStructuredBuffer"]= "keyword", |
||||
["default"] = "keyword", |
||||
["DepthStencilState"]= "keyword", |
||||
["DepthStencilView"] = "keyword", |
||||
["discard"] = "keyword", |
||||
["do"] = "keyword", |
||||
["double"] = "keyword2", |
||||
["DomainShader"] = "keyword2", |
||||
["dword"] = "keyword2", |
||||
["else"] = "keyword", |
||||
["export"] = "keyword", |
||||
["extern"] = "keyword", |
||||
["false"] = "literal", |
||||
["float"] = "keyword2", |
||||
["for"] = "keyword", |
||||
["fxgroup"] = "keyword2", |
||||
["GeometryShader"] = "keyword2", |
||||
["groupshared"] = "keyword", |
||||
["half"] = "keyword2", |
||||
["HullShader"] = "keyword2", |
||||
["if"] = "keyword", |
||||
["in"] = "keyword", |
||||
["inline"] = "keyword", |
||||
["inout"] = "keyword", |
||||
["InputPatch"] = "keyword2", |
||||
["int"] = "keyword2", |
||||
["interface"] = "keyword", |
||||
["line"] = "keyword2", |
||||
["lineadj"] = "keyword2", |
||||
["linear"] = "keyword", |
||||
["LineStream"] = "keyword2", |
||||
["matrix"] = "keyword2", |
||||
["min16float"] = "keyword2", |
||||
["min10float"] = "keyword2", |
||||
["min16int"] = "keyword2", |
||||
["min12int"] = "keyword2", |
||||
["min16uint"] = "keyword2", |
||||
["namespace"] = "keyword", |
||||
["nointerpolation"] = "keyword", |
||||
["noperspective"] = "keyword", |
||||
["NULL"] = "literal", |
||||
["out"] = "keyword", |
||||
["OutputPatch"] = "keyword2", |
||||
["packoffset"] = "keyword", |
||||
["pass"] = "keyword", |
||||
["pixelfragment"] = "keyword", |
||||
["PixelShader"] = "keyword2", |
||||
["point"] = "keyword2", |
||||
["PointStream"] = "keyword2", |
||||
["precise"] = "keyword", |
||||
["RasterizerState"] = "keyword2", |
||||
["RenderTargetView"] = "keyword2", |
||||
["return"] = "keyword", |
||||
["register"] = "keyword", |
||||
["row_major"] = "keyword", |
||||
["RWBuffer"] = "keyword2", |
||||
["RWByteAddressBuffer"]= "keyword2", |
||||
["RWStructuredBuffer"]= "keyword2", |
||||
["RWTexture1D"] = "keyword2", |
||||
["RWTexture1DArray"] = "keyword2", |
||||
["RWTexture2D"] = "keyword2", |
||||
["RWTexture2DArray"] = "keyword2", |
||||
["RWTexture3D"] = "keyword2", |
||||
["sample"] = "keyword", |
||||
["sampler"] = "keyword2", |
||||
["SamplerState"] = "keyword2", |
||||
["SamplerComparisonState"]= "keyword2", |
||||
["shared"] = "keyword", |
||||
["snorm"] = "keyword", |
||||
["stateblock"] = "keyword", |
||||
["stateblock_state"] = "keyword", |
||||
["static"] = "keyword", |
||||
["string"] = "keyword2", |
||||
["struct"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["StructuredBuffer"] = "keyword2", |
||||
["tbuffer"] = "keyword2", |
||||
["technique"] = "keyword2", |
||||
["technique10"] = "keyword2", |
||||
["technique11"] = "keyword2", |
||||
["texture"] = "keyword2", |
||||
["Texture1D"] = "keyword2", |
||||
["Texture1DArray"] = "keyword2", |
||||
["Texture2D"] = "keyword2", |
||||
["Texture2DArray"] = "keyword2", |
||||
["Texture2DMS"] = "keyword2", |
||||
["Texture2DMSArray"] = "keyword2", |
||||
["Texture3D"] = "keyword2", |
||||
["TextureCube"] = "keyword2", |
||||
["TextureCubeArray"] = "keyword2", |
||||
["true"] = "literal", |
||||
["typedef"] = "keyword", |
||||
["triangle"] = "keyword2", |
||||
["triangleadj"] = "keyword2", |
||||
["TriangleStream"] = "keyword2", |
||||
["uint"] = "keyword2", |
||||
["uniform"] = "keyword", |
||||
["unorm"] = "keyword", |
||||
["unsigned"] = "keyword", |
||||
["vector"] = "keyword2", |
||||
["vertexfragment"] = "keyword2", |
||||
["VertexShader"] = "keyword2", |
||||
["void"] = "keyword", |
||||
["volatile"] = "keyword", |
||||
["while"] = "keyword", |
||||
|
||||
--https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions |
||||
--The symbols are added in the order they appear on this webpage, which is alphabetically |
||||
["abort"] = "keyword", |
||||
["abs"] = "keyword", |
||||
["acos"] = "keyword", |
||||
["all"] = "keyword", |
||||
["any"] = "keyword", |
||||
["asdouble"] = "keyword", |
||||
["asfloat"] = "keyword", |
||||
["asin"] = "keyword", |
||||
["asint"] = "keyword", |
||||
["asuint"] = "keyword", |
||||
["atan"] = "keyword", |
||||
["atan2"] = "keyword", |
||||
["ceil"] = "keyword", |
||||
["clamp"] = "keyword", |
||||
["clip"] = "keyword", |
||||
["cos"] = "keyword", |
||||
["cosh"] = "keyword", |
||||
["countbits"] = "keyword", |
||||
["cross"] = "keyword", |
||||
["ddx"] = "keyword", |
||||
["ddx_coarse"] = "keyword", |
||||
["ddx_fine"] = "keyword", |
||||
["ddy"] = "keyword", |
||||
["ddy_coarse"] = "keyword", |
||||
["ddy_fine"] = "keyword", |
||||
["degrees"] = "keyword", |
||||
["determinant"] = "keyword", |
||||
["distance"] = "keyword", |
||||
["dot"] = "keyword", |
||||
["dst"] = "keyword", |
||||
["errorf"] = "keyword", |
||||
["exp"] = "keyword", |
||||
["exp2"] = "keyword", |
||||
["f16tof32"] = "keyword", |
||||
["f32tof16"] = "keyword", |
||||
["faceforward"] = "keyword", |
||||
["firstbithigh"]= "keyword", |
||||
["firstbitlow"] = "keyword", |
||||
["floor"] = "keyword", |
||||
["fma"] = "keyword", |
||||
["fmod"] = "keyword", |
||||
["frac"] = "keyword", |
||||
["frexp"] = "keyword", |
||||
["fwidth"] = "keyword", |
||||
["isfinite"] = "keyword", |
||||
["isinf"] = "keyword", |
||||
["isnan"] = "keyword", |
||||
["ldexp"] = "keyword", |
||||
["length"] = "keyword", |
||||
["lerp"] = "keyword", |
||||
["lit"] = "keyword", |
||||
["log"] = "keyword", |
||||
["log10"] = "keyword", |
||||
["log2"] = "keyword", |
||||
["mad"] = "keyword", |
||||
["max"] = "keyword", |
||||
["min"] = "keyword", |
||||
["modf"] = "keyword", |
||||
["msad4"] = "keyword", |
||||
["mul"] = "keyword", |
||||
["noise"] = "keyword", |
||||
["normalize"] = "keyword", |
||||
["pow"] = "keyword", |
||||
["printf"] = "keyword", |
||||
["radians"] = "keyword", |
||||
["rcp"] = "keyword", |
||||
["reflect"] = "keyword", |
||||
["refract"] = "keyword", |
||||
["reversebits"] = "keyword", |
||||
["round"] = "keyword", |
||||
["rsqrt"] = "keyword", |
||||
["saturate"] = "keyword", |
||||
["sign"] = "keyword", |
||||
["sin"] = "keyword", |
||||
["sincos"] = "keyword", |
||||
["sinh"] = "keyword", |
||||
["smoothstep"] = "keyword", |
||||
["sqrt"] = "keyword", |
||||
["step"] = "keyword", |
||||
["tan"] = "keyword", |
||||
["tanh"] = "keyword", |
||||
["transpose"] = "keyword", |
||||
["trunc"] = "keyword", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,45 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.hs$" }, |
||||
comment = "%-%-", |
||||
patterns = { |
||||
{ pattern = {"%-%-", "\n"}, type = "comment" }, |
||||
{ pattern = { "{%-", "%-}" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[!%#%$%%&*+./%<=>%?@\\%^|%-~:]", type = "operator" }, |
||||
{ pattern = "[%a_'][%w_']*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["as"] = "keyword", |
||||
["case"] = "keyword", |
||||
["of"] = "keyword", |
||||
["class"] = "keyword", |
||||
["data"] = "keyword", |
||||
["default"] = "keyword", |
||||
["deriving"] = "keyword", |
||||
["do"] = "keyword", |
||||
["forall"] = "keyword", |
||||
["foreign"] = "keyword", |
||||
["hiding"] = "keyword", |
||||
["if"] = "keyword", |
||||
["then"] = "keyword", |
||||
["else"] = "keyword", |
||||
["import"] = "keyword", |
||||
["infix"] = "keyword", |
||||
["infixl"] = "keyword", |
||||
["infixr"] = "keyword", |
||||
["let"] = "keyword", |
||||
["in"] = "keyword", |
||||
["mdo"] = "keyword", |
||||
["module"] = "keyword", |
||||
["newtype"] = "keyword", |
||||
["qualified"] = "keyword", |
||||
["type"] = "keyword", |
||||
["where"] = "keyword", |
||||
}, |
||||
} |
@ -0,0 +1,75 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.java$" }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "'\\x%x?%x?%x?%x'", type = "string" }, -- character hexadecimal escape sequence |
||||
{ pattern = "'\\u%x%x%x%x'", type = "string" }, -- character unicode escape sequence |
||||
{ pattern = "'\\?.'", type = "string" }, -- character literal |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["if"] = "keyword", |
||||
["then"] = "keyword", |
||||
["else"] = "keyword", |
||||
["else if"] = "keyword", |
||||
["do"] = "keyword", |
||||
["while"] = "keyword", |
||||
["for"] = "keyword", |
||||
["new"] = "keyword", |
||||
["break"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["return"] = "keyword", |
||||
["goto"] = "keyword", |
||||
["class"] = "keyword", |
||||
["implements"] = "keyword", |
||||
["extends"] = "keyword", |
||||
["private"] = "keyword", |
||||
["protected"] = "keyword", |
||||
["public"] = "keyword", |
||||
["abstract"] = "keyword", |
||||
["interface"] = "keyword", |
||||
["assert"] = "keyword", |
||||
["import"] = "keyword", |
||||
["native"] = "keyword", |
||||
["package"] = "keyword", |
||||
["super"] = "keyword", |
||||
["synchronized"] = "keyword", |
||||
["instanceof"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["catch"] = "keyword", |
||||
["throw"] = "keyword", |
||||
["throws"] = "keyword", |
||||
["try"] = "keyword", |
||||
["transient"] = "keyword", |
||||
["finally"] = "keyword", |
||||
["static"] = "keyword", |
||||
["volatile"] = "keyword", |
||||
["final"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["case"] = "keyword", |
||||
["default"] = "keyword", |
||||
["void"] = "keyword", |
||||
["int"] = "keyword2", |
||||
["short"] = "keyword2", |
||||
["byte"] = "keyword2", |
||||
["long"] = "keyword2", |
||||
["float"] = "keyword2", |
||||
["double"] = "keyword2", |
||||
["char"] = "keyword2", |
||||
["boolean"] = "keyword2", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["null"] = "literal", |
||||
}, |
||||
} |
@ -0,0 +1,35 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = "meson.build$", |
||||
comment = "#", |
||||
patterns = { |
||||
{ pattern = { "#", "\n" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = { "'''", "'''" }, type = "string" }, |
||||
{ pattern = "0x[%da-fA-F]+", type = "number" }, |
||||
{ pattern = "-?%d+%d*", type = "number" }, |
||||
{ pattern = "[%+%-=/%%%*!]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["if"] = "keyword", |
||||
["then"] = "keyword", |
||||
["else"] = "keyword", |
||||
["elif"] = "keyword", |
||||
["endif"] = "keyword", |
||||
["foreach"] = "keyword", |
||||
["endforeach"] = "keyword", |
||||
["break"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["and"] = "keyword", |
||||
["not"] = "keyword", |
||||
["or"] = "keyword", |
||||
["in"] = "keyword", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,120 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
local patterns = {} |
||||
|
||||
local symbols = { |
||||
["nil"] = "literal", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
} |
||||
|
||||
local number_patterns = { |
||||
"0[bB][01][01_]*", |
||||
"0o[0-7][0-7_]*", |
||||
"0[xX]%x[%x_]*", |
||||
"%d[%d_]*%.%d[%d_]*[eE][-+]?%d[%d_]*", |
||||
"%d[%d_]*%.%d[%d_]*", |
||||
"%d[%d_]*", |
||||
} |
||||
|
||||
local type_suffix_patterns = {} |
||||
|
||||
for _, size in ipairs({"", "8", "16", "32", "64"}) do |
||||
table.insert(type_suffix_patterns, "'?[fuiFUI]"..size) |
||||
end |
||||
|
||||
for _, pattern in ipairs(number_patterns) do |
||||
for _, suffix in ipairs(type_suffix_patterns) do |
||||
table.insert(patterns, { pattern = pattern..suffix, type = "literal" }) |
||||
end |
||||
table.insert(patterns, { pattern = pattern, type = "literal" }) |
||||
end |
||||
|
||||
local keywords = { |
||||
"addr", "and", "as", "asm", |
||||
"bind", "block", "break", |
||||
"case", "cast", "concept", "const", "continue", "converter", |
||||
"defer", "discard", "distinct", "div", "do", |
||||
"elif", "else", "end", "enum", "except", "export", |
||||
"finally", "for", "from", "func", |
||||
"if", "import", "in", "include", "interface", "is", "isnot", "iterator", |
||||
"let", |
||||
"macro", "method", "mixin", "mod", |
||||
"not", "notin", |
||||
"object", "of", "or", "out", |
||||
"proc", "ptr", |
||||
"raise", "ref", "return", |
||||
"shl", "shr", "static", |
||||
"template", "try", "tuple", "type", |
||||
"using", |
||||
"var", |
||||
"when", "while", |
||||
"xor", |
||||
"yield", |
||||
} |
||||
|
||||
for _, keyword in ipairs(keywords) do |
||||
symbols[keyword] = "keyword" |
||||
end |
||||
|
||||
local standard_types = { |
||||
"bool", "byte", |
||||
"int", "int8", "int16", "int32", "int64", |
||||
"uint", "uint8", "uint16", "uint32", "uint64", |
||||
"float", "float32", "float64", |
||||
"char", "string", "cstring", |
||||
"pointer", |
||||
"typedesc", |
||||
"void", "auto", "any", |
||||
"untyped", "typed", |
||||
"clong", "culong", "cchar", "cschar", "cshort", "cint", "csize", "csize_t", |
||||
"clonglong", "cfloat", "cdouble", "clongdouble", "cuchar", "cushort", |
||||
"cuint", "culonglong", "cstringArray", |
||||
} |
||||
|
||||
for _, type in ipairs(standard_types) do |
||||
symbols[type] = "keyword2" |
||||
end |
||||
|
||||
local standard_generic_types = { |
||||
"range", |
||||
"array", "open[aA]rray", "varargs", "seq", "set", |
||||
"sink", "lent", "owned", |
||||
} |
||||
|
||||
for _, type in ipairs(standard_generic_types) do |
||||
table.insert(patterns, { pattern = type.."%f[%[]", type = "keyword2" }) |
||||
table.insert(patterns, { pattern = type.." +%f[%w]", type = "keyword2" }) |
||||
end |
||||
|
||||
local user_patterns = { |
||||
-- comments |
||||
{ pattern = { "##?%[", "]##?" }, type = "comment" }, |
||||
{ pattern = "##?.-\n", type = "comment" }, |
||||
-- strings and chars |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { '"""', '"""[^"]' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "literal" }, |
||||
-- function calls |
||||
{ pattern = "[a-zA-Z][a-zA-Z0-9_]*%f[(]", type = "function" }, |
||||
-- identifiers |
||||
{ pattern = "[A-Z][a-zA-Z0-9_]*", type = "keyword2" }, |
||||
{ pattern = "[a-zA-Z][a-zA-Z0-9_]*", type = "symbol" }, |
||||
-- operators |
||||
{ pattern = "%.%f[^.]", type = "normal" }, |
||||
{ pattern = ":%f[ ]", type = "normal" }, |
||||
{ pattern = "[=+%-*/<>@$~&%%|!?%^&.:\\]+", type = "operator" }, |
||||
} |
||||
|
||||
for _, pattern in ipairs(user_patterns) do |
||||
table.insert(patterns, pattern) |
||||
end |
||||
|
||||
local nim = { |
||||
files = { "%.nim$", "%.nims$", "%.nimble$" }, |
||||
comment = "#", |
||||
patterns = patterns, |
||||
symbols = symbols, |
||||
} |
||||
|
||||
syntax.add(nim) |
@ -0,0 +1,61 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.m$" }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { "#", "[^\\]\n" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "@[%a_][%w_]*", type = "keyword2" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["if"] = "keyword", |
||||
["then"] = "keyword", |
||||
["else"] = "keyword", |
||||
["elseif"] = "keyword", |
||||
["do"] = "keyword", |
||||
["while"] = "keyword", |
||||
["for"] = "keyword", |
||||
["break"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["return"] = "keyword", |
||||
["goto"] = "keyword", |
||||
["struct"] = "keyword", |
||||
["union"] = "keyword", |
||||
["typedef"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["extern"] = "keyword", |
||||
["static"] = "keyword", |
||||
["volatile"] = "keyword", |
||||
["const"] = "keyword", |
||||
["inline"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["case"] = "keyword", |
||||
["default"] = "keyword", |
||||
["auto"] = "keyword", |
||||
["const"] = "keyword", |
||||
["void"] = "keyword", |
||||
["int"] = "keyword2", |
||||
["short"] = "keyword2", |
||||
["long"] = "keyword2", |
||||
["float"] = "keyword2", |
||||
["double"] = "keyword2", |
||||
["char"] = "keyword2", |
||||
["unsigned"] = "keyword2", |
||||
["bool"] = "keyword2", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["NULL"] = "literal", |
||||
["nil"] = "literal", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,99 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.php$", "%.phtml" }, |
||||
headers = "^<%?php", |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = "#.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
-- I dont know why the '//' are needed but I leave it here for now |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "%\\x[%da-fA-F]+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*", type = "number" }, |
||||
{ pattern = "-?%.?%d+", type = "number" }, |
||||
{ pattern = "[%.%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
-- To indicate variables. |
||||
{ pattern = "%$", type = "operator" }, |
||||
}, |
||||
symbols = { |
||||
["return"] = "keyword", |
||||
["if"] = "keyword", |
||||
["else"] = "keyword", |
||||
["elseif"] = "keyword", |
||||
["endif"] = "keyword", |
||||
["declare"] = "keyword", |
||||
["enddeclare"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["endswitch"] = "keyword", |
||||
["as"] = "keyword", |
||||
["do"] = "keyword", |
||||
["for"] = "keyword", |
||||
["endfor"] = "keyword", |
||||
["foreach"] = "keyword", |
||||
["endforeach"] = "keyword", |
||||
["while"] = "keyword", |
||||
["endwhile"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["case"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["default"] = "keyword", |
||||
["break"] = "keyword", |
||||
["exit"] = "keyword", |
||||
["goto"] = "keyword", |
||||
|
||||
["catch"] = "keyword", |
||||
["throw"] = "keyword", |
||||
["try"] = "keyword", |
||||
["finally"] = "keyword", |
||||
|
||||
["class"] = "keyword", |
||||
["trait"] = "keyword", |
||||
["interface"] = "keyword", |
||||
["public"] = "keyword", |
||||
["static"] = "keyword", |
||||
["protected"] = "keyword", |
||||
["private"] = "keyword", |
||||
["abstract"] = "keyword", |
||||
["final"] = "keyword", |
||||
|
||||
["function"] = "keyword2", |
||||
["global"] = "keyword2", |
||||
["var"] = "keyword2", |
||||
["const"] = "keyword2", |
||||
["bool"] = "keyword2", |
||||
["boolean"] = "keyword2", |
||||
["int"] = "keyword2", |
||||
["integer"] = "keyword2", |
||||
["real"] = "keyword2", |
||||
["double"] = "keyword2", |
||||
["float"] = "keyword2", |
||||
["string"] = "keyword2", |
||||
["array"] = "keyword2", |
||||
["object"] = "keyword2", |
||||
["callable"] = "keyword2", |
||||
["iterable"] = "keyword2", |
||||
|
||||
["namespace"] = "keyword2", |
||||
["extends"] = "keyword2", |
||||
["implements"] = "keyword2", |
||||
["instanceof"] = "keyword2", |
||||
["require"] = "keyword2", |
||||
["require_once"] = "keyword2", |
||||
["include"] = "keyword2", |
||||
["include_once"] = "keyword2", |
||||
["use"] = "keyword2", |
||||
["new"] = "keyword2", |
||||
["clone"] = "keyword2", |
||||
|
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["NULL"] = "literal", |
||||
["parent"] = "literal", |
||||
["self"] = "literal", |
||||
}, |
||||
} |
@ -0,0 +1,51 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = "%.p8$", |
||||
headers = "^pico-8 cartridge", |
||||
comment = "--", |
||||
patterns = { |
||||
{ pattern = { 'pico%-8 cartridge', '__lua__' }, type = "comment" }, |
||||
{ pattern = { '__gfx__\n', '%z' }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = { "%[%[", "%]%]" }, type = "string" }, |
||||
{ pattern = { "%-%-%[%[", "%]%]"}, type = "comment" }, |
||||
{ pattern = "%-%-.-\n", type = "comment" }, |
||||
{ pattern = "-?0x%x+", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*", type = "number" }, |
||||
{ pattern = "-?%.?%d+", type = "number" }, |
||||
{ pattern = "%.%.%.?", type = "operator" }, |
||||
{ pattern = "[<>~=&|]=", type = "operator" }, |
||||
{ pattern = "[%+%-=/%*%^%%#<>]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%s*%f[(\"{]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
{ pattern = "::[%a_][%w_]*::", type = "function" }, |
||||
}, |
||||
symbols = { |
||||
["if"] = "keyword", |
||||
["then"] = "keyword", |
||||
["else"] = "keyword", |
||||
["elseif"] = "keyword", |
||||
["end"] = "keyword", |
||||
["do"] = "keyword", |
||||
["function"] = "keyword", |
||||
["repeat"] = "keyword", |
||||
["until"] = "keyword", |
||||
["while"] = "keyword", |
||||
["for"] = "keyword", |
||||
["break"] = "keyword", |
||||
["return"] = "keyword", |
||||
["local"] = "keyword", |
||||
["in"] = "keyword", |
||||
["not"] = "keyword", |
||||
["and"] = "keyword", |
||||
["or"] = "keyword", |
||||
["goto"] = "keyword", |
||||
["self"] = "keyword2", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["nil"] = "literal", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,72 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = {"%.ps1$", "%.psm1$", "%.psd1$", "%.ps1xml$", "%.pssc$", "%.psrc$", "%.cdxml$"}, |
||||
comment = "#", |
||||
patterns = { |
||||
{pattern = "#.*\n", type = "comment"}, |
||||
{pattern = [[\.]], type = "normal"}, |
||||
{pattern = {'"', '"'}, type = "string"}, |
||||
{pattern = {"'", "'"}, type = "string"}, |
||||
{pattern = "%f[%w_][%d%.]+%f[^%w_]", type = "number"}, |
||||
{pattern = "[%+=/%*%^%%<>!~|&,:]+", type = "operator"}, |
||||
{pattern = "%f[%S]%-[%w%-_]+", type = "function"}, |
||||
{pattern = "[%u][%a]+[%-][%u][%a]+", type = "function"}, |
||||
{pattern = "${.*}", type = "symbol"}, |
||||
{pattern = "$[%a_@*][%w_]*", type = "keyword2"}, |
||||
{pattern = "$[%$][%a]+", type = "keyword2"}, |
||||
{pattern = "[%a_][%w_]*", type = "symbol"} |
||||
}, |
||||
symbols = { |
||||
["if"] = "keyword", |
||||
["else"] = "keyword", |
||||
["elseif"] = "keyword", |
||||
["switch"] = "keyword", |
||||
["default"] = "keyword", |
||||
["function"] = "keyword", |
||||
["filter"] = "keyword", |
||||
["workflow"] = "keyword", |
||||
["configuration"] = "keyword", |
||||
["class"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["Parameter"] = "keyword", |
||||
["ValidateScript"] = "keyword", |
||||
["CmdletBinding"] = "keyword", |
||||
["try"] = "keyword", |
||||
["catch"] = "keyword", |
||||
["finally"] = "keyword", |
||||
["throw"] = "keyword", |
||||
["while"] = "keyword", |
||||
["for"] = "keyword", |
||||
["do"] = "keyword", |
||||
["until"] = "keyword", |
||||
["break"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["foreach"] = "keyword", |
||||
["in"] = "keyword", |
||||
["return"] = "keyword", |
||||
["where"] = "function", |
||||
["select"] = "function", |
||||
["filter"] = "keyword", |
||||
["in"] = "keyword", |
||||
["trap"] = "keyword", |
||||
["param"] = "keyword", |
||||
["data"] = "keyword", |
||||
["dynamicparam"] = "keyword", |
||||
["begin"] = "function", |
||||
["process"] = "function", |
||||
["end"] = "function", |
||||
["exit"] = "function", |
||||
["inlinescript"] = "function", |
||||
["parallel"] = "function", |
||||
["sequence"] = "function", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["TODO"] = "comment", |
||||
["FIXME"] = "comment", |
||||
["XXX"] = "comment", |
||||
["TBD"] = "comment", |
||||
["HACK"] = "comment", |
||||
["NOTE"] = "comment" |
||||
} |
||||
} |
@ -0,0 +1,90 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
-- In sql symbols can be lower case and upper case |
||||
local keywords = { |
||||
"CREATE", "SELECT", "INSERT", "INTO", "UPDATE", |
||||
"DELETE", "TABLE", "DROP", "VALUES", "NOT", |
||||
"NULL", "PRIMARY", "KEY", "REFERENCES", |
||||
"DEFAULT", "UNIQUE", "CONSTRAINT", "CHECK", |
||||
"ON", "EXCLUDE", "WITH", "USING", "WHERE", |
||||
"GROUP", "BY", "HAVING", "DISTINCT", "LIMIT", |
||||
"OFFSET", "ONLY", "CROSS", "JOIN", "INNER", |
||||
"LEFT", "RIGHT", "FULL", "OUTER", "NATURAL", |
||||
"AND", "OR", "AS", "ORDER", "ORDINALITY", |
||||
"UNNEST", "FROM", "VIEW", "RETURNS", "SETOF", |
||||
"LANGUAGE", "SQL", "LIKE", "LATERAL", |
||||
"INTERVAL", "PARTITION", "UNION", "INTERSECT", |
||||
"EXCEPT", "ALL", "ASC", "DESC", "NULLS", |
||||
"FIRST", "LAST", "IN", "RECURSIVE", "ARRAY", |
||||
"RETURNING", "SET", "ALSO", "INSTEAD", |
||||
"ALTER", "SEQUENCE", "OWNED", "AT", "ZONE", |
||||
"WITHOUT", "TO", "TIMEZONE", "TYPE", "ENUM", |
||||
"DOCUMENT", "XMLPARSE", "XMLSERIALIZE", |
||||
"CONTENT", "OPTION", "INDEX", "ANY", |
||||
"EXTENSION", "ISNULL", "NOTNULL", "UNKNOWN", |
||||
"CASE", "THEN", "WHEN", "ELSE", "END", |
||||
"ROWS", "BETWEEN", "UNBOUNDED", "PRECEDING", |
||||
"UNBOUNDED", "FOLLOWING", "EXISTS", "SOME", |
||||
"COLLATION", "FOR", "TRIGGER", "BEFORE", |
||||
"EACH", "ROW", "EXECUTE", "PROCEDURE", |
||||
"FUNCTION", "DECLARE", "BEGIN", "LOOP", |
||||
"RAISE", "NOTICE", "LOOP", "EVENT", |
||||
"OPERATOR", "DOMAIN", "VARIADIC", "FOREIGN" |
||||
} |
||||
|
||||
local types = { |
||||
"BIGINT", "INT8", "BIGSERIAL", "SERIAL8", |
||||
"BIT", "VARBIT", "BOOLEAN", "BOOL", "BOX", |
||||
"BYTEA", "CHARACTER", "CHAR", "VARCHAR", |
||||
"CIDR", "CIRCLE", "DATE", "DOUBLE", |
||||
"PRECISION", "FLOAT8", "INET", "INTEGER", |
||||
"INT", "INT4", "INTERVAL", "JSON", "JSONB", |
||||
"LINE", "LSEG", "MACADDR", "MONEY", "NUMERIC", |
||||
"DECIMAL", "PATH", "POINT", "POLYGON", "REAL", |
||||
"FLOAT4", "INT2", "SMALLINT", "SMALLSERIAL", |
||||
"SERIAL2", "SERIAL", "SERIAL4", "TEXT", |
||||
"TIME", "TIMEZ", "TIMESTAMP", "TIMESTAMPZ", |
||||
"TSQUERY", "TSVECTOR", "TXID_SNAPSHOT", |
||||
"UUID", "XML", "INT4RANGE", "INT8RANGE", |
||||
"NUMRANGE", "TSRANGE", "TSTZRANGE", |
||||
"DATERANGE", "PG_LSN" |
||||
} |
||||
|
||||
local literals = { |
||||
"FALSE", "TRUE", "CURRENT_TIMESTAMP", |
||||
"CURRENT_TIME", "CURRENT_DATE", "LOCALTIME", |
||||
"LOCALTIMESTAMP" |
||||
} |
||||
|
||||
local symbols = {} |
||||
for _, keyword in ipairs(keywords) do |
||||
symbols[keyword:lower()] = "keyword" |
||||
symbols[keyword] = "keyword" |
||||
end |
||||
|
||||
for _, type in ipairs(types) do |
||||
symbols[type:lower()] = "keyword2" |
||||
symbols[type] = "keyword2" |
||||
end |
||||
|
||||
for _, literal in ipairs(literals) do |
||||
symbols[literal:lower()] = "literal" |
||||
symbols[literal] = "literal" |
||||
end |
||||
|
||||
syntax.add { |
||||
files = { "%.sql$", "%.psql$" }, |
||||
comment = "--", |
||||
patterns = { |
||||
{ pattern = "%-%-.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%%<>!~|&@%?$#]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = symbols, |
||||
} |
||||
|
@ -0,0 +1,86 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.rs$" }, |
||||
comment = "//", |
||||
patterns = { |
||||
{ pattern = "//.-\n", type = "comment" }, |
||||
{ pattern = { "/%*", "%*/" }, type = "comment" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "`", "`", '\\' }, type = "string" }, |
||||
{ pattern = "0[oO_][0-7]+", type = "number" }, |
||||
{ pattern = "-?0x[%x_]+", type = "number" }, |
||||
{ pattern = "-?%d+_%d", type = "number" }, |
||||
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" }, |
||||
{ pattern = "-?%.?%d+f?", type = "number" }, |
||||
{ pattern = "[%+%-=/%*%^%%<>!~|&]", type = "operator" }, |
||||
{ pattern = "[%a_][%w_]*%f[(]", type = "function" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["as"] = "keyword", |
||||
["async"] = "keyword", |
||||
["await"] = "keyword", |
||||
["break"] = "keyword", |
||||
["const"] = "keyword", |
||||
["continue"] = "keyword", |
||||
["crate"] = "keyword", |
||||
["dyn"] = "keyword", |
||||
["else"] = "keyword", |
||||
["enum"] = "keyword", |
||||
["extern"] = "keyword", |
||||
["false"] = "keyword", |
||||
["fn"] = "keyword", |
||||
["for"] = "keyword", |
||||
["if"] = "keyword", |
||||
["impl"] = "keyword", |
||||
["in"] = "keyword", |
||||
["let"] = "keyword", |
||||
["loop"] = "keyword", |
||||
["match"] = "keyword", |
||||
["mod"] = "keyword", |
||||
["move"] = "keyword", |
||||
["mut"] = "keyword", |
||||
["pub"] = "keyword", |
||||
["ref"] = "keyword", |
||||
["return"] = "keyword", |
||||
["Self"] = "keyword", |
||||
["self"] = "keyword", |
||||
["static"] = "keyword", |
||||
["struct"] = "keyword", |
||||
["super"] = "keyword", |
||||
["trait"] = "keyword", |
||||
["true"] = "keyword", |
||||
["type"] = "keyword", |
||||
["unsafe"] = "keyword", |
||||
["use"] = "keyword", |
||||
["where"] = "keyword", |
||||
["while"] = "keyword", |
||||
["i32"] = "keyword2", |
||||
["i64"] = "keyword2", |
||||
["i128"] = "keyword2", |
||||
["i16"] = "keyword2", |
||||
["i8"] = "keyword2", |
||||
["u8"] = "keyword2", |
||||
["u16"] = "keyword2", |
||||
["u32"] = "keyword2", |
||||
["u64"] = "keyword2", |
||||
["usize"] = "keyword2", |
||||
["isize"] = "keyword2", |
||||
["f32"] = "keyword2", |
||||
["f64"] = "keyword2", |
||||
["f128"] = "keyword2", |
||||
["String"] = "keyword2", |
||||
["char"] = "keyword2", |
||||
["&str"] = "keyword2", |
||||
["bool"] = "keyword2", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
["None"] = "literal", |
||||
["Some"] = "literal", |
||||
["Option"] = "literal", |
||||
["Result"] = "literal", |
||||
}, |
||||
} |
||||
|
||||
|
@ -0,0 +1,42 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.sh$" }, |
||||
headers = "^#!.*bin.*sh\n", |
||||
comment = "#", |
||||
patterns = { |
||||
{ pattern = "#.*\n", type = "comment" }, |
||||
{ pattern = [[\.]], type = "normal" }, |
||||
{ pattern = { '"', '"', '\\' }, type = "string" }, |
||||
{ pattern = { "'", "'", '\\' }, type = "string" }, |
||||
{ pattern = { '`', '`', '\\' }, type = "string" }, |
||||
{ pattern = "%f[%w_][%d%.]+%f[^%w_]", type = "number" }, |
||||
{ pattern = "[!<>|&%[%]=*]", type = "operator" }, |
||||
{ pattern = "%f[%S]%-[%w%-_]+", type = "function" }, |
||||
{ pattern = "${.*}", type = "keyword2" }, |
||||
{ pattern = "$[%a_@*][%w_]*", type = "keyword2" }, |
||||
{ pattern = "[%a_][%w_]*", type = "symbol" }, |
||||
}, |
||||
symbols = { |
||||
["case"] = "keyword", |
||||
["do"] = "keyword", |
||||
["done"] = "keyword", |
||||
["elif"] = "keyword", |
||||
["else"] = "keyword", |
||||
["esac"] = "keyword", |
||||
["fi"] = "keyword", |
||||
["for"] = "keyword", |
||||
["function"] = "keyword", |
||||
["if"] = "keyword", |
||||
["in"] = "keyword", |
||||
["select"] = "keyword", |
||||
["then"] = "keyword", |
||||
["time"] = "keyword", |
||||
["until"] = "keyword", |
||||
["while"] = "keyword", |
||||
["echo"] = "keyword", |
||||
["true"] = "literal", |
||||
["false"] = "literal", |
||||
}, |
||||
} |
||||
|
@ -0,0 +1,16 @@ |
||||
local syntax = require "core.syntax" |
||||
|
||||
syntax.add { |
||||
files = { "%.tex$" }, |
||||
comment = "%%", |
||||
patterns = { |
||||
{ pattern = {"%%", "\n"}, type = "comment" }, |
||||
{ pattern = "&", type = "operator" }, |
||||
{ pattern = "\\\\", type = "operator" }, |
||||
{ pattern = {"%$", "%$"}, type = "operator" }, |
||||
{ pattern = {"\\%[", "\\]"}, type = "operator" }, |
||||
{ pattern = {"{", "}"}, type = "keyword" }, |
||||
{ pattern = "\\%w*", type = "keyword2" }, |
||||
}, |
||||
symbols = {} |
||||
} |
Loading…
Reference in new issue