diff --git a/lazy-lock.json b/lazy-lock.json index 02a18a0..11fa8dd 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,38 +1,33 @@ { "LazyVim": { "branch": "main", "commit": "28db03f958d58dfff3c647ce28fdc1cb88ac158d" }, - "LuaSnip": { "branch": "master", "commit": "3732756842a2f7e0e76a7b0487e9692072857277" }, "blink.cmp": { "branch": "main", "commit": "b19413d214068f316c78978b08264ed1c41830ec" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "catppuccin": { "branch": "main", "commit": "ce8d176faa4643e026e597ae3c31db59b63cef09" }, - "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, - "cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "cbc7b02bb99fae35cb42f514762b89b5126651ef" }, - "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, - "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, - "conform.nvim": { "branch": "master", "commit": "df83eeaab265dacd2eef139a78e502a3f8926618" }, - "fidget.nvim": { "branch": "main", "commit": "64463022a1f2ff1318ab22a2ea4125ed9313a483" }, + "catppuccin": { "branch": "main", "commit": "beaf41a30c26fd7d6c386d383155cbd65dd554cd" }, + "codecompanion.nvim": { "branch": "main", "commit": "e0780fa9fda504ffb89307cabcb6cbe1ce8eb60c" }, + "conform.nvim": { "branch": "master", "commit": "238f542a118984a88124fc915d5b981680418707" }, "flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" }, "friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" }, - "gitsigns.nvim": { "branch": "main", "commit": "130beacf8a51f00aede9c31064c749136679a321" }, - "grug-far.nvim": { "branch": "main", "commit": "74eef260e1142264ab994fb9c88e4f420e9486d7" }, + "gitsigns.nvim": { "branch": "main", "commit": "42d6aed4e94e0f0bbced16bbdcc42f57673bd75e" }, + "grug-far.nvim": { "branch": "main", "commit": "794f03c97afc7f4b03fb6ec5111be507df1850cf" }, "lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" }, "lazydev.nvim": { "branch": "main", "commit": "5231c62aa83c2f8dc8e7ba957aa77098cda1257d" }, "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "4cfe411526a7a99c18281135e8b4765ae6330d15" }, - "mason.nvim": { "branch": "main", "commit": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "80c0130c5f16b551865a69e832f1feadeedb5fbe" }, + "mason.nvim": { "branch": "main", "commit": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65" }, "mini.ai": { "branch": "main", "commit": "bfb26d9072670c3aaefab0f53024b2f3729c8083" }, "mini.icons": { "branch": "main", "commit": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c" }, "mini.pairs": { "branch": "main", "commit": "d5a29b6254dad07757832db505ea5aeab9aad43a" }, "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-lint": { "branch": "master", "commit": "1f19dacd945a7b1a57f29f32b2d7168384df3d36" }, - "nvim-lspconfig": { "branch": "master", "commit": "41ceb6bba3a40128b7841f5b7f5a9dae7201e823" }, - "nvim-treesitter": { "branch": "main", "commit": "7efc1b58a8061d29786860006c7257c90a5196dc" }, - "nvim-treesitter-textobjects": { "branch": "main", "commit": "ecd03f5811eb5c66d2fa420b79121b866feecd82" }, + "nvim-lint": { "branch": "master", "commit": "ca6ea12daf0a4d92dc24c5c9ae22a1f0418ade37" }, + "nvim-lspconfig": { "branch": "master", "commit": "92ee7d42320edfbb81f3cad851314ab197fa324a" }, + "nvim-treesitter": { "branch": "main", "commit": "8aada0e3940c573e38b417a226b43bc8675f8958" }, + "nvim-treesitter-textobjects": { "branch": "main", "commit": "baa6b4ec28c8be5e4a96f9b1b6ae9db85ec422f8" }, "nvim-ts-autotag": { "branch": "main", "commit": "c4ca798ab95b316a768d51eaaaee48f64a4a46bc" }, "persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" }, "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "snacks.nvim": { "branch": "main", "commit": "fe7cfe9800a182274d0f868a74b7263b8c0c020b" }, + "tiny-inline-diagnostic.nvim": { "branch": "main", "commit": "ecce93ff7db4461e942c03e0fcc64bd785df4057" }, "todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" }, "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" }, "trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" }, diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua index 2c134f7..431c5ae 100644 --- a/lua/config/keymaps.lua +++ b/lua/config/keymaps.lua @@ -1,3 +1,7 @@ -- Keymaps are automatically loaded on the VeryLazy event -- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua -- Add any additional keymaps here +local wk = require("which-key") +wk.add({ + { "a", group = "+ai" }, +}) diff --git a/lua/plugins/blink.lua b/lua/plugins/blink.lua new file mode 100644 index 0000000..11cd2a4 --- /dev/null +++ b/lua/plugins/blink.lua @@ -0,0 +1,9 @@ +return { + "saghen/blink.cmp", + opts = { + keymap = { + [""] = { "fallback" }, + [""] = { "accept", "fallback" }, + }, + }, +} \ No newline at end of file diff --git a/lua/plugins/codecompanion.lua b/lua/plugins/codecompanion.lua new file mode 100644 index 0000000..d20d507 --- /dev/null +++ b/lua/plugins/codecompanion.lua @@ -0,0 +1,47 @@ +return { + "olimorris/codecompanion.nvim", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-treesitter/nvim-treesitter", + }, + opts = { + log_level = "TRACE", -- or "TRACE" + interactions = { + chat = { + adapter = "opencode", + roles = { + ---The header name for the LLM's messages + ---@type string|fun(adapter: CodeCompanion.HTTPAdapter|CodeCompanion.ACPAdapter): string + llm = function(adapter) + return "CodeCompanion (" .. adapter.formatted_name .. ")" + end, + + ---The header name for your messages + ---@type string + user = "Haelnorr", + }, + }, + inline = { + adapter = "anthropic", + }, + }, + rules = { + default = { + files = { + { path = "RULES.md", parser = "claude" }, + }, + is_preset = true, + }, + opts = { + chat = { + autoload = "default", + enabled = true, + }, + }, + }, + }, + keys = { + { "ac", "CodeCompanionChat Toggle", desc = "Toggle CodeCompanion Chat" }, + { "ai", "CodeCompanion", mode = "v", desc = "Open CodeCompanion Inline" }, + }, +} diff --git a/lua/plugins/extras.lua b/lua/plugins/extras.lua new file mode 100644 index 0000000..400afcc --- /dev/null +++ b/lua/plugins/extras.lua @@ -0,0 +1,3 @@ +return { + { import = "lazyvim.plugins.extras.coding.blink" }, +} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index ac26b03..7e6e34a 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -22,52 +22,35 @@ return { }, { "neovim/nvim-lspconfig", - event = "LazyFile", - opts = { - servers = { - templ = { - filetypes = { "templ" }, - settings = { - templ = { - enable_snippets = true, - }, - }, + opts = function(_, opts) + local capabilities = require("blink-cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) + + -- apply to ALL servers + opts.servers["*"].capabilities = capabilities + opts.servers = opts.servers or {} + + opts.servers.templ = { + cmd = { "templ", "lsp" }, + filetypes = { "templ" }, + root_dir = require("lspconfig.util").root_pattern("go.work", "go.mod", ".git"), + capabilities = capabilities, + } + opts.servers.html = { + filetypes = { "html", "templ" }, + capabilities = capabilities, + } + opts.servers.tailwindcss = { + filetypes = { + "html", + "templ", + "javascript", + "typescript", + "javascriptreact", + "typescriptreact", }, - }, - }, - }, - { - "nvim-treesitter/nvim-treesitter", - event = { "LazyFile", "VeryLazy" }, - opts_extend = { "ensure_installed" }, - opts = { - highlight = { enable = true }, - indent = { enable = true }, - ensure_installed = { - "bash", - "c", - "diff", - "go", - "html", - "javascript", - "jsdoc", - "json", - "jsonc", - "lua", - "luadoc", - "luap", - "markdown", - "markdown_inline", - "printf", - "query", - "toml", - "vim", - "vimdoc", - "yaml", - "templ", - "typescript", - }, - }, + capabilities = capabilities, + } + end, }, { "stevearc/conform.nvim", diff --git a/lua/plugins/tinyinlinediag.lua b/lua/plugins/tinyinlinediag.lua new file mode 100644 index 0000000..6b8b700 --- /dev/null +++ b/lua/plugins/tinyinlinediag.lua @@ -0,0 +1,12 @@ +return { + { + "rachartier/tiny-inline-diagnostic.nvim", + event = "VeryLazy", + priority = 1000, + opts = {}, + }, + { + "neovim/nvim-lspconfig", + opts = { diagnostics = { virtual_text = false } }, + }, +}