diff --git a/lazy-lock.json b/lazy-lock.json index dd83a63..4b60fa1 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,24 +1,21 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, - "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, - "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, - "gruvbox": { "branch": "main", "commit": "089b60e92aa0a1c6fa76ff527837cd35b6f5ac81" }, + "blink.cmp": { "branch": "main", "commit": "4f38ce99a472932d5776337f08f7a8180f1f571a" }, + "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, + "gruvbox": { "branch": "main", "commit": "8d79de155785f9eaf0031bba92d0289318208fc9" }, "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, - "ltex_extra.nvim": { "branch": "master", "commit": "67dc3465af8d8caa49a00aaff066289a94eb753e" }, - "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, + "lualine.nvim": { "branch": "master", "commit": "15884cee63a8c205334ab13ab1c891cd4d27101a" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "e96fd85bf18bc345dab332b345098fa5460dffac" }, - "none-ls-extras.nvim": { "branch": "main", "commit": "6557f20e631d2e9b2a9fd27a5c045d701a3a292c" }, - "none-ls.nvim": { "branch": "main", "commit": "f41624ea1a73f020ddbd33438f74abb95ea17d55" }, - "nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" }, - "nvim-cmp": { "branch": "main", "commit": "12509903a5723a876abd65953109f926f4634c30" }, - "nvim-lspconfig": { "branch": "master", "commit": "7c8cb61b21727a473663054edec4b83633d9e442" }, - "nvim-treesitter": { "branch": "master", "commit": "bf18d4dc8d9a7a61e855190bc154df12d6536741" }, - "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "1ef260eb4f54515fe121a2267b477efb054d108a" }, + "none-ls-extras.nvim": { "branch": "main", "commit": "80dfc30b674c45ad892726f656440cc9e69b82e3" }, + "none-ls.nvim": { "branch": "main", "commit": "b3dfc91b58f24b5496c46217101179e55a32364a" }, + "nui.nvim": { "branch": "main", "commit": "8d5b0b568517935d3c84f257f272ef004d9f5a59" }, + "nvim-lspconfig": { "branch": "master", "commit": "022ddc8fe9b822b6962ee658e91a584599604035" }, + "nvim-treesitter": { "branch": "master", "commit": "3b308861a8d7d7bfbe9be51d52e54dcfd9fe3d38" }, + "nvim-web-devicons": { "branch": "master", "commit": "50b5b06bff13a9b4eab946de7c7033649a6618a1" }, "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, - "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" } + "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" }, + "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" } } diff --git a/lua/plugins/blink.lua b/lua/plugins/blink.lua new file mode 100644 index 0000000..e9597d5 --- /dev/null +++ b/lua/plugins/blink.lua @@ -0,0 +1,53 @@ +return { + "saghen/blink.cmp", + -- optional: provides snippets for the snippet source + dependencies = { "rafamadriz/friendly-snippets" }, + + -- use a release tag to download pre-built binaries + version = "1.*", + -- AND/OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust + -- build = 'cargo build --release', + -- If you use nix, you can build from source using latest nightly rust with: + -- build = 'nix run .#build-plugin', + + ---@module 'blink.cmp' + ---@type blink.cmp.Config + opts = { + -- 'default' (recommended) for mappings similar to built-in completions (C-y to accept) + -- 'super-tab' for mappings similar to vscode (tab to accept) + -- 'enter' for enter to accept + -- 'none' for no mappings + -- + -- All presets have the following mappings: + -- C-space: Open menu or open docs if already open + -- C-n/C-p or Up/Down: Select next/previous item + -- C-e: Hide menu + -- C-k: Toggle signature help (if signature.enabled = true) + -- + -- See :h blink-cmp-config-keymap for defining your own keymap + keymap = { preset = "super-tab" }, + + appearance = { + -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' + -- Adjusts spacing to ensure icons are aligned + nerd_font_variant = "mono", + }, + + -- (Default) Only show the documentation popup when manually triggered + completion = { documentation = { auto_show = false } }, + + -- Default list of enabled providers defined so that you can extend it + -- elsewhere in your config, without redefining it, due to `opts_extend` + sources = { + default = { "lsp", "path", "snippets", "buffer" }, + }, + + -- (Default) Rust fuzzy matcher for typo resistance and significantly better performance + -- You may use a lua implementation instead by using `implementation = "lua"` or fallback to the lua implementation, + -- when the Rust fuzzy matcher is not available, by using `implementation = "prefer_rust"` + -- + -- See the fuzzy documentation for more information + fuzzy = { implementation = "prefer_rust_with_warning" }, + }, + opts_extend = { "sources.default" }, +} diff --git a/lua/plugins/completions.lua b/lua/plugins/completions.lua deleted file mode 100644 index 5d45ad1..0000000 --- a/lua/plugins/completions.lua +++ /dev/null @@ -1,44 +0,0 @@ -return { - { - "hrsh7th/cmp-nvim-lsp", - }, - { - "L3MON4D3/LuaSnip", - dependencies = { - "saadparwaiz1/cmp_luasnip", - "rafamadriz/friendly-snippets", - }, - }, - { - "hrsh7th/nvim-cmp", - config = function() - local cmp = require("cmp") - require("luasnip.loaders.from_vscode").lazy_load() - - cmp.setup({ - snippet = { - expand = function(args) - require("luasnip").lsp_expand(args.body) - 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 = true }), - }), - sources = cmp.config.sources({ - { name = "nvim_lsp" }, - { name = "luasnip" }, - }, { - { name = "buffer" }, - }), - }) - end, - }, -} diff --git a/lua/plugins/copilot-chat.lua b/lua/plugins/copilot-chat.lua deleted file mode 100644 index 0152077..0000000 --- a/lua/plugins/copilot-chat.lua +++ /dev/null @@ -1,31 +0,0 @@ -return { --- { --- "CopilotC-Nvim/CopilotChat.nvim", --- branch = "canary", --- dependencies = { --- { "github/copilot.vim" }, -- or github/copilot.vim --- { "nvim-lua/plenary.nvim" }, -- for curl, log wrapper --- }, --- build = "make tiktoken", -- Only on MacOS or Linux --- opts = { --- debug = true, -- Enable debugging --- -- default window options --- window = { --- layout = "float", -- 'vertical', 'horizontal', 'float', 'replace' --- width = 0.8, -- fractional width of parent, or absolute width in columns when > 1 --- height = 0.8, -- fractional height of parent, or absolute height in rows when > 1 --- -- Options below only apply to floating windows --- relative = "editor", -- 'editor', 'win', 'cursor', 'mouse' --- border = "single", -- 'none', single', 'double', 'rounded', 'solid', 'shadow' --- row = nil, -- row position of the window, default is centered --- col = nil, -- column position of the window, default is centered --- title = "Copilot Chat", -- title of chat window --- footer = nil, -- footer of chat window --- zindex = 1, -- determines if window is on top or below other floating windows --- }, --- }, --- vim.api.nvim_set_keymap("n", "gh", ":CopilotChatToggle", { noremap = true, silent = true }), --- vim.api.nvim_set_keymap("n", "gr", ":CopilotChatReset", { noremap = true, silent = true }), --- -- See Commands section for default commands if you want to lazy load on them --- }, -} diff --git a/lua/plugins/copilot.lua b/lua/plugins/copilot.lua deleted file mode 100644 index f8564e3..0000000 --- a/lua/plugins/copilot.lua +++ /dev/null @@ -1,3 +0,0 @@ -return { --- "github/copilot.vim", -} diff --git a/lua/plugins/lsp-config.lua b/lua/plugins/lsp-config.lua index 06ce8fe..36f3212 100644 --- a/lua/plugins/lsp-config.lua +++ b/lua/plugins/lsp-config.lua @@ -9,15 +9,18 @@ return { "williamboman/mason-lspconfig.nvim", config = function() require("mason-lspconfig").setup({ - ensure_installed = { "lua_ls", "ts_ls", "svelte", "tailwindcss", "cssls", "rust_analyzer" }, + ensure_installed = { "lua_ls", "ts_ls", "svelte", "tailwindcss", "cssls" }, + automatic_enable = true, }) end, }, { "neovim/nvim-lspconfig", - config = function() - local capabilities = require("cmp_nvim_lsp").default_capabilities() + config = function(_, opts) + local original_capabilities = vim.lsp.protocol.make_client_capabilities() + local capabilities = require("blink.cmp").get_lsp_capabilities(original_capabilities) local lspconfig = require("lspconfig") + lspconfig.lua_ls.setup({ capabilities = capabilities, }) @@ -32,31 +35,39 @@ return { }) lspconfig.cssls.setup({ capabilities = capabilities, - }) - lspconfig.rust_analyzer.setup({ - capabilities = capabilities, + settings = { + css = { + lint = { + unknownAtRules = "ignore", + }, + }, + scss = { + lint = { + unknownAtRules = "ignore", + }, + }, + less = { + lint = { + unknownAtRules = "ignore", + }, + }, + }, }) lspconfig.sourcekit.setup({ capabilities = capabilities, }) - lspconfig.jedi_language_server.setup({ - capabilities = capabilities, - }) - lspconfig.gopls.setup({ - capabilities = capabilities, - }) - lspconfig.ltex.setup({ - on_attach = function() - require("ltex_extra").setup({ - load_langs = { "de-DE" }, - }) - end, - filetypes = { "markdown", "text", "latex" }, - capabilities = capabilities, - }) vim.keymap.set("n", "gd", vim.lsp.buf.definition, {}) vim.keymap.set("n", "K", vim.lsp.buf.hover, {}) vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, {}) + + vim.diagnostic.config({ + virtual_text = true, + signs = true, + update_in_insert = true, + underline = true, + severity_sort = false, + float = true, + }) end, }, } diff --git a/lua/plugins/ltex-extra.lua b/lua/plugins/ltex-extra.lua deleted file mode 100644 index ab5e3cf..0000000 --- a/lua/plugins/ltex-extra.lua +++ /dev/null @@ -1,5 +0,0 @@ -return { - "barreiroleo/ltex_extra.nvim", - ft = { "markdown", "tex" }, - dependencies = { "neovim/nvim-lspconfig" }, -} diff --git a/lua/plugins/trouble.lua b/lua/plugins/trouble.lua new file mode 100644 index 0000000..3b7a8f4 --- /dev/null +++ b/lua/plugins/trouble.lua @@ -0,0 +1,37 @@ +return { + "folke/trouble.nvim", + opts = {}, -- for default options, refer to the configuration section for custom setup. + cmd = "Trouble", + keys = { + { + "xx", + "Trouble diagnostics toggle focus=true", + desc = "Diagnostics (Trouble)", + }, + { + "xX", + "Trouble diagnostics toggle filter.buf=0 focus=true", + desc = "Buffer Diagnostics (Trouble)", + }, + { + "cs", + "Trouble symbols toggle focus=false", + desc = "Symbols (Trouble)", + }, + { + "cl", + "Trouble lsp toggle focus=false win.position=right", + desc = "LSP Definitions / references / ... (Trouble)", + }, + { + "xL", + "Trouble loclist toggle", + desc = "Location List (Trouble)", + }, + { + "xQ", + "Trouble qflist toggle", + desc = "Quickfix List (Trouble)", + }, + }, +} diff --git a/lua/vim-options.lua b/lua/vim-options.lua index 2ecb06f..e40c5b3 100644 --- a/lua/vim-options.lua +++ b/lua/vim-options.lua @@ -3,18 +3,3 @@ vim.cmd("set shiftwidth=4") vim.wo.relativenumber = true vim.opt.number = true vim.g.mapleader = " " -vim.api.nvim_create_autocmd("FileType", { - pattern = { "markdown", "text", "plaintex" }, - callback = function() - vim.opt_local.wrap = true - vim.opt_local.linebreak = true - vim.opt_local.breakindent = true - vim.opt_local.showbreak = "↳ " - end, -}) --- Smart navigation for wrapped lines -vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) -vim.keymap.set("x", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) -vim.keymap.set("x", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) -