diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index e75309d..4b4fcf7 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -205,6 +205,14 @@ vim.api.nvim_create_autocmd({ "BufNewFile", "BufRead" }, { end, }) +vim.api.nvim_create_autocmd("FileType", { + group = vim.api.nvim_create_augroup("python_options", { clear = true }), + pattern = { "python" }, + callback = function() + vim.opt_local.colorcolumn = "80" + end, +}) + if vim.env.ZELLIJ ~= nil then vim.fn.system({ "zellij", "action", "switch-mode", "locked" }) end diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index 8f9b8c4..29149c7 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -2,54 +2,58 @@ "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, "LuaSnip": { "branch": "master", "commit": "118263867197a111717b5f13d954cd1ab8124387" }, "ansible-vim": { "branch": "master", "commit": "afc739e505053a6143a1fc6cedac6fb4d7a1d4db" }, - "cmp-git": { "branch": "main", "commit": "b9603f18496bc3ca07e6bd474607081af709e750" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, - "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "3d8912ebeb56e5ae08ef0906e3a54de1c66b92f1" }, + "cmp-git": { "branch": "main", "commit": "8dfbc33fb32c33e5c0be9dcc8176a4f4d395f95e" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, + "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "conform.nvim": { "branch": "master", "commit": "a6965ac128eba75537ec2bc5ddd5d5e357062bdc" }, + "conform.nvim": { "branch": "master", "commit": "069e971295a34a810484b7b2ef54b3c735214181" }, "copilot-cmp": { "branch": "master", "commit": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3" }, "copilot.lua": { "branch": "master", "commit": "f7612f5af4a7d7615babf43ab1e67a2d790c13a6" }, - "crates.nvim": { "branch": "main", "commit": "786d12a70c9b91fa2d0d102bb07df02be0db31a1" }, - "dressing.nvim": { "branch": "master", "commit": "18e5beb3845f085b6a33c24112b37988f3f93c06" }, - "friendly-snippets": { "branch": "main", "commit": "ea068f1becd91bcd4591fceb6420d4335e2e14d3" }, - "gitsigns.nvim": { "branch": "main", "commit": "7e38f07cab0e5387f9f41e92474db174a63a4725" }, + "crates.nvim": { "branch": "main", "commit": "0c8436cb10e9ac62354baa5874a4a3413f2432c1" }, + "dressing.nvim": { "branch": "master", "commit": "e3714c8049b2243e792492c4149e4cc395c68eb9" }, + "freeze.nvim": { "branch": "main", "commit": "6460f282b01d4dafd69fbd8d4a38da56572227bc" }, + "friendly-snippets": { "branch": "main", "commit": "e11b09bf10706bb74e16e4c3d11b2274d62e687f" }, + "gitsigns.nvim": { "branch": "main", "commit": "4a143f13e122ab91abdc88f89eefbe70a4858a56" }, "gleam.vim": { "branch": "main", "commit": "f9e82b70425dc0726ee173ecddf176ffa364e30d" }, "gopher.nvim": { "branch": "main", "commit": "ac27f4b6794c872140fb205313d79ab166892fe9" }, "harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" }, - "lazy.nvim": { "branch": "main", "commit": "31ddbea7c10b6920c9077b66c97951ca8682d5c8" }, + "lazy.nvim": { "branch": "main", "commit": "fafe1f7c640aed75e70a10e6649612cd96f39149" }, "lsp-inlayhints.nvim": { "branch": "main", "commit": "d981f65c9ae0b6062176f0accb9c151daeda6f16" }, - "lsp-trouble.nvim": { "branch": "main", "commit": "b9cf677f20bb2faa2dacfa870b084e568dca9572" }, + "lsp-trouble.nvim": { "branch": "main", "commit": "c11dc2777d52da2c8da25836817e43608ec951a5" }, "lspkind-nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, "lualine.nvim": { "branch": "master", "commit": "0a5a66803c7407767b799067986b4dc3036e1983" }, "mini.indentscope": { "branch": "main", "commit": "cf07f19e718ebb0bcc5b00999083ce11c37b8d40" }, - "nightfox.nvim": { "branch": "main", "commit": "ce0cdf8538c8c0b9c8fb2884d3d1090c8faf515d" }, - "noice.nvim": { "branch": "main", "commit": "0cbe3f88d038320bdbda3c4c5c95f43a13c3aa12" }, - "nui.nvim": { "branch": "main", "commit": "cbd2668414331c10039278f558630ed19b93e69b" }, + "nightfox.nvim": { "branch": "main", "commit": "df75a6a94910ae47854341d6b5a6fd483192c0eb" }, + "noice.nvim": { "branch": "main", "commit": "e5cb20c6e14305d24025ecb77d7d4dd9d61f1a64" }, + "nui.nvim": { "branch": "main", "commit": "322978c734866996274467de084a95e4f9b5e0b1" }, "null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" }, - "nvim-autopairs": { "branch": "master", "commit": "4f41e5940bc0443fdbe5f995e2a596847215cd2a" }, - "nvim-cmp": { "branch": "main", "commit": "ce16de5665c766f39c271705b17fff06f7bcb84f" }, + "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, + "nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" }, "nvim-coverage": { "branch": "main", "commit": "aa4b4400588e2259e87e372b1e4e90ae13cf5a39" }, "nvim-lastplace": { "branch": "main", "commit": "0bb6103c506315044872e0f84b1f736c4172bb20" }, - "nvim-lspconfig": { "branch": "master", "commit": "ed8b8a15acc441aec669f97d75f2c1f2ac8c8aa5" }, - "nvim-treesitter": { "branch": "master", "commit": "bc808622986b0ba8eb64780b94d30cdfbd7c6a9f" }, - "nvim-treesitter-context": { "branch": "master", "commit": "ba4289ad345ececd335a9cdd7b9616fd0bb6be92" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "23b820146956b3b681c19e10d3a8bc0cbd9a1d4c" }, + "nvim-lint": { "branch": "master", "commit": "cf6ffafe158441b8c5e2051ab0fe5b1983527ba7" }, + "nvim-lspconfig": { "branch": "master", "commit": "92166b89ab4b3d60f24e58170cac53b7141fd032" }, + "nvim-treesitter": { "branch": "master", "commit": "c5cbd3ec74f6f5ddbac939e6f24b99fe78262b4c" }, + "nvim-treesitter-context": { "branch": "master", "commit": "5efba33af0f39942e426340da7bc15d7dec16474" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "34867c69838078df7d6919b130c0541c0b400c47" }, "nvim-ts-rainbow": { "branch": "master", "commit": "8312b513ce930e7669a1721befbe56f2e1853301" }, - "nvim-web-devicons": { "branch": "master", "commit": "b3468391470034353f0e5110c70babb5c62967d3" }, - "oil.nvim": { "branch": "master", "commit": "c86e48407b8a45f9aa8acb2b4512b384ea1eec84" }, + "nvim-web-devicons": { "branch": "master", "commit": "b4b302d6ae229f67df7a87ef69fa79473fe788a9" }, + "octo.nvim": { "branch": "master", "commit": "5646539320cd62af6ff28f48ec92aeb724c68e18" }, + "oil.nvim": { "branch": "master", "commit": "e5312c3a801e7274fa14e6a56aa10a618fed80c3" }, "playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" }, - "plenary.nvim": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" }, - "rose-pine": { "branch": "main", "commit": "17b466e79479758b332a3cac12544a3ad2be6241" }, - "rustaceanvim": { "branch": "master", "commit": "bc8c4b8f7606d5b7c067cd8369e25c1a7ff77bd0" }, + "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, + "rose-pine": { "branch": "main", "commit": "87aa437172357ad8f916942bca249ceadc6c68b1" }, + "rustaceanvim": { "branch": "master", "commit": "2fa45427c01ded4d3ecca72e357f8a60fd8e46d4" }, "salt-vim": { "branch": "master", "commit": "6ca9e3500cc39dd417b411435d58a1b720b331cc" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, - "telescope.nvim": { "branch": "master", "commit": "d00d9df48c00d8682c14c2b5da78bda7ef06b939" }, - "tree-sitter-just": { "branch": "main", "commit": "6c2f018ab1d90946c0ce029bb2f7d57f56895dff" }, + "telescope.nvim": { "branch": "master", "commit": "dfa230be84a044e7f546a6c2b0a403c739732b86" }, + "tree-sitter-just": { "branch": "main", "commit": "fd814fc6c579f68c2a642f5e0268cf69daae92d7" }, "undotree": { "branch": "master", "commit": "56c684a805fe948936cda0d1b19505b84ad7e065" }, - "vim-fugitive": { "branch": "master", "commit": "dac8e5c2d85926df92672bf2afb4fc48656d96c7" }, - "vim-just": { "branch": "main", "commit": "a2777b4b113dafc639f541ad4f0f7da0adc640f4" }, - "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }, + "vim-fugitive": { "branch": "master", "commit": "4f59455d2388e113bd510e85b310d15b9228ca0d" }, + "vim-just": { "branch": "main", "commit": "152d4f62e16140183d6b4500b689f6bf851a6029" }, + "which-key.nvim": { "branch": "main", "commit": "ccf027625df6c4e22febfdd786c5e1f7521c2ccb" }, + "zen-mode.nvim": { "branch": "main", "commit": "78557d972b4bfbb7488e17b5703d25164ae64e6a" }, "zig.vim": { "branch": "master", "commit": "54c216e5306a5c3878a60596aacb94dca8652ab9" } } \ No newline at end of file diff --git a/nvim/.config/nvim/lua/custom/lsp.lua b/nvim/.config/nvim/lua/custom/lsp.lua index bb47cbb..f47d474 100644 --- a/nvim/.config/nvim/lua/custom/lsp.lua +++ b/nvim/.config/nvim/lua/custom/lsp.lua @@ -67,6 +67,7 @@ cmp.setup({ { name = "crates", group_index = 2 }, { name = "buffer", group_index = 2 }, { name = "path", group_index = 2 }, + { name = "git", group_index = 2 }, }), experimental = { ghost_text = true, @@ -90,19 +91,33 @@ local servers = { "bashls", "gleam", "marksman", - "pyright", + { + "pyright", + settings = { + pyright = { + disableOrganizeImports = true, + }, + python = { + analysis = { + ignore = "*", + }, + }, + }, + }, + -- "pyright", "solc", "nixd", "zls", "pylyzer", + "ruff", { "terraformls", exec = "terraform-ls", }, - { - "ruff_lsp", - exec = "ruff-lsp", - }, + -- { + -- "ruff_lsp", + -- exec = "ruff-lsp", + -- }, { "grammarly", exec = "grammarly-languageserver", @@ -169,7 +184,6 @@ local servers = { { "vuels", exec = "vls" }, { "salt_ls", exec = "salt_lsp_server" }, { "dockerls", exec = "docker-langserver" }, - { "arduino_langauge_server", exec = "arduino-langauge-server" }, { "gopls", settings = { @@ -221,7 +235,10 @@ for _, server in ipairs(servers) do exec = server end - local result = tonumber(vim.api.nvim_exec([[echo executable("]] .. exec .. [[")]], true)) + -- local result = tonumber(vim.api.nvim_exec([[echo executable("]] .. exec .. [[")]], true)) + local command = [[echo executable("]] .. exec .. [[")]] + local out = vim.api.nvim_exec2(command, { output = true }) + local result = tonumber(out.output) if result ~= 0 then nvim_lsp[lsp].setup(setup) end @@ -241,27 +258,38 @@ vim.g.rustaceanvim = { }, }, }, - tools = { - inlay_hints = { - auto = false, - }, - }, } vim.api.nvim_create_augroup("LspAttach_inlayhints", {}) vim.api.nvim_create_autocmd("LspAttach", { group = "LspAttach_inlayhints", + callback = function(args) + -- if not (args.data and args.data.client_id) then + -- return + -- end + -- + -- local bufnr = args.buf + -- local client = vim.lsp.get_client_by_id(args.data.client_id) + -- local palette = require("nightfox.palette").load("carbonfox") + -- local bg = palette.bg1 + -- vim.cmd([[hi LSPInlayHint guibg=]] .. bg .. [[gui=bold]]) + -- require("lsp-inlayhints").on_attach(client, bufnr) + vim.lsp.inlay_hint.enable(true) + end, +}) +vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("LspAttach_Python", {}), callback = function(args) if not (args.data and args.data.client_id) then return end - - local bufnr = args.buf local client = vim.lsp.get_client_by_id(args.data.client_id) - local palette = require("nightfox.palette").load("carbonfox") - local bg = palette.bg1 - vim.cmd([[hi LSPInlayHint guibg=]] .. bg .. [[gui=bold]]) - require("lsp-inlayhints").on_attach(client, bufnr) + if client == nil then + return + end + if client.name == "ruff" then + client.server_capabilities.hoverProvider = false + end end, }) @@ -270,11 +298,14 @@ require("trouble").setup({}) local null_ls = require("null-ls") local formatting = null_ls.builtins.formatting +local diagnostics = null_ls.builtins.diagnostics null_ls.setup({ -- you can reuse a shared lspconfig on_attach callback here debug = true, sources = { formatting.stylua, + -- diagnostics.actionlint, + -- diagnostics.mypy, }, }) diff --git a/nvim/.config/nvim/lua/mappings.lua b/nvim/.config/nvim/lua/mappings.lua index 03dd7f0..9fe6946 100644 --- a/nvim/.config/nvim/lua/mappings.lua +++ b/nvim/.config/nvim/lua/mappings.lua @@ -24,7 +24,7 @@ vim.api.nvim_create_autocmd("LspAttach", { r = { require("telescope.builtin").lsp_references, "References" }, i = { require("telescope.builtin").lsp_implementations, "Implementations" }, }, - ["K"] = { vim.lsp.buf.hover, "Hover (LSP)" }, + -- ["K"] = { vim.lsp.buf.hover, "Hover (LSP)" }, }) end, }) @@ -70,8 +70,8 @@ wk.register(vim.tbl_extend("force", harpoon_table, { [""] = { f = { name = "Telescope", - -- f = { require("telescope.builtin").find_files, "Find File" }, - f = { require("custom.telescope-project").project_files, "Find File" }, + f = { require("telescope.builtin").find_files, "Find File" }, + p = { require("custom.telescope-project").project_files, "Find Project File" }, g = { require("telescope.builtin").live_grep, "Live Grep" }, b = { require("telescope.builtin").buffers, "Buffer List" }, h = { require("telescope.builtin").help_tags, "Help Tags" }, diff --git a/nvim/.config/nvim/lua/plugins/coverage.lua b/nvim/.config/nvim/lua/plugins/coverage.lua index 615e944..5a9a27d 100644 --- a/nvim/.config/nvim/lua/plugins/coverage.lua +++ b/nvim/.config/nvim/lua/plugins/coverage.lua @@ -3,6 +3,7 @@ return { "andythigpen/nvim-coverage", dependencies = { "nvim-lua/plenary.nvim", "EdenEast/nightfox.nvim" }, lazy = true, + ft = { "python" }, config = true, }, } diff --git a/nvim/.config/nvim/lua/plugins/freeze.lua b/nvim/.config/nvim/lua/plugins/freeze.lua index 9e37efb..00970ae 100644 --- a/nvim/.config/nvim/lua/plugins/freeze.lua +++ b/nvim/.config/nvim/lua/plugins/freeze.lua @@ -1,7 +1,7 @@ return { { "ethanholz/freeze.nvim", - dir = "~/Documents/code/personal/freeze", + -- dir = "~/Documents/code/personal/freeze", config = true, opts = { theme = "rose-pine-moon", diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua index be55cdb..6a682ac 100644 --- a/nvim/.config/nvim/lua/plugins/init.lua +++ b/nvim/.config/nvim/lua/plugins/init.lua @@ -13,7 +13,7 @@ return { }, { "mrcjkb/rustaceanvim", - version = "^3", + version = "^4", ft = { "rust" }, }, { @@ -60,11 +60,6 @@ return { }, "nvim-treesitter/nvim-treesitter-textobjects", "mrjones2014/nvim-ts-rainbow", - { - "nvim-treesitter/playground", - dependencies = { "nvim-treesitter/nvim-treesitter" }, - build = ":TSInstall query", - }, "nvim-treesitter/nvim-treesitter-context", -- Snippets { diff --git a/nvim/.config/nvim/lua/plugins/lint.lua b/nvim/.config/nvim/lua/plugins/lint.lua new file mode 100644 index 0000000..316d841 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/lint.lua @@ -0,0 +1,33 @@ +return { + { + "mfussenegger/nvim-lint", + config = function() + local opts = { + github = { "actionlint" }, + python = {}, + } + if vim.fn.executable("mypy") == 1 then + table.insert(opts.python, "mypy") + -- Override mypy to use the --check-untyped-def flag + local mypy = require("lint").linters.mypy + table.insert(mypy.args, "--check-untyped-def") + end + require("lint").linters_by_ft = opts + -- python = { "mypy" }, + -- -- This is a custom yaml.github fileytpe that I created + -- github = { "actionlint" }, + -- } + vim.api.nvim_create_autocmd({ "BufWritePost", "BufRead" }, { + callback = function() + -- try_lint without arguments runs the linters defined in `linters_by_ft` + -- for the current filetype + require("lint").try_lint() + + -- You can call `try_lint` with a linter name or a list of names to always + -- run specific linters, independent of the `linters_by_ft` configuration + -- require("lint").try_lint("cspell") + end, + }) + end, + }, +} diff --git a/nvim/.config/nvim/lua/plugins/octo.lua b/nvim/.config/nvim/lua/plugins/octo.lua new file mode 100644 index 0000000..d8f3df0 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/octo.lua @@ -0,0 +1,12 @@ +return { + { + "pwntester/octo.nvim", + requires = { + "nvim-lua/plenary.nvim", + "nvim-telescope/telescope.nvim", + -- OR 'ibhagwan/fzf-lua', + "nvim-tree/nvim-web-devicons", + }, + config = true, + }, +} diff --git a/nvim/.config/nvim/lua/plugins/zen.lua b/nvim/.config/nvim/lua/plugins/zen.lua new file mode 100644 index 0000000..1e9504a --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/zen.lua @@ -0,0 +1,13 @@ +return { + { + "folke/zen-mode.nvim", + opts = { + window = { + options = { + number = true, + signcolumn = "yes", + }, + }, + }, + }, +}