neovim

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

commit b5f9b0b69510358ef378cde76a6dbbd0fc78a6f2
parent 97ccfaaa8d78c5ab7a05ceaae0c4d8aeaee80baf
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Wed,  2 Feb 2022 09:00:10 +0100

update

Diffstat:
Minit.lua | 6+++---
Mlua/tms/lsp/init.lua | 13++++---------
Mlua/tms/lsp/servers.lua | 13++++++++++---
Mlua/tms/p/luasnip.lua | 1+
Mlua/tms/p/nullls.lua | 8+++++++-
Mlua/tms/p/snippets/init.lua | 1+
Mlua/tms/p/terminal.lua | 4++--
Mlua/tms/plugins.lua | 11++++-------
Mplugin/grep.lua | 4++--
9 files changed, 34 insertions(+), 27 deletions(-)

diff --git a/init.lua b/init.lua @@ -144,9 +144,9 @@ 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.vnoremap {'<c-c>', '\"*y'} +-- vim.keymap.inoremap {'<c-v>', '<esc>lmv\"*P`v'} +-- vim.keymap.nnoremap {'gp', '`[v`]'} -- reselect pasted text -- remap double usage vim.keymap.nnoremap {'y.', 'yy'} vim.keymap.nnoremap {'z.', 'mmz.`m'} diff --git a/lua/tms/lsp/init.lua b/lua/tms/lsp/init.lua @@ -6,6 +6,7 @@ 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} @@ -46,7 +47,7 @@ local on_attach = function(client, bufnr) keybind(client, bufnr) end -local capabilities = function() +local capabilities = function(name) local ok, cnl = pcall(require, 'cmp_nvim_lsp') if ok then return cnl.update_capabilities(vim.lsp.protocol.make_client_capabilities()) @@ -58,7 +59,7 @@ end local server_opts = function(name) local opts = {} opts.on_attach = on_attach - opts.capabilities = capabilities() + opts.capabilities = capabilities(name) opts = servers.setup(name, opts) return opts end @@ -77,16 +78,10 @@ M.setup = function() server:setup(o) vim.cmd [[ do User LspAttachBuffers ]] end - local opts = {} - opts = servers.setup(server.name, opts) opts.on_attach = on_attach opts.capabilities = capabilities() - - if server.name == 'sumneko_lua' then - opts = vim.tbl_deep_extend('force', server:get_default_options(), opts) - opts = require('lua-dev').setup({lspconfig = opts}) - end + opts = servers.setup(server.name, opts, server) finish(opts) end) diff --git a/lua/tms/lsp/servers.lua b/lua/tms/lsp/servers.lua @@ -1,16 +1,23 @@ -- Custom configuration for servers local M = {} -M.setup = function(name, opts) +M.setup = function(name, opts, server) local fn = M[name] - if fn then opts = fn(opts) end + if fn then opts = fn(opts, server) end return opts end -M.sumneko_lua = function(opts) +M.cssls = function(opts) + opts.capabilities.textDocument.completion.completionItem.snippetSupport = true + return opts +end + +M.sumneko_lua = function(opts, server) opts.settings = { Lua = {runtime = {version = 'LuaJIT'}, diagnostics = {globals = {'vim'}}, telemetry = {enable = false}}, } + opts = vim.tbl_deep_extend('force', server:get_default_options(), opts) + opts = require('lua-dev').setup({lspconfig = opts}) return opts end diff --git a/lua/tms/p/luasnip.lua b/lua/tms/p/luasnip.lua @@ -86,6 +86,7 @@ local snippets = function(luasnip) }} ]], {i(1), i(2), i(3)})), }, + scss = {s('v', fmt('var(--{1})', {i(1)}))}, } end diff --git a/lua/tms/p/nullls.lua b/lua/tms/p/nullls.lua @@ -25,7 +25,13 @@ M.setup = function() local h = require('null-ls.helpers') local builtins = null_ls.builtins null_ls.setup({ - -- on_attach = nil, + 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} + end + end, sources = { -- formatting builtins.formatting.prettier.with { diff --git a/lua/tms/p/snippets/init.lua b/lua/tms/p/snippets/init.lua @@ -31,6 +31,7 @@ end]], sl = [[{${2|create_list_of_strings(S.v)}}]], key = [[['${1}'] = $0]], }, + scss = {['v'] = [[var(--${1})]], ['ngif'] = [[*ngIf="${1}"]]}, } end diff --git a/lua/tms/p/terminal.lua b/lua/tms/p/terminal.lua @@ -71,7 +71,7 @@ end -- Takes a command as a string and runs it in the terminal buffer. If the window is closed, it will be toggled M.run = function(cmd) - print(cmd) + -- print(cmd) if win_is_open() == false or chan == nil then M.toggle() end @@ -81,7 +81,7 @@ M.run = function(cmd) vim.api.nvim_chan_send(chan, '\003') end last_command = cmd - vim.api.nvim_chan_send(chan, ' ' .. cmd .. '\n') + vim.api.nvim_chan_send(chan, ' ' .. cmd .. '\r') end -- Runs the last command again diff --git a/lua/tms/plugins.lua b/lua/tms/plugins.lua @@ -189,7 +189,9 @@ return packer.startup({ end, } use {'luukvbaal/stabilize.nvim'} - use {'sidebar-nvim/sidebar.nvim', config = function() require('tms.p.sidebar').setup() end} + use {'sidebar-nvim/sidebar.nvim', + requires = {'kyazdani42/nvim-web-devicons', }, + config = function() require('tms.p.sidebar').setup() end} -- Notes use { @@ -368,11 +370,6 @@ return packer.startup({ } use {disable = true, 'ii14/lsp-command'} use 'williamboman/nvim-lsp-installer' - use { - 'folke/lsp-trouble.nvim', - requires = 'kyazdani42/nvim-web-devicons', - config = function() require('trouble').setup {} end, - } use {'folke/lua-dev.nvim'} use { 'jose-elias-alvarez/null-ls.nvim', @@ -438,7 +435,7 @@ return packer.startup({ -- telescope use { 'nvim-telescope/telescope.nvim', - requires = {'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim'}, + requires = {'nvim-lua/popup.nvim', 'nvim-lua/plenary.nvim', 'kyazdani42/nvim-web-devicons', }, config = function() local telescope = require('tms.p.telescope') telescope.setup() diff --git a/plugin/grep.lua b/plugin/grep.lua @@ -8,8 +8,8 @@ function! GrepOperator(type) return endif - silent execute "grep! -F " . shellescape(@@) - copen + silent execute "grep! -F -- " . shellescape(@@) + " copen endfunction ]]