From c30a121b99b0de5b73ba7d1327902e6dba26e35c Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Thu, 4 Sep 2025 17:01:42 +0200 Subject: [PATCH] Nvim --- .config/nvim/after/plugin/git-worktree.lua | 129 --------------------- .config/nvim/after/plugin/jira.lua | 39 ------- .config/nvim/after/plugin/lsp.lua | 103 +++++----------- .config/nvim/after/plugin/null-ls.lua | 16 --- .config/nvim/after/plugin/telescope.lua | 6 - .config/nvim/lazy-lock.json | 86 +++++++------- .config/nvim/lua/halfdan/cmp.lua | 41 +++---- .config/nvim/lua/halfdan/init.lua | 1 - .config/nvim/lua/halfdan/lazy.lua | 65 +++-------- .config/nvim/lua/halfdan/luasnip.lua | 6 - .config/nvim/lua/halfdan/telescope.lua | 1 - .config/nvim/lua/halfdan/treesitter.lua | 2 +- 12 files changed, 110 insertions(+), 385 deletions(-) delete mode 100644 .config/nvim/after/plugin/git-worktree.lua delete mode 100644 .config/nvim/after/plugin/jira.lua delete mode 100644 .config/nvim/after/plugin/null-ls.lua delete mode 100644 .config/nvim/lua/halfdan/luasnip.lua diff --git a/.config/nvim/after/plugin/git-worktree.lua b/.config/nvim/after/plugin/git-worktree.lua deleted file mode 100644 index a432d3c..0000000 --- a/.config/nvim/after/plugin/git-worktree.lua +++ /dev/null @@ -1,129 +0,0 @@ -if vim.g.vscode then - return -end - -local Worktree = require("git-worktree") -local Job = require("plenary.job") -local FTerm = require("FTerm") - -local function file_exists(name) - local f=io.open(name,"r") - if f~=nil then io.close(f) return true else return false end -end - -local function schedule_notify(message, level) - vim.schedule(function() - vim.notify.notify(message, level or "info") - end) -end - -local function is_elixir_project() - return file_exists(vim.loop.cwd() .. "/" .. "mix.exs") -end - --- Run mix compile -local compile_job = Job:new({ - command = "mix", - args = { "compile" }, - on_start = function() - schedule_notify("Compiling...", "debug") - end, - on_exit = function(_j, _return_val) - schedule_notify("Compiling done") - end -}) - --- Run mix deps.get -local deps_job = Job:new({ - command = "mix", - args = { "deps.get" }, - on_start = function() - schedule_notify("Fetching dependencies...") - end, - on_exit = function(_j, _return_val) - schedule_notify("Fetched dependencies") - end -}) - -local function create_docker_up_job(path) - return Job:new({ - command = "docker-compose", - args = { "up" }, - cwd = path, - detached = true, - on_start = function () - schedule_notify("Running docker in " .. path, "debug") - end, - on_exit = function (_j, return_val) - if return_val ~= 0 then - schedule_notify("Error running docker for " .. path, "error") - end - end - }) -end - -local function create_docker_down_job(path) - return Job:new({ - command = "docker-compose", - args = { "down" }, - cwd = path, - on_start = function () - schedule_notify("Shutting down containers at " .. path, "debug") - end, - on_exit = function () - schedule_notify("Shut down containers at " .. path, "debug") - end, - }) -end - -local iex = FTerm:new({ - cmd = { "iex", "-S", "mix" }, - dimensions = { - height = 0.9, - width = 0.9 - } -}) - -vim.keymap.set('t', '', function () - iex:toggle() -end) -vim.keymap.set('n', '', function () - iex:toggle() -end) - -Worktree.on_tree_change(function(op, metadata) - if op == Worktree.Operations.Create and is_elixir_project() then - deps_job:and_then(compile_job) - deps_job:start() - end - - if op == Worktree.Operations.Switch and is_elixir_project() then - local docker_down = create_docker_down_job(metadata.prev_path) - local docker_up = create_docker_up_job(metadata.path) - - docker_down:and_then(docker_up) - compile_job:start() - docker_down:start() - - iex:close(true) - end -end) - -local group = vim.api.nvim_create_augroup('MyCustomNeogitEvents', { clear = true }) -vim.api.nvim_create_autocmd('User', { - pattern = 'NeogitPullComplete', - group = group, - callback = function () - deps_job:and_then(compile_job) - deps_job:start() - end, -}) - -vim.api.nvim_create_autocmd('User', { - pattern = 'NeogitBranchCheckout', - group = group, - callback = function () - deps_job:and_then(compile_job) - deps_job:start() - end, -}) diff --git a/.config/nvim/after/plugin/jira.lua b/.config/nvim/after/plugin/jira.lua deleted file mode 100644 index 0d3cfdd..0000000 --- a/.config/nvim/after/plugin/jira.lua +++ /dev/null @@ -1,39 +0,0 @@ -if vim.g.vscode then - return -end - -local nnoremap = require('halfdan.keymap').nnoremap -local actions = require("telescope.actions") -local action_state = require "telescope.actions.state" -local worktree = require("git-worktree") - -local function create_workspace_for_issue() - require'telescope'.extensions.jira.live_search({ - attach_mappings =function () - actions.select_default:replace( - function () - local selection = action_state.get_selected_entry() - local branch_name = "fb/" .. selection.key:lower() - vim.schedule(function () - -- Create worktree - worktree.create_worktree(branch_name, branch_name, "origin") - - end) - end - ) - return true - end, - assignee = "fbecker@adobe.com", - }) -end - - -nnoremap("jw", function () - create_workspace_for_issue() -end) - -nnoremap("js", function () - require'telescope'.extensions.jira.live_search({ - project="BES" - }) -end) diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua index 6828786..35a26e1 100644 --- a/.config/nvim/after/plugin/lsp.lua +++ b/.config/nvim/after/plugin/lsp.lua @@ -83,13 +83,6 @@ vim.lsp.protocol.CompletionItemKind = { vim.api.nvim_set_keymap('n', 'e', 'Lspsaga show_line_diagnostics', { noremap = true, silent = true }) vim.api.nvim_set_keymap('n', 'q', 'lua vim.diagnostic.setloclist()', { noremap = true, silent = true }) --- LSP settings -local lsp_status = require('lsp-status') -lsp_status.register_progress() - -local lspconfig = require 'lspconfig' -local configs = require 'lspconfig.configs' - -- Global mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions vim.keymap.set('n', 'e', vim.diagnostic.open_float) @@ -149,94 +142,54 @@ local on_attach = function(client, bufnr) lsp_status.on_attach(client, bufnr) end -local function config(_config) - _config = vim.tbl_deep_extend("force", { - log_level = vim.lsp.protocol.MessageType.Log, - message_level = vim.lsp.protocol.MessageType.Log, - capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()), - on_attach = on_attach, - }, _config or {}) - - -- Set default client capabilities plus window/workDoneProgress - _config.capabilities = vim.tbl_extend('keep', _config.capabilities or {}, lsp_status.capabilities) - - return _config -end - --- Enable the following language servers --- local servers = { 'gopls', 'julials', 'rust_analyzer', 'pyright' } --- for _, lsp in ipairs(servers) do --- lspconfig[lsp].setup(config()) --- end - -require'lspconfig'.lua_ls.setup { +vim.lsp.config("lua_ls", { settings = { Lua = { runtime = { - -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) - version = 'LuaJIT', + -- Tell the language server which version of Lua you're using + version = "LuaJIT", }, diagnostics = { -- Get the language server to recognize the `vim` global - globals = {'vim'}, + globals = { "vim" }, }, workspace = { -- Make the server aware of Neovim runtime files library = vim.api.nvim_get_runtime_file("", true), }, - -- Do not send telemetry data containing a randomized but unique identifier telemetry = { + -- Do not send telemetry data containing a randomized but unique identifier enable = false, }, }, }, -} - -require('rust-tools').setup({ - tools = { - runnables = { - use_telescope = true, - }, - inlay_hints = { - auto = true, - parameter_hints_prefix = "", - other_hints_prefix = "", - } - }, - server = { - on_attach = on_attach, - settings = { - ["rust-analyzer"] = { - checkOnSave = { - command = "clippy", - }, - }, - }, - }, }) +-- Enable it +vim.lsp.enable("lua_ls") -local lexical_config = { - filetypes = { "elixir", "eelixir", "heex" }, - cmd = { "/Users/fbecker/code/lexical/_build/dev/package/lexical/bin/start_lexical.sh" }, - settings = {}, -} - -if not configs.lexical then - configs.lexical = { - default_config = { - filetypes = lexical_config.filetypes, - cmd = lexical_config.cmd, - root_dir = function(fname) - return lspconfig.util.root_pattern("mix.exs", ".git")(fname) or vim.loop.os_homedir() - end, - -- optional settings - settings = lexical_config.settings, +vim.lsp.config('gopls', { + cmd = { "gopls" }, + filetypes = { "go", "gomod", "gowork", "gotmpl" }, + root_markers = { "go.work", "go.mod", ".git" }, + settings = { + gopls = { + analyses = { + unusedparams = true, + shadow = true, + }, + staticcheck = true, }, - } -end + }, +}) -lspconfig.lexical.setup({}) +vim.lsp.enable 'gopls' -lspconfig.gleam.setup({}) +vim.lsp.config('expert', { + cmd = { 'expert' }, + root_markers = { 'mix.exs', '.git' }, + filetypes = { 'elixir', 'eelixir', 'heex' }, +}) +vim.lsp.enable 'expert' +vim.lsp.enable 'gleam' diff --git a/.config/nvim/after/plugin/null-ls.lua b/.config/nvim/after/plugin/null-ls.lua deleted file mode 100644 index 899a220..0000000 --- a/.config/nvim/after/plugin/null-ls.lua +++ /dev/null @@ -1,16 +0,0 @@ -if vim.g.vscode then - return -end - -local ok, nls = pcall(require, 'null-ls') - -if not ok then - return -end - -nls.setup({ - sources = { - nls.builtins.formatting.stylua, - nls.builtins.diagnostics.credo, - }, -}) diff --git a/.config/nvim/after/plugin/telescope.lua b/.config/nvim/after/plugin/telescope.lua index 3bcfa8a..37ba679 100644 --- a/.config/nvim/after/plugin/telescope.lua +++ b/.config/nvim/after/plugin/telescope.lua @@ -37,12 +37,6 @@ nnoremap("vh", function() builtin.help_tags() end) -nnoremap("wc", function() - require('telescope').extensions.git_worktree.create_git_worktree() -end) -nnoremap("ws", function() - require('telescope').extensions.git_worktree.git_worktrees() -end) nnoremap("gc", function() builtin.git_branches() end) diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json index 88e41ee..bcc2623 100644 --- a/.config/nvim/lazy-lock.json +++ b/.config/nvim/lazy-lock.json @@ -3,70 +3,66 @@ "FTerm.nvim": { "branch": "master", "commit": "d1320892cc2ebab472935242d9d992a2c9570180" }, "FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" }, "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, - "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, - "cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" }, - "cmp-git": { "branch": "main", "commit": "483ffb9a7471409a841df099d7c13556234365a4" }, - "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, + "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, + "cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, + "cmp-git": { "branch": "main", "commit": "b24309c386c9666c549a1abaedd4956541676d06" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" }, "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, - "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, - "editorconfig-vim": { "branch": "master", "commit": "3c2813f2566d9392ff3614248c5db43c3fda9d5f" }, - "elixir-tools.nvim": { "branch": "main", "commit": "f7e18753f5587b422aac628249fa46c66ed24af3" }, - "fzf-lua": { "branch": "main", "commit": "c23f777b28da6aa5603cde1b713e9f6973805d5d" }, - "git-blame.nvim": { "branch": "master", "commit": "2883a7460f611c2705b23f12d58d398d5ce6ec00" }, - "git-worktree.nvim": { "branch": "master", "commit": "f247308e68dab9f1133759b05d944569ad054546" }, + "editorconfig-vim": { "branch": "master", "commit": "6a58b7c11f79c0e1d0f20533b3f42f2a11490cf8" }, + "fzf-lua": { "branch": "main", "commit": "f6a570cc42596efb73359fc453061e24abb71d9f" }, + "git-blame.nvim": { "branch": "master", "commit": "8503b199edf9a666fe7b1a989cf14e3c26b2eb03" }, "gruvbox-baby": { "branch": "main", "commit": "bd52e62d8134647090108189e69c8b3cd18bdbbf" }, "harpoon": { "branch": "master", "commit": "1bc17e3e42ea3c46b33c0bbad6a880792692a1b3" }, - "lazy.nvim": { "branch": "main", "commit": "d8f26efd456190241afd1b0f5235fe6fdba13d4a" }, + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, "lsp-status.nvim": { "branch": "master", "commit": "54f48eb5017632d81d0fd40112065f1d062d0629" }, "lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" }, - "lspsaga.nvim": { "branch": "main", "commit": "13b3cdc9a53ec821b9e693ee71501cc2d6cf206c" }, + "lspsaga.nvim": { "branch": "main", "commit": "8efe00d6aed9db6449969f889170f1a7e43101a1" }, "lua-utils.nvim": { "branch": "main", "commit": "e565749421f4bbb5d2e85e37c3cef9d56553d8bd" }, - "lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, - "neo-tree.nvim": { "branch": "v3.x", "commit": "e6645ecfcba3e064446a6def1c10d788c9873f51" }, - "neogit": { "branch": "master", "commit": "63124cf520ff24d09deb3b850e053908ab0fc66a" }, - "neorg": { "branch": "main", "commit": "81ee90cb2d72ac43bfadb7dd276646f34c8f85be" }, - "neorg-telescope": { "branch": "main", "commit": "ddb2556644cae922699a239bbb0fe16e25b084b7" }, - "neotest": { "branch": "master", "commit": "d66cf4e05a116957f0d3a7755a24291c7d1e1f72" }, + "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, + "neo-tree.nvim": { "branch": "v3.x", "commit": "f1deac7ecec88c28a250d890ba7bb35843e69cbd" }, + "neogit": { "branch": "master", "commit": "4046f747739cf7e7b9aada447f3edc59c947b111" }, + "neorg": { "branch": "main", "commit": "e206c9642f4a115cd836e76c98ef785623d335bc" }, + "neorg-telescope": { "branch": "main", "commit": "7fb6ca6a632c3c095601d379a664c0c1f802dc6c" }, + "neotest": { "branch": "master", "commit": "35a59c1f59dbb954d92b74ab64a966a668cea495" }, "neotest-elixir": { "branch": "master", "commit": "a242aebeaa6997c1c149138ff77f6cacbe33b6fc" }, - "neotest-rust": { "branch": "main", "commit": "e1cb22ecf0341fb894ef2ebde344389fe6e6fc8e" }, + "neotest-go": { "branch": "main", "commit": "92950ad7be2ca02a41abca5c6600ff6ffaf5b5d6" }, + "neotest-rust": { "branch": "main", "commit": "2c9941d4a358839918fac21d20fc8fef0e1ad05f" }, "neotest-vim-test": { "branch": "master", "commit": "75c4228882ae4883b11bfce9b8383e637eb44192" }, - "nui.nvim": { "branch": "main", "commit": "53e907ffe5eedebdca1cd503b00aa8692068ca46" }, - "null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" }, - "nvim-cmp": { "branch": "main", "commit": "8c82d0bd31299dbff7f8e780f5e06d2283de9678" }, - "nvim-dap": { "branch": "master", "commit": "99807078c5089ed30e0547aa4b52c5867933f426" }, - "nvim-dap-ui": { "branch": "master", "commit": "0d5c37a43bc039c42a0a9bf801e53f77adf06a24" }, - "nvim-dap-virtual-text": { "branch": "master", "commit": "df66808cd78b5a97576bbaeee95ed5ca385a9750" }, - "nvim-lsp-installer": { "branch": "main", "commit": "17e0bfa5f2c8854d1636fcd036dc8284db136baa" }, - "nvim-lspconfig": { "branch": "master", "commit": "d1871c84b218931cc758dbbde1fec8e90c6d465c" }, + "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, + "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, + "nvim-dap": { "branch": "master", "commit": "7891b01beedc37cef4eaf2e92563bd0a5b6e9c58" }, + "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, + "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" }, "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, - "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, - "nvim-treesitter": { "branch": "master", "commit": "07bd1b53bf465e42d53253b48b7437892d6c45e8" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "ad8f0a472148c3e0ae9851e26a722ee4e29b1595" }, - "nvim-web-devicons": { "branch": "master", "commit": "aafa5c187a15701a7299a392b907ec15d9a7075f" }, + "nvim-notify": { "branch": "master", "commit": "397c7c1184745fca649e5104de659e6392ef5a4d" }, + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" }, + "nvim-web-devicons": { "branch": "master", "commit": "6e51ca170563330e063720449c21f43e27ca0bc1" }, + "outline.nvim": { "branch": "main", "commit": "0eb9289ab39c91caf8b3ed0e3a17764809d69558" }, "pathlib.nvim": { "branch": "main", "commit": "57e5598af6fe253761c1b48e0b59b7cd6699e2c1" }, "playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" }, - "plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" }, + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, "popup.nvim": { "branch": "master", "commit": "b7404d35d5d3548a82149238289fa71f7f6de4ac" }, - "rose-pine": { "branch": "main", "commit": "42f0724e0bca9f57f0bcfa688787c37b8d4befe8" }, - "rust-tools.nvim": { "branch": "master", "commit": "676187908a1ce35ffcd727c654ed68d851299d3e" }, + "rose-pine": { "branch": "main", "commit": "72a04c4065345b51b56aed4859ea1d884f734097" }, "rust.vim": { "branch": "master", "commit": "889b9a7515db477f4cb6808bef1769e53493c578" }, - "smart-open.nvim": { "branch": "0.2.x", "commit": "7770b01ce4d551c143d7ec8589879320796621b9" }, - "sqlite.lua": { "branch": "master", "commit": "b487fcc8937b683942a1f7d9662fcf50ca5acd58" }, - "symbols-outline.nvim": { "branch": "master", "commit": "564ee65dfc9024bdde73a6621820866987cbb256" }, - "tagbar": { "branch": "master", "commit": "8de7694c0aeda253073098bbc9fb890b2902ddb8" }, + "rustaceanvim": { "branch": "master", "commit": "12504405821c05874d2d1f6b5ec919f9808e2c99" }, + "smart-open.nvim": { "branch": "0.2.x", "commit": "560d8f16e17977c8303db6f9660db58a4415ca41" }, + "sqlite.lua": { "branch": "master", "commit": "50092d60feb242602d7578398c6eb53b4a8ffe7b" }, + "tagbar": { "branch": "master", "commit": "2ef4ecba94440fcf8a8c692a0f2b36b332f1f0f2" }, "telescope-dap.nvim": { "branch": "master", "commit": "783366bd6c1e7fa0a5c59c07db37f49c805a28df" }, - "telescope-egrepify.nvim": { "branch": "master", "commit": "a8070970a661330c4e00450d25f874f6c2b00af9" }, - "telescope-fzf-native.nvim": { "branch": "main", "commit": "dae2eac9d91464448b584c7949a31df8faefec56" }, - "telescope.nvim": { "branch": "master", "commit": "415af52339215926d705cccc08145f3782c4d132" }, + "telescope-egrepify.nvim": { "branch": "master", "commit": "8da5e3ba5faf3bdd6bbfaccb3eb3b8e7ebf9b131" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "1f08ed60cafc8f6168b72b80be2b2ea149813e55" }, + "telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" }, "toggleterm.nvim": { "branch": "main", "commit": "50ea089fc548917cc3cc16b46a8211833b9e3c7c" }, "vim-dispatch": { "branch": "master", "commit": "a2ff28abdb2d89725192db5b8562977d392a4d3f" }, "vim-easy-align": { "branch": "master", "commit": "9815a55dbcd817784458df7a18acacc6f82b1241" }, - "vim-fugitive": { "branch": "master", "commit": "d74a7cff4cfcf84f83cc7eccfa365488f3bbabc2" }, - "vim-gitgutter": { "branch": "main", "commit": "7b0b5098e3e57be86bb96cfbf2b8902381eef57c" }, + "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, + "vim-gitgutter": { "branch": "main", "commit": "488c0555e47e2aabe273c635f7dd233e985311a6" }, "vim-highlightedyank": { "branch": "master", "commit": "285a61425e79742997bbde76a91be6189bc988fb" }, "vim-projectionist": { "branch": "master", "commit": "5ff7bf79a6ef741036d2038a226bcb5f8b1cd296" }, - "vim-sneak": { "branch": "master", "commit": "c13d0497139b8796ff9c44ddb9bc0dc9770ad2dd" }, + "vim-sneak": { "branch": "master", "commit": "18b1faf020e6a66c1ce09b3ff5e6b6feb182973b" }, "vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" }, - "vim-test": { "branch": "master", "commit": "844b51ee092ee4bd5f9b140874c1568751b6f37c" } + "vim-test": { "branch": "master", "commit": "8c76f6c0953edaa13a37c29ac9c6a7bb56ddce89" } } diff --git a/.config/nvim/lua/halfdan/cmp.lua b/.config/nvim/lua/halfdan/cmp.lua index 8de975b..271e116 100644 --- a/.config/nvim/lua/halfdan/cmp.lua +++ b/.config/nvim/lua/halfdan/cmp.lua @@ -6,7 +6,6 @@ local source_mapping = { nvim_lsp = "[LSP]", nvim_lua = "[Lua]", path = "[Path]", - jira = "[Jira]", } local has_words_before = function() @@ -21,23 +20,24 @@ cmp.setup({ snippet = { expand = function(args) vim.snippet.expand(args.body) - end + end, }, mapping = { - [''] = cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 'c' }), - [''] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 'c' }), - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.close(), - [''] = cmp.mapping.confirm { + [""] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), + [""] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + [""] = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Replace, - select = false, -- only replace if explicitly selected + select = false, -- only confirm if explicitly selected }, + [""] = cmp.mapping(function(fallback) - if cmp.visible() then + if cmp.visible() then cmp.select_next_item() - elseif vim.snippet.jumpable(1) then + elseif vim.snippet.active({ direction = 1 }) then vim.snippet.jump(1) elseif has_words_before() then cmp.complete() @@ -49,33 +49,34 @@ cmp.setup({ [""] = cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() - elseif vim.snippet.jumpable(-1) then + elseif vim.snippet.active({ direction = -1 }) then vim.snippet.jump(-1) else fallback() end - end, { "i", "s" }) + end, { "i", "s" }), }, + sources = cmp.config.sources({ - { name = 'luasnip' }, - { name = 'nvim_lsp' }, + { name = "nvim_lsp" }, }, { - { name = 'buffer'} + { name = "buffer" }, }), + formatting = { format = function(entry, vim_item) vim_item.kind = lspkind.presets.default[vim_item.kind] local menu = source_mapping[entry.source.name] vim_item.menu = menu return vim_item - end + end, }, + experimental = { ghost_text = false, - } + }, }) - -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline({ '/', '?' }, { sources = { diff --git a/.config/nvim/lua/halfdan/init.lua b/.config/nvim/lua/halfdan/init.lua index 12bf3ca..a37c8b2 100644 --- a/.config/nvim/lua/halfdan/init.lua +++ b/.config/nvim/lua/halfdan/init.lua @@ -11,7 +11,6 @@ else -- require('halfdan.globals') require('halfdan.keymap') require('halfdan.cmp') - -- require('halfdan.luasnip') require('halfdan.colorscheme') require('halfdan.treesitter') require('halfdan.telescope') diff --git a/.config/nvim/lua/halfdan/lazy.lua b/.config/nvim/lua/halfdan/lazy.lua index 506e8fe..b3ab847 100644 --- a/.config/nvim/lua/halfdan/lazy.lua +++ b/.config/nvim/lua/halfdan/lazy.lua @@ -51,10 +51,12 @@ require("lazy").setup({ { "nvim-neotest/neotest", dependencies = { + "nvim-neotest/nvim-nio", "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", "antoinemadec/FixCursorHold.nvim", - + -- plugins + "nvim-neotest/neotest-go", "jfpedroza/neotest-elixir", "rouge8/neotest-rust", } @@ -146,20 +148,16 @@ require("lazy").setup({ {'machakann/vim-highlightedyank'}, - -- LSP / Language Server Protocol - { - 'neovim/nvim-lspconfig', - 'williamboman/nvim-lsp-installer', - }, - { 'nvimdev/lspsaga.nvim', config = function() require('lspsaga').setup({ - symbol_in_winbar = { enable = false, }, + code_action = { + lightbulb = { enable = false } + } }) end, dependencies = { @@ -184,16 +182,17 @@ require("lazy").setup({ -- Used to display LSP status in Lualine {'nvim-lua/lsp-status.nvim'}, - -- null-ls for a collection of LSP-like plugins { - "jose-elias-alvarez/null-ls.nvim", - config = function() - require("null-ls").setup() - end, - dependencies = { "nvim-lua/plenary.nvim" }, + "hedyhli/outline.nvim", + lazy = true, + cmd = { "Outline", "OutlineOpen" }, + keys = { -- Example mapping to toggle outline + { "o", "Outline", desc = "Toggle outline" }, + }, + opts = { + -- Your setup opts here + }, }, - - {'simrat39/symbols-outline.nvim', config=true}, { 'numToStr/Comment.nvim', config = function() @@ -218,7 +217,6 @@ require("lazy").setup({ }, {'numToStr/FTerm.nvim'}, - {'theprimeagen/git-worktree.nvim'}, {'theprimeagen/harpoon'}, -- Debugging @@ -229,39 +227,14 @@ require("lazy").setup({ -- => Language Support {'rust-lang/rust.vim'}, - {'simrat39/rust-tools.nvim'}, { - "elixir-tools/elixir-tools.nvim", - version = "*", - event = { "BufReadPre", "BufNewFile" }, - config = function() - local elixir = require("elixir") - local elixirls = require("elixir.elixirls") --- - elixir.setup { - nextls = {enable = false}, - credo = {}, - elixirls = { - enable = true, - settings = elixirls.settings { - dialyzerEnabled = false, - enableTestLenses = true, - }, - on_attach = function() - vim.keymap.set("n", "fp", ":ElixirFromPipe", { buffer = true, noremap = true }) - vim.keymap.set("n", "tp", ":ElixirToPipe", { buffer = true, noremap = true }) - vim.keymap.set("v", "em", ":ElixirExpandMacro", { buffer = true, noremap = true }) - end, - } - } - end, - dependencies = { - "nvim-lua/plenary.nvim", - }, + 'mrcjkb/rustaceanvim', + version = '^6', -- Recommended + lazy = false, -- This plugin is already lazy }, {'tpope/vim-projectionist'}, + -- themes & colorschemes - -- {'gruvbox-community/gruvbox'}, { "rose-pine/neovim", name = "rose-pine" }, {'luisiacc/gruvbox-baby'}, {'akinsho/bufferline.nvim', version = "*", dependencies = 'nvim-tree/nvim-web-devicons', diff --git a/.config/nvim/lua/halfdan/luasnip.lua b/.config/nvim/lua/halfdan/luasnip.lua deleted file mode 100644 index bb5b56d..0000000 --- a/.config/nvim/lua/halfdan/luasnip.lua +++ /dev/null @@ -1,6 +0,0 @@ --- local luasnip = require('luasnip') -luasnip.config.set_config { - history = true, - updateevents = "TextChanged,TextChangedI" -} - diff --git a/.config/nvim/lua/halfdan/telescope.lua b/.config/nvim/lua/halfdan/telescope.lua index 118824c..9dddee6 100644 --- a/.config/nvim/lua/halfdan/telescope.lua +++ b/.config/nvim/lua/halfdan/telescope.lua @@ -61,7 +61,6 @@ require('telescope').setup { }, } -require("telescope").load_extension("git_worktree") require('telescope').load_extension("fzf") require('telescope').load_extension("dap") require('telescope').load_extension("smart_open") diff --git a/.config/nvim/lua/halfdan/treesitter.lua b/.config/nvim/lua/halfdan/treesitter.lua index 746cc48..d7b6e9d 100644 --- a/.config/nvim/lua/halfdan/treesitter.lua +++ b/.config/nvim/lua/halfdan/treesitter.lua @@ -3,7 +3,7 @@ if vim.g.vscode then end require('nvim-treesitter.configs').setup({ - ensure_installed = { "python", "go", "elixir", "heex", "rust", "gomod", "json", "lua", "yaml", "norg", "query", "markdown", "markdown_inline", "gleam"}, + ensure_installed = { "python", "go", "elixir", "heex", "rust", "gomod", "json", "lua", "yaml", "norg", "query", "markdown", "markdown_inline", "gleam", "zig", "odin"}, ignore_install = { "haskell" }, highlight = { enable = true,