Initial commit
This commit is contained in:
commit
209ba130c0
4852 changed files with 1517959 additions and 0 deletions
154
.config/lite-xl/plugins/language_yaml.lua
Normal file
154
.config/lite-xl/plugins/language_yaml.lua
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
-- mod-version:3
|
||||
local syntax = require "core.syntax"
|
||||
|
||||
local yaml_bracket_list = {
|
||||
patterns = {
|
||||
-- comments
|
||||
{ pattern = { "#", "\n"}, type = "comment" },
|
||||
-- strings
|
||||
{ pattern = { '"', '"', '\\' }, type = "string" },
|
||||
{ pattern = { "'", "'", '\\' }, type = "string" },
|
||||
-- keys
|
||||
{
|
||||
pattern = "[%w%d]+%g+()%s*():()%s",
|
||||
type = { "keyword2", "normal", "operator", "normal" }
|
||||
},
|
||||
-- variables
|
||||
{ pattern = "%$%a%w+", type = "keyword" },
|
||||
{ pattern = "%$%{%{.-%}%}", type = "keyword" },
|
||||
-- numeric place holders
|
||||
{ pattern = "%-?%.inf", type = "number" },
|
||||
{ pattern = "%.NaN", type = "number" },
|
||||
-- numbers
|
||||
{ pattern = "[%+%-]?0%d+", type = "number" },
|
||||
{ pattern = "[%+%-]?0x%x+", type = "number" },
|
||||
{ pattern = "[%+%-]?%d+[,%.eE:%+%d]*%d+", type = "number" },
|
||||
{ pattern = "[%+%-]?%d+", type = "number" },
|
||||
-- others
|
||||
{ pattern = ",", type = "operator" },
|
||||
{ pattern = "%w+", type = "string" },
|
||||
{
|
||||
pattern = "[_%(%)%*@~`!%%%^&=%+%-\\;%.><%?/%s]+",
|
||||
type = "string"
|
||||
}
|
||||
},
|
||||
symbols = {}
|
||||
}
|
||||
|
||||
syntax.add {
|
||||
name = "YAML",
|
||||
files = { "%.yml$", "%.yaml$" },
|
||||
comment = "#",
|
||||
space_handling = false,
|
||||
patterns = {
|
||||
--- rules that start with spaces first and those taking precedence
|
||||
-- parent and child keys
|
||||
{
|
||||
pattern = "^[%w%d]+%g+%s*%f[:]",
|
||||
type = "literal"
|
||||
},
|
||||
{
|
||||
pattern = "^%s+[%w%d]+%g+%s*%f[:]",
|
||||
type = "keyword2"
|
||||
},
|
||||
-- bracket lists after key declaration
|
||||
{
|
||||
pattern = { ":%s+%[", "%]" },
|
||||
syntax = yaml_bracket_list, type = "operator"
|
||||
},
|
||||
{
|
||||
pattern = { ":%s+{", "}" },
|
||||
syntax = yaml_bracket_list, type = "operator"
|
||||
},
|
||||
-- child key
|
||||
{
|
||||
pattern = "^%s+()[%w%d]+%g+()%s*():()%s",
|
||||
type = { "normal", "keyword2", "normal", "operator", "normal" }
|
||||
},
|
||||
-- child list element
|
||||
{
|
||||
pattern = "^%s+()%-()%s+()[%w%d]+%g+()%s*():()%s",
|
||||
type = { "normal", "operator", "normal", "keyword2", "normal", "operator", "normal" }
|
||||
},
|
||||
-- unkeyed bracket lists
|
||||
{
|
||||
pattern = { "^%s*%[", "%]" },
|
||||
syntax = yaml_bracket_list, type = "operator"
|
||||
},
|
||||
{
|
||||
pattern = { "^%s*{", "}" },
|
||||
syntax = yaml_bracket_list, type = "operator"
|
||||
},
|
||||
{
|
||||
pattern = { "^%s*%-%s*%[", "%]" },
|
||||
syntax = yaml_bracket_list, type = "operator"
|
||||
},
|
||||
{
|
||||
pattern = { "^%s*%-%s*{", "}" },
|
||||
syntax = yaml_bracket_list, type = "operator"
|
||||
},
|
||||
-- rule to optimize space handling
|
||||
{ pattern = "%s+", type = "normal" },
|
||||
--- all the other rules
|
||||
-- comments
|
||||
{ pattern = { "#", "\n"}, type = "comment" },
|
||||
-- strings
|
||||
{ pattern = { '"', '"', '\\' }, type = "string" },
|
||||
{ pattern = { "'", "'", '\\' }, type = "string" },
|
||||
-- extra bracket lists rules on explicit type
|
||||
{
|
||||
pattern = { "!!%w+%s+%[", "%]"},
|
||||
syntax = yaml_bracket_list, type = "operator"
|
||||
},
|
||||
{
|
||||
pattern = { "!!%w+%s+{", "}"},
|
||||
syntax = yaml_bracket_list, type = "operator"
|
||||
},
|
||||
-- numeric place holders
|
||||
{ pattern = "%-?%.inf", type = "number" },
|
||||
{ pattern = "%.NaN", type = "number" },
|
||||
-- parent list element
|
||||
{
|
||||
pattern = "^%-()%s+()[%w%d]+%g+()%s*():()%s",
|
||||
type = { "operator", "normal", "keyword2", "normal", "operator", "normal" }
|
||||
},
|
||||
-- key label
|
||||
{
|
||||
pattern = "%&()%g+",
|
||||
type = { "keyword", "literal" }
|
||||
},
|
||||
-- key elements expansion
|
||||
{ pattern = "<<", type = "literal" },
|
||||
{
|
||||
pattern = "%*()[%w%d_]+",
|
||||
type = { "keyword", "literal" }
|
||||
},
|
||||
-- explicit data types
|
||||
{ pattern = "!!%g+", type = "keyword" },
|
||||
-- parent key
|
||||
{
|
||||
pattern = "^[%w%d]+%g+()%s*():()%s",
|
||||
type = { "literal", "normal", "operator", "normal" }
|
||||
},
|
||||
-- variables
|
||||
{ pattern = "%$%a%w+", type = "keyword" },
|
||||
{ pattern = "%$%{%{.-%}%}", type = "keyword" },
|
||||
-- numbers
|
||||
{ pattern = "[%+%-]?0%d+", type = "number" },
|
||||
{ pattern = "[%+%-]?0x%x+", type = "number" },
|
||||
{ pattern = "[%+%-]?%d+[,%.eE:%+%d]*%d+", type = "number" },
|
||||
{ pattern = "[%+%-]?%d+", type = "number" },
|
||||
-- special operators
|
||||
{ pattern = "[%*%|%!>%%]", type = "keyword" },
|
||||
{ pattern = "[%-%$:%?]+", type = "operator" },
|
||||
-- Everything else as a string
|
||||
{ pattern = "[%d%a_][%g_]*", type = "string" },
|
||||
{ pattern = "%p+", type = "string" }
|
||||
},
|
||||
symbols = {
|
||||
["true"] = "number",
|
||||
["false"] = "number",
|
||||
["y"] = "number",
|
||||
["n"] = "number"
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue