summaryrefslogtreecommitdiff
path: root/context/data/scite/lexers
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2012-04-13 10:40:14 +0300
committerMarius <mariausol@gmail.com>2012-04-13 10:40:14 +0300
commit8864864867b1e1b3dddbf332046594715a9bdc0f (patch)
tree9aa06a95fcf984b4584fec253d395d2a56a83820 /context/data/scite/lexers
parent36b0f38733f407939d9b7b289cef61de179f5f4d (diff)
downloadcontext-8864864867b1e1b3dddbf332046594715a9bdc0f.tar.gz
beta 2012.04.13 09:31
Diffstat (limited to 'context/data/scite/lexers')
-rw-r--r--context/data/scite/lexers/scite-context-lexer-lua.lua2
-rw-r--r--context/data/scite/lexers/scite-context-lexer-mps.lua2
-rw-r--r--context/data/scite/lexers/scite-context-lexer-pdf.lua2
-rw-r--r--context/data/scite/lexers/scite-context-lexer-tex.lua2
-rw-r--r--context/data/scite/lexers/scite-context-lexer-txt.lua15
-rw-r--r--context/data/scite/lexers/scite-context-lexer-xml.lua2
-rw-r--r--context/data/scite/lexers/scite-context-lexer.lua75
-rw-r--r--context/data/scite/lexers/themes/scite-context-theme-keep.lua233
-rw-r--r--context/data/scite/lexers/themes/scite-context-theme.lua231
9 files changed, 432 insertions, 132 deletions
diff --git a/context/data/scite/lexers/scite-context-lexer-lua.lua b/context/data/scite/lexers/scite-context-lexer-lua.lua
index 55bc30999..248672b06 100644
--- a/context/data/scite/lexers/scite-context-lexer-lua.lua
+++ b/context/data/scite/lexers/scite-context-lexer-lua.lua
@@ -6,7 +6,7 @@ local info = {
license = "see context related readme files",
}
-if not lexer._CONTEXTEXTENSIONS then dofile(_LEXERHOME .. "/scite-context-lexer.lua") end
+if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
local lexer = lexer
local token, style, colors, exact_match, no_style = lexer.token, lexer.style, lexer.colors, lexer.exact_match, lexer.style_nothing
diff --git a/context/data/scite/lexers/scite-context-lexer-mps.lua b/context/data/scite/lexers/scite-context-lexer-mps.lua
index 00cc7f8ba..4dd498b53 100644
--- a/context/data/scite/lexers/scite-context-lexer-mps.lua
+++ b/context/data/scite/lexers/scite-context-lexer-mps.lua
@@ -6,7 +6,7 @@ local info = {
license = "see context related readme files",
}
-if not lexer._CONTEXTEXTENSIONS then dofile(_LEXERHOME .. "/scite-context-lexer.lua") end
+if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
local lexer = lexer
local global, string, table, lpeg = _G, string, table, lpeg
diff --git a/context/data/scite/lexers/scite-context-lexer-pdf.lua b/context/data/scite/lexers/scite-context-lexer-pdf.lua
index 05517bb64..61cf819f0 100644
--- a/context/data/scite/lexers/scite-context-lexer-pdf.lua
+++ b/context/data/scite/lexers/scite-context-lexer-pdf.lua
@@ -6,7 +6,7 @@ local info = {
license = "see context related readme files",
}
-if not lexer._CONTEXTEXTENSIONS then dofile(_LEXERHOME .. "/scite-context-lexer.lua") end
+if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
local lexer = lexer
local token = lexer.token
diff --git a/context/data/scite/lexers/scite-context-lexer-tex.lua b/context/data/scite/lexers/scite-context-lexer-tex.lua
index 812dfbb05..3408d1eb4 100644
--- a/context/data/scite/lexers/scite-context-lexer-tex.lua
+++ b/context/data/scite/lexers/scite-context-lexer-tex.lua
@@ -33,7 +33,7 @@ local info = {
]]--
-if not lexer._CONTEXTEXTENSIONS then dofile(_LEXERHOME .. "/scite-context-lexer.lua") end
+if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
local lexer = lexer
local global, string, table, lpeg = _G, string, table, lpeg
diff --git a/context/data/scite/lexers/scite-context-lexer-txt.lua b/context/data/scite/lexers/scite-context-lexer-txt.lua
index d92be8ed7..2f476a6a8 100644
--- a/context/data/scite/lexers/scite-context-lexer-txt.lua
+++ b/context/data/scite/lexers/scite-context-lexer-txt.lua
@@ -6,16 +6,13 @@ local info = {
license = "see context related readme files",
}
-if not lexer._CONTEXTEXTENSIONS then dofile(_LEXERHOME .. "/scite-context-lexer.lua") end
+if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
local lexer = lexer
local token = lexer.token
local P, S, Cmt = lpeg.P, lpeg.S, lpeg.Cmt
local find, match = string.find, string.match
--- local textlexer = (_VERSION == "Lua 5.1" and (module(...) or true) and _M) or { }
--- (_VERSION == "Lua 5.1" and (module(...) or true) and _M) or { }
-
local textlexer = { _NAME = "text" }
local context = lexer.context
@@ -31,6 +28,12 @@ local checkedword = context.checkedword
local setwordlist = context.setwordlist
local validwords = false
+-- local styleset = context.newstyleset {
+-- "default",
+-- "text", "okay", "error", "warning",
+-- "preamble",
+-- }
+
-- [#!-%] language=uk
local p_preamble = Cmt(#(S("#!-%") * P(" ")), function(input,i,_) -- todo: utf bomb
@@ -48,7 +51,7 @@ local p_preamble = Cmt(#(S("#!-%") * P(" ")), function(input,i,_) -- todo: utf b
end)
local t_preamble =
- token('preamble', p_preamble)
+ token("preamble", p_preamble)
local t_word =
Cmt(wordpattern, function(_,i,s)
@@ -76,6 +79,6 @@ textlexer._rules = {
{ "rest", t_rest },
}
-textlexer._tokenstyles = lexer.context.styleset
+textlexer._tokenstyles = context.styleset
return textlexer
diff --git a/context/data/scite/lexers/scite-context-lexer-xml.lua b/context/data/scite/lexers/scite-context-lexer-xml.lua
index 2ca814fef..89b20f3a4 100644
--- a/context/data/scite/lexers/scite-context-lexer-xml.lua
+++ b/context/data/scite/lexers/scite-context-lexer-xml.lua
@@ -12,7 +12,7 @@ local info = {
-- todo: parse entities in attributes
-if not lexer._CONTEXTEXTENSIONS then dofile(_LEXERHOME .. "/scite-context-lexer.lua") end
+if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
local lexer = lexer
local global, string, table, lpeg = _G, string, table, lpeg
diff --git a/context/data/scite/lexers/scite-context-lexer.lua b/context/data/scite/lexers/scite-context-lexer.lua
index 166ee96d6..04eb8400c 100644
--- a/context/data/scite/lexers/scite-context-lexer.lua
+++ b/context/data/scite/lexers/scite-context-lexer.lua
@@ -17,12 +17,20 @@ local info = {
-- installation issue). The loading takes place with:
--
-- if not lexer._CONTEXTEXTENSIONS then
--- dofile(_LEXERHOME .. "/scite-context-lexer.lua")
+-- dofile(_LEXERHOME .. "/scite-context-lexer.lua")
-- end
--
--- So, where pre 3.03 we loaded that file and in that file th eoriginal lexing code, we
+-- So, where pre 3.03 we loaded that file and in that file the original lexing code, we
-- now do the reverse.
--
+-- Another change has been that _LEXERHOME is no longer available. It looks like more and
+-- more functionality gets dropped so maybe at some point we need to ship our own dll/so
+-- files.
+--
+-- An increase in the number of built in styles made our own crash (probably due to some
+-- maximum being reached) so some measures has been taken. We now get pretty close to
+-- replacing the main lexer.lua file.
+--
-- Also needed: preamble scan once. Can be handled in caller below and _M.preamble.
--
-- For huge files folding can be pretty slow and I do have some large ones that I keep
@@ -37,10 +45,10 @@ local info = {
-- is used to revert to a parent lexer we need to make sure that we load children as late
-- as possible in order not to get the wrong whitespace trigger. This took me quite a while
-- to figure out (not being that familiar with the internals). The lex and fold functions
--- hav ebeen optimized. It is a pitty that there is no proper print available.
+-- have been optimized. It is a pitty that there is no proper print available.
-- Maybe it's safer to copy the other methods here so that we have no dependencies, apart
--- from the the library.
+-- from the c library.
-- Something is wrong with folds in combination with scite 3.00.
@@ -51,8 +59,12 @@ local concat = table.concat
local global = _G
local type, next, setmetatable, rawset = type, next, setmetatable, rawset
-if not lexer then
+if lexer then
+ -- we're ok
+elseif _LEXERHOME then
dofile(_LEXERHOME .. '/lexer.lua') -- pre 3.03 situation
+else
+ dofile('lexer.lua') -- whatever
end
lexer.context = lexer.context or { }
@@ -65,48 +77,23 @@ lexer._CONTEXTEXTENSIONS = true
local locations = {
-- lexer.context.path,
- _LEXERHOME .. "/data", -- optional data directory
- _LEXERHOME .. "/..", -- regular scite directory
+ "data", -- optional data directory
+ "..", -- regular scite directory
}
local function collect(name)
- local definitions = loadfile(name .. ".luc") or loadfile(name .. ".lua")
- if type(definitions) == "function" then
- definitions = definitions()
- end
- if type(definitions) == "table" then
- return definitions
- else
- return nil
+-- local definitions = loadfile(name .. ".luc") or loadfile(name .. ".lua")
+ local okay, definitions = pcall(function () return require(name) end)
+ if okay then
+ if type(definitions) == "function" then
+ definitions = definitions()
+ end
+ if type(definitions) == "table" then
+ return definitions
+ end
end
end
--- local function exists(name)
--- local f = global.io.open(name)
--- return f and true or false
--- end
---
--- local function collect(name)
--- local f = global.io.open(name .. ".properties")
--- if f then
--- local result = { }
--- local data = gsub(f:read("*all") or "","\\ *[\n\r]+"," ")
--- for name, words in gmatch(data,".-([^%.]-)=(.-)\n") do
--- if name ~= "all" then
--- local list = { }
--- for word in gmatch(words,"([^ ]+)") do
--- list[#list+1] = word
--- end
--- result[name] = list
--- end
--- end
--- f:close()
--- if next(result) then
--- return result
--- end
--- end
--- end
-
function context.loaddefinitions(name)
for i=1,#locations do
local data = collect(locations[i] .. "/" .. name)
@@ -719,3 +706,9 @@ patterns.invisibles = lpeg.utfchartabletopattern {
patterns.iwordtoken = patterns.wordtoken - patterns.invisibles
patterns.iwordpattern = patterns.iwordtoken^3
+
+-- require("themes/scite-context-theme")
+
+-- In order to deal with some bug in additional styles (I have no cue what is
+-- wrong, but additional styles get ignored and clash somehow) I just copy the
+-- original lexer code ... see original for comments.
diff --git a/context/data/scite/lexers/themes/scite-context-theme-keep.lua b/context/data/scite/lexers/themes/scite-context-theme-keep.lua
new file mode 100644
index 000000000..7f9423d9a
--- /dev/null
+++ b/context/data/scite/lexers/themes/scite-context-theme-keep.lua
@@ -0,0 +1,233 @@
+local info = {
+ version = 1.002,
+ comment = "theme for scintilla lpeg lexer for context/metafun",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files",
+}
+
+-- context_path = string.split(os.resultof("mtxrun --find-file context.mkiv"))[1] or ""
+-- global.trace("OEPS") -- how do we get access to the regular lua extensions
+
+-- The regular styles set the main lexer styles table but we avoid that in order not
+-- to end up with updating issues. We just use another table.
+
+-- if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
+
+local context_path = "t:/sources" -- c:/data/tex-context/tex/texmf-context/tex/base
+local font_name = 'Dejavu Sans Mono'
+local font_size = 14
+
+if not WIN32 then
+ font_name = '!' .. font_name
+end
+
+local color = lexer.color
+local style = lexer.style
+
+lexer.context = lexer.context or { }
+local context = lexer.context
+
+context.path = context_path
+
+colors = {
+ red = color('7F', '00', '00'),
+ green = color('00', '7F', '00'),
+ blue = color('00', '00', '7F'),
+ cyan = color('00', '7F', '7F'),
+ magenta = color('7F', '00', '7F'),
+ yellow = color('7F', '7F', '00'),
+ orange = color('B0', '7F', '00'),
+ --
+ white = color('FF', 'FF', 'FF'),
+ light = color('CF', 'CF', 'CF'),
+ grey = color('80', '80', '80'),
+ dark = color('4F', '4F', '4F'),
+ black = color('00', '00', '00'),
+ --
+ selection = color('F7', 'F7', 'F7'),
+ logpanel = color('E7', 'E7', 'E7'),
+ textpanel = color('CF', 'CF', 'CF'),
+ linepanel = color('A7', 'A7', 'A7'),
+ tippanel = color('44', '44', '44'),
+ --
+ right = color('00', '00', 'FF'),
+ wrong = color('FF', '00', '00'),
+}
+
+colors.teal = colors.cyan
+colors.purple = colors.magenta
+
+-- to be set:
+--
+-- style_nothing
+-- style_class
+-- style_comment
+-- style_constant
+-- style_definition
+-- style_error
+-- style_function
+-- style_keyword
+-- style_number
+-- style_operator
+-- style_string
+-- style_preproc
+-- style_tag
+-- style_type
+-- style_variable
+-- style_embedded
+-- style_label
+-- style_regex
+-- style_identifier
+--
+-- style_line_number
+-- style_bracelight
+-- style_bracebad
+-- style_controlchar
+-- style_indentguide
+-- style_calltip
+
+style_default = style {
+ font = font_name,
+ size = font_size,
+ fore = colors.black,
+ back = colors.textpanel,
+}
+
+style_nothing = style {
+ -- empty
+}
+
+style_number = style { fore = colors.cyan }
+style_comment = style { fore = colors.yellow }
+style_string = style { fore = colors.magenta }
+style_keyword = style { fore = colors.blue, bold = true }
+
+style_quote = style { fore = colors.blue, bold = true }
+style_special = style { fore = colors.blue }
+style_extra = style { fore = colors.yellow }
+
+style_embedded = style { fore = colors.black, bold = true }
+
+style_char = style { fore = colors.magenta }
+style_reserved = style { fore = colors.magenta, bold = true }
+style_class = style { fore = colors.black, bold = true }
+style_constant = style { fore = colors.cyan, bold = true }
+style_definition = style { fore = colors.black, bold = true }
+style_okay = style { fore = colors.dark }
+style_error = style { fore = colors.red }
+style_warning = style { fore = colors.orange }
+style_invisible = style { back = colors.orange }
+style_function = style { fore = colors.black, bold = true }
+style_operator = style { fore = colors.blue }
+style_preproc = style { fore = colors.yellow, bold = true }
+style_tag = style { fore = colors.cyan }
+style_type = style { fore = colors.blue }
+style_variable = style { fore = colors.black }
+style_identifier = style_nothing
+
+style_standout = style { fore = colors.orange, bold = true }
+
+style_line_number = style { back = colors.linepanel }
+style_bracelight = style_standout
+style_bracebad = style_standout
+style_indentguide = style { fore = colors.linepanel, back = colors.white }
+style_calltip = style { fore = colors.white, back = colors.tippanel }
+style_controlchar = style_nothing
+
+style_label = style { fore = colors.red, bold = true } -- style { fore = colors.cyan, bold = true }
+style_regex = style_string
+
+style_command = style { fore = colors.green, bold = true }
+
+-- only bold seems to work
+
+lexer.style_nothing = style_nothing
+lexer.style_class = style_class
+lexer.style_comment = style_comment
+lexer.style_constant = style_constant
+lexer.style_definition = style_definition
+lexer.style_error = style_error
+lexer.style_function = style_function
+lexer.style_keyword = style_keyword
+lexer.style_number = style_number
+lexer.style_operator = style_operator
+lexer.style_string = style_string
+lexer.style_preproc = style_preproc
+lexer.style_tag = style_tag
+lexer.style_type = style_type
+lexer.style_variable = style_variable
+lexer.style_embedded = style_embedded
+lexer.style_label = style_label
+lexer.style_regex = style_regex
+lexer.style_identifier = style_nothing
+
+local styles = { -- as we have globals we could do with less
+
+ -- ["whitespace"] = style_whitespace, -- not to be set!
+
+["default"] = style_nothing,
+["number"] = style_number,
+["comment"] = style_comment,
+["keyword"] = style_keyword,
+["string"] = style_string,
+["preproc"] = style_preproc,
+
+ ["reserved"] = style_reserved,
+ ["internal"] = style_standout,
+
+ ["command"] = style_command,
+ ["preamble"] = style_comment,
+ ["embedded"] = style_embedded,
+ ["grouping"] = style { fore = colors.red },
+["label"] = style_label,
+ ["primitive"] = style_keyword,
+ ["plain"] = style { fore = colors.dark, bold = true },
+ ["user"] = style { fore = colors.green },
+ ["data"] = style_constant,
+ ["special"] = style_special,
+ ["extra"] = style_extra,
+ ["quote"] = style_quote,
+
+ ["okay"] = style_okay,
+ ["warning"] = style_warning,
+ ["invisible"] = style_invisible,
+["error"] = style_error,
+
+}
+
+-- Old method (still available):
+
+local styleset = { }
+
+for k, v in next, styles do
+ styleset[#styleset+1] = { k, v }
+end
+
+context.styles = styles
+context.styleset = styleset
+
+-- We need to be sparse due to some limitation (and the number of built in styles
+-- growing).
+
+-- function context.newstyleset(list)
+-- local t = { }
+-- if list then
+-- for i=1,#list do
+-- t[list[i]] = true
+-- end
+-- end
+-- return t
+-- end
+
+-- function context.usestyle(set,name)
+-- set[name] = true
+-- return name
+-- end
+
+-- function context.usestyleset(set)
+-- local t = { }
+-- for k, _ in next, set do
+-- t[#t+1] = { k, styles[k] or styles.default }
+-- end
+-- end
diff --git a/context/data/scite/lexers/themes/scite-context-theme.lua b/context/data/scite/lexers/themes/scite-context-theme.lua
index 240755382..fed7b0853 100644
--- a/context/data/scite/lexers/themes/scite-context-theme.lua
+++ b/context/data/scite/lexers/themes/scite-context-theme.lua
@@ -9,6 +9,11 @@ local info = {
-- context_path = string.split(os.resultof("mtxrun --find-file context.mkiv"))[1] or ""
-- global.trace("OEPS") -- how do we get access to the regular lua extensions
+-- The regular styles set the main lexer styles table but we avoid that in order not
+-- to end up with updating issues. We just use another table.
+
+if not lexer._CONTEXTEXTENSIONS then require("scite-context-lexer") end
+
local context_path = "t:/sources" -- c:/data/tex-context/tex/texmf-context/tex/base
local font_name = 'Dejavu Sans Mono'
local font_size = 14
@@ -17,17 +22,15 @@ if not WIN32 then
font_name = '!' .. font_name
end
--- dofile(_LEXERHOME .. '/themes/scite.lua') -- starting point so we miss nothing
+local color = lexer.color
+local style = lexer.style
--- module('lexer', package.seeall)
+lexer.context = lexer.context or { }
+local context = lexer.context
-local color = lexer.color
-local style = lexer.style
+context.path = context_path
-lexer.context = lexer.context or { }
-lexer.context.path = context_path
-
-colors = {
+local colors = {
red = color('7F', '00', '00'),
green = color('00', '7F', '00'),
blue = color('00', '00', '7F'),
@@ -55,87 +58,155 @@ colors = {
colors.teal = colors.cyan
colors.purple = colors.magenta
-style_default = style {
- font = font_name,
- size = font_size,
- fore = colors.black,
- back = colors.textpanel,
-}
-
-style_nothing = style {
- -- empty
-}
-
-style_number = style { fore = colors.cyan }
-style_comment = style { fore = colors.yellow }
-style_string = style { fore = colors.magenta }
-style_keyword = style { fore = colors.blue, bold = true }
-
-style_char = style { fore = colors.magenta }
-style_reserved = style { fore = colors.magenta, bold = true }
-style_class = style { fore = colors.black, bold = true }
-style_constant = style { fore = colors.cyan, bold = true }
-style_definition = style { fore = colors.black, bold = true }
-style_okay = style { fore = colors.dark }
-style_error = style { fore = colors.red }
-style_warning = style { fore = colors.orange }
-style_invisible = style { back = colors.orange }
-style_function = style { fore = colors.black, bold = true }
-style_operator = style { fore = colors.blue }
-style_preproc = style { fore = colors.yellow, bold = true }
-style_tag = style { fore = colors.cyan }
-style_type = style { fore = colors.blue }
-style_variable = style { fore = colors.black }
-style_identifier = style_nothing
-
-style_standout = style { fore = colors.orange, bold = true }
-
-style_line_number = style { back = colors.linepanel }
-style_bracelight = style_standout
-style_bracebad = style_standout
-style_indentguide = style { fore = colors.linepanel, back = colors.white }
-style_calltip = style { fore = colors.white, back = colors.tippanel }
-style_controlchar = style_nothing
-
--- only bold seems to work
-
-lexer.context.styles = {
-
- -- ["whitespace"] = style_whitespace,
-
- ["default"] = style_nothing,
- ["number"] = style_number,
- ["comment"] = style_comment,
- ["keyword"] = style_keyword,
- ["string"] = style_string,
+lexer.colors = colors
+
+-- defaults:
+
+local style_nothing = style { }
+----- style_whitespace = style { }
+local style_comment = style { fore = colors.yellow }
+local style_string = style { fore = colors.magenta }
+local style_number = style { fore = colors.cyan }
+local style_keyword = style { fore = colors.blue, bold = true }
+local style_identifier = style_nothing
+local style_operator = style { fore = colors.blue }
+local style_error = style { fore = colors.red }
+local style_preproc = style { fore = colors.yellow, bold = true }
+local style_constant = style { fore = colors.cyan, bold = true }
+local style_variable = style { fore = colors.black }
+local style_function = style { fore = colors.black, bold = true }
+local style_class = style { fore = colors.black, bold = true }
+local style_type = style { fore = colors.blue }
+local style_label = style { fore = colors.red, bold = true }
+local style_regex = style { fore = colors.magenta }
+
+-- reserved:
+
+local style_default = style { font = font_name, size = font_size, fore = colors.black, back = colors.textpanel }
+local style_line_number = style { back = colors.linepanel }
+local style_bracelight = style { fore = colors.orange, bold = true }
+local style_bracebad = style { fore = colors.orange, bold = true }
+local style_indentguide = style { fore = colors.linepanel, back = colors.white }
+local style_calltip = style { fore = colors.white, back = colors.tippanel }
+local style_controlchar = style_nothing
+
+-- extras:
+
+local style_quote = style { fore = colors.blue, bold = true }
+local style_special = style { fore = colors.blue }
+local style_extra = style { fore = colors.yellow }
+local style_embedded = style { fore = colors.black, bold = true }
+----- style_char = style { fore = colors.magenta }
+local style_reserved = style { fore = colors.magenta, bold = true }
+local style_definition = style { fore = colors.black, bold = true }
+local style_okay = style { fore = colors.dark }
+local style_warning = style { fore = colors.orange }
+local style_invisible = style { back = colors.orange }
+local style_tag = style { fore = colors.cyan }
+----- style_standout = style { fore = colors.orange, bold = true }
+local style_command = style { fore = colors.green, bold = true }
+local style_internal = style { fore = colors.orange, bold = true }
+local style_internal = style { fore = colors.orange, bold = true }
+
+local style_preamble = style { fore = colors.yellow }
+local style_grouping = style { fore = colors.red }
+local style_primitive = style { fore = colors.blue, bold = true }
+local style_plain = style { fore = colors.dark, bold = true }
+local style_user = style { fore = colors.green }
+local style_data = style { fore = colors.cyan, bold = true }
+
+
+-- used by the generic lexer:
+
+lexer.style_nothing = style_nothing -- 0
+-----.whitespace = style_whitespace -- 1
+lexer.style_comment = style_comment -- 2
+lexer.style_string = style_string -- 3
+lexer.style_number = style_number -- 4
+lexer.style_keyword = style_keyword -- 5
+lexer.style_identifier = style_nothing -- 6
+lexer.style_operator = style_operator -- 7
+lexer.style_error = style_error -- 8
+lexer.style_preproc = style_preproc -- 9
+lexer.style_constant = style_constant -- 10
+lexer.style_variable = style_variable -- 11
+lexer.style_function = style_function -- 12
+lexer.style_class = style_class -- 13
+lexer.style_type = style_type -- 14
+lexer.style_label = style_label -- 15
+lexer.style_regex = style_regexp -- 16
+
+lexer.style_default = style_default -- 32
+lexer.style_line_number = style_line_number -- 33
+lexer.style_bracelight = style_bracelight -- 34
+lexer.style_bracebad = style_bracebad -- 35
+lexer.style_indentguide = style_indentguide -- 36
+lexer.style_calltip = style_calltip -- 37
+lexer.style_controlchar = style_controlchar -- 38
+
+local styles = { -- as we have globals we could do with less
+
+ -- ["whitespace"] = style_whitespace, -- not to be set!
+ -- ["default"] = style_nothing,
+ -- ["number"] = style_number,
+ -- ["comment"] = style_comment,
+ -- ["keyword"] = style_keyword,
+ -- ["string"] = style_string,
+ -- ["preproc"] = style_preproc,
+ -- ["error"] = style_error,
+ -- ["label"] = style_label,
+
+ ["quote"] = style_quote,
+ ["special"] = style_special,
+ ["extra"] = style_extra,
+ ["embedded"] = style_embedded,
+ -- ["char"] = style_char,
["reserved"] = style_reserved,
- ["preproc"] = style_preproc,
- ["internal"] = style_standout,
-
- ["command"] = style { fore = colors.green, bold = true },
- ["preamble"] = style_comment,
- ["embedded"] = style { fore = colors.black, bold = true },
- ["grouping"] = style { fore = colors.red },
- ["label"] = style { fore = colors.red, bold = true },
- ["primitive"] = style_keyword,
- ["plain"] = style { fore = colors.dark, bold = true },
- ["user"] = style { fore = colors.green },
- ["data"] = style_constant,
- ["special"] = style { fore = colors.blue },
- ["extra"] = style { fore = colors.yellow },
- ["quote"] = style { fore = colors.blue, bold = true },
-
+ -- ["definition"] = style_definition,
["okay"] = style_okay,
["warning"] = style_warning,
["invisible"] = style_invisible,
- ["error"] = style_error,
+ -- ["standout"] = style_standout,
+ ["command"] = style_command,
+ ["internal"] = style_internal,
+ ["preamble"] = style_preamble,
+ ["grouping"] = style_grouping,
+ ["primitive"] = style_primitive,
+ ["plain"] = style_plain,
+ ["user"] = style_user,
+ ["data"] = style_data,
}
local styleset = { }
-for k, v in next, lexer.context.styles do
+for k, v in next, styles do
styleset[#styleset+1] = { k, v }
end
-lexer.context.styleset = styleset
+context.styles = styles
+context.styleset = styleset
+
+-- We can be sparse if needed:
+
+-- function context.newstyleset(list)
+-- local t = { }
+-- if list then
+-- for i=1,#list do
+-- t[list[i]] = true
+-- end
+-- end
+-- return t
+-- end
+
+-- function context.usestyle(set,name)
+-- set[name] = true
+-- return name
+-- end
+
+-- function context.usestyleset(set)
+-- local t = { }
+-- for k, _ in next, set do
+-- t[#t+1] = { k, styles[k] or styles.default }
+-- end
+-- end