From a0ffbd58b33ec9dbf447d5ec256cd1b55dbb7452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Dudr?= Date: Wed, 11 Jan 2023 07:35:25 +0100 Subject: [PATCH] nvim: luasnip, ... --- dot_config/nvim/init.lua | 2 +- dot_config/nvim/lua/configs/misc.lua | 18 +++++++++++---- .../nvim/lua/configs/packages/gitsigns.lua | 2 +- dot_config/nvim/lua/configs/packages/lsp.lua | 8 ++++--- .../nvim/lua/configs/packages/lualine.lua | 5 ++-- .../nvim/lua/configs/packages/luasnip.lua | 22 ++++++++++++++++++ dot_config/nvim/lua/configs/packages/misc.lua | 12 ---------- .../nvim/lua/configs/packages/null-ls.lua | 1 + .../nvim/lua/configs/packages/nvim-cmp.lua | 23 ++++++++++++------- 9 files changed, 61 insertions(+), 32 deletions(-) create mode 100644 dot_config/nvim/lua/configs/packages/luasnip.lua diff --git a/dot_config/nvim/init.lua b/dot_config/nvim/init.lua index e0220b8..8d48102 100644 --- a/dot_config/nvim/init.lua +++ b/dot_config/nvim/init.lua @@ -15,11 +15,11 @@ vim.g.mapleader = ' ' vim.g.maplocalleader = ' ' vim.g.loaded_netrwPlugin = true +require('configs.options').setup() require('lazy').setup('configs.packages', { install = { colorscheme = { 'gruvbox' }, }, -- rtp = { disabled_plugins = { 'netrwPlugin' } }, }) -require('configs.options').setup() require('configs.misc').setup() require('configs.keys').setup() diff --git a/dot_config/nvim/lua/configs/misc.lua b/dot_config/nvim/lua/configs/misc.lua index 2c7d5ca..d01e00e 100644 --- a/dot_config/nvim/lua/configs/misc.lua +++ b/dot_config/nvim/lua/configs/misc.lua @@ -37,11 +37,19 @@ vim.api.nvim_create_autocmd('TermOpen', { --}}} -- Buffer {{{ -vim.cmd([[ - augroup forceRecheck - au FocusGained,BufEnter * :silent! ! - augroup END -]]) +vim.api.nvim_create_autocmd({ "FocusGained", "TermClose", "TermLeave" }, { command = "checktime" }) + +-- go to last loc when opening a buffer +vim.api.nvim_create_autocmd("BufReadPost", { + callback = function() + local mark = vim.api.nvim_buf_get_mark(0, '"') + local lcount = vim.api.nvim_buf_line_count(0) + if mark[1] > 0 and mark[1] <= lcount then + pcall(vim.api.nvim_win_set_cursor, 0, mark) + end + end, +}) + -- }}} -- qf {{{ diff --git a/dot_config/nvim/lua/configs/packages/gitsigns.lua b/dot_config/nvim/lua/configs/packages/gitsigns.lua index 661c8d5..6d3951f 100644 --- a/dot_config/nvim/lua/configs/packages/gitsigns.lua +++ b/dot_config/nvim/lua/configs/packages/gitsigns.lua @@ -1,7 +1,7 @@ return { 'lewis6991/gitsigns.nvim', dependencies = { 'nvim-lua/plenary.nvim' }, - config = { + opts = { on_attach = function(bufnr) local gs = package.loaded.gitsigns diff --git a/dot_config/nvim/lua/configs/packages/lsp.lua b/dot_config/nvim/lua/configs/packages/lsp.lua index 61e9eb7..63a687c 100644 --- a/dot_config/nvim/lua/configs/packages/lsp.lua +++ b/dot_config/nvim/lua/configs/packages/lsp.lua @@ -5,7 +5,8 @@ local M = { 'b0o/schemastore.nvim', 'SmiteshP/nvim-navic', { 'j-hui/fidget.nvim', config = true }, - { 'ray-x/lsp_signature.nvim' }, + 'ray-x/lsp_signature.nvim', + 'hrsh7th/nvim-cmp', }, keys = { { 'li', 'LspInfo', desc = 'Lsp info' }, @@ -172,9 +173,10 @@ function M.config() } require 'lspconfig'.omnisharp.setup { - cmd = { '/usr/bin/omnisharp', '--languageserver', '--hostPID', tostring(pid) }, - -- on_attach = M.on_attach, + cmd = { '/usr/bin/omnisharp' }, capabilities = capabilities, + enable_roslyn_analyzers = true, + } require 'lspconfig'.powershell_es.setup { diff --git a/dot_config/nvim/lua/configs/packages/lualine.lua b/dot_config/nvim/lua/configs/packages/lualine.lua index 0f026a4..4876145 100644 --- a/dot_config/nvim/lua/configs/packages/lualine.lua +++ b/dot_config/nvim/lua/configs/packages/lualine.lua @@ -1,8 +1,9 @@ local M = { -'hoob3rt/lualine.nvim', + 'hoob3rt/lualine.nvim', + event = 'VeryLazy', dependencies = { 'kyazdani42/nvim-web-devicons' - } + }, } function M.config() diff --git a/dot_config/nvim/lua/configs/packages/luasnip.lua b/dot_config/nvim/lua/configs/packages/luasnip.lua new file mode 100644 index 0000000..a873c5b --- /dev/null +++ b/dot_config/nvim/lua/configs/packages/luasnip.lua @@ -0,0 +1,22 @@ +return { + 'L3MON4D3/LuaSnip', + config = function() require('luasnip.loaders.from_vscode').lazy_load() end, + dependencies = { + 'rafamadriz/friendly-snippets' + }, + keys = { + { + '', + function() + return require('luasnip').jumpable(1) and 'luasnip-jump-next' or '' + end, + expr = true, remap = true, silent = true, mode = 'i', + }, + { '', function() require('luasnip').jump(1) end, mode = 's' }, + { '', function() require('luasnip').jump(-1) end, mode = { 'i', 's' } }, + -- { '', + -- function() return require('luasnip').choice_active() and 'luasnip-next-choice' or '' end, + -- mode = 'i', remap = true, expr = true, + -- }, + }, +} diff --git a/dot_config/nvim/lua/configs/packages/misc.lua b/dot_config/nvim/lua/configs/packages/misc.lua index a54fa7e..81a2ecf 100644 --- a/dot_config/nvim/lua/configs/packages/misc.lua +++ b/dot_config/nvim/lua/configs/packages/misc.lua @@ -10,18 +10,6 @@ return { config = true, }, - { - 'hrsh7th/vim-vsnip', - config = function() - vim.api.nvim_exec([[ - imap vsnip#jumpable(1) ? '(vsnip-jump-next)' : '' - smap vsnip#jumpable(1) ? '(vsnip-jump-next)' : '' - imap vsnip#jumpable(-1) ? '(vsnip-jump-prev)' : '' - smap vsnip#jumpable(-1) ? '(vsnip-jump-prev)' : '' - ]], false) - end - }, - 'editorconfig/editorconfig-vim', { diff --git a/dot_config/nvim/lua/configs/packages/null-ls.lua b/dot_config/nvim/lua/configs/packages/null-ls.lua index 77f2de7..84d7bb6 100644 --- a/dot_config/nvim/lua/configs/packages/null-ls.lua +++ b/dot_config/nvim/lua/configs/packages/null-ls.lua @@ -12,6 +12,7 @@ function M.config() sources = { nls.builtins.formatting.xmllint, nls.builtins.formatting.jq, + nls.builtins.formatting.clang_format, nls.builtins.diagnostics.sqlfluff, nls.builtins.diagnostics.phpstan.with({ cwd = function(params) diff --git a/dot_config/nvim/lua/configs/packages/nvim-cmp.lua b/dot_config/nvim/lua/configs/packages/nvim-cmp.lua index e480f97..7538c4f 100644 --- a/dot_config/nvim/lua/configs/packages/nvim-cmp.lua +++ b/dot_config/nvim/lua/configs/packages/nvim-cmp.lua @@ -5,13 +5,14 @@ local M = { 'hrsh7th/cmp-nvim-lsp', 'hrsh7th/cmp-buffer', 'hrsh7th/cmp-path', - 'hrsh7th/cmp-vsnip', 'onsails/lspkind.nvim', + 'saadparwaiz1/cmp_luasnip', }, } -function M.config() +function M.opts() local cmp = require 'cmp' + local kind_func = require('lspkind').cmp_format({}) cmp.setup({ -- documentation = true, @@ -20,25 +21,31 @@ function M.config() { name = 'nvim_lua' }, { name = 'buffer' }, { name = 'path' }, - { name = 'vsnip' }, + { name = 'luasnip' }, -- { name = 'nvim_lsp_signature_help' }, }, formatting = { - format = require('lspkind').cmp_format({ - -- mode = 'symbol', - }), + format = function(entry, vim_item) + local modif = kind_func(entry, vim_item) + -- folders don't exist on UNIX! + modif.kind = string.gsub(modif.kind, 'Folder', 'Directory') + return modif + end }, window = { -- completion = cmp.config.window.bordered(), -- documentation = cmp.config.window.bordered(), }, mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete({}), + [''] = cmp.mapping.abort(), [''] = cmp.mapping.confirm({ select = false }) }), snippet = { expand = function(args) - -- For `vsnip` user. - vim.fn['vsnip#anonymous'](args.body) -- For `vsnip` user. + require('luasnip').lsp_expand(args.body) end } })