summaryrefslogtreecommitdiff
path: root/test/vis/visrc.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/vis/visrc.lua')
-rw-r--r--test/vis/visrc.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/vis/visrc.lua b/test/vis/visrc.lua
new file mode 100644
index 0000000..da34920
--- /dev/null
+++ b/test/vis/visrc.lua
@@ -0,0 +1,27 @@
+package.path = '../../lua/?.lua;'..package.path
+dofile("../../lua/vis.lua")
+
+local function run_if_exists(luafile)
+ local f = io.open(luafile, "r")
+ if f ~= nil then
+ f:close()
+ dofile(luafile)
+ end
+end
+
+vis.events.subscribe(vis.events.WIN_OPEN, function(win)
+ -- test.in file passed to vis
+ local name = win.file.name
+ if name then
+ -- use the corresponding test.lua file
+ name = string.gsub(name, '%.in$', '')
+ run_if_exists(string.format("%s.lua", name))
+ local file = io.open(string.format("%s.keys", name))
+ local keys = file:read('*all')
+ keys = string.gsub(keys, '%s*\n', '')
+ keys = string.gsub(keys, '<Space>', ' ')
+ file:close()
+ vis:feedkeys(keys..'<Escape>')
+ vis:command(string.format("w! '%s.out'", name))
+ end
+end)