diff options
Diffstat (limited to 'context/data/textadept/context/themes/scite-context-theme.lua')
-rw-r--r-- | context/data/textadept/context/themes/scite-context-theme.lua | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/context/data/textadept/context/themes/scite-context-theme.lua b/context/data/textadept/context/themes/scite-context-theme.lua new file mode 100644 index 000000000..f746c3d09 --- /dev/null +++ b/context/data/textadept/context/themes/scite-context-theme.lua @@ -0,0 +1,159 @@ +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 "" + +-- What used to be proper Lua definitions are in 3.42 SciTE properties although +-- integration is still somewhat half. Also, the indexed style specification is +-- now a hash (which indeed makes more sense). However, the question is: am I +-- going to rewrite the style bit? It anyway makes more sense to keep this file +-- somewhat neutral as we no longer need to be compatible. However, we cannot be +-- sure of helpers being present yet when this file is loaded, so we are somewhat +-- crippled. On the other hand, I don't see other schemes being used with the +-- context lexers. + +-- The next kludge is no longer needed which is good! +-- +-- if GTK then -- WIN32 GTK OSX CURSES +-- font_name = '!' .. font_name +-- end + +-- I need to play with these, some work ok: +-- +-- eolfilled noteolfilled +-- characterset:u|l +-- visible notvisible +-- changeable notchangeable (this way we can protect styles, e.g. preamble?) +-- hotspot nothotspot + +if not lexers or not lexers.initialized then + + local font_name = 'Dejavu Sans Mono' + local font_size = '14' + + local colors = { + red = { 0x7F, 0x00, 0x00 }, + green = { 0x00, 0x7F, 0x00 }, + blue = { 0x00, 0x00, 0x7F }, + cyan = { 0x00, 0x7F, 0x7F }, + magenta = { 0x7F, 0x00, 0x7F }, + yellow = { 0x7F, 0x7F, 0x00 }, + orange = { 0xB0, 0x7F, 0x00 }, + -- + white = { 0xFF }, + light = { 0xCF }, + grey = { 0x80 }, + dark = { 0x4F }, + black = { 0x00 }, + -- + selection = { 0xF7 }, + logpanel = { 0xE7 }, + textpanel = { 0xCF }, + linepanel = { 0xA7 }, + tippanel = { 0x44 }, + -- + right = { 0x00, 0x00, 0xFF }, + wrong = { 0xFF, 0x00, 0x00 }, + } + + local styles = { + + ["whitespace"] = { }, + -- ["default"] = { font = font_name, size = font_size, fore = colors.black, back = colors.textpanel }, + -- ["default"] = { font = font_name, size = font_size, fore = colors.black }, + ["default"] = { font = font_name, size = font_size, fore = colors.black, + back = textadept and colors.textpanel or nil }, + ["number"] = { fore = colors.cyan }, + ["comment"] = { fore = colors.yellow }, + ["keyword"] = { fore = colors.blue, bold = true }, + ["string"] = { fore = colors.magenta }, + -- ["preproc"] = { fore = colors.yellow, bold = true }, + ["error"] = { fore = colors.red }, + ["label"] = { fore = colors.red, bold = true }, + + ["nothing"] = { }, + ["class"] = { fore = colors.black, bold = true }, + ["function"] = { fore = colors.black, bold = true }, + ["constant"] = { fore = colors.cyan, bold = true }, + ["operator"] = { fore = colors.blue }, + ["regex"] = { fore = colors.magenta }, + ["preprocessor"] = { fore = colors.yellow, bold = true }, + ["tag"] = { fore = colors.cyan }, + ["type"] = { fore = colors.blue }, + ["variable"] = { fore = colors.black }, + ["identifier"] = { }, + + ["linenumber"] = { back = colors.linepanel }, + ["bracelight"] = { fore = colors.orange, bold = true }, + ["bracebad"] = { fore = colors.orange, bold = true }, + ["controlchar"] = { }, + ["indentguide"] = { fore = colors.linepanel, back = colors.white }, + ["calltip"] = { fore = colors.white, back = colors.tippanel }, + + ["invisible"] = { back = colors.orange }, + ["quote"] = { fore = colors.blue, bold = true }, + ["special"] = { fore = colors.blue }, + ["extra"] = { fore = colors.yellow }, + ["embedded"] = { fore = colors.black, bold = true }, + ["char"] = { fore = colors.magenta }, + ["reserved"] = { fore = colors.magenta, bold = true }, + ["definition"] = { fore = colors.black, bold = true }, + ["okay"] = { fore = colors.dark }, + ["warning"] = { fore = colors.orange }, + ["standout"] = { fore = colors.orange, bold = true }, + ["command"] = { fore = colors.green, bold = true }, + ["internal"] = { fore = colors.orange, bold = true }, + ["preamble"] = { fore = colors.yellow }, + ["grouping"] = { fore = colors.red }, + ["primitive"] = { fore = colors.blue, bold = true }, + ["plain"] = { fore = colors.dark, bold = true }, + ["user"] = { fore = colors.green }, + ["data"] = { fore = colors.cyan, bold = true }, + + -- equal to default: + + ["text"] = { font = font_name, size = font_size, fore = colors.black, back = colors.textpanel }, + ["text"] = { font = font_name, size = font_size, fore = colors.black }, + + } + + local properties = { + ["fold.by.parsing"] = 1, + ["fold.by.indentation"] = 0, + ["fold.by.line"] = 0, + ["fold.line.comments"] = 0, + -- + ["lexer.context.log"] = 1, -- log errors and warnings + ["lexer.context.trace"] = 0, -- show loading, initializations etc + ["lexer.context.detail"] = 0, -- show more detail when tracing + ["lexer.context.show"] = 0, -- show result of lexing + ["lexer.context.collapse"] = 0, -- make lexing results somewhat more efficient + ["lexer.context.inspect"] = 0, -- show some info about lexer (styles and so) + -- + -- ["lexer.context.log"] = 1, -- log errors and warnings + -- ["lexer.context.trace"] = 1, -- show loading, initializations etc + } + + ----- lexers = require("lexer") + local lexer = require("scite-context-lexer") + local context = lexer.context + + if context then + context.inform("loading context (style) properties") + if context.registerstyles then + context.registerstyles(styles) + end + if context.registercolors then + context.registercolors(colors) + end + if context.registerproperties then + context.registerproperties(properties) + end + end + +end |