From 4554c2ca782ea2667570d81899142af8a642aa3b Mon Sep 17 00:00:00 2001 From: mitchell <70453897+667e-11@users.noreply.github.com> Date: Wed, 24 Sep 2008 19:00:19 -0400 Subject: Added _THEME variable; themes are now directories with view.lua and buffer.lua. Now editing core/events.lua's buffer_new handler function is no longer necessary on a per-user basis. If _THEME is set, that theme's buffer.lua is loaded for a 'buffer_new' event, and view.lua for 'view_new'. --- core/events.lua | 19 +++++++++++++++---- core/init.lua | 1 + themes/scite.lua | 27 --------------------------- themes/scite/buffer.lua | 20 ++++++++++++++++++++ themes/scite/view.lua | 27 +++++++++++++++++++++++++++ 5 files changed, 63 insertions(+), 31 deletions(-) delete mode 100644 themes/scite.lua create mode 100644 themes/scite/buffer.lua create mode 100644 themes/scite/view.lua diff --git a/core/events.lua b/core/events.lua index c707b872..48575b8e 100644 --- a/core/events.lua +++ b/core/events.lua @@ -208,16 +208,18 @@ add_handler('view_new', buffer.property['textadept.home'] = _HOME buffer.property['lexer.lua.home'] = _HOME..'/lexers/' buffer.property['lexer.lua.script'] = _HOME..'/lexers/lexer.lua' - --buffer.property['lexer.lua.color.theme'] = 'scite' + if _THEME and #_THEME > 0 then + buffer.property['lexer.lua.color.theme'] = _THEME + end -- lexer buffer.style_bits = 8 buffer.lexer = c.SCLEX_LPEG buffer:set_lexer_language('container') - local theme = buffer:get_property_expanded('lexer.lua.color.theme') - if theme and theme ~= '' then - local ret, errmsg = pcall(dofile, _HOME..'/themes/'..theme..'.lua') + if _THEME and #_THEME > 0 then + local ret, errmsg = + pcall(dofile, _HOME..'/themes/'.._THEME..'/view.lua') if ret then return end io.stderr:write(errmsg) end @@ -286,6 +288,15 @@ add_handler('buffer_new', buffer.lexer = textadept.constants.SCLEX_LPEG buffer:set_lexer_language('container') + if _THEME and #_THEME > 0 then + local ret, errmsg = + pcall(dofile, _HOME..'/themes/'.._THEME..'/buffer.lua') + if ret then return end + io.stderr:write(errmsg) + end + + -- Default theme. + -- folding buffer.property['fold'] = '1' buffer.property['fold.by.indentation'] = '1' diff --git a/core/init.lua b/core/init.lua index 82348f1f..6b491583 100644 --- a/core/init.lua +++ b/core/init.lua @@ -6,6 +6,7 @@ if not WIN32 then else package.cpath = _HOME..'/core/?.dll;'..package.cpath end +_THEME = '' require 'iface' require 'events' diff --git a/themes/scite.lua b/themes/scite.lua deleted file mode 100644 index 3a1c2576..00000000 --- a/themes/scite.lua +++ /dev/null @@ -1,27 +0,0 @@ --- Copyright 2007-2008 Mitchell mitchellcaladbolg.net. See LICENSE. --- SciTE editor theme for Textadept. - -local buffer, c = buffer, textadept.constants - -buffer.margin_width_n[0] = 4 * buffer:text_width(c.STYLE_LINENUMBER, "9") - -buffer.caret_period = 500 - --- fold margin -buffer.margin_type_n[2] = c.SC_MARGIN_SYMBOL -buffer.margin_width_n[2] = 16 -buffer.margin_mask_n[2] = c.SC_MASK_FOLDERS -buffer.margin_sensitive_n[2] = true - --- fold margin markers -buffer:marker_define(c.SC_MARKNUM_FOLDEROPEN, c.SC_MARK_MINUS) -buffer:marker_set_fore(c.SC_MARKNUM_FOLDEROPEN, 16777215) -buffer:marker_set_back(c.SC_MARKNUM_FOLDEROPEN, 0) -buffer:marker_define(c.SC_MARKNUM_FOLDER, c.SC_MARK_PLUS) -buffer:marker_set_fore(c.SC_MARKNUM_FOLDER, 16777215) -buffer:marker_set_back(c.SC_MARKNUM_FOLDER, 0) -buffer:marker_define(c.SC_MARKNUM_FOLDERSUB, c.SC_MARK_EMPTY) -buffer:marker_define(c.SC_MARKNUM_FOLDERTAIL, c.SC_MARK_EMPTY) -buffer:marker_define(c.SC_MARKNUM_FOLDEREND, c.SC_MARK_EMPTY) -buffer:marker_define(c.SC_MARKNUM_FOLDEROPENMID, c.SC_MARK_EMPTY) -buffer:marker_define(c.SC_MARKNUM_FOLDERMIDTAIL, c.SC_MARK_EMPTY) diff --git a/themes/scite/buffer.lua b/themes/scite/buffer.lua new file mode 100644 index 00000000..d46cc88a --- /dev/null +++ b/themes/scite/buffer.lua @@ -0,0 +1,20 @@ +-- Copyright 2007-2008 Mitchell mitchellcaladbolg.net. See LICENSE. +-- SciTE editor theme for Textadept. + +local textadept, buffer = textadept, buffer + +-- folding +buffer.property['fold'] = '1' +buffer.property['fold.by.indentation'] = '1' + +-- tabs and indentation +buffer.tab_width = 2 +buffer.use_tabs = false +buffer.indent = 2 +buffer.tab_indents = true +buffer.back_space_un_indents = true +buffer.indentation_guides = 1 + +-- various +buffer.eol_mode = textadept.constants.SC_EOL_LF +buffer.auto_c_choose_single = true diff --git a/themes/scite/view.lua b/themes/scite/view.lua new file mode 100644 index 00000000..3a1c2576 --- /dev/null +++ b/themes/scite/view.lua @@ -0,0 +1,27 @@ +-- Copyright 2007-2008 Mitchell mitchellcaladbolg.net. See LICENSE. +-- SciTE editor theme for Textadept. + +local buffer, c = buffer, textadept.constants + +buffer.margin_width_n[0] = 4 * buffer:text_width(c.STYLE_LINENUMBER, "9") + +buffer.caret_period = 500 + +-- fold margin +buffer.margin_type_n[2] = c.SC_MARGIN_SYMBOL +buffer.margin_width_n[2] = 16 +buffer.margin_mask_n[2] = c.SC_MASK_FOLDERS +buffer.margin_sensitive_n[2] = true + +-- fold margin markers +buffer:marker_define(c.SC_MARKNUM_FOLDEROPEN, c.SC_MARK_MINUS) +buffer:marker_set_fore(c.SC_MARKNUM_FOLDEROPEN, 16777215) +buffer:marker_set_back(c.SC_MARKNUM_FOLDEROPEN, 0) +buffer:marker_define(c.SC_MARKNUM_FOLDER, c.SC_MARK_PLUS) +buffer:marker_set_fore(c.SC_MARKNUM_FOLDER, 16777215) +buffer:marker_set_back(c.SC_MARKNUM_FOLDER, 0) +buffer:marker_define(c.SC_MARKNUM_FOLDERSUB, c.SC_MARK_EMPTY) +buffer:marker_define(c.SC_MARKNUM_FOLDERTAIL, c.SC_MARK_EMPTY) +buffer:marker_define(c.SC_MARKNUM_FOLDEREND, c.SC_MARK_EMPTY) +buffer:marker_define(c.SC_MARKNUM_FOLDEROPENMID, c.SC_MARK_EMPTY) +buffer:marker_define(c.SC_MARKNUM_FOLDERMIDTAIL, c.SC_MARK_EMPTY) -- cgit v1.2.3