aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordacctal <dacctal@symlinx.net>2026-04-27 07:57:06 +0000
committerdacctal <dacctal@symlinx.net>2026-04-27 07:57:06 +0000
commitda6bd6c874fadb526bc8c365427c2dcc37988fcd (patch)
tree6c49f82abf274b8116b3710e3ba68e62d08bf3cb
parentd8085e484a3ac3c53c88f0cbf29822a7a4f5bd66 (diff)
beautiful code & recording detection
-rw-r--r--init.lua47
1 files changed, 37 insertions, 10 deletions
diff --git a/init.lua b/init.lua
index db76e55..ef2558d 100644
--- a/init.lua
+++ b/init.lua
@@ -1,4 +1,10 @@
---[[ modal - the status line colorizer for vis ]]
+--[[
+
+ modal
+ the status line colorizer for vis
+ soon-to-be configurable :)
+
+]]
require('vis')
@@ -16,22 +22,43 @@ VMODES = {
vis.events.subscribe(vis.events.WIN_STATUS, function(win)
local filename = ' [NO NAME] '
- if win.file.name then filename = ' '..win.file.name..' ' end
+ if win.file.name then filename = ' '..win.file.name..' ' end
local vmode = VMODES[vis.mode]
- win:status(vmode..filename)
+ local recording = ''
+ if vis.recording then
+ recording = ' @ RECORDING'
+ end
+ status_left = vmode..filename..recording
+
+ cursors = 0
+ for _ in win:selections_iterator() do cursors = cursors+1 end
+ selection_size = "SELECTION_SIZE: "..
+ win.selection.range.finish-win.selection.range.start
+ cursor_amount = "CURSORS: "..cursors
+ cursor_pos = win.selection.line..":"..win.selection.col
+ status_right = selection_size.." | "..cursor_amount.." @ "..cursor_pos
+
+ 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,
+ 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')
+ 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')
+ 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')
+ 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
for i=0,string.len(vmode) do