neovim

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

commit f85077e58047ffb589d68fbf8cb39565588ff2ce
parent 6b3136053c28c2f844b888a19041b006520112ed
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Tue, 23 Aug 2022 23:29:30 +0200

update

Diffstat:
Aafter/plugin/color-picker.lua | 8++++++++
Mafter/plugin/comment.lua | 19++++---------------
Mafter/plugin/dap.lua | 105++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------
Aafter/plugin/exrc.lua | 7+++++++
Mftplugin/dart.lua | 44+++++++++++++++++++++++++++-----------------
Mlua/plugins.lua | 19+++++++++++++------
Mlua/tms/ws/init.lua | 13+++++++++++++
Mplugin/ws.lua | 20+++++++++++++-------
8 files changed, 168 insertions(+), 67 deletions(-)

diff --git a/after/plugin/color-picker.lua b/after/plugin/color-picker.lua @@ -0,0 +1,8 @@ +if not pcall(require, 'color-picker') then + return +end + +local opts = { noremap = true, silent = true } + +vim.keymap.set('n', '<C-c>', '<cmd>PickColor<cr>', opts) +vim.keymap.set('i', '<C-c>', '<cmd>PickColorInsert<cr>', opts) diff --git a/after/plugin/comment.lua b/after/plugin/comment.lua @@ -1,19 +1,8 @@ -if not pcall(require, 'Comment') then return end +if not pcall(require, 'Comment') then + return +end require('Comment').setup({ ignore = '^$', - pre_hook = function(ctx) - -- Only calculate commentstring for tsx filetypes - local U = require('Comment.utils') - -- Detemine whether to use linewise or blockwise commentstring - local type = ctx.ctype == U.ctype.line and '__default' or '__multiline' - -- Determine the location where to calculate commentstring from - local location = nil - if ctx.ctype == U.ctype.block then - location = require('ts_context_commentstring.utils').get_cursor_location() - elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then - location = require('ts_context_commentstring.utils').get_visual_start_location() - end - return require('ts_context_commentstring.internal').calculate_commentstring({ key = type, location = location }) - end, + pre_hook = require('ts_context_commentstring.integrations.comment_nvim').create_pre_hook(), }) diff --git a/after/plugin/dap.lua b/after/plugin/dap.lua @@ -1,32 +1,59 @@ -if not pcall(require, 'dap') then return end +if not pcall(require, 'dap') then + return +end -vim.keymap.set('n', '<leader>dc', function() require'dap'.continue() end, { silent = true, desc = 'DAP Continue' }) -vim.keymap.set('n', '<leader>do', function() require'dap'.step_over() end, { silent = true, desc = 'DAP Step Over' }) -vim.keymap.set('n', '<leader>di', function() require'dap'.step_into() end, { silent = true, desc = 'DAP Step Into' }) -vim.keymap.set('n', '<leader>dt', function() require'dap'.step_out() end, { silent = true, desc = 'DAP Step Out' }) -vim.keymap.set('n', '<leader>db', function() require'dap'.toggle_breakpoint() end, - { silent = true, desc = 'DAP Toggle Breakpoint' }) -vim.keymap.set('n', '<leader>dC', function() require'dap'.clear_breakpoints() end, - { silent = true, desc = 'DAP Clear Breakpoint' }) -vim.keymap.set('n', '<Leader>dB', function() require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, - { silent = true, desc = 'DAP Set Breakpoint' }) -vim.keymap.set('n', '<leader>dL', - function() require'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end, - { silent = true, desc = 'DAP Set Log Point' }) -vim.keymap.set('n', '<leader>dr', function() require'dap'.repl.open() end, { silent = true, desc = 'DAP Open Repl' }) -vim.keymap.set('n', '<leader>dl', function() require'dap'.run_last() end, { silent = true, desc = 'DAP Run Last' }) +vim.keymap.set('n', '<leader>dc', function() + require'dap'.continue() +end, { silent = true, desc = 'DAP Continue' }) +vim.keymap.set('n', '<leader>do', function() + require'dap'.step_over() +end, { silent = true, desc = 'DAP Step Over' }) +vim.keymap.set('n', '<leader>di', function() + require'dap'.step_into() +end, { silent = true, desc = 'DAP Step Into' }) +vim.keymap.set('n', '<leader>dt', function() + require'dap'.step_out() +end, { silent = true, desc = 'DAP Step Out' }) +vim.keymap.set('n', '<leader>db', function() + require'dap'.toggle_breakpoint() +end, { silent = true, desc = 'DAP Toggle Breakpoint' }) +vim.keymap.set('n', '<leader>dC', function() + require'dap'.clear_breakpoints() +end, { silent = true, desc = 'DAP Clear Breakpoint' }) +vim.keymap.set('n', '<Leader>dB', function() + require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: ')) +end, { silent = true, desc = 'DAP Set Breakpoint' }) +vim.keymap.set('n', '<leader>dL', function() + require'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) +end, { silent = true, desc = 'DAP Set Log Point' }) +vim.keymap.set('n', '<leader>dr', function() + require'dap'.repl.open() +end, { silent = true, desc = 'DAP Open Repl' }) +vim.keymap.set('n', '<leader>dl', function() + require'dap'.run_last() +end, { silent = true, desc = 'DAP Run Last' }) local dap = require('dap') local has_dapui, dapui = pcall(require, 'dapui') if has_dapui then dapui.setup() - dap.listeners.after.event_initialized['dapui_config'] = function() dapui.open() end - dap.listeners.before.event_terminated['dapui_config'] = function() dapui.close() end - dap.listeners.before.event_exited['dapui_config'] = function() dapui.close() end - vim.keymap.set('n', '<leader>du', function() dapui.toggle() end, { silent = true, desc = 'DAP UI Toggle' }) + dap.listeners.after.event_initialized['dapui_config'] = function() + dapui.open() + end + dap.listeners.before.event_terminated['dapui_config'] = function() + dapui.close() + end + dap.listeners.before.event_exited['dapui_config'] = function() + dapui.close() + end + vim.keymap.set('n', '<leader>du', function() + dapui.toggle() + end, { silent = true, desc = 'DAP UI Toggle' }) end local has_dapvt, dapvt = pcall(require, 'nvim-dap-virtual-text') -if has_dapvt then dapvt.setup() end +if has_dapvt then + dapvt.setup() +end -- cpp -- dap.adapters.cpp = { @@ -77,6 +104,40 @@ if has_dapvt then dapvt.setup() end -- } -- dap.adapters.nlua = function(callback, config) callback({ type = 'server', host = config.host, port = config.port }) end +local has_vscode, vscode = pcall(require, 'dap-vscode-js') +if has_vscode then + vscode.setup { adapters = { 'pwa-chrome' } } +else + dap.adapters['pwa-chrome'] = { + type = 'server', + port = '${port}', + id = 'pwa-chrome', + executable = { + command = 'node', + args = { vim.fn.stdpath 'data' .. '/site/pack/packer/opt/vscode-js-debug/out/src/vsDebugServer.js', '${port}' }, + detached = false, + cwd = vim.fn.getcwd(), + }, + } +end + +dap.set_log_level('TRACE') +dap.configurations.dart = { + { + type = 'pwa-chrome', + request = 'attach', + name = 'Attach', + + cwd = vim.fn.getcwd(), + port = 9222, + webRoot = '${workspaceFolder}', + -- sourceMapPathOverrides = {}, + + }, +} + -- go local has_dapgo, dapgo = pcall(require, 'dap-go') -if has_dapgo then dapgo.setup() end +if has_dapgo then + dapgo.setup() +end diff --git a/after/plugin/exrc.lua b/after/plugin/exrc.lua @@ -0,0 +1,7 @@ +if not pcall(require, 'exrc') then + return +end + +vim.o.exrc = false + +require('exrc').setup {} diff --git a/ftplugin/dart.lua b/ftplugin/dart.lua @@ -1,16 +1,16 @@ vim.g.dart_style_guide = 2 vim.g.dart_html_in_string = true -if not pcall(require, 'dartls-helper.lsp') then return end +if not pcall(require, 'dartls-helper.lsp') then + return +end local lsp = require('dartls-helper.lsp') local req = require('dartls-helper.request') local ddebug = require('tms.ft.dart.debug') -local analyze = require('tms.ft.dart.analyze') local cmd_opts = {} --- vim.cmd [[command! -buffer DartAnalyzer lua require('tms.ft.dart.analyze').qf2131()]] vim.api.nvim_buf_create_user_command(0, 'DartDebug', ddebug.func, cmd_opts) vim.api.nvim_buf_create_user_command(0, 'DartPrint', ddebug.print, cmd_opts) vim.api.nvim_buf_create_user_command(0, 'DartOrganizeImports', lsp.organize_imports, cmd_opts) @@ -18,25 +18,35 @@ vim.api.nvim_buf_create_user_command(0, 'DartFixAll', lsp.fix_all, cmd_opts) vim.api.nvim_buf_create_user_command(0, 'DartExtract', lsp.extract_method, cmd_opts) vim.api.nvim_buf_create_user_command(0, 'DartVariable', lsp.extract_local_variable, cmd_opts) -local opts = function(desc) return { buffer = true, desc = desc } end -vim.keymap.set('n', '<leader>pp', function() ddebug.print() end, opts('Dart Debug Print')) -vim.keymap.set('n', '<leader>pn', function() analyze.qf2131() end, opts('Dart Analyze')) +local opts = function(desc) + return { buffer = true, desc = desc } +end +vim.keymap.set('n', '<leader>pp', function() + ddebug.print() +end, opts('Dart Debug Print')) vim.keymap.set('n', '<leader>po', lsp.organize_imports, opts('Dart Organize Imports')) -vim.keymap.set('n', '<leader>pf', function() lsp.fix_all() end, opts('Dart Fix All')) +vim.keymap.set('n', '<leader>pf', function() + lsp.fix_all() +end, opts('Dart Fix All')) vim.keymap.set({ 'v', 'n' }, '<leader>pi', lsp.inline_local_variable, opts('Dart Inline Local Varibale')) vim.keymap.set({ 'v', 'n' }, '<leader>pe', lsp.extract_local_variable, opts('Dart Extract Local Varibale')) vim.keymap.set({ 'v', 'n' }, '<leader>pm', lsp.extract_method, opts('Dart Extract Method')) vim.keymap.set('n', '<leader>pl', lsp.list_code_action_kinds, opts('Dart List Code Actions')) -vim.keymap.set('n', '<leader>ps', function() req.execute_code_action('refactor.splitVariableDeclaration') end, - opts('Dart Split Variable Declaration')) -vim.keymap.set('n', '<leader>pj', function() req.execute_code_action('refactor.joinVariableDeclaration') end, - opts('Dart Join Variable Declaration')) -vim.keymap.set('n', '<leader>px', function() req.execute_code_action('refactor.convert.bodyToExpression') end, - opts('Dart Convert To Expression')) -vim.keymap.set('n', '<leader>pa', function() req.execute_code_action('refactor.convert.bodyToAsync') end, - opts('Dart Convert To Async')) -vim.keymap.set('n', '<leader>pb', function() req.execute_code_action('refactor.convert.bodyToBlock') end, - opts('Dart Convert To Block')) +vim.keymap.set('n', '<leader>ps', function() + req.execute_code_action('refactor.splitVariableDeclaration') +end, opts('Dart Split Variable Declaration')) +vim.keymap.set('n', '<leader>pj', function() + req.execute_code_action('refactor.joinVariableDeclaration') +end, opts('Dart Join Variable Declaration')) +vim.keymap.set('n', '<leader>px', function() + req.execute_code_action('refactor.convert.bodyToExpression') +end, opts('Dart Convert To Expression')) +vim.keymap.set('n', '<leader>pa', function() + req.execute_code_action('refactor.convert.bodyToAsync') +end, opts('Dart Convert To Async')) +vim.keymap.set('n', '<leader>pb', function() + req.execute_code_action('refactor.convert.bodyToBlock') +end, opts('Dart Convert To Block')) if vim.fn.getline(1):match('^#!.*dcli') then vim.cmd [[comp dcli]] diff --git a/lua/plugins.lua b/lua/plugins.lua @@ -10,18 +10,19 @@ return packer.startup({ use { 'wbthomason/packer.nvim', opt = true } -- meta - use { 'tweekmonster/startuptime.vim' } - use { 'nathom/filetype.nvim' } - use { 'lewis6991/impatient.nvim' } + use 'tweekmonster/startuptime.vim' + use 'nathom/filetype.nvim' + use 'lewis6991/impatient.nvim' + use 'MunifTanjim/exrc.nvim' -- colorscheme - use { 'tjdevries/colorbuddy.nvim' } + use 'tjdevries/colorbuddy.nvim' -- spell use 'xxdavid/bez-diakritiky.vim' -- movements - use { 'ggandor/leap.nvim' } + use 'ggandor/leap.nvim' -- editor use 'tpope/vim-repeat' @@ -35,6 +36,7 @@ return packer.startup({ use 'mbbill/undotree' use 'camspiers/animate.vim' use 'norcalli/nvim-colorizer.lua' + use 'ziontee113/color-picker.nvim' use 'rainbowhxch/beacon.nvim' -- use 'Yggdroot/hiPairs' use 'jandamm/cryoline.nvim' @@ -63,7 +65,6 @@ return packer.startup({ use { 'lewis6991/gitsigns.nvim', requires = { 'nvim-lua/plenary.nvim' } } use 'sindrets/diffview.nvim' use 'tpope/vim-fugitive' - use { 'ipod825/igit.nvim', requires = { 'nvim-lua/plenary.nvim', 'ipod825/libp.nvim' } } use 'rhysd/git-messenger.vim' use 'ThePrimeagen/git-worktree.nvim' use 'rhysd/conflict-marker.vim' @@ -119,6 +120,12 @@ return packer.startup({ use 'leoluz/nvim-dap-go' use 'rcarriga/nvim-dap-ui' use 'theHamsta/nvim-dap-virtual-text' + use "mxsdev/nvim-dap-vscode-js" + use { + "microsoft/vscode-js-debug", + opt = true, + run = "npm install --legacy-peer-deps && npm run compile" + } -- treesitter use 'nvim-treesitter/nvim-treesitter' diff --git a/lua/tms/ws/init.lua b/lua/tms/ws/init.lua @@ -7,4 +7,17 @@ M.medoro = { end, } +M.dart = { + root_pattern = 'pubspec.yaml', + config = function() + local analyze = require('tms.ft.dart.analyze') + local opts = function(desc) + return { buffer = true, desc = desc } + end + vim.keymap.set('n', '<leader>pn', function() + analyze.qf2131() + end, opts('Dart Analyze')) + end, +} + return M diff --git a/plugin/ws.lua b/plugin/ws.lua @@ -2,13 +2,19 @@ local ws = require('tms.ws') for name, setup in pairs(ws) do if setup.path then - local group = vim.api.nvim_create_augroup('user-project-' .. name, { clear = true }) - vim.api.nvim_create_autocmd('VimEnter', { group = group, pattern = setup.path, callback = setup.config }) + local group = vim.api.nvim_create_augroup('user-project-' .. name, {}) + vim.api.nvim_create_autocmd('BufEnter', { group = group, pattern = setup.path, callback = setup.config }) + end + if setup.root_pattern then + local group = vim.api.nvim_create_augroup('user-project-' .. name, {}) + vim.api.nvim_create_autocmd('BufEnter', { + group = group, + callback = function() + if require('lspconfig.util').root_pattern(setup.root_pattern)(vim.fn.getcwd()) then + setup.config() + end + end, + }) 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 - -- au.addListener('user-project-ft-' .. name, {'FileType ' .. filetype}, setup.config) - -- end - -- end end