diff options
Diffstat (limited to '')
| -rw-r--r-- | nvim/lua/config/options.lua | 4 | ||||
| -rw-r--r-- | nvim/lua/plugins/lspsaga.lua | 3 | ||||
| -rw-r--r-- | nvim/lua/plugins/mini-starter.lua | 7 | ||||
| -rw-r--r-- | nvim/lua/plugins/nvim-lspconfig.lua | 150 | ||||
| -rw-r--r-- | nvim/lua/plugins/nvim-parinfer.lua | 5 | ||||
| -rw-r--r-- | nvim/lua/plugins/telescope.lua | 41 |
6 files changed, 119 insertions, 91 deletions
diff --git a/nvim/lua/config/options.lua b/nvim/lua/config/options.lua index bf92bb5..deeeb2e 100644 --- a/nvim/lua/config/options.lua +++ b/nvim/lua/config/options.lua @@ -1,9 +1,9 @@ local opt = vim.opt -- Indent -opt.softtabstop = 2 +opt.tabstop = 2 opt.shiftwidth = 2 -opt.expandtab = true +opt.expandtab = false opt.smartindent = true opt.wrap = false diff --git a/nvim/lua/plugins/lspsaga.lua b/nvim/lua/plugins/lspsaga.lua index d6faadc..b87260a 100644 --- a/nvim/lua/plugins/lspsaga.lua +++ b/nvim/lua/plugins/lspsaga.lua @@ -1,4 +1,7 @@ local config = function() + vim.diagnostic.config({ + severity_sort = true, + }) require("lspsaga").setup({ ui = { code_action = "", diff --git a/nvim/lua/plugins/mini-starter.lua b/nvim/lua/plugins/mini-starter.lua index 1532c73..8b216a1 100644 --- a/nvim/lua/plugins/mini-starter.lua +++ b/nvim/lua/plugins/mini-starter.lua @@ -177,6 +177,13 @@ Quotes = { The question of whether computers can think is like the question of whether submarines can swim. ~ Edsger Dijkstra ]], + [[ + Of course, I'd also suggest that whoever was the genius who thought it was a good idea to read + things ONE F*CKING BYTE AT A TIME with system calls for each byte should be retroactively aborted. + Who the f*ck does idiotic things like that? How did they not die as babies, considering that they + were likely too stupid to find a tit to suck on? + ~ Linus Torvalds + ]] } diff --git a/nvim/lua/plugins/nvim-lspconfig.lua b/nvim/lua/plugins/nvim-lspconfig.lua index 22435e6..639734e 100644 --- a/nvim/lua/plugins/nvim-lspconfig.lua +++ b/nvim/lua/plugins/nvim-lspconfig.lua @@ -1,5 +1,5 @@ local config = function() - local lspconfig = require("lspconfig") + local lsp = vim.lsp local capabilities = require("cmp_nvim_lsp").default_capabilities() -- setting custom signs @@ -9,85 +9,107 @@ local config = function() vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" }) end - local on_attach = function(client, bufnr) - local keymap = vim.keymap - local lsp = vim.lsp - local opts = { noremap = true, silent = true, buffer = bufnr, desc = "" } + vim.api.nvim_create_autocmd('LspAttach', { + callback = function(ev) + local client = lsp.get_client_by_id(ev.data.client_id) + local keymap = vim.keymap + local opts = { noremap = true, silent = true, buffer = ev.buf, desc = "" } - -- setting custom keymaps - opts.desc = "Finder" - keymap.set("n", "<Space>lf", ":Lspsaga finder<Enter>", opts) -- go to definition - opts.desc = "Peek Definition (Lspsaga)" - keymap.set("n", "<Space>lp", ":Lspsaga peek_definition<Enter>", opts) -- peak definition - opts.desc = "Goto Definition (Lspsaga)" - keymap.set("n", "<Space>lg", ":Lspsaga goto_definition<Enter>", opts) -- go to definition - opts.desc = "Code Action (Lspsaga)" - keymap.set("n", "<Space>la", ":Lspsaga code_action<Enter>", opts) -- see available code actions - opts.desc = "Rename (Lspsaga)" - keymap.set("n", "<Space>lr", ":Lspsaga rename<Enter>", opts) -- smart rename - opts.desc = "Hover Documentation (Lspsaga)" - keymap.set("n", "<Space>lk", lsp.buf.hover, opts) -- show documentation for what is under cursor - opts.desc = "Outline (Lspsaga)" - keymap.set("n", "<Space>lo", ":Lspsaga outline<Enter>", opts) -- show outline - opts.desc = "Diagnostic (Lspsaga)" - keymap.set("n", "<Space>ld", ":Lspsaga show_workspace_diagnostics<Enter>", opts) -- show diagnostics + -- setting custom keymaps + opts.desc = "Finder" + keymap.set("n", "<Space>lf", ":Lspsaga finder<Enter>", opts) -- go to definition + opts.desc = "Peek Definition (Lspsaga)" + keymap.set("n", "<Space>lp", ":Lspsaga peek_definition<Enter>", opts) -- peak definition + opts.desc = "Goto Definition (Lspsaga)" + keymap.set("n", "<Space>lg", ":Lspsaga goto_definition<Enter>", opts) -- go to definition + opts.desc = "Code Action (Lspsaga)" + keymap.set("n", "<Space>la", ":Lspsaga code_action<Enter>", opts) -- see available code actions + opts.desc = "Rename (Lspsaga)" + keymap.set("n", "<Space>lr", ":Lspsaga rename<Enter>", opts) -- smart rename + opts.desc = "Hover Documentation (Lspsaga)" + keymap.set("n", "<Space>lk", lsp.buf.hover, opts) -- show documentation for what is under cursor + opts.desc = "Outline (Lspsaga)" + keymap.set("n", "<Space>lo", ":Lspsaga outline<Enter>", opts) -- show outline + opts.desc = "Diagnostic (Lspsaga)" + keymap.set("n", "<Space>ld", ":Lspsaga show_workspace_diagnostics<Enter>", opts) -- show diagnostics - keymap.del("n", "K", { buffer = bufnr }) - - -- enable auto formatting on save - if client.supports_method("textDocument/formatting") then - vim.api.nvim_create_autocmd("BufWritePre", { - buffer = bufnr, - callback = function() - vim.lsp.buf.format({ async = true }) - end, - }) + -- enable auto formatting on save + if client ~= nil and client:supports_method("textDocument/formatting") then + vim.api.nvim_create_autocmd("BufWritePre", { + buffer = ev.buf, + callback = function() + lsp.buf.format({ async = true }) + end, + }) + end end - end + }) - -- efm server configuration - -- lspconfig.efm.setup({ - -- init_options = { - -- documentFormatting = true, - -- documentRangeFormatting = true, - -- hover = true, - -- documentSymbol = true, - -- codeAction = true, - -- completion = true, - -- }, - -- }) - -- clangd server configuration - lspconfig.clangd.setup({ - on_attach = on_attach, + vim.api.nvim_create_autocmd('LspDetach', { + callback = function(ev) + local client = lsp.get_client_by_id(ev.data.client_id) + local keymap = vim.keymap + keymap.del("n", "<Space>lf") + keymap.del("n", "<Space>lp") + keymap.del("n", "<Space>lg") + keymap.del("n", "<Space>la") + keymap.del("n", "<Space>lr") + keymap.del("n", "<Space>lk") + keymap.del("n", "<Space>lo") + keymap.del("n", "<Space>ld") + if client ~= nil and client:supports_method('textDocument/formatting') then + vim.api.nvim_clear_autocmds({ + event = 'BufWritePre', + buffer = ev.buf, + }) + end + end, + }) + + -- C/C++ + lsp.enable("clangd") + lsp.config("clangd", { + capabilities = capabilities, + }) + -- Rust + lsp.enable("rust_analyzer") + lsp.config("rust_analyzer", { capabilities = capabilities, }) - -- rust analyzer server configuration - lspconfig.rust_analyzer.setup({ - on_attach = on_attach, + -- Haskell + lsp.enable("hls") + lsp.config("hls", { capabilities = capabilities, + settings = { + ['haskell'] = { + cabalFormattingProvider = "cabal-fmt", + formattingProvider = "ormolu" + }, + }, }) - -- haskell-language-server configuration - lspconfig.hls.setup({ - on_attach = on_attach, + -- Lua + lsp.enable("lua_ls") + lsp.config("lua_ls", { capabilities = capabilities, }) - -- lua-language-server configuration - lspconfig.lua_ls.setup({ - on_attach = on_attach, + -- JavaScript/Typescript + lsp.enable("ts_ls") + lsp.config("ts_ls", { capabilities = capabilities, }) - lspconfig.ts_ls.setup({ - on_attach = on_attach, + -- CSS + lsp.enable("cssls") + lsp.config("cssls", { capabilities = capabilities, }) - -- cssls-language-server configuration - lspconfig.cssls.setup({ - on_attach = on_attach, + -- Meson + lsp.enable("mesonlsp") + lsp.config("mesonlsp", { capabilities = capabilities, }) - -- mesonlsp configuration - lspconfig.mesonlsp.setup({ - on_attach = on_attach, + -- Zig + lsp.enable("zls") + lsp.config("zls", { capabilities = capabilities, }) end diff --git a/nvim/lua/plugins/nvim-parinfer.lua b/nvim/lua/plugins/nvim-parinfer.lua new file mode 100644 index 0000000..8775f83 --- /dev/null +++ b/nvim/lua/plugins/nvim-parinfer.lua @@ -0,0 +1,5 @@ +return { + "gpanders/nvim-parinfer", + lazy = true, + ft = "lisp" +} diff --git a/nvim/lua/plugins/telescope.lua b/nvim/lua/plugins/telescope.lua index bc29d8c..0f6d853 100644 --- a/nvim/lua/plugins/telescope.lua +++ b/nvim/lua/plugins/telescope.lua @@ -10,36 +10,27 @@ local init = function() opts.desc = "All commands (Telescope)" keymap.set("n", "<Space>ta", ":Telescope<Enter>", opts) -- All commands opts.desc = "Find words (Telescope)" - keymap.set("n", "<Space>tg", ":Telescope live_grep<Enter>", opts) -- Find words + keymap.set("n", "<Space>tw", ":Telescope live_grep<Enter>", opts) -- Find words opts.desc = "Buffers (Telescope)" keymap.set("n", "<Space>tb", ":Telescope buffers<Enter>", opts) -- Buffers end -local opts = { - defaults = { - mappings = { - i = { - ["<C-j>"] = "move_selection_next", - ["<C-k>"] = "move_selection_previous", +local config = function() + require("telescope").setup({ + defaults = require("telescope.themes").get_ivy(), + pickers = { + find_files = { + hidden = true, }, + builtin = { + previewer = false, + }, + help_tags = { + previewer = false, + } }, - }, - picker = { - find_files = { - theme = "dropdown", - previewer = false, - hidden = true, - }, - live_grep = { - theme = "dropdown", - previewer = false, - }, - find_buffers = { - theme = "dropdown", - previewer = false, - }, - }, -} + }) +end return { "nvim-telescope/telescope.nvim", @@ -47,5 +38,5 @@ return { lazy = true, cmd = "Telescope", init = init, - opts = opts, + config = config, } |
