X-Git-Url: https://src.twobees.de/?a=blobdiff_plain;f=stow%2Fnvim%2F.config%2Fnvim%2Finit.lua;h=c02802832b5f829ddc8c68d0395079fb313b65ef;hb=a63706c488fb767b762f9aeda9a25c3ed12a1ef3;hp=bfc6ee34b7bab9d1b1449d77cae9b1ed8bed8068;hpb=62c3c3dc07cdcd09f1712f6eb4eb658c8be6bf01;p=dotfiles.git diff --git a/stow/nvim/.config/nvim/init.lua b/stow/nvim/.config/nvim/init.lua index bfc6ee3..c028028 100644 --- a/stow/nvim/.config/nvim/init.lua +++ b/stow/nvim/.config/nvim/init.lua @@ -32,6 +32,7 @@ require('lazy').setup({ -- Detect tabstop and shiftwidth automatically 'tpope/vim-sleuth', + -- NOTE: This is where your plugins related to LSP can be installed. -- The configuration is done below. Search for lspconfig to find it below. { @@ -56,7 +57,7 @@ require('lazy').setup({ 'hrsh7th/nvim-cmp', dependencies = { 'hrsh7th/cmp-nvim-lsp', - {'L3MON4D3/LuaSnip', version = "2.*", build = "make install_jsregexp"}, + { 'L3MON4D3/LuaSnip', version = "2.*", build = "make install_jsregexp" }, 'saadparwaiz1/cmp_luasnip', 'rafamadriz/friendly-snippets' }, @@ -102,12 +103,8 @@ require('lazy').setup({ { -- Add indentation guides even on blank lines 'lukas-reineke/indent-blankline.nvim', - -- Enable `lukas-reineke/indent-blankline.nvim` - -- See `:help indent_blankline.txt` - opts = { - char = '┊', - show_trailing_blankline_indent = false, - }, + main = "ibl", + opts = { }, }, -- "gc" to comment visual regions/lines @@ -336,7 +333,6 @@ require('nvim-treesitter.configs').setup { }, }, } - -- Diagnostic keymaps vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic message' }) vim.keymap.set('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) @@ -344,9 +340,13 @@ vim.keymap.set('n', '', vim.diagnostic.goto_prev, { desc = 'Go to previous vim.keymap.set('n', '', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic message' }) vim.keymap.set('n', 'e', vim.diagnostic.open_float, { desc = 'Open floating diagnostic message' }) vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostics list' }) + +vim.keymap.set("n", "f", function() + vim.lsp.buf.format({ timeout = 10000, bufnr = vim.api.nvim_get_current_buf() }) +end) -- LSP settings. -- This function gets run when an LSP connects to a particular buffer. -local on_attach = function(_, bufnr) +local on_attach = function(client, bufnr) -- NOTE: Remember that lua is a real programming language, and as such it is possible -- to define small helper and utility functions so you don't have to repeat yourself -- many times. @@ -354,9 +354,10 @@ local on_attach = function(_, bufnr) local nmap = function(keys, func, desc) if desc then desc = 'LSP: ' .. desc + vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) + else + vim.keymap.set('n', keys, func, { buffer = bufnr }) end - - vim.keymap.set('n', keys, func, { buffer = bufnr, desc = desc }) end nmap('rn', vim.lsp.buf.rename, '[R]e[n]ame') @@ -369,6 +370,8 @@ local on_attach = function(_, bufnr) nmap('ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols') nmap('ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols') + + -- See `:help K` for why this keymap nmap('K', vim.lsp.buf.hover, 'Hover Documentation') nmap('', vim.lsp.buf.signature_help, 'Signature Documentation') @@ -398,6 +401,8 @@ local servers = { -- pyright = {}, -- rust_analyzer = {}, tsserver = {}, + eslint = {}, + tailwindcss = {}, lua_ls = { Lua = { workspace = { checkThirdParty = false }, @@ -478,9 +483,6 @@ cmp.setup { } - - - local null_ls = require("null-ls") local group = vim.api.nvim_create_augroup("lsp_format_on_save", { clear = false }) @@ -488,30 +490,8 @@ local event = "BufWritePre" -- or "BufWritePost" local async = event == "BufWritePost" null_ls.setup({ - on_attach = function(client, bufnr) - if client.supports_method("textDocument/formatting") then - vim.keymap.set("n", "f", function() - vim.lsp.buf.format({ timeout = 10000, bufnr = vim.api.nvim_get_current_buf() }) - end, { buffer = bufnr, desc = "[lsp] format" }) - - -- -- format on save - -- vim.api.nvim_clear_autocmds({ buffer = bufnr, group = group }) - -- vim.api.nvim_create_autocmd(event, { - -- buffer = bufnr, - -- group = group, - -- callback = function() - -- vim.lsp.buf.format({ bufnr = bufnr, async = async }) - -- end, - -- desc = "[lsp] format on save", - -- }) - end - - if client.supports_method("textDocument/rangeFormatting") then - vim.keymap.set("x", "f", function() - vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() }) - end, { buffer = bufnr, desc = "[lsp] format" }) - end - end, + timeout = 2000, + on_attach = on_attach }) @@ -536,6 +516,8 @@ prettier.setup({ }) vim.opt.diffopt = vim.opt.diffopt + "vertical" +vim.opt.cursorline = true +vim.opt.hlsearch = true -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ts=2 sts=2 sw=2 et