aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init.lua88
1 files changed, 59 insertions, 29 deletions
diff --git a/init.lua b/init.lua
index d84bfaf..1170b98 100644
--- a/init.lua
+++ b/init.lua
@@ -8,10 +8,12 @@
require('vis')
-MODAL_STYLE = 51
-MODAL_STYLE_INVERTED = 52
+local M = {}
-VMODES = {
+local MODAL_STYLE = 51
+local MODAL_STYLE_INVERTED = 52
+
+local MODES_DEFAULT = {
[vis.modes.NORMAL] = ' NORMAL ',
[vis.modes.INSERT] = ' INSERT ',
[vis.modes.VISUAL] = ' VISUAL ',
@@ -20,10 +22,56 @@ VMODES = {
[vis.modes.OPERATOR_PENDING] = ' OPERATOR_PENDING ',
}
+local MODES_ABRV = {
+ [vis.modes.NORMAL] = ' NOR ',
+ [vis.modes.INSERT] = ' INS ',
+ [vis.modes.VISUAL] = ' VIS ',
+ [vis.modes.REPLACE] = ' REP ',
+ [vis.modes.VISUAL_LINE] = ' V-L ',
+ [vis.modes.OPERATOR_PENDING] = ' O-P ',
+}
+
+local MODES_TEMPLATES = {
+ MODES_DEFAULT,
+ MODEA_ABRV,
+}
+M.MODES_TEMPLATES = MODES_TEMPLATES
+
+local MODES = MODES_DEFAULT
+M.MODES = MODES
+
+local STYLES = {
+ [vis.modes.NORMAL] = {
+ REGULAR = 'fore:default,back:yellow',
+ INVERTED = 'fore:yellow,back:black',
+ },
+ [vis.modes.INSERT] = {
+ REGULAR = 'fore:default,back:green',
+ INVERTED = 'fore:green,back:black',
+ },
+ [vis.modes.VISUAL] = {
+ REGULAR = 'fore:default,back:magenta',
+ INVERTED = 'fore:magenta,back:black',
+ },
+ [vis.modes.REPLACE] = {
+ REGULAR = 'fore:default,back:blue',
+ INVERTED = 'fore:blue,back:black',
+ },
+ [vis.modes.VISUAL_LINE] = {
+ REGULAR = 'fore:default,back:magenta',
+ INVERTED = 'fore:magenta,back:black',
+ },
+ [vis.modes.OPERATOR_PENDING] = {
+ REGULAR = 'fore:default,back:blue',
+ INVERTED = 'fore:blue,back:black',
+ },
+}
+M.STYLES = STYLES
+
vis.events.subscribe(vis.events.WIN_STATUS, function(win)
local filename = ' [NO NAME] '
if win.file.name then filename = ' '..win.file.name..' ' end
- local vmode = VMODES[vis.mode]
+ local vmode = MODES[vis.mode]
local recording = ''
if vis.recording then
recording = ' @ RECORDING'
@@ -40,34 +88,16 @@ vis.events.subscribe(vis.events.WIN_STATUS, function(win)
win:status(status_left, status_right)
- if vis.mode == vis.modes.INSERT then
- win:style_define(MODAL_STYLE,
- vis.lexers.STYLE_STATUS_FOCUSED..'fore:black,back:green')
- win:style_define(MODAL_STYLE_INVERTED, 'fore:green,back:black')
- elseif vis.mode == vis.modes.VISUAL
- or vis.mode == vis.modes.VISUAL_LINE then
- win:style_define(MODAL_STYLE,
- vis.lexers.STYLE_STATUS_FOCUSED..'fore:black,back:magenta')
- win:style_define(MODAL_STYLE_INVERTED, 'fore:magenta,back:black')
- elseif vis.mode == vis.modes.OPERATOR_PENDING
- or vis.mode == vis.modes.REPLACE then
- win:style_define(MODAL_STYLE,
- vis.lexers.STYLE_STATUS_FOCUSED..'fore:black,back:blue')
- win:style_define(MODAL_STYLE_INVERTED, 'fore:blue,back:black')
- elseif vis.mode == vis.modes.NORMAL then
- win:style_define(MODAL_STYLE,
- vis.lexers.STYLE_STATUS_FOCUSED..',back:yellow')
- win:style_define(MODAL_STYLE_INVERTED,
- vis.lexers.STYLE_STATUS_FOCUSED..',back:black,fore:yellow')
- end
+ win:style_define(MODAL_STYLE, STYLES[vis.mode].REGULAR)
+ win:style_define(MODAL_STYLE_INVERTED, STYLES[vis.mode].INVERTED)
- for i=0,string.len(vmode) do
+ for i=0,win.width do
win:style_pos(MODAL_STYLE, i, win.height - 1)
end
- for i=string.len(vmode),string.len(vmode)+string.len(filename) do
+ for i=string.len(vmode),string.len(vmode)+string.len(filename)-1 do
win:style_pos(MODAL_STYLE_INVERTED, i, win.height - 1)
end
- for i=string.len(vmode)+string.len(filename),win.width do
- win:style_pos(MODAL_STYLE, i, win.height - 1)
- end
end)
+
+
+return M