require('vis') require('plugins/vis-pairs') local lsp = require('plugins/vis-lspc') local format = require('plugins/vis-format') format.formatters.caml = format.stdio_formatter("ocamlformat --impl -") lsp.highlight_diagnostics = 'range' lsp.menu_cmd = 'vis-menu' vis:command_register("spell", function(argv, force, cur_win, selection, range) vis:feedkeys(":!aspell -t -c $vis_filepath") end, 'Spell check file with aspell') vis:command_register("fd", function(argv, force, cur_win, selection, range) local out = io.popen("fd . | vis-menu -i"):read() if out then vis:command(string.format('e'..' "%s"', out)) vis:feedkeys("") end end, 'fuzzy file search') vis:command_register("grep", function(argv, force, cur_win, selection, range) local out = io.popen("ugrep "..argv[1].." | vis-menu | cut -d: -f1"):read() if out then vis:command(string.format('e'..' "%s"', out)) vis:feedkeys("") end end, 'Grep') vis:command_register("todo", function(argv, force, cur_win, selection, range) vis:feedkeys("i* TODO ") end, 'Add TODO item') vis:command_register("journal", function(argv, force, cur_win, selection, range) vis:insert("* :journal:") vis:feedkeys("11h") end, 'Add journal entry') vis.events.subscribe(vis.events.INIT, function() -- Your global configuration options vis:map(vis.modes.NORMAL, 'Y', ':> wl-copy 2>/dev/null -n') vis:map(vis.modes.VISUAL, 'y', ':> wl-copy 2>/dev/null -n') vis:command('set theme minimal-light') vis:map(vis.modes.NORMAL, '=', format.apply) vis:map(vis.modes.NORMAL, ',', ":") vis:map(vis.modes.VISUAL, ',', ":") vis:map(vis.modes.VISUAL, 'gq', function() vis:feedkeys(":|fmt -w 80") end) end) vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- luacheck: no unused args -- Your per window configuration options e.g. -- vis:command('set number') vis:command('set showeof off') vis:command('set expandtab') vis:command('set tw 2') end)