diff options
author | jgmdev <jgmdev@gmail.com> | 2022-11-03 13:26:23 -0400 |
---|---|---|
committer | jgmdev <jgmdev@gmail.com> | 2022-11-03 13:26:23 -0400 |
commit | 572a83c6d546006c33c2cf4195692c8264a74bd2 (patch) | |
tree | 684b00eda20458ac201fabeda7f67f13abf4345b /plugins/language_php.lua | |
parent | d23ea77e1bca56cfb00a5fbf064a9501a00e1da9 (diff) | |
download | lite-xl-plugins-572a83c6d546006c33c2cf4195692c8264a74bd2.tar.gz lite-xl-plugins-572a83c6d546006c33c2cf4195692c8264a74bd2.zip |
language_php: applied changes from #108
Diffstat (limited to 'plugins/language_php.lua')
-rw-r--r-- | plugins/language_php.lua | 68 |
1 files changed, 27 insertions, 41 deletions
diff --git a/plugins/language_php.lua b/plugins/language_php.lua index 2820862..bb9b43f 100644 --- a/plugins/language_php.lua +++ b/plugins/language_php.lua @@ -116,12 +116,7 @@ end if psql_found then -- generate SQL string marker regex local sql_markers = { 'create', 'select', 'insert', 'update', 'replace', 'delete', 'drop', 'alter' } - local sql_regex = {} - for _, marker in ipairs(sql_markers) do - table.insert(sql_regex, marker) - table.insert(sql_regex, string.upper(marker)) - end - sql_regex = table.concat(sql_regex, '|') + local sql_regex = table.concat(sql_markers, '|') -- inject inline variable rules to cloned psql syntax local syntax_phpsql = clone(syntax.get("file.sql")) @@ -136,12 +131,12 @@ if psql_found then -- SQL strings sql_strings = { { - regex = { '"(?=(?:'..sql_regex..')\\s+)', '"', '\\' }, + regex = { '"(?=[\\s(]*(?i:'..sql_regex..')\\s+)', '"', '\\' }, syntax = syntax_phpsql, type = "string" }, { - regex = { '\'(?=(?:'..sql_regex..')\\s+)', '\'', '\\' }, + regex = { "'(?=[\\s(]*(?i:"..sql_regex..")\\s+)", '\'', '\\' }, syntax = '.sql', type = "string" }, @@ -192,40 +187,40 @@ syntax.add { }, type = "string" }, - { pattern = "0[bB][%d]+", type = "number" }, - { pattern = "0[xX][%da-fA-F]+", type = "number" }, - { pattern = "-?%d[%d_%.eE]*", type = "number" }, - { pattern = "-?%.?%d+", type = "number" }, - { pattern = "[%.%+%-=/%*%^%%<>!~|&%?:]", type = "operator" }, + { pattern = "0[bB][%d]+", type = "number" }, + { pattern = "0[xX][%da-fA-F]+", type = "number" }, + { pattern = "-?%d[%d_%.eE]*", type = "number" }, + { pattern = "-?%.?%d+", type = "number" }, + { pattern = "[%.%+%-=/%*%^%%<>!~|&%?:@]", type = "operator" }, -- Variables - { pattern = "%$[%w_]+", type = "keyword2" }, + { pattern = "%$[%w_]+", type = "keyword2" }, -- Respect control structures, treat as keyword not function - { pattern = "if[%s]*%f[(]", type = "keyword" }, - { pattern = "else[%s]*%f[(]", type = "keyword" }, - { pattern = "elseif[%s]*%f[(]", type = "keyword" }, - { pattern = "for[%s]*%f[(]", type = "keyword" }, - { pattern = "foreach[%s]*%f[(]", type = "keyword" }, - { pattern = "while[%s]*%f[(]", type = "keyword" }, - { pattern = "catch[%s]*%f[(]", type = "keyword" }, - { pattern = "switch[%s]*%f[(]", type = "keyword" }, - { pattern = "match[%s]*%f[(]", type = "keyword" }, - { pattern = "fn[%s]*%f[(]", type = "keyword" }, + { pattern = "if[%s]*%f[(]", type = "keyword" }, + { pattern = "else[%s]*%f[(]", type = "keyword" }, + { pattern = "elseif[%s]*%f[(]", type = "keyword" }, + { pattern = "for[%s]*%f[(]", type = "keyword" }, + { pattern = "foreach[%s]*%f[(]", type = "keyword" }, + { pattern = "while[%s]*%f[(]", type = "keyword" }, + { pattern = "catch[%s]*%f[(]", type = "keyword" }, + { pattern = "switch[%s]*%f[(]", type = "keyword" }, + { pattern = "match[%s]*%f[(]", type = "keyword" }, + { pattern = "fn[%s]*%f[(]", type = "keyword" }, -- All functions that aren't control structures - { pattern = "[%a_][%w_]*[%s]*%f[(]", type = "function" }, + { pattern = "[%a_][%w_]*[%s]*%f[(]", type = "function" }, -- Array type hint not added on symbols to also make it work -- as a function call - { pattern = "array", type = "literal" }, + { pattern = "array", type = "literal" }, -- Match static or namespace container on sub element access - { pattern = "[%a_][%w_]*[%s]*%f[:]", type = "literal" }, + { pattern = "[%a_][%w_]*[%s]*%f[:]", type = "literal" }, -- Uppercase constants of at least 2 chars in len { pattern = "%u[%u_][%u%d_]*%f[%s%+%*%-%.%(%)%?%^%%=/<>~|&;:,!]", type = "number" }, -- Magic constants - { pattern = "__[%u]+__", type = "number" }, + { pattern = "__[%u]+__", type = "number" }, -- Everything else - { pattern = "[%a_][%w_]*", type = "symbol" }, + { pattern = "[%a_][%w_]*", type = "symbol" }, }, symbols = { ["return"] = "keyword", @@ -348,24 +343,15 @@ syntax.add { }, { pattern = { - "<%s*[sS][cC][rR][iI][pP][tT]%s+[tT][yY][pP][eE]%s*=%s*" .. - "['\"]%a+/[jJ][aA][vV][aA][sS][cC][rR][iI][pP][tT]['\"]%s*>", - "<%s*/[sS][cC][rR][iI][pP][tT]>" - }, - syntax = ".js", - type = "function" - }, - { - pattern = { - "<%s*[sS][cC][rR][iI][pP][tT]%s*>", - "<%s*/%s*[sS][cC][rR][iI][pP][tT]>" + "<%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][^>]*>", + "<%s*[sS][tT][yY][lL][eE]%f[%s>].->", "<%s*/%s*[sS][tT][yY][lL][eE]%s*>" }, syntax = ".css", |