aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/language_php.lua91
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" },