diff options
-rw-r--r-- | plugins/language_php.lua | 91 |
1 files changed, 15 insertions, 76 deletions
diff --git a/plugins/language_php.lua b/plugins/language_php.lua index d00ea8f..5ef4f22 100644 --- a/plugins/language_php.lua +++ b/plugins/language_php.lua @@ -10,6 +10,15 @@ local syntax = require "core.syntax" require "plugins.language_css" require "plugins.language_js" +-- 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, '|') + -- define the core php syntax coloring syntax.add { name = "PHP Source", @@ -26,84 +35,14 @@ syntax.add { { pattern = { "/%*", "%*/" }, type = "comment" }, -- SQL strings { - pattern = { '"[cC][rR][eE][aA][tT][eE]%s+', '"', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '\'[cC][rR][eE][aA][tT][eE]%s+', '\'', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '"[sS][eE][lL][eE][cC][tT]%s+', '"', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '\'[sS][eE][lL][eE][cC][tT]%s+', '\'', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '"[iI][nN][sS][eE][rR][tT]%s+', '"', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '\'[iI][nN][sS][eE][rR][tT]%s+', '\'', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '"[uU][pP][dD][aA][tT][eE]%s+', '"', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '\'[uU][pP][dD][aA][tT][eE]%s+', '\'', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '"[rR][eE][pP][lL][aA][cC][eE]%s+', '"', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '\'[rR][eE][pP][lL][aA][cC][eE]%s+', '\'', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '"[dD][eE][lL][eE][tT][eE]%s+', '"', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '\'[dD][eE][lL][eE][tT][eE]%s+', '\'', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '"[dD][rR][oO][pP]%s+', '"', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '\'[dD][rR][oO][pP]%s+', '\'', '\\' }, - syntax = '.sql', - type = "keyword" - }, - { - pattern = { '"[aA][lL][tT][eE][rR]%s+', '"', '\\' }, - syntax = '.sql', - type = "keyword" + regex = { '"(?=(?:'..sql_regex..')\\s+)', '"', '\\' }, + syntax = '.sql', + type = "string" }, { - pattern = { '\'[aA][lL][tT][eE][rR]%s+', '\'', '\\' }, - syntax = '.sql', - type = "keyword" + regex = { '\'(?=(?:'..sql_regex..')\\s+)', '\'', '\\' }, + syntax = '.sql', + type = "string" }, -- The '\\' is for escaping to work on " or ' { pattern = { '"', '"', '\\' }, type = "string" }, |