From 3e7075f8944ac56b78c82f68835722807ad62e18 Mon Sep 17 00:00:00 2001 From: Chloe Kudryavtsev Date: Wed, 18 Jan 2023 10:11:34 +0100 Subject: nvim: update config (checkpoint) --- dot_config/nvim/lua/plugins/conjure.lua | 13 +++++++ dot_config/nvim/lua/plugins/mini.lua | 1 + dot_config/nvim/lua/plugins/nvim-cmp.lua | 47 ++++++++++++++++++++++++++ dot_config/nvim/lua/plugins/nvim-lspconfig.lua | 28 +++++++++++---- 4 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 dot_config/nvim/lua/plugins/nvim-cmp.lua (limited to 'dot_config/nvim/lua/plugins') diff --git a/dot_config/nvim/lua/plugins/conjure.lua b/dot_config/nvim/lua/plugins/conjure.lua index f74e862..0062b12 100644 --- a/dot_config/nvim/lua/plugins/conjure.lua +++ b/dot_config/nvim/lua/plugins/conjure.lua @@ -1,6 +1,19 @@ +---@diagnostic disable:undefined-global local prefix = 'e' vim.g['conjure#mapping#prefix'] = prefix vim.g['conjure#extract#tree_sitter#enabled'] = true +-- disabling: lua, python, rust +vim.g['conjure#filetypes'] = { + 'clojure', + 'fennel', + 'hy', + 'janet', + 'julia', + 'lisp', + 'racket', + 'scheme', +} +vim.g['conjure#filetype#fennel'] = 'conjure.client.fennel.stdio' -- TODO: only do this in affected buffers -- how? diff --git a/dot_config/nvim/lua/plugins/mini.lua b/dot_config/nvim/lua/plugins/mini.lua index ebf75f3..7b2578c 100644 --- a/dot_config/nvim/lua/plugins/mini.lua +++ b/dot_config/nvim/lua/plugins/mini.lua @@ -1 +1,2 @@ require 'mini.comment'.setup{} +require 'mini.move'.setup{} diff --git a/dot_config/nvim/lua/plugins/nvim-cmp.lua b/dot_config/nvim/lua/plugins/nvim-cmp.lua new file mode 100644 index 0000000..197d830 --- /dev/null +++ b/dot_config/nvim/lua/plugins/nvim-cmp.lua @@ -0,0 +1,47 @@ +---@diagnostic disable:undefined-global + +local cmp = require 'cmp' +local snp = require 'snippy' + +local mappings = require('snippy.mapping') +vim.keymap.set('i', '', mappings.expand_or_advance(''), + { desc = 'snippy next' }) +vim.keymap.set('s', '', mappings.next(''), + { desc = 'snippy next' }) +vim.keymap.set({ 'i', 's' }, '', mappings.previous(''), + { desc = 'snippy prev' }) +vim.keymap.set('x', '', mappings.cut_text, + { remap = true, desc = 'snippy cut' }) +vim.keymap.set('n', 'g', mappings.cut_text, + { remap = true, desc = 'snippy cut' }) + +cmp.setup { + 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 = true }, + }, + snippet = { + expand = function(args) + snp.expand_snippet(args.body) + end, + }, + window = { + }, + sources = cmp.config.sources { + { name = 'nvim_lsp' }, + -- { name = 'conjure' }, + { name = 'snippy' }, + }, +} + +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' }, + }, { + { name = 'cmdline' }, + }) +}) diff --git a/dot_config/nvim/lua/plugins/nvim-lspconfig.lua b/dot_config/nvim/lua/plugins/nvim-lspconfig.lua index f8fae9f..07d9988 100644 --- a/dot_config/nvim/lua/plugins/nvim-lspconfig.lua +++ b/dot_config/nvim/lua/plugins/nvim-lspconfig.lua @@ -8,13 +8,27 @@ local function plist(...) return function(f) return p(f) end end +-- completion +local cap = require 'cmp_nvim_lsp'.default_capabilities() + -- mappings local wk = require 'which-key' + +-- signature help +local sg = require 'lsp_signature' +local sgconf = { + zindex = 50, + hint_enable = false, + extra_trigger_chars = {' '}, + toggle_key = '', +} + ---@diagnostic disable-next-line: unused-local local on_attach = function(c, b) local lsp = vim.lsp local lbf = lsp.buf vim.api.nvim_buf_set_option(b, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + sg.on_attach(sgconf, b) wk.register({ name = '+lsp', D = {lbf.declaration, 'goto declaration'}, @@ -48,11 +62,13 @@ local on_attach = function(c, b) end -- configs -local common = { on_attach = on_attach } -local deno = vim.deepcopy(common) -local tss = vim.deepcopy(common) -deno.root_dir = plist('deno.json', 'deno.jsonc') -tss.root_dir = plist('tsconfig.json', 'package.json') +local common = { on_attach = on_attach, capabilities = cap } +local clojure = vim.deepcopy(common) +local deno = vim.deepcopy(common) +local tss = vim.deepcopy(common) +clojure.root_dir = plist('project.clj', 'deps.edn', 'bb.edn', 'build.boot', 'shadow-cljs.edn', '.git') +deno.root_dir = plist('deno.json', 'deno.jsonc') +tss.root_dir = plist('tsconfig.json', 'package.json') -- servers local function enable(name, opts) @@ -64,7 +80,7 @@ local function enable(name, opts) end end -enable 'clojure_lsp' +enable('clojure_lsp', clojure) enable('denols', deno) enable 'gopls' enable 'ltex' -- cgit v1.2.3