neovim

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

commit 3419a009a9d9a4de1b0be030db5198f7a163d764
parent c5c4b7c3c1bc6df4957bffec5742ec7ac350aa53
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Tue, 31 May 2022 07:40:33 +0200

update

Diffstat:
Mafter/plugin/cmp.lua | 10+++++-----
Dafter/plugin/sideways.lua | 14--------------
Mafter/plugin/telescope.lua | 6+++++-
Mafter/plugin/treesitter.lua | 44++++++++++++++++++++++++++++++++------------
Mftplugin/dart.lua | 18+++++++++++-------
Mftplugin/java.lua | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mlua/tms/plugins.lua | 2+-
Aplugin/builtin.lua | 1+
Mplugin/options.lua | 1+
9 files changed, 126 insertions(+), 40 deletions(-)

diff --git a/after/plugin/cmp.lua b/after/plugin/cmp.lua @@ -33,8 +33,8 @@ cmp.setup({ experimental = { ghost_text = true }, }) -cmp.setup.cmdline('/', { mapping = cmp.mapping.preset.cmdline(), sources = { { name = 'buffer' } } }) -cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ { name = 'path' } }, { { name = 'cmdline' } }), -}) +-- cmp.setup.cmdline('/', { mapping = cmp.mapping.preset.cmdline(), sources = { { name = 'buffer' } } }) +-- cmp.setup.cmdline(':', { +-- mapping = cmp.mapping.preset.cmdline(), +-- sources = cmp.config.sources({ { name = 'path' } }, { { name = 'cmdline' } }), +-- }) diff --git a/after/plugin/sideways.lua b/after/plugin/sideways.lua @@ -1,14 +0,0 @@ -if not vim.g.loaded_sideways then return end - -vim.keymap.set('n', '<c-h>', '<cmd>SidewaysLeft<cr>') -vim.keymap.set('n', '<c-l>', '<cmd>SidewaysRight<cr>') -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') diff --git a/after/plugin/telescope.lua b/after/plugin/telescope.lua @@ -5,7 +5,11 @@ local actions = require('telescope.actions') local action_generate = require('telescope.actions.generate') telescope.setup { - defaults = { mappings = { i = { ['<esc>'] = actions.close, ['<c-?>'] = action_generate.which_key() } } }, + defaults = { + mappings = { + i = { ['<esc>'] = actions.close, ['<c-y>'] = actions.select_default, ['<c-?>'] = action_generate.which_key() }, + }, + }, extensions = { fzy_native = { override_generic_sorter = false, override_file_sorter = true } }, } diff --git a/after/plugin/treesitter.lua b/after/plugin/treesitter.lua @@ -32,15 +32,17 @@ require'nvim-treesitter.configs'.setup { indent = { enable = true }, - refactor = { highlight_definitions = { enable = false } }, + refactor = { highlight_definitions = { enable = true, clear_on_cursor_move = false } }, textobjects = { enable = true, select = { enable = true, + lookahead = true, + lookbehind = true, keymaps = { - -- ['ia'] = "@parameter.inner", - -- ['aa'] = "@parameter.outer", + ['ia'] = '@parameter.inner', + ['aa'] = '@parameter.outer', ['af'] = '@function.outer', ['if'] = '@function.inner', ['ac'] = '@comment.outer', @@ -49,26 +51,41 @@ require'nvim-treesitter.configs'.setup { }, swap = { enable = true, - swap_next = { - -- [">p"] = "@parameter.inner", + swap_next = { -- + ['>p'] = '@parameter.inner', ['>m'] = '@function.outer', }, - swap_previous = { - -- ["<p"] = "@parameter.inner", + swap_previous = { -- + ['<p'] = '@parameter.inner', ['<m'] = '@function.outer', }, }, move = { enable = true, - goto_next_start = { [']]'] = '@function.outer', [']c'] = '@class.outer' }, - goto_next_end = { [']['] = '@function.inner', [']C'] = '@class.outer' }, - goto_previous_start = { ['[['] = '@function.outer', ['[c'] = '@class.outer' }, - goto_previous_end = { ['[]'] = '@function.inner', ['[C'] = '@class.outer' }, + goto_next_start = { -- + [']]'] = '@function.outer', + [']c'] = '@class.outer', + }, + goto_next_end = { -- + [']['] = '@function.inner', + [']C'] = '@class.outer', + }, + goto_previous_start = { -- + ['[['] = '@function.outer', + ['[c'] = '@class.outer', + }, + goto_previous_end = { -- + ['[]'] = '@function.inner', + ['[C'] = '@class.outer', + }, }, lsp_interop = { enable = true, border = 'single', - peek_definition_code = { ['<leader>sf'] = '@function.outer', ['<leader>sc'] = '@class.outer' }, + peek_definition_code = { -- + ['<leader>sf'] = '@function.outer', + ['<leader>sc'] = '@class.outer', + }, }, }, @@ -81,4 +98,7 @@ vim.keymap.set('n', '<leader>su', '<cmd>TSHRefresh<cr>') require('tms.colors').update(function(t) t.Group.new('TreesitterContext', t.colors.none, t.dimm(t.groups.Normal.bg, 0.03)) + t.Group.new('TSDefinition', t.colors.none, t.colors.none) + t.Group.new('TSCurentScope', t.colors.none, t.colors.none) + t.Group.new('TSDefinitionUsage', t.colors.none, t.dimm(t.groups.Normal.bg, 0.03)) end) diff --git a/ftplugin/dart.lua b/ftplugin/dart.lua @@ -1,8 +1,7 @@ vim.g.dart_style_guide = 2 vim.g.dart_html_in_string = true -local has_helper, helper = pcall(require, 'dartls-helper.lsp') -if not has_helper 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') @@ -28,11 +27,16 @@ vim.keymap.set({ 'v', 'n' }, '<leader>pi', lsp.inline_local_variable, opts('Dart 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/ftplugin/java.lua b/ftplugin/java.lua @@ -1 +1,71 @@ -- require('jdtls').start_or_attach({cmd = 'java-lsp.sh'}) +-- +-- If you started neovim within `~/dev/xy/project-1` this would resolve to `project-1` +local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t') +local workspace_dir = '/home/tms/.cache/jdtls/' .. project_name + +-- See `:help vim.lsp.start_client` for an overview of the supported `config` options. +local config = { + -- The command that starts the language server + -- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line + cmd = { + + -- ๐Ÿ’€ + 'java', -- or '/path/to/java11_or_newer/bin/java' + -- depends on if `java` is in your $PATH env variable and if it points to the right version. + + '-Declipse.application=org.eclipse.jdt.ls.core.id1', + '-Dosgi.bundles.defaultStartLevel=4', + '-Declipse.product=org.eclipse.jdt.ls.core.product', + '-Dlog.protocol=true', + '-Dlog.level=ALL', + '-Xms1g', + '--add-modules=ALL-SYSTEM', + '--add-opens', + 'java.base/java.util=ALL-UNNAMED', + '--add-opens', + 'java.base/java.lang=ALL-UNNAMED', + + -- ๐Ÿ’€ + '-jar', + '/usr/share/java/jdtls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar', + -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ + -- Must point to the Change this to + -- eclipse.jdt.ls installation the actual version + + -- ๐Ÿ’€ + '-configuration', + '/usr/share/java/jdtls/config_linux', + -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ + -- Must point to the Change to one of `linux`, `win` or `mac` + -- eclipse.jdt.ls installation Depending on your system. + + -- ๐Ÿ’€ + -- See `data directory configuration` section in the README + '-data', + workspace_dir, + }, + + -- ๐Ÿ’€ + -- This is the default if not provided, you can remove it. Or adjust as needed. + -- One dedicated LSP server & client will be started per unique root_dir + root_dir = require('jdtls.setup').find_root({ '.git', 'mvnw', 'gradlew' }), + + -- Here you can configure eclipse.jdt.ls specific settings + -- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request + -- for a list of options + settings = { java = {} }, + + -- Language server `initializationOptions` + -- You need to extend the `bundles` with paths to jar files + -- if you want to use additional eclipse.jdt.ls plugins. + -- + -- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation + -- + -- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this + init_options = { bundles = {} }, +} +-- This starts a new client & server, +-- or attaches to an existing client & server depending on the `root_dir`. +-- require('jdtls').start_or_attach(config) +-- require('jdtls').setup_dap() diff --git a/lua/tms/plugins.lua b/lua/tms/plugins.lua @@ -39,7 +39,6 @@ return packer.startup({ use 'Yggdroot/hiPairs' use 'jandamm/cryoline.nvim' use 'karb94/neoscroll.nvim' - use 'AndrewRadev/sideways.vim' use 'windwp/nvim-spectre' use { 'sidebar-nvim/sidebar.nvim', requires = { 'kyazdani42/nvim-web-devicons' } } @@ -81,6 +80,7 @@ return packer.startup({ use 'windwp/nvim-ts-autotag' use 'baskerville/vim-sxhkdrc' use 'dart-lang/dart-vim-plugin' + use 'mfussenegger/nvim-jdtls' -- use 'akinsho/pubspec-assist.nvim' -- snippets use 'L3MON4D3/luaSnip' diff --git a/plugin/builtin.lua b/plugin/builtin.lua @@ -0,0 +1 @@ +vim.cmd [[packadd cfilter]] diff --git a/plugin/options.lua b/plugin/options.lua @@ -35,6 +35,7 @@ vim.opt.foldtext = 'MyFoldText()' vim.opt.list = false vim.opt.laststatus = 3 vim.opt.statusline = ' ' +vim.opt.winbar = '%=%m %f' vim.opt.ruler = false vim.opt.listchars = { space = 'ยท', tab = 'ยป ', extends = 'โ€บ', precedes = 'โ€น', nbsp = '_', trail = '_', eol = '$' } vim.opt.fillchars = { eob = 'โ€ข', fold = ' ' }