summaryrefslogtreecommitdiff
path: root/dot_config/nvim/lua/plugins
diff options
context:
space:
mode:
authorChloe Kudryavtsev <code@toast.bunkerlabs.net>2023-01-18 10:11:34 +0100
committerChloe Kudryavtsev <code@toast.bunkerlabs.net>2023-01-18 10:11:34 +0100
commit3e7075f8944ac56b78c82f68835722807ad62e18 (patch)
treee35b911315a079ba78b2138c4fd4a8f6e1a19094 /dot_config/nvim/lua/plugins
parentnvim: add clojure qol (diff)
nvim: update config (checkpoint)
Diffstat (limited to 'dot_config/nvim/lua/plugins')
-rw-r--r--dot_config/nvim/lua/plugins/conjure.lua13
-rw-r--r--dot_config/nvim/lua/plugins/mini.lua1
-rw-r--r--dot_config/nvim/lua/plugins/nvim-cmp.lua47
-rw-r--r--dot_config/nvim/lua/plugins/nvim-lspconfig.lua28
4 files changed, 83 insertions, 6 deletions
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 = '<localleader>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', '<Tab>', mappings.expand_or_advance('<Tab>'),
+ { desc = 'snippy next' })
+vim.keymap.set('s', '<Tab>', mappings.next('<Tab>'),
+ { desc = 'snippy next' })
+vim.keymap.set({ 'i', 's' }, '<S-Tab>', mappings.previous('<S-Tab>'),
+ { desc = 'snippy prev' })
+vim.keymap.set('x', '<Tab>', mappings.cut_text,
+ { remap = true, desc = 'snippy cut' })
+vim.keymap.set('n', 'g<Tab>', mappings.cut_text,
+ { remap = true, desc = 'snippy cut' })
+
+cmp.setup {
+ mapping = cmp.mapping.preset.insert {
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = 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 = '<M-x>',
+}
+
---@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'