neovim

Personal neovim configuration files
git clone git://gtms.dev/neovim.git
Log | Files | Refs

commit 0b4570f37a682193b5ef45195c1d6c97b28491a3
parent 1826d89ddf2bd116ac9a4b6a12badd9065dbae48
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Mon,  7 Mar 2022 18:32:23 +0100

update

Diffstat:
Mftplugin/dart.lua | 11++++++-----
Mftplugin/mail.lua | 2+-
Minit.lua | 160+++++++++++++++++++++++++++++++++++--------------------------------------------
Dlua/tms/c/autocmd.lua | 39---------------------------------------
Dlua/tms/c/keybind.lua | 19-------------------
Mlua/tms/ft/dart/bin.lua | 3++-
Mlua/tms/lsp/init.lua | 35+++++++++++++++++------------------
Mlua/tms/p/luasnip.lua | 24++++++++++--------------
Mlua/tms/p/nullls.lua | 6+++---
Mlua/tms/p/refactoring.lua | 21++++++---------------
Mlua/tms/p/sidebar/init.lua | 4++--
Mlua/tms/p/zk.lua | 12++++++------
Mlua/tms/plugins.lua | 158+++++++++++++++++++++++++++++++++++++++----------------------------------------
Mlua/tms/ws/init.lua | 4+++-
Mplugin/bufremove.lua | 8++++----
Mplugin/diagnostic.lua | 16++++++++--------
Mplugin/file_pairs.lua | 10++++------
Mplugin/grep.lua | 4++--
Mplugin/marks.lua | 6+++---
Aplugin/scratch.lua | 12++++++++++++
Mplugin/terminal.lua | 48+++++++++++++++++++++++-------------------------
Mplugin/unimpaired.lua | 58+++++++++++++++++++++++++++++-----------------------------
Mplugin/ws.lua | 7+++++--
23 files changed, 295 insertions(+), 372 deletions(-)

diff --git a/ftplugin/dart.lua b/ftplugin/dart.lua @@ -8,10 +8,12 @@ vim.cmd [[command! -buffer DartOrganizeImports lua require('tms.ft.dart.lsp').or vim.cmd [[command! -buffer DartFixAll lua require('tms.ft.dart.lsp').fix_all()]] vim.cmd [[command! -buffer DartExtract lua require('tms.ft.dart.lsp').extract()]] -vim.keymap.nnoremap {'<leader>pp', [[<cmd>DartPrint<cr>]], ['buffer'] = true} -vim.keymap.nnoremap {'<leader>pa', [[<cmd>lua require('tms.ft.dart.analyze').qf2131()<cr>]], ['buffer'] = true} -vim.keymap.nnoremap {'<leader>po', [[<cmd>DartOrganizeImports<cr>]], ['buffer'] = true} -vim.keymap.nnoremap {'<leader>pf', [[<cmd>DartFixAll<cr>]], ['buffer'] = true} +vim.keymap.set('n', '<leader>pp', function() require('tms.ft.dart.debug').print() end, {buffer = true, noremap = true}) +vim.keymap.set('n', '<leader>pa', function() require('tms.ft.dart.analyze').qf2131() end, + {buffer = true, noremap = true}) +vim.keymap.set('n', '<leader>po', function() require('tms.ft.dart.lsp').organize_imports() end, + {buffer = true, noremap = true}) +vim.keymap.set('n', '<leader>pf', function() require('tms.ft.dart.lsp').fix_all() end, {buffer = true, noremap = true}) if vim.fn.getline(1):match('^#!.*dcli') then vim.cmd [[comp dcli]] @@ -20,4 +22,3 @@ else end -- require('tms.p.cmp').enable_autocomplete() - diff --git a/ftplugin/mail.lua b/ftplugin/mail.lua @@ -1,3 +1,3 @@ vim.opt.spell = true vim.opt.spelllang = {'cs', 'csa', 'en'} -vim.keymap.nnoremap {'<leader>pa', require('tms.p.telescope').mail_address, buffer = true} +vim.keymap.set('n', '<leader>pa', require('tms.p.telescope').mail_address, {buffer = true}) diff --git a/init.lua b/init.lua @@ -14,7 +14,6 @@ end -- Meta setup require('impatient') -- faster `require` -require('tms.c.keybind') -- vim.keymap require('colorbuddy').colorscheme('my-default') -- disable netrw @@ -72,107 +71,90 @@ vim.opt.signcolumn = 'yes:1' -- MAPPINGS vim.g.mapleader = ',' -- forget visual -vim.keymap.nmap {'Q', '<nop>'} +vim.keymap.set('n', 'Q', '<nop>') -- kb.nnoremap('<tab>', 'za') -vim.keymap.nmap {'<esc>', '<cmd>nohl<cr>', silent = true} -vim.keymap.nnoremap {'gA', 'ga'} -vim.keymap.nnoremap {'Y', 'y$'} -vim.keymap.nnoremap {'n', 'nzzzv'} -vim.keymap.nnoremap {'N', 'Nzzzv'} -vim.keymap.nnoremap {'J', 'mzJ`z'} -vim.keymap.inoremap {',', ',<c-g>u'} -vim.keymap.inoremap {'.', '.<c-g>u'} -vim.keymap.inoremap {'!', '!<c-g>u'} -vim.keymap.inoremap {'?', '?<c-g>u'} +vim.keymap.set('n', '<esc>', '<cmd>nohl<cr>', {silent = true}) +vim.keymap.set('n', 'gA', 'ga', {noremap = true}) +vim.keymap.set('n', 'Y', 'y$', {noremap = true}) +vim.keymap.set('n', 'n', 'nzzzv', {noremap = true}) +vim.keymap.set('n', 'N', 'Nzzzv', {noremap = true}) +vim.keymap.set('n', 'J', 'mzJ`z', {noremap = true}) +vim.keymap.set('i', ',', ',<c-g>u', {noremap = true}) +vim.keymap.set('i', '.', '.<c-g>u', {noremap = true}) +vim.keymap.set('i', '!', '!<c-g>u', {noremap = true}) +vim.keymap.set('i', '?', '?<c-g>u', {noremap = true}) -- shortcuts -vim.keymap.nnoremap {'<leader>w', '<cmd>write<cr>'} -vim.keymap.nnoremap {'<leader>W', '<cmd>wall<cr>'} -vim.keymap.nnoremap {'<leader>e', '<cmd>edit<cr>'} -vim.keymap.nnoremap {'<leader>E', ':e %:h/'} -vim.keymap.nnoremap {'<leader>q', '<cmd>quit<cr>'} -vim.keymap.nnoremap {'<leader>Q', '<cmd>quit!<cr>'} -vim.keymap.nnoremap {'<leader>M', '<cmd>messages<cr>'} -vim.keymap.nnoremap {'<leader>so', '<cmd>source<cr>'} -vim.keymap.nnoremap {'<leader>bo', '<cmd>BufOnly<cr>'} -vim.keymap.nnoremap {'<leader>bO', '<cmd>BufOnly!<cr>'} +vim.keymap.set('n', '<leader>w', '<cmd>write<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>W', '<cmd>wall<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>e', '<cmd>edit<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>E', ':e %:h/', {noremap = true}) +vim.keymap.set('n', '<leader>q', '<cmd>quit<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>Q', '<cmd>quit!<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>M', '<cmd>messages<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>so', '<cmd>source<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>bo', '<cmd>BufOnly<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>bO', '<cmd>BufOnly!<cr>', {noremap = true}) -- window movement -vim.keymap.nnoremap {'<a-h>', '<c-w>h'} -vim.keymap.nnoremap {'<a-j>', '<c-w>j'} -vim.keymap.nnoremap {'<a-k>', '<c-w>k'} -vim.keymap.nnoremap {'<a-l>', '<c-w>l'} +vim.keymap.set('n', '<a-h>', '<c-w>h', {noremap = true}) +vim.keymap.set('n', '<a-j>', '<c-w>j', {noremap = true}) +vim.keymap.set('n', '<a-k>', '<c-w>k', {noremap = true}) +vim.keymap.set('n', '<a-l>', '<c-w>l', {noremap = true}) -- window movement in terminal -vim.keymap.tnoremap {'<a-l>', '<c-\\><c-n><c-w>l'} -vim.keymap.tnoremap {'<a-j>', '<c-\\><c-n><c-w>j'} -vim.keymap.tnoremap {'<a-k>', '<c-\\><c-n><c-w>k'} -vim.keymap.tnoremap {'<a-h>', '<c-\\><c-n><c-w>h'} -vim.keymap.tnoremap {'<a-r>', '<c-\\><c-n>'} +vim.keymap.set('t', '<a-l>', '<c-\\><c-n><c-w>l', {noremap = true}) +vim.keymap.set('t', '<a-j>', '<c-\\><c-n><c-w>j', {noremap = true}) +vim.keymap.set('t', '<a-k>', '<c-\\><c-n><c-w>k', {noremap = true}) +vim.keymap.set('t', '<a-h>', '<c-\\><c-n><c-w>h', {noremap = true}) +vim.keymap.set('t', '<a-r>', '<c-\\><c-n>', {noremap = true}) -- window move -vim.keymap.nnoremap {'<a-H>', '<c-w>H'} -vim.keymap.nnoremap {'<a-J>', '<c-w>J'} -vim.keymap.nnoremap {'<a-K>', '<c-w>K'} -vim.keymap.nnoremap {'<a-L>', '<c-w>L'} +vim.keymap.set('n', '<a-H>', '<c-w>H', {noremap = true}) +vim.keymap.set('n', '<a-J>', '<c-w>J', {noremap = true}) +vim.keymap.set('n', '<a-K>', '<c-w>K', {noremap = true}) +vim.keymap.set('n', '<a-L>', '<c-w>L', {noremap = true}) -- window split -vim.keymap.nnoremap {'<c-w><c-s>', require('tms.p.vifm').split, silent = true} -vim.keymap.nnoremap {'<c-w><c-v>', require('tms.p.vifm').vsplit, silent = true} -vim.keymap.nnoremap {'<c-w><c-w>', require('tms.p.vifm').current, silent = true} -vim.keymap.nnoremap {'<c-w>V', '<cmd>vnew<cr>'} -vim.keymap.nnoremap {'<c-w>S', '<cmd>new<cr>'} +vim.keymap.set('n', '<c-w><c-s>', require('tms.p.vifm').split, {silent = true, noremap = true}) +vim.keymap.set('n', '<c-w><c-v>', require('tms.p.vifm').vsplit, {silent = true, noremap = true}) +vim.keymap.set('n', '<c-w><c-w>', require('tms.p.vifm').current, {silent = true, noremap = true}) +vim.keymap.set('n', '<c-w>V', '<cmd>vnew<cr>', {noremap = true}) +vim.keymap.set('n', '<c-w>S', '<cmd>new<cr>', {noremap = true}) -- line movement -vim.keymap.nnoremap {'<c-j>', ':m .+1<cr>=='} -vim.keymap.nnoremap {'<c-k>', ':m .-2<cr>=='} -vim.keymap.inoremap {'<c-j>', '<esc>:m .+1<cr>=='} -vim.keymap.inoremap {'<c-k>', '<esc>:m .-2<cr>=='} -vim.keymap.vnoremap {'<c-j>', ':m \'>+1<cr>gv=gv'} -vim.keymap.vnoremap {'<c-k>', ':m \'<-2<cr>gv=gv'} +vim.keymap.set('n', '<c-j>', ':m .+1<cr>==', {noremap = true}) +vim.keymap.set('n', '<c-k>', ':m .-2<cr>==', {noremap = true}) +vim.keymap.set('i', '<c-j>', '<esc>:m .+1<cr>==', {noremap = true}) +vim.keymap.set('i', '<c-k>', '<esc>:m .-2<cr>==', {noremap = true}) +vim.keymap.set('v', '<c-j>', ':m \'>+1<cr>gv=gv', {noremap = true}) +vim.keymap.set('v', '<c-k>', ':m \'<-2<cr>gv=gv', {noremap = true}) -- quickfix/loclist -vim.keymap.nnoremap {'<leader>c', '<cmd>call ToggleList("Quickfix List", "c")<cr>'} -vim.keymap.nnoremap {'<leader>C', '<cmd>cexpr []|cclose<cr>'} -vim.keymap.nnoremap {'<leader>l', '<cmd>call ToggleList("Location List", "l")<cr>'} -vim.keymap.nnoremap {'<leader>L', '<cmd>lexpr []|lclose<cr>'} +vim.keymap.set('n', '<leader>c', '<cmd>call ToggleList("Quickfix List", "c")<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>C', '<cmd>cexpr []|cclose<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>l', '<cmd>call ToggleList("Location List", "l")<cr>', {noremap = true}) +vim.keymap.set('n', '<leader>L', '<cmd>lexpr []|lclose<cr>', {noremap = true}) -- fold -vim.keymap.nnoremap {'zH', 'zM'} -vim.keymap.nnoremap {'zh', 'zm'} -vim.keymap.nnoremap {'zj', 'zo'} -vim.keymap.nnoremap {'zJ', 'zO'} -vim.keymap.nnoremap {'zk', 'zc'} -vim.keymap.nnoremap {'zK', 'zC'} -vim.keymap.nnoremap {'zl', 'zr'} -vim.keymap.nnoremap {'zL', 'zR'} --- copy / paste --- vim.keymap.vnoremap {'<c-c>', '\"*y'} --- vim.keymap.inoremap {'<c-v>', '<esc>lmv\"*P`v'} --- vim.keymap.nnoremap {'gp', '`[v`]'} -- reselect pasted text +vim.keymap.set('n', 'zH', 'zM', {noremap = true}) +vim.keymap.set('n', 'zh', 'zm', {noremap = true}) +vim.keymap.set('n', 'zj', 'zo', {noremap = true}) +vim.keymap.set('n', 'zJ', 'zO', {noremap = true}) +vim.keymap.set('n', 'zk', 'zc', {noremap = true}) +vim.keymap.set('n', 'zK', 'zC', {noremap = true}) +vim.keymap.set('n', 'zl', 'zr', {noremap = true}) +vim.keymap.set('n', 'zL', 'zR', {noremap = true}) -- remap double usage -vim.keymap.nnoremap {'y.', 'yy'} -vim.keymap.nnoremap {'z.', 'mmz.`m'} -vim.keymap.nnoremap {'d.', 'dd'} -vim.keymap.nnoremap {'c.', 'cc'} -vim.keymap.nnoremap {'g.', 'gg'} -vim.keymap.nnoremap {'v.', 'V'} -vim.keymap.nnoremap {'=.', '=='} -vim.keymap.nnoremap {'gc.', 'gcc'} +vim.keymap.set('n', 'y.', 'yy', {noremap = true}) +vim.keymap.set('n', 'z.', 'mmz.`m', {noremap = true}) +vim.keymap.set('n', 'd.', 'dd', {noremap = true}) +vim.keymap.set('n', 'c.', 'cc', {noremap = true}) +vim.keymap.set('n', 'g.', 'gg', {noremap = true}) +vim.keymap.set('n', 'v.', 'V', {noremap = true}) +vim.keymap.set('n', '=.', '==', {noremap = true}) +vim.keymap.set('n', 'gc.', 'gcc', {noremap = true}) -- autocommands -local au = require('tms.c.autocmd') -au.addListeners({ - ['user-binary'] = { - [[BufReadPre *.bin let &bin=1]], - [[BufReadPost *.bin if &bin | %!xxd]], - [[BufReadPost *.bin set ft=xxd | endif]], - [[BufWritePre *.bin if &bin | %!xxd -r]], - [[BufWritePre *.bin endif]], - [[BufWritePost *.bin if &bin | %!xxd]], - [[BufWritePost *.bin set nomod | endif]], - }, - ['user-vifm'] = {[[BufEnter vifm:* startinsert]]}, - ['user-cursorline'] = {[[WinEnter * setlocal cursorline]], [[WinLeave * setlocal nocursorline]]}, - ['user-yank-high'] = {[[TextYankPost * silent! lua require'vim.highlight'.on_yank()]]}, - ['user-colorscheme'] = {[[ColorScheme * lua require('tms.u.reload').colors()]]}, - -- ['user-pum'] = {[[CompleteChanged * echo v:event]]} -}) --- commands -vim.cmd('command! Reload lua require("tms.u.reload").nvim()') +vim.api.nvim_create_autocmd('BufEnter', {pattern = 'vifm:*', command = 'startinsert'}) +vim.api.nvim_create_autocmd('WinEnter', {command = 'setlocal cursorline'}) +vim.api.nvim_create_autocmd('WinLeave', {command = 'setlocal nocursorline'}) +vim.api.nvim_create_autocmd('TextYankPost', + {pattern = '*', callback = function() require('vim.highlight').on_yank() end}) +vim.api.nvim_create_autocmd('ColorScheme', {callback = function() require('tms.u.realod').colors() end}) -- Load plugins vim.cmd [[ packadd cfilter ]] diff --git a/lua/tms/c/autocmd.lua b/lua/tms/c/autocmd.lua @@ -1,39 +0,0 @@ -local api = vim.api - -local M = {} - -local globalListenerName = 'TMS_AUCMD' -- change this to be unique across multiple plugin name -local autocmdhandlers = {} -_G[globalListenerName] = function(name) autocmdhandlers[name]() end - -function M.addListener(name, events, fn) - autocmdhandlers[name] = fn - vim.cmd('augroup ' .. name) - vim.cmd('autocmd!') - for _, event in ipairs(events) do - local cmd = 'lua ' .. globalListenerName .. '("' .. name .. '")' - vim.cmd('au ' .. event .. ' ' .. cmd) - end - vim.cmd('augroup end') -end - -M.addListeners = function(listeners) - for group_name, definitions in pairs(listeners) do - api.nvim_command('augroup ' .. group_name) - api.nvim_command('autocmd!') - for _, definition in ipairs(definitions) do - local command = table.concat({'autocmd', definition}, ' ') - api.nvim_command(command) - end - api.nvim_command('augroup END') - end -end - -function M.removeListener(name) - vim.cmd('augroup ' .. name) - vim.cmd('autocmd!') - vim.cmd('augroup end') - autocmdhandlers[name] = nil -end - -return M diff --git a/lua/tms/c/keybind.lua b/lua/tms/c/keybind.lua @@ -1,19 +0,0 @@ -local nmap = function(tbl) vim.keymap.set('n', tbl[1], tbl[2]) end -local omap = function(tbl) vim.keymap.set('o', tbl[1], tbl[2]) end -local xmap = function(tbl) vim.keymap.set('x', tbl[1], tbl[2]) end -local nnoremap = function(tbl) vim.keymap.set('n', tbl[1], tbl[2], {noremap = true}) end -local snoremap = function(tbl) vim.keymap.set('s', tbl[1], tbl[2], {noremap = true}) end -local xnoremap = function(tbl) vim.keymap.set('x', tbl[1], tbl[2], {noremap = true}) end -local tnoremap = function(tbl) vim.keymap.set('t', tbl[1], tbl[2], {noremap = true}) end -local vnoremap = function(tbl) vim.keymap.set('v', tbl[1], tbl[2], {noremap = true}) end -local inoremap = function(tbl) vim.keymap.set('i', tbl[1], tbl[2], {noremap = true}) end - -vim.keymap.nmap = nmap -vim.keymap.omap = omap -vim.keymap.xmap = xmap -vim.keymap.nnoremap = nnoremap -vim.keymap.xnoremap = xnoremap -vim.keymap.snoremap = snoremap -vim.keymap.tnoremap = tnoremap -vim.keymap.vnoremap = vnoremap -vim.keymap.inoremap = inoremap diff --git a/lua/tms/ft/dart/bin.lua b/lua/tms/ft/dart/bin.lua @@ -6,7 +6,8 @@ function M.lsp_cmd() local dart_bin = fn.resolve(fn.exepath('dart')) local dart_bin_root = fn.fnamemodify(dart_bin, ':h') local snapshot = dart_bin_root .. '/snapshots/analysis_server.dart.snapshot' - return {dart_bin, snapshot, '--lsp', '--port=10000'} + return {dart_bin, snapshot, '--lsp'} + -- return {dart_bin, snapshot, '--lsp', '--port=10000'} -- return {dart_bin, snapshot, '--lsp', '--port=10000', '--instrumentation-log-file=/tmp/analysis.txt'} -- return {'/home/tms/.dswitch/active/dart', '/home/tms/dev/dart/sdk/pkg/analysis_server/bin/server.dart', '--lsp', '--port=10000', '--instrumentation-log-file=/tmp/analysis.txt'} end diff --git a/lua/tms/lsp/init.lua b/lua/tms/lsp/init.lua @@ -4,27 +4,26 @@ local M = {} local keybind = function(client, bufnr) local t = require('tms.p.telescope') - vim.keymap.nnoremap {'gd', t.lsp_definitions, buffer = bufnr, silent = true} - vim.keymap.nnoremap {'gD', '<cmd>vsplit | lua vim.lsp.buf.definition()<cr>', silent = true, buffer = bufnr} - vim.keymap.nnoremap {'gT', vim.lsp.buf.type_definition, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'gi', vim.lsp.buf.implementation, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'K', vim.lsp.buf.hover, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'<c-p>', vim.lsp.buf.signature_help, silent = true, buffer = bufnr} - vim.keymap.inoremap {'<c-p>', vim.lsp.buf.signature_help, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'gr', vim.lsp.buf.references, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'ga', vim.lsp.buf.code_action, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'gn', vim.lsp.buf.rename, silent = true, buffer = bufnr} + vim.keymap.set('n', 'gd', t.lsp_definitions, {buffer = bufnr, silent = true}) + vim.keymap.set('n', 'gD', '<cmd>vsplit | lua vim.lsp.buf.definition()<cr>', {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'gT', vim.lsp.buf.type_definition, {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, {silent = true, buffer = bufnr}) + vim.keymap.set('n', '<c-p>', vim.lsp.buf.signature_help, {silent = true, buffer = bufnr}) + vim.keymap.set('i', '<c-p>', vim.lsp.buf.signature_help, {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'ga', vim.lsp.buf.code_action, {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'gn', vim.lsp.buf.rename, {silent = true, buffer = bufnr}) -- Formatting if client.resolved_capabilities.document_formatting == true then - vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') - vim.keymap.nnoremap {'Q', vim.lsp.buf.formatting, silent = true, buffer = bufnr} - vim.keymap.vnoremap {'Q', vim.lsp.buf.range_formatting, silent = true, buffer = bufnr} + vim.keymap.set('n', 'Q', vim.lsp.buf.formatting, {silent = true, buffer = bufnr}) + vim.keymap.set('v', 'Q', vim.lsp.buf.range_formatting, {silent = true, buffer = bufnr}) end -- symbols - vim.keymap.nnoremap {'gm', t.lsp_document_symbols, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'gww', t.b.lsp_dynamic_workspace_symbols, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'gwW', vim.lsp.buf.workspace_symbol, silent = true, buffer = bufnr} - vim.keymap.nnoremap {'gwl', function() D(vim.lsp.buf.list_workspace_folders()) end, silent = true, buffer = bufnr} + vim.keymap.set('n', 'gm', t.lsp_document_symbols, {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'gww', t.b.lsp_dynamic_workspace_symbols, {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'gwW', vim.lsp.buf.workspace_symbol, {silent = true, buffer = bufnr}) + vim.keymap.set('n', 'gwl', function() D(vim.lsp.buf.list_workspace_folders()) end, {silent = true, buffer = bufnr}) end local attach_callbacks = {} @@ -37,7 +36,7 @@ local on_attach = function(client, bufnr) vim.api.nvim_buf_set_option(bufnr, 'tagfunc', 'v:lua.vim.lsp.tagfunc') end if client.resolved_capabilities.document_formatting then - vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') + -- vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') end for _, cb in ipairs(attach_callbacks) do if cb.test(client, bufnr) then -- diff --git a/lua/tms/p/luasnip.lua b/lua/tms/p/luasnip.lua @@ -2,20 +2,16 @@ local M = {} local keymaps = function(luasnip) - vim.keymap.inoremap {'<C-l>', function() if luasnip.expand_or_jumpable() then luasnip.expand_or_jump() end end} - vim.keymap.snoremap {'<C-l>', function() if luasnip.expand_or_jumpable() then luasnip.expand_or_jump() end end} - vim.keymap.inoremap {'<C-h>', function() if luasnip.jumpable(-1) then luasnip.jump(-1) end end} - vim.keymap.snoremap {'<C-h>', function() if luasnip.jumpable(-1) then luasnip.jump(-1) end end} - vim.keymap.inoremap { - '<C-e>', - function() if luasnip.choice_active() then luasnip.change_choice(1) end end, - silent = true, - } - vim.keymap.snoremap { - '<C-e>', - function() if luasnip.choice_active() then luasnip.change_choice(1) end end, - silent = true, - } + vim.keymap.set('i', '<C-l>', function() if luasnip.expand_or_jumpable() then luasnip.expand_or_jump() end end, + {noremap = true}) + vim.keymap.set('s', '<C-l>', function() if luasnip.expand_or_jumpable() then luasnip.expand_or_jump() end end, + {noremap = true}) + vim.keymap.set('i', '<C-h>', function() if luasnip.jumpable(-1) then luasnip.jump(-1) end end, {noremap = true}) + vim.keymap.set('s', '<C-h>', function() if luasnip.jumpable(-1) then luasnip.jump(-1) end end, {noremap = true}) + vim.keymap.set('i', '<C-e>', function() if luasnip.choice_active() then luasnip.change_choice(1) end end, + {silent = true, noremap = true}) + vim.keymap.set('s', '<C-e>', function() if luasnip.choice_active() then luasnip.change_choice(1) end end, + {silent = true, noremap = true}) -- vim.api.nvim_set_keymap("i", "<C-E>", "<Plug>luasnip-next-choice", {}) -- vim.api.nvim_set_keymap("s", "<C-E>", "<Plug>luasnip-next-choice", {}) end diff --git a/lua/tms/p/nullls.lua b/lua/tms/p/nullls.lua @@ -27,9 +27,9 @@ M.setup = function() null_ls.setup({ on_attach = function(client, bufnr) if client.resolved_capabilities.document_formatting == true then - vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') - vim.keymap.nnoremap {'Q', vim.lsp.buf.formatting, silent = true, buffer = bufnr} - vim.keymap.vnoremap {'Q', vim.lsp.buf.range_formatting, silent = true, buffer = bufnr} + -- vim.api.nvim_buf_set_option(bufnr, 'formatexpr', 'v:lua.vim.lsp.formatexpr()') + vim.keymap.set ('n','Q', vim.lsp.buf.formatting, {silent = true, buffer = bufnr, noremap=true}) + vim.keymap.set ('v','Q', vim.lsp.buf.range_formatting, {silent = true, buffer = bufnr, noremap=true}) end end, sources = { diff --git a/lua/tms/p/refactoring.lua b/lua/tms/p/refactoring.lua @@ -3,20 +3,11 @@ local M = {} M.setup = function() local refactor = require('refactoring') refactor.setup({}) - vim.keymap.vnoremap { - '<leader>re', - [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Function')<CR>]], - silent = true, - } - vim.keymap.vnoremap { - '<leader>rf', - [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Function To File')<CR>]], - silent = true, - } - vim.keymap.nnoremap { - '<leader>rv', - [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Variable')<CR>]], - silent = true, - } + vim.keymap.set('n', '<leader>re', [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Function')<CR>]], + {silent = true, noremap = true}) + vim.keymap.set('v', '<leader>rf', [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Function To File')<CR>]], + {silent = true, noremap = true}) + vim.keymap.set('n', '<leader>rv', [[ <Esc><Cmd>lua require('refactoring').refactor('Extract Variable')<CR>]], + {silent = true, noremap = true}) end return M diff --git a/lua/tms/p/sidebar/init.lua b/lua/tms/p/sidebar/init.lua @@ -11,8 +11,8 @@ M.setup = function() disable_closing_prompt = true, }) - vim.keymap.nnoremap {'<space>s', '<cmd>SidebarNvimToggle<cr>'} - vim.keymap.nnoremap {'<space>S', '<cmd>SidebarNvimFocus<cr>'} + vim.keymap.set('n', '<space>s', '<cmd>SidebarNvimToggle<cr>', {noremap = true}) + vim.keymap.set('n', '<space>S', '<cmd>SidebarNvimFocus<cr>', {noremap = true}) end return M diff --git a/lua/tms/p/zk.lua b/lua/tms/p/zk.lua @@ -1,12 +1,12 @@ local M = {} local keybind = function() - vim.keymap.nnoremap {'<leader>zc', '<cmd>ZkNew<cr>'} - vim.keymap.xnoremap {'<leader>zc', '<cmd>ZkNewFromTitleSelection<cr>'} - vim.keymap.nnoremap {'<space>zn', '<cmd>ZkNotes<cr>'} - vim.keymap.nnoremap {'<space>zt', '<cmd>ZkTags<cr>'} - vim.keymap.nnoremap {'<space>zl', '<cmd>ZkLinks<cr>'} - vim.keymap.nnoremap {'<space>zo', '<cmd>ZkNotes {orphan = true}<cr>'} + vim.keymap.set('n', '<leader>zc', '<cmd>ZkNew<cr>', {noremap = true}) + vim.keymap.set('x', '<leader>zc', '<cmd>ZkNewFromTitleSelection<cr>', {noremap = true}) + vim.keymap.set('n', '<space>zn', '<cmd>ZkNotes<cr>', {noremap = true}) + vim.keymap.set('n', '<space>zt', '<cmd>ZkTags<cr>', {noremap = true}) + vim.keymap.set('n', '<space>zl', '<cmd>ZkLinks<cr>', {noremap = true}) + vim.keymap.set('n', '<space>zo', '<cmd>ZkNotes {orphan = true}<cr>', {noremap = true}) end M.setup = function(lsp_cfg) diff --git a/lua/tms/plugins.lua b/lua/tms/plugins.lua @@ -23,6 +23,10 @@ return packer.startup({ use 'tpope/vim-repeat' use 'tpope/vim-eunuch' -- usefull unix utililties cmds use 'tpope/vim-surround' + use 'chaoren/vim-wordmotion' -- word counts with _,.,-,... + use 'romgrk/equal.operator' -- equal text object `lefthand = righthand` + use {'godlygeek/tabular'} -- align + use {'luukvbaal/stabilize.nvim'} use { 'windwp/nvim-autopairs', config = function() @@ -63,26 +67,26 @@ return packer.startup({ vim.g.undotree_WindowLayout = 2 vim.g.undotree_SplitWidth = 50 end, - config = function() vim.keymap.nnoremap {'<F5>', '<cmd>UndotreeToggle<cr>'} end, + config = function() vim.keymap.set('n', '<F5>', '<cmd>UndotreeToggle<cr>', {noremap = true}) end, } use { -- animate height/width of window 'camspiers/animate.vim', config = function() vim.cmd('let g:animate#duration = 100.0') - vim.keymap.nmap {'<c-up>', ':call animate#window_delta_height(10)<cr>', ['silent'] = true} - vim.keymap.nmap {'<c-down>', ':call animate#window_delta_height(-10)<cr>', ['silent'] = true} - vim.keymap.nmap {'<c-left>', ':call animate#window_delta_width(-10)<cr>', ['silent'] = true} - vim.keymap.nmap {'<c-right>', ':call animate#window_delta_width(10)<cr>', ['silent'] = true} - vim.keymap.nmap {'<s-up>', ':call animate#window_delta_height(1)<cr>', ['silent'] = true} - vim.keymap.nmap {'<s-down>', ':call animate#window_delta_height(-1)<cr>', ['silent'] = true} - vim.keymap.nmap {'<s-left>', ':call animate#window_delta_width(-1)<cr>', ['silent'] = true} - vim.keymap.nmap {'<s-right>', ':call animate#window_delta_width(1)<cr>', ['silent'] = true} + vim.keymap.set('n', '<c-up>', ':call animate#window_delta_height(10)<cr>', {silent = true}) + vim.keymap.set('n', '<c-down>', ':call animate#window_delta_height(-10)<cr>', {silent = true}) + vim.keymap.set('n', '<c-left>', ':call animate#window_delta_width(-10)<cr>', {silent = true}) + vim.keymap.set('n', '<c-right>', ':call animate#window_delta_width(10)<cr>', {silent = true}) + vim.keymap.set('n', '<s-up>', ':call animate#window_delta_height(1)<cr>', {silent = true}) + vim.keymap.set('n', '<s-down>', ':call animate#window_delta_height(-1)<cr>', {silent = true}) + vim.keymap.set('n', '<s-left>', ':call animate#window_delta_width(-1)<cr>', {silent = true}) + vim.keymap.set('n', '<s-right>', ':call animate#window_delta_width(1)<cr>', {silent = true}) end, } use { -- colorize rgb format 'norcalli/nvim-colorizer.lua', config = function() - require'colorizer'.setup({'*'}, { + require'colorizer'.setup({'css', 'scss', 'less'}, { RGB = true, -- #RGB hex codes RRGGBB = true, -- #RRGGBB hex codes names = true, -- "Name" codes like Blue @@ -98,8 +102,8 @@ return packer.startup({ 'danilamihailov/beacon.nvim', setup = function() vim.g.beacon_ignore_filetypes = {'vifm'} end, config = function() - vim.keymap.nmap {'*', '*:Beacon<cr>'} - vim.keymap.nmap {'#', '#:Beacon<cr>'} + vim.keymap.set('n', '*', '*:Beacon<cr>') + vim.keymap.set('n', '#', '#:Beacon<cr>') end, } use { -- highlight parens @@ -128,7 +132,6 @@ return packer.startup({ end, config = function() end, } - use 'chaoren/vim-wordmotion' -- word counts with _,.,-,... use { 'jandamm/cryoline.nvim', after = {'vim-fugitive'}, @@ -161,34 +164,31 @@ return packer.startup({ require('neoscroll.config').set_mappings(t) end, } - use 'romgrk/equal.operator' -- equal text object `lefthand = righthand` use { -- parameter switch 'AndrewRadev/sideways.vim', config = function() - vim.keymap.nnoremap {'<c-h>', ':SidewaysLeft<cr>'} - vim.keymap.nnoremap {'<c-l>', ':SidewaysRight<cr>'} - vim.keymap.omap {'aa', '<Plug>SidewaysArgumentTextobjA'} - vim.keymap.omap {'a.', '<Plug>SidewaysArgumentTextobjA'} - vim.keymap.xmap {'aa', '<Plug>SidewaysArgumentTextobjA'} - vim.keymap.xmap {'a.', '<Plug>SidewaysArgumentTextobjA'} - vim.keymap.omap {'ia', '<Plug>SidewaysArgumentTextobjI'} - vim.keymap.xmap {'ia', '<Plug>SidewaysArgumentTextobjI'} - vim.keymap.nmap {'<leader>ah', '<Plug>SidewaysArgumentInsertBefore'} - vim.keymap.nmap {'<leader>al', '<Plug>SidewaysArgumentAppendAfter'} - vim.keymap.nmap {'<leader>aH', '<Plug>SidewaysArgumentInsertFirst'} - vim.keymap.nmap {'<leader>aL', '<Plug>SidewaysArgumentAppendLast'} + vim.keymap.set('n', '<c-h>', '<cmd>SidewaysLeft<cr>', {noremap = true}) + vim.keymap.set('n', '<c-l>', '<cmd>SidewaysRight<cr>', {noremap = true}) + vim.keymap.set('o', 'aa', '<Plug>SidewaysArgumentTextobjA') + vim.keymap.set('o', 'a.', '<Plug>SidewaysArgumentTextobjA') + vim.keymap.set('x', 'aa', '<Plug>SidewaysArgumentTextobjA') + vim.keymap.set('x', 'a.', '<Plug>SidewaysArgumentTextobjA') + vim.keymap.set('o', 'ia', '<Plug>SidewaysArgumentTextobjI') + vim.keymap.set('x', 'ia', '<Plug>SidewaysArgumentTextobjI') + vim.keymap.set('n', '<leader>ah', '<Plug>SidewaysArgumentInsertBefore') + vim.keymap.set('n', '<leader>al', '<Plug>SidewaysArgumentAppendAfter') + vim.keymap.set('n', '<leader>aH', '<Plug>SidewaysArgumentInsertFirst') + vim.keymap.set('n', '<leader>aL', '<Plug>SidewaysArgumentAppendLast') end, } - use {'godlygeek/tabular'} -- align use { -- replace 'windwp/nvim-spectre', config = function() require('tms.p.spectre').setup() - vim.keymap.nnoremap {'<leader>S', '<cmd>lua require("spectre").open()<cr>'} - vim.keymap.vnoremap {'<leader>s', '<cmd>lua require("spectre").open_visual()<cr>'} + vim.keymap.set('n', '<leader>S', function() require('spectre').open() end, {noremap = true}) + vim.keymap.set('v', '<leader>s', function() require('spectre').open_visual() end, {noremap = true}) end, } - use {'luukvbaal/stabilize.nvim'} use { 'sidebar-nvim/sidebar.nvim', requires = {'kyazdani42/nvim-web-devicons'}, @@ -217,7 +217,7 @@ return packer.startup({ 'folke/zen-mode.nvim', config = function() require('zen-mode').setup {} - vim.keymap.nnoremap {'<leader>Z', '<cmd>ZenMode<cr>'} + vim.keymap.set('n', '<leader>Z', '<cmd>ZenMode<cr>', {noremap = true}) end, } @@ -230,40 +230,40 @@ return packer.startup({ requires = {'nvim-lua/plenary.nvim'}, config = function() require('tms.p.gitsigns').setup() - vim.keymap.nmap {'>c', '<cmd>lua require("gitsigns").next_hunk()<cr>'} - vim.keymap.nmap {'>[', '<cmd>lua require("gitsigns").next_hunk()<cr>'} - vim.keymap.nmap {'<c', '<cmd>lua require("gitsigns").prev_hunk()<cr>'} - vim.keymap.nmap {'<[', '<cmd>lua require("gitsigns").prev_hunk()<cr>'} - vim.keymap.nmap {'<leader>hs', '<cmd>lua require("gitsigns").stage_hunk()<cr>'} - vim.keymap.nmap {'<leader>hu', '<cmd>lua require("gitsigns").undo_stage_hunk()<cr>'} - vim.keymap.nmap {'<leader>hr', '<cmd>lua require("gitsigns").reset_hunk()<cr>'} - vim.keymap.nmap {'<leader>hR', '<cmd>lua require("gitsigns").reset_buffer()<cr>'} - vim.keymap.nmap {'<leader>hp', '<cmd>lua require("gitsigns").preview_hunk()<cr>'} - vim.keymap.nmap {'<leader>hb', '<cmd>lua require("gitsigns").toggle_current_line_blame()<cr>'} - vim.keymap.nmap {'<leader>hl', '<cmd>lua require("gitsigns").toggle_linehl()<cr>'} - vim.keymap.nmap {'<leader>hn', '<cmd>lua require("gitsigns").toggle_numhl()<cr>'} - vim.keymap.omap {'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>'} - vim.keymap.xmap {'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>'} + vim.keymap.set('n', '>c', function() require('gitsigns').next_hunk() end) + vim.keymap.set('n', '>[', function() require('gitsigns').next_hunk() end) + vim.keymap.set('n', '<c', function() require('gitsigns').prev_hunk() end) + vim.keymap.set('n', '<[', function() require('gitsigns').prev_hunk() end) + vim.keymap.set('n', '<leader>hs', function() require('gitsigns').stage_hunk() end) + vim.keymap.set('n', '<leader>hu', function() require('gitsigns').undo_stage_hunk() end) + vim.keymap.set('n', '<leader>hr', function() require('gitsigns').reset_hunk() end) + vim.keymap.set('n', '<leader>hR', function() require('gitsigns').reset_buffer() end) + vim.keymap.set('n', '<leader>hp', function() require('gitsigns').preview_hunk() end) + vim.keymap.set('n', '<leader>hb', function() require('gitsigns').toggle_current_line_blame() end) + vim.keymap.set('n', '<leader>hl', function() require('gitsigns').toggle_linehl() end) + vim.keymap.set('n', '<leader>hn', function() require('gitsigns').toggle_numhl() end) + vim.keymap.set('o', 'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>') + vim.keymap.set('x', 'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>') end, } use { -- view diffs for multiple files 'sindrets/diffview.nvim', config = function() -- - vim.keymap.nmap {'<leader>f', '<cmd>DiffViewOpen<cr>'} + vim.keymap.set('n', '<leader>f', '<cmd>DiffViewOpen<cr>') end, } use { -- git integration 'tpope/vim-fugitive', config = function() - vim.keymap.nnoremap {'<leader>gg', '<cmd>G<cr>'} - vim.keymap.nnoremap {'<leader>gc', '<cmd>G commit<cr>'} - vim.keymap.nnoremap {'<leader>gb', '<cmd>Git blame<cr>'} + vim.keymap.set('n', '<leader>gg', '<cmd>G<cr>', {noremap = true}) + vim.keymap.set('n', '<leader>gc', '<cmd>G commit<cr>', {noremap = true}) + vim.keymap.set('n', '<leader>gb', '<cmd>Git blame<cr>', {noremap = true}) end, } use { -- git info for current line 'rhysd/git-messenger.vim', setup = function() vim.g.git_messenger_floating_win_opts = {border = 'single'} end, - config = function() vim.keymap.nnoremap {'<leader>gm', '<plug>(git-messenger)'} end, + config = function() vim.keymap.set('n', '<leader>gm', '<plug>(git-messenger)', {noremap = true}) end, } use { 'ThePrimeagen/git-worktree.nvim', @@ -271,8 +271,9 @@ return packer.startup({ config = function() require('git-worktree').setup() require('telescope').load_extension('git_worktree') - vim.keymap.nnoremap {'<space>wo', require('telescope').extensions.git_worktree.git_worktrees} - vim.keymap.nnoremap {'<space>wi', require('telescope').extensions.git_worktree.create_git_worktree} + vim.keymap.set('n', '<space>wo', require('telescope').extensions.git_worktree.git_worktrees, {noremap = true}) + vim.keymap.set('n', '<space>wi', require('telescope').extensions.git_worktree.create_git_worktree, + {noremap = true}) end, } @@ -332,11 +333,8 @@ return packer.startup({ config = function() require('dressing').setup({ select = { - -- Priority list of preferred vim.select implementations - backend = {'telescope', 'fzf', 'builtin', 'nui'}, - -- Options for telescope selector + backend = {'telescope', 'builtin', 'nui'}, telescope = { - -- can be 'dropdown', 'cursor', or 'ivy' theme = 'dropdown', }, }, @@ -348,7 +346,7 @@ return packer.startup({ config = function() -- vim.notify = require('notify') require('notify').setup({on_open = function(win) vim.api.nvim_win_set_config(win, {focusable = false}) end}) - vim.keymap.nnoremap {'<leader>N', require('notify').dismiss} + vim.keymap.set('n', '<leader>N', require('notify').dismiss, {noremap = true}) end, } @@ -383,7 +381,7 @@ return packer.startup({ config = function() require('tms.p.aerial').setup() require('telescope').load_extension('aerial') - vim.keymap.nnoremap {'<space>r', require('tms.p.telescope').aerial} + vim.keymap.set('n', '<space>r', require('tms.p.telescope').aerial, {noremap = true}) end, } -- use 'mfussenegger/nvim-jdtls' @@ -423,7 +421,7 @@ return packer.startup({ require('tms.p.treesitter').setup() -- hack vim.cmd [[command! TSHRefresh execute 'write|TSBufEnable highlight']] - vim.keymap.nnoremap {'<leader>su', '<cmd>TSHRefresh<cr>'} + vim.keymap.set('n', '<leader>su', '<cmd>TSHRefresh<cr>', {noremap = true}) end, } use {'nvim-treesitter/nvim-treesitter-textobjects', after = {'nvim-treesitter'}} @@ -438,27 +436,27 @@ return packer.startup({ config = function() local telescope = require('tms.p.telescope') telescope.setup() - vim.keymap.nnoremap {'<space>h', telescope.b.help_tags} - vim.keymap.nnoremap {'<space>d', telescope.find_files} - vim.keymap.nnoremap {'<space>D', telescope.b.find_files} - vim.keymap.nnoremap {'<space>g', telescope.b.git_files} - vim.keymap.nnoremap {'<space>b', telescope.buffers} - vim.keymap.nnoremap {'<space>l', telescope.lines} + vim.keymap.set('n', '<space>h', telescope.b.help_tags, {noremap = true}) + vim.keymap.set('n', '<space>d', telescope.find_files, {noremap = true}) + vim.keymap.set('n', '<space>D', telescope.b.find_files, {noremap = true}) + vim.keymap.set('n', '<space>g', telescope.b.git_files, {noremap = true}) + vim.keymap.set('n', '<space>b', telescope.buffers, {noremap = true}) + vim.keymap.set('n', '<space>l', telescope.lines, {noremap = true}) -- vim.keymap.nnoremap {'<space>r', telescope.b.live_grep} - vim.keymap.nnoremap {'<space>e', telescope.b.grep_string} - vim.keymap.nnoremap {'<space>c', telescope.b.git_status} - vim.keymap.nnoremap {'<space>q', telescope.quickfix} - vim.keymap.nnoremap {'<space>k', telescope.keymaps} - vim.keymap.nnoremap {'<space>m', telescope.b.man_pages} - vim.keymap.nnoremap {'<space>p', telescope.reloader} + vim.keymap.set('n', '<space>e', telescope.b.grep_string, {noremap = true}) + vim.keymap.set('n', '<space>c', telescope.b.git_status, {noremap = true}) + vim.keymap.set('n', '<space>q', telescope.quickfix, {noremap = true}) + vim.keymap.set('n', '<space>k', telescope.keymaps, {noremap = true}) + vim.keymap.set('n', '<space>m', telescope.b.man_pages, {noremap = true}) + vim.keymap.set('n', '<space>p', telescope.reloader, {noremap = true}) -- extensions - vim.keymap.nnoremap {'<space>M', telescope.media_files} + vim.keymap.set('n', '<space>M', telescope.media_files, {noremap = true}) -- custom - vim.keymap.nnoremap {'<space>n', telescope.edit_neovim} + vim.keymap.set('n', '<space>n', telescope.edit_neovim, {noremap = true}) -- maybe - almost unsuedtelescope - vim.keymap.nnoremap {'<space>o', telescope.b.oldfiles} - vim.keymap.nnoremap {'<space>t', telescope.b.treesitter} - vim.keymap.nnoremap {'<space>P', telescope.e.packer.packer} + vim.keymap.set('n', '<space>o', telescope.b.oldfiles, {noremap = true}) + vim.keymap.set('n', '<space>t', telescope.b.treesitter, {noremap = true}) + vim.keymap.set('n', '<space>P', telescope.e.packer.packer, {noremap = true}) end, } use {'nvim-telescope/telescope-packer.nvim', after = {'telescope.nvim'}} @@ -477,8 +475,8 @@ return packer.startup({ after = {'telescope.nvim'}, config = function() require('telescope').load_extension('snippets') - vim.keymap.inoremap {'<c-j>', '<cmd>lua require"snippets".expand_or_advance()<cr>'} - vim.keymap.inoremap {'<c-k>', '<cmd>lua require"snippets".advance_snippet(-1)<cr>'} + vim.keymap.set('i', '<c-j>', '<cmd>lua require"snippets".expand_or_advance()<cr>', {noremap = true}) + vim.keymap.set('i', '<c-k>', '<cmd>lua require"snippets".advance_snippet(-1)<cr>', {noremap = true}) end, } use { @@ -494,8 +492,8 @@ return packer.startup({ use { 'GenesisTMS/trans.nvim', config = function() - vim.keymap.xmap {'mtt', '<cmd>lua require("trans").translate()<cr>'} - vim.keymap.xmap {'mtc', '<cmd>lua require("trans").translate("cs")<cr>'} + vim.keymap.set('x', 'mtt', function() require('trans').translate() end) + vim.keymap.set('x', 'mtc', function() require('trans').translate('cs') end) end, } diff --git a/lua/tms/ws/init.lua b/lua/tms/ws/init.lua @@ -2,7 +2,9 @@ local M = {} M.medoro = { path = '*/medoro/**', - config = function() vim.keymap.nnoremap {'<leader>pl', '<cmd>lua require("tms.ws.medoro").lang()<cr>', buffer = true} end, + config = function() + vim.keymap.set('n', '<leader>pl', '<cmd>lua require("tms.ws.medoro").lang()<cr>', {buffer = true, noremap = true}) + end, } return M diff --git a/plugin/bufremove.lua b/plugin/bufremove.lua @@ -154,7 +154,7 @@ vim.cmd [[command! -nargs=? BufDelete lua BufRemove.delete(<args>)]] vim.cmd [[command! -nargs=? BufWipeout lua BufRemove.wipeout(<args>)]] vim.cmd [[command! -nargs=? BufUnshow lua BufRemove.unshow(<args>)]] vim.cmd [[command! -nargs=? BufWinUnshow lua BufRemove.unshow_in_window(<args>)]] -vim.keymap.nnoremap {'<leader>bd', _G.BufRemove.delete} -vim.keymap.nnoremap {'<leader>bw', _G.BufRemove.wipeout} -vim.keymap.nnoremap {'<leader>bu', _G.BufRemove.unshow} -vim.keymap.nnoremap {'<leader>bU', _G.BufRemove.unshow_in_window} +vim.keymap.set('n', '<leader>bd', _G.BufRemove.delete, {noremap = true}) +vim.keymap.set('n', '<leader>bw', _G.BufRemove.wipeout, {noremap = true}) +vim.keymap.set('n', '<leader>bu', _G.BufRemove.unshow, {noremap = true}) +vim.keymap.set('n', '<leader>bU', _G.BufRemove.unshow_in_window, {noremap = true}) diff --git a/plugin/diagnostic.lua b/plugin/diagnostic.lua @@ -1,13 +1,13 @@ vim.diagnostic.config({virtual_text = false, underline = false, float = {border = 'single'}, severity_sort = true}) -vim.keymap.nnoremap {'gs', function() vim.diagnostic.open_float(0, {scope = 'line'}) end, silent = true} -vim.keymap.nnoremap {'gS', function() vim.diagnostic.open_float(0, {scope = 'cursor'}) end, silent = true} -vim.keymap.nnoremap {'gll', function() vim.diagnostic.setloclist() end, silent = true} -vim.keymap.nnoremap {'glq', function() vim.diagnostic.setqflist() end, silent = true} +vim.keymap.set('n', 'gs', function() vim.diagnostic.open_float(0, {scope = 'line'}) end, {silent = true}) +vim.keymap.set('n', 'gS', function() vim.diagnostic.open_float(0, {scope = 'cursor'}) end, {silent = true}) +vim.keymap.set('n', 'gll', function() vim.diagnostic.setloclist() end, {silent = true}) +vim.keymap.set('n', 'glq', function() vim.diagnostic.setqflist() end, {silent = true}) local goto_next = function() vim.diagnostic.goto_next({float = false}) end local goto_prev = function() vim.diagnostic.goto_prev({float = false}) end -vim.keymap.nnoremap {'>d', goto_next, silent = true} -vim.keymap.nnoremap {'>(', goto_next, silent = true} -vim.keymap.nnoremap {'<d', goto_prev, silent = true} -vim.keymap.nnoremap {'<(', goto_prev, silent = true} +vim.keymap.set('n', '>d', goto_next, {silent = true}) +vim.keymap.set('n', '>(', goto_next, {silent = true}) +vim.keymap.set('n', '<d', goto_prev, {silent = true}) +vim.keymap.set('n', '<(', goto_prev, {silent = true}) diff --git a/plugin/file_pairs.lua b/plugin/file_pairs.lua @@ -1,5 +1,3 @@ -local au = require('tms.c.autocmd') - local ft_letter = {html = 't', scss = 's', dart = 'd', css = 'c'} local letter_set = {} @@ -7,9 +5,9 @@ local letter_set = {} local set_mark = function(letter, path, buffer) path = path or vim.fn.expand('%') if buffer == nil then buffer = true end - vim.keymap.nnoremap {'<leader>m' .. letter, '<cmd>edit ' .. path .. '<cr>', ['buffer'] = buffer} - vim.keymap.nnoremap {'<leader>mv' .. letter, '<cmd>vsplit ' .. path .. '<cr>', ['buffer'] = buffer} - vim.keymap.nnoremap {'<leader>mx' .. letter, '<cmd>split ' .. path .. '<cr>', ['buffer'] = buffer} + vim.keymap.set('n', '<leader>m' .. letter, '<cmd>edit ' .. path .. '<cr>', {buffer = buffer, noremap = true}) + vim.keymap.set('n', '<leader>mv' .. letter, '<cmd>vsplit ' .. path .. '<cr>', {buffer = buffer, noremap = true}) + vim.keymap.set('n', '<leader>mx' .. letter, '<cmd>split ' .. path .. '<cr>', {buffer = buffer, noremap = true}) end local unset_marks = function() @@ -54,4 +52,4 @@ local configure = function() vim.fn.jobstart(string.format('fd -t f "^%s\\." "%s"', filename, dir), {on_stdout = on_event, on_exit = on_event}) end -au.addListener('user-file-pairs', {'BufEnter *'}, configure) +vim.api.nvim_create_autocmd('BufEnter', {callback = configure}) diff --git a/plugin/grep.lua b/plugin/grep.lua @@ -13,5 +13,5 @@ function! GrepOperator(type) endfunction ]] -vim.keymap.nnoremap {'<leader>r', ':set operatorfunc=GrepOperator<cr>g@'} -vim.keymap.vnoremap {'<leader>r', ':<c-u>call GrepOperator(visualmode())<cr>'} +vim.keymap.set('n', '<leader>r', ':set operatorfunc=GrepOperator<cr>g@', {noremap = true}) +vim.keymap.set('v', '<leader>r', ':<c-u>call GrepOperator(visualmode())<cr>', {noremap = true}) diff --git a/plugin/marks.lua b/plugin/marks.lua @@ -27,7 +27,7 @@ for _, l in ipairs({ 'y', 'z', }) do - vim.keymap.nnoremap {'m' .. l, 'm' .. l:upper()} - vim.keymap.nnoremap {'\'' .. l, '`' .. l:upper()} - vim.keymap.nnoremap {'`' .. l, '\'' .. l:upper()} + vim.keymap.set('n', 'm' .. l, 'm' .. l:upper(), {noremap = true}) + vim.keymap.set('n', '\'' .. l, '`' .. l:upper(), {noremap = true}) + vim.keymap.set('n', '`' .. l, '\'' .. l:upper(), {noremap = true}) end diff --git a/plugin/scratch.lua b/plugin/scratch.lua @@ -0,0 +1,12 @@ +local open = function() + vim.cmd('topleft split') + vim.cmd('resize 12') + local win = vim.api.nvim_get_current_win() + local buf = vim.api.nvim_create_buf(false, true) + vim.api.nvim_win_set_buf(win, buf) +end + +_G.Scratch = {open = open} + +vim.cmd [[command! Scratch lua Scratch.open()]] +vim.keymap.set('n', '<space>j', Scratch.open, {noremap = true}) diff --git a/plugin/terminal.lua b/plugin/terminal.lua @@ -1,31 +1,29 @@ local terminal = require('tms.p.terminal') -local au = require('tms.c.autocmd') -local keymap = vim.keymap -local nnoremap = keymap.nnoremap -local tnoremap = keymap.tnoremap -nnoremap {'<leader>tl', function() terminal.interactive() end} -nnoremap {'<leader>tL', function() terminal.catchup() end} -nnoremap {'<leader>to', function() terminal.toggle() end} -nnoremap {'<leader>tj', ':TerminalRun<space>'} -nnoremap { - '<leader>tk', - function() - local ok = terminal.rerun() - if not ok then vim.api.nvim_feedkeys(':TerminalRun ', 'n', nil) end - end, -} -nnoremap {'<leader>th', function() terminal.exit() end} -tnoremap {'<leader>tn', '<C-\\><C-n>'} -tnoremap {'<leader>tl', function() terminal.interactive() end} -tnoremap {'<leader>to', function() terminal.toggle() end} -tnoremap {'<leader>th', function() terminal.exit() end} +vim.keymap.set('n', '<leader>tl', function() terminal.interactive() end, {noremap = true}) +vim.keymap.set('n', '<leader>tL', function() terminal.catchup() end, {noremap = true}) +vim.keymap.set('n', '<leader>to', function() terminal.toggle() end, {noremap = true}) +vim.keymap.set('n', '<leader>tj', ':TerminalRun<space>', {noremap = true}) +vim.keymap.set('n', '<leader>tk', function() + local ok = terminal.rerun() + if not ok then vim.api.nvim_feedkeys(':TerminalRun ', 'n', nil) end +end, {noremap = true}) +vim.keymap.set('n', '<leader>th', function() terminal.exit() end, {noremap = true}) +vim.keymap.set('t', '<leader>tn', '<C-\\><C-n>', {noremap = true}) +vim.keymap.set('t', '<leader>tl', function() terminal.interactive() end, {noremap = true}) +vim.keymap.set('t', '<leader>to', function() terminal.toggle() end, {noremap = true}) +vim.keymap.set('t', '<leader>th', function() terminal.exit() end, {noremap = true}) -au.addListeners({ - ['user-terminal'] = { - [[BufEnter terminal let g:SexyScroller_ScrollTime=0|let g:SexyScroller_CursorTime=0]], - [[BufLeave terminal let g:SexyScroller_ScrollTime=10|let g:SexyScroller_CursorTime=5]], - }, +vim.api.nvim_create_augroup('user-terminal', {clear = true}) +vim.api.nvim_create_autocmd('BufEnter', { + group = 'user-terminal', + pattern = 'terminal', + command = 'let g:SexyScroller_ScrollTime=0|let g:SexyScroller_CursorTime=0', +}) +vim.api.nvim_create_autocmd('BufLeave', { + group = 'user-terminal', + pattern = 'terminal', + command = 'let g:SexyScroller_ScrollTime=10|let g:SexyScroller_CursorTime=5', }) vim.cmd [[command! -nargs=1 TerminalRun lua require('tms.p.terminal').run('<args>')]] diff --git a/plugin/unimpaired.lua b/plugin/unimpaired.lua @@ -1,32 +1,32 @@ -- remap ] and [ -vim.keymap.nmap {'>q', '<cmd>cnext<cr>'} -vim.keymap.nmap {'>!', '<cmd>cnext<cr>'} -vim.keymap.nmap {'<!', '<cmd>cprev<cr>'} -vim.keymap.nmap {'<q', '<cmd>cprev<cr>'} -vim.keymap.nmap {'>Q', '<cmd>clast<cr>'} -vim.keymap.nmap {'<Q', '<cmd>cfirst<cr>'} -vim.keymap.nmap {'>a', '<cmd>next<cr>'} -vim.keymap.nmap {'<a', '<cmd>prev<cr>'} -vim.keymap.nmap {'>A', '<cmd>last<cr>'} -vim.keymap.nmap {'<A', '<cmd>first<cr>'} -vim.keymap.nmap {'>b', '<cmd>bnext<cr>'} -vim.keymap.nmap {'<b', '<cmd>bprev<cr>'} -vim.keymap.nmap {'>B', '<cmd>blast<cr>'} -vim.keymap.nmap {'<B', '<cmd>bfirst<cr>'} -vim.keymap.nmap {'>l', '<cmd>lnext<cr>'} -vim.keymap.nmap {'>=', '<cmd>lnext<cr>'} -vim.keymap.nmap {'<l', '<cmd>lprev<cr>'} -vim.keymap.nmap {'<=', '<cmd>lprev<cr>'} -vim.keymap.nmap {'>L', '<cmd>llast<cr>'} -vim.keymap.nmap {'<L', '<cmd>lfirst<cr>'} -vim.keymap.nmap {'>t', '<cmd>tnext<cr>'} -vim.keymap.nmap {'<t', '<cmd>tprev<cr>'} -vim.keymap.nmap {'>T', '<cmd>tlast<cr>'} -vim.keymap.nmap {'<T', '<cmd>tfirst<cr>'} -vim.keymap.nmap {'>s', ']s'} -vim.keymap.nmap {'<s', '[s'} -vim.keymap.nmap {'>S', ']S'} -vim.keymap.nmap {'<S', '[S'} +vim.keymap.set('n', '>q', '<cmd>cnext<cr>') +vim.keymap.set('n', '>!', '<cmd>cnext<cr>') +vim.keymap.set('n', '<!', '<cmd>cprev<cr>') +vim.keymap.set('n', '<q', '<cmd>cprev<cr>') +vim.keymap.set('n', '>Q', '<cmd>clast<cr>') +vim.keymap.set('n', '<Q', '<cmd>cfirst<cr>') +vim.keymap.set('n', '>a', '<cmd>next<cr>') +vim.keymap.set('n', '<a', '<cmd>prev<cr>') +vim.keymap.set('n', '>A', '<cmd>last<cr>') +vim.keymap.set('n', '<A', '<cmd>first<cr>') +vim.keymap.set('n', '>b', '<cmd>bnext<cr>') +vim.keymap.set('n', '<b', '<cmd>bprev<cr>') +vim.keymap.set('n', '>B', '<cmd>blast<cr>') +vim.keymap.set('n', '<B', '<cmd>bfirst<cr>') +vim.keymap.set('n', '>l', '<cmd>lnext<cr>') +vim.keymap.set('n', '>=', '<cmd>lnext<cr>') +vim.keymap.set('n', '<l', '<cmd>lprev<cr>') +vim.keymap.set('n', '<=', '<cmd>lprev<cr>') +vim.keymap.set('n', '>L', '<cmd>llast<cr>') +vim.keymap.set('n', '<L', '<cmd>lfirst<cr>') +vim.keymap.set('n', '>t', '<cmd>tnext<cr>') +vim.keymap.set('n', '<t', '<cmd>tprev<cr>') +vim.keymap.set('n', '>T', '<cmd>tlast<cr>') +vim.keymap.set('n', '<T', '<cmd>tfirst<cr>') +vim.keymap.set('n', '>s', ']s') +vim.keymap.set('n', '<s', '[s') +vim.keymap.set('n', '>S', ']S') +vim.keymap.set('n', '<S', '[S') local toggle = function(op, mode) local scope @@ -44,7 +44,7 @@ local toggle = function(op, mode) end local map_toggle = function(letter, option, mode) - vim.keymap.nmap {'yo' .. letter, function() toggle(option) end, noremap = true} + vim.keymap.set('n', 'yo' .. letter, function() toggle(option) end, {noremap = true}) end map_toggle('c', 'cursorline', 'local') diff --git a/plugin/ws.lua b/plugin/ws.lua @@ -1,8 +1,11 @@ -local au = require('tms.c.autocmd') local ws = require('tms.ws') for name, setup in pairs(ws) do - if setup.path then au.addListener('user-project-path-' .. name, {'VimEnter ' .. setup.path}, setup.config) end + if setup.path then + local gname = 'user-project-' .. name + vim.api.nvim_create_augroup(gname, {clear = true}) + vim.api.nvim_create_autocmd('VimEnter', {group = gname, pattern = setup.path, callback = setup.config}) + end -- if setup.buffer then au.addListener('user-project-buffer-' .. name, {'BufEnter ' .. setup.buffer}, setup.config) end -- if setup.filetypes then -- for _, filetype in ipairs(setup.filetypes) do