diff --git a/flake.lock b/flake.lock index e03935e..dafb7f2 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "actions-preview-nvim": { + "flake": false, + "locked": { + "lastModified": 1692778077, + "narHash": "sha256-5HzyrYWGTdorG4JXMv0iQNj9EM702+8g7E18Oct1JiY=", + "owner": "aznhe21", + "repo": "actions-preview.nvim", + "rev": "5650c76abfb84d6498330dd045657ba630ecdbba", + "type": "github" + }, + "original": { + "owner": "aznhe21", + "repo": "actions-preview.nvim", + "type": "github" + } + }, "agenix": { "inputs": { "darwin": "darwin", @@ -25,11 +41,11 @@ "arkenfox-userjs": { "flake": false, "locked": { - "lastModified": 1691983650, - "narHash": "sha256-oA1bIpPc27Kk89n3JGpni7RkcIDRVAsTjUfjRHbKS24=", + "lastModified": 1693196107, + "narHash": "sha256-t6qvPFJIF+De2KqMfCI5DEA40BwWeu4AFRWOzKeEVE0=", "owner": "arkenfox", "repo": "user.js", - "rev": "915f39959c7e077f00477e6ce34a0f9f9e3e7c6b", + "rev": "ba173d49205ee927ed62e81e606569d98f531d38", "type": "github" }, "original": { @@ -55,6 +71,27 @@ "type": "github" } }, + "codeium-nvim": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693966170, + "narHash": "sha256-maRkkUCzjSXK04ts+Io0WFBV1MxR7dCw8I6TV03Dpbs=", + "owner": "jcdickinson", + "repo": "codeium.nvim", + "rev": "6a8cbce54c41e0c305b5f77721f61b2ddd4b6c6d", + "type": "github" + }, + "original": { + "owner": "jcdickinson", + "repo": "codeium.nvim", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -133,11 +170,11 @@ ] }, "locked": { - "lastModified": 1690933134, - "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", + "lastModified": 1693611461, + "narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", + "rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca", "type": "github" }, "original": { @@ -187,6 +224,21 @@ } }, "flake-utils": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": "systems" }, @@ -204,7 +256,7 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_3": { "inputs": { "systems": "systems_3" }, @@ -222,7 +274,7 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_4": { "inputs": { "systems": "systems_4" }, @@ -322,11 +374,11 @@ "hmts-nvim": { "flake": false, "locked": { - "lastModified": 1692743873, - "narHash": "sha256-lfqJVj1HbFJ5H4mo6rKYrexaosqSh17+PQ9BWpcuxZI=", + "lastModified": 1693226725, + "narHash": "sha256-jUuztOqNBltC3axa7s3CPJz9Cmukfwkf846+Z/gAxCU=", "owner": "calops", "repo": "hmts.nvim", - "rev": "34b825bd1c9ec1b6e2952c111753e2eb286c9e07", + "rev": "14fd941d7ec2bb98314a1aacaa2573d97f1629ab", "type": "github" }, "original": { @@ -363,11 +415,11 @@ ] }, "locked": { - "lastModified": 1692763155, - "narHash": "sha256-qMrGKZ8c/q/mHO3ZdrcBPwiVVXPLLgXjY98Ejqb5kAA=", + "lastModified": 1693972774, + "narHash": "sha256-Dt9UZs0/DaIex598quYRYFuGabUbvFdNrHuvGc6HjBc=", "owner": "nix-community", "repo": "home-manager", - "rev": "6a20e40acaebf067da682661aa67da8b36812606", + "rev": "b22d7bab30076bbb73744867d6c5bf7d6380570c", "type": "github" }, "original": { @@ -381,11 +433,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1690635289, - "narHash": "sha256-ec77Yf7mqusmGkxrmYXEG4D0DqEcNRA3vFextWVQOVA=", + "lastModified": 1693839821, + "narHash": "sha256-ha9Cxqb81Yni217SoM/zFxE0nNz8IMtreTw4SlXw/D4=", "owner": "hyprwm", "repo": "contrib", - "rev": "bef073cff65917ba2d888aa4dc39bd9868e2b0a4", + "rev": "74aa6b02ff4bd48aaee4da461a16c4cbaaa0ca7e", "type": "github" }, "original": { @@ -403,11 +455,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1692871050, - "narHash": "sha256-OJ/OkOLFn546rcXmj/3VEGlsPYjdXWAhEmjqdc6re6k=", + "lastModified": 1693944974, + "narHash": "sha256-kWa86ahIQvQIgo3GYFJShlBuKTXfggVbrZjkbdjct7U=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "90c03e5bd2204ba6d1a0167c68f65b7a9231bef4", + "rev": "c3a83daa1e61285a418c39a1d9f29427c2c9a2c3", "type": "github" }, "original": { @@ -477,11 +529,11 @@ }, "master": { "locked": { - "lastModified": 1692893187, - "narHash": "sha256-Hbbp6bWQykkLsvzi7yo2KQme0oXCZkCdz9bBorcSKH4=", + "lastModified": 1693980916, + "narHash": "sha256-J7JJCpNiHbXb3D7pb1JkeOTUEpJJXiGI6BngfbnhiIM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d240553dcc2180fe486155bea8a846d5941e168c", + "rev": "6485865ec300c7baf9e51ad5d64c30355ee511e7", "type": "github" }, "original": { @@ -514,7 +566,7 @@ }, "neovim-flake": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "nixpkgs": [ "neovim-nightly-overlay", "nixpkgs" @@ -522,11 +574,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1692744130, - "narHash": "sha256-Iod6+KGeWnX1SV4owXpSoC17iImCJjTq2iqEp6IRBZc=", + "lastModified": 1693954768, + "narHash": "sha256-DIyHgdfhmftTN2aHVEmJ1q/W2o0Slild0McAf4sEa8U=", "owner": "neovim", "repo": "neovim", - "rev": "6462ee1c10f9f1aa66ffc4d4fe1b7b3d9f0f91af", + "rev": "2ef7b6a433c61837bcef0fca297a665551835423", "type": "github" }, "original": { @@ -545,11 +597,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1692749096, - "narHash": "sha256-XyFSBw3WMf5cTG9ImL6S/v9Aoawr38h/Fr1XIi7peEs=", + "lastModified": 1693958686, + "narHash": "sha256-UgdB+EXYbi90vm2fam4tYgY9hYGwxSk0sxG96jIyeg4=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "83d68ba72f3308b5c90b12fb40044c870903e6ee", + "rev": "14defe836200c45acf14f3616d7ba20959028cf8", "type": "github" }, "original": { @@ -569,11 +621,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1691372739, - "narHash": "sha256-fZ8KfBMcIFO/R7xaWtB85SFeuUjb9SCH8fxYBnY8068=", + "lastModified": 1693724255, + "narHash": "sha256-+Ucv/aBN9wwRE62sUJEBocI+9no7PV4KRDNuFQgygzU=", "owner": "oxalica", "repo": "nil", - "rev": "97abe7d3d48721d4e0fcc1876eea83bb4247825b", + "rev": "4bdcfcfe38cfcb386142e043392afbfa542665dd", "type": "github" }, "original": { @@ -592,11 +644,11 @@ "nixpkgs-regression": "nixpkgs-regression" }, "locked": { - "lastModified": 1691953666, - "narHash": "sha256-HxgMSgoM19OnDb4h47nrxI2lRGsDo+4Y4JEHeCoWB+Q=", + "lastModified": 1692913762, + "narHash": "sha256-WIz/rGYBUdRtkZx5BPbE9DXHfUCKlYuKkPzDsP4u77w=", "owner": "privatevoid-net", "repo": "nix-super", - "rev": "65e8abac80cc06f9f05147b51908a47549e9342e", + "rev": "0007178284d0247631af40931b7039d42bfc0da5", "type": "github" }, "original": { @@ -673,11 +725,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1692638711, - "narHash": "sha256-J0LgSFgJVGCC1+j5R2QndadWI1oumusg6hCtYAzLID4=", + "lastModified": 1693158576, + "narHash": "sha256-aRTTXkYvhXosGx535iAFUaoFboUrZSYb1Ooih/auGp0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "91a22f76cd1716f9d0149e8a5c68424bb691de15", + "rev": "a999c1cc0c9eb2095729d5aa03e0d8f7ed256780", "type": "github" }, "original": { @@ -721,11 +773,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1692557222, - "narHash": "sha256-TCOtZaioLf/jTEgfa+nyg0Nwq5Uc610Z+OFV75yUgGw=", + "lastModified": 1693844670, + "narHash": "sha256-t69F2nBB8DNQUWHD809oJZJVE+23XBrth4QZuVd6IE0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0b07d4957ee1bd7fd3bdfd12db5f361bd70175a6", + "rev": "3c15feef7770eb5500a4b8792623e2d6f598c9c1", "type": "github" }, "original": { @@ -737,11 +789,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1692808169, - "narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=", + "lastModified": 1693844670, + "narHash": "sha256-t69F2nBB8DNQUWHD809oJZJVE+23XBrth4QZuVd6IE0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9201b5ff357e781bf014d0330d18555695df7ba8", + "rev": "3c15feef7770eb5500a4b8792623e2d6f598c9c1", "type": "github" }, "original": { @@ -783,26 +835,27 @@ "type": "github" } }, - "nvim-treesitter-textsubjects": { + "nvim-treesitter": { "flake": false, "locked": { - "lastModified": 1691029837, - "narHash": "sha256-O57pMYtDR713ItAeUfdkcl2IfBLQcLEa2sb+AXhaqDs=", - "owner": "RRethy", - "repo": "nvim-treesitter-textsubjects", - "rev": "df75fcec548014f158cda6498ac38c4622c221e1", + "lastModified": 1691831669, + "narHash": "sha256-1Iuvq0hVQ7LyBYOkJ5d07NkwbGcR1K61ZZmAAA7ABGs=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "rev": "63260da18bf273c76b8e2ea0db84eb901cab49ce", "type": "github" }, "original": { - "owner": "RRethy", - "repo": "nvim-treesitter-textsubjects", + "owner": "nvim-treesitter", + "ref": "v0.9.1", + "repo": "nvim-treesitter", "type": "github" } }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat_3", - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_4", "gitignore": "gitignore", "nixpkgs": "nixpkgs_7", "nixpkgs-stable": "nixpkgs-stable" @@ -840,10 +893,12 @@ }, "root": { "inputs": { + "actions-preview-nvim": "actions-preview-nvim", "agenix": "agenix", "arkenfox-userjs": "arkenfox-userjs", "asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver", - "flake-utils": "flake-utils", + "codeium-nvim": "codeium-nvim", + "flake-utils": "flake-utils_2", "hmts-nvim": "hmts-nvim", "home-manager": "home-manager_2", "hypr-contrib": "hypr-contrib", @@ -854,12 +909,13 @@ "nil": "nil", "nix-super": "nix-super", "nixpkgs": "nixpkgs_6", - "nvim-treesitter-textsubjects": "nvim-treesitter-textsubjects", + "nvim-treesitter": "nvim-treesitter", "pre-commit-hooks": "pre-commit-hooks", "rofi-wayland": "rofi-wayland", "smartcolumn-nvim": "smartcolumn-nvim", "stable": "stable", "telekasten-nvim": "telekasten-nvim", + "telescope-nvim": "telescope-nvim", "timers": "timers" } }, @@ -891,11 +947,11 @@ "smartcolumn-nvim": { "flake": false, "locked": { - "lastModified": 1692020684, - "narHash": "sha256-lNEsAkKRpMgdO6Og0odpTn/t4qkzO7EuTjC5ABJhvXc=", + "lastModified": 1693669522, + "narHash": "sha256-SfIbbrAFv/md9EgsJvO0RfDnc6oP5RYz8C5Icual1bU=", "owner": "m4xshen", "repo": "smartcolumn.nvim", - "rev": "4aa00ad766f3c0f0e2561e0eb42df3ea3743c135", + "rev": "d01b99355c7fab13233f48d0f28dc097e68a03f7", "type": "github" }, "original": { @@ -906,11 +962,11 @@ }, "stable": { "locked": { - "lastModified": 1692794066, - "narHash": "sha256-H0aG8r16dj0x/Wz6wQhQxc9V7AsObOiHPaKxQgH6Y08=", + "lastModified": 1693771906, + "narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fc944919f743bb22379dddf18dcb72db6cff84aa", + "rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc", "type": "github" }, "original": { @@ -1011,6 +1067,22 @@ "type": "github" } }, + "telescope-nvim": { + "flake": false, + "locked": { + "lastModified": 1693850759, + "narHash": "sha256-309GezR93SVOD7/B8dDJIEidYziepc1s46CIRkhND1k=", + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "rev": "20a37e43bb43c74c6091f9fea6551af0964ad45a", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "type": "github" + } + }, "timers": { "inputs": { "naersk": "naersk", @@ -1053,18 +1125,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1691073628, - "narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=", + "lastModified": 1692976565, + "narHash": "sha256-eBKkG7tMxg92NskEn8dHRFY245JwjirWRoOZzW6DnUw=", "owner": "wlroots", "repo": "wlroots", - "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "rev": "717ded9bb0191ea31bf4368be32e7a15fe1b8294", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "rev": "717ded9bb0191ea31bf4368be32e7a15fe1b8294", "type": "gitlab" } }, diff --git a/flake.nix b/flake.nix index 91ccddd..f3bc896 100644 --- a/flake.nix +++ b/flake.nix @@ -35,18 +35,27 @@ # Neovim neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; - nvim-treesitter-textsubjects.flake = false; - nvim-treesitter-textsubjects.url = "github:RRethy/nvim-treesitter-textsubjects"; - smartcolumn-nvim.flake = false; smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; telekasten-nvim.flake = false; telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; + telescope-nvim.flake = false; + telescope-nvim.url = "github:nvim-telescope/telescope.nvim"; + + nvim-treesitter.flake = false; + nvim-treesitter.url = "github:nvim-treesitter/nvim-treesitter/v0.9.1"; # NOTE: to fix weird latest issues + hmts-nvim.flake = false; hmts-nvim.url = "github:calops/hmts.nvim"; + actions-preview-nvim.flake = false; + actions-preview-nvim.url = "github:aznhe21/actions-preview.nvim"; + + codeium-nvim.url = "github:jcdickinson/codeium.nvim"; + codeium-nvim.inputs.nixpkgs.follows = "nixpkgs"; + # Hyprland hypr-contrib.url = "github:hyprwm/contrib"; hyprland.url = "github:hyprwm/Hyprland"; diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index aefaac4..830069d 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -149,7 +149,6 @@ in # nix (nom-system-command "nixos-boot" "sudo nixos-rebuild boot --flake ~/.dotfiles") (nom-system-command "nixos-switch" "sudo nixos-rebuild switch --flake ~/.dotfiles") - comma manix nix-index nix-output-monitor diff --git a/modules/programs/nix.nix b/modules/programs/nix.nix index 39b47a2..c358dbc 100644 --- a/modules/programs/nix.nix +++ b/modules/programs/nix.nix @@ -24,6 +24,8 @@ in }; config.nix = { + nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; + package = pkgs.nix-super; extraOptions = "experimental-features = nix-command flakes"; diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index f39da7c..c4859e5 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -26,7 +26,7 @@ let ); descString = optionalString (desc != null) "desc = ${quote desc},"; in - ''{ ${quote key}, ${cmdString}, mode = ${quote mode}, ${descString} }''; + ''{ ${quote key}, ${cmdString}, mode = ${listToStringOneLine quote mode}, ${descString} }''; lazySpecFromPlugin = { plugin, dependencies, init, conf, lazy, event, enabled, cmd, ft, priority, keys }: listToStringMultiLine' @@ -161,8 +161,8 @@ in ''; }; mode = mkOption { - type = str; - default = "n"; + type = listOf str; + default = [ "n" ]; description = '' Mode to bind the key in. ''; diff --git a/modules/programs/nvim/plugins/codeium-vim.lua b/modules/programs/nvim/plugins/codeium-vim.lua deleted file mode 100644 index 72cd968..0000000 --- a/modules/programs/nvim/plugins/codeium-vim.lua +++ /dev/null @@ -1,2 +0,0 @@ --- dont show ghost text -vim.g.codeium_render = false diff --git a/modules/programs/nvim/plugins/coq-nvim.lua b/modules/programs/nvim/plugins/coq-nvim.lua deleted file mode 100644 index 63536a8..0000000 --- a/modules/programs/nvim/plugins/coq-nvim.lua +++ /dev/null @@ -1,6 +0,0 @@ -vim.g.coq_settings = { - auto_start = "shut-up", - keymap = { - jump_to_mark = "", - }, -} diff --git a/modules/programs/nvim/plugins/coq-thirdparty.lua b/modules/programs/nvim/plugins/coq-thirdparty.lua deleted file mode 100644 index ec1e05c..0000000 --- a/modules/programs/nvim/plugins/coq-thirdparty.lua +++ /dev/null @@ -1,4 +0,0 @@ -require("coq_3p")({ - { src = "orgmode", short_name = "ORG" }, - { src = "codeium", short_name = "COD" }, -}) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 8fcc9e1..f4a6780 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -74,6 +74,33 @@ with builtins; { plugin = nvim-web-devicons; } ]; } + { + plugin = nvim-cmp; + conf = readFile ./nvim-cmp.lua; + event = [ "InsertEnter" ]; + dependencies = [ + { + plugin = nvim-autopairs; + conf = /* lua */ '' + require("nvim-autopairs").setup({}) + ''; + } + { plugin = cmp-async-path; } + { plugin = cmp-buffer; } + { plugin = cmp-cmdline; } + { plugin = cmp-nvim-lsp; } + { plugin = cmp_luasnip; } + { + plugin = codeium-nvim; + conf = /* lua */ '' + require("codeium").setup({}) + ''; + } + { plugin = friendly-snippets; } + { plugin = lspkind-nvim; } + { plugin = luasnip; } + ]; + } { plugin = todo-comments-nvim; event = [ "BufReadPost" "BufNewFile" ]; @@ -103,10 +130,6 @@ with builtins; ''; dependencies = [ { plugin = nvim-ts-context-commentstring; } - { - plugin = orgmode; - conf = readFile ./orgmode.lua; - } ]; } { @@ -114,6 +137,7 @@ with builtins; event = [ "BufRead" "BufNewFile" ]; conf = readFile ./nvim-lspconfig.lua; dependencies = [ + { plugin = lsp_signature-nvim; } { plugin = null-ls-nvim; conf = readFile ./null-ls-nvim.lua; @@ -148,6 +172,7 @@ with builtins; } ]; } + { plugin = actions-preview-nvim; } ]; } { @@ -157,7 +182,31 @@ with builtins; } { plugin = vim-fugitive; - event = [ "VeryLazy" ]; + cmd = [ + "G" + "Git" + "Ggrep" + "Glgrep" + "Gclog" + "Gllog" + "Gcd" + "Glcd" + "Gedit" + "Gsplit" + "Gvsplit" + "Gtabedit" + "Gpedit" + "Gdrop" + "Gread" + "Gwrite" + "Gwq" + "Gdiffsplit" + "Gvdiffsplit" + "GMove" + "GRename" + "GDelete" + "GBrowse" + ]; } { plugin = vim-tmux-navigator; @@ -240,26 +289,6 @@ with builtins; plugin = markdown-preview-nvim; ft = [ "md" ]; } - { - plugin = coq_nvim; - event = [ "BufReadPost" "BufNewFile" ]; - init = builtins.readFile ./coq-nvim.lua; - dependencies = [ - { - plugin = coq-thirdparty; - conf = builtins.readFile ./coq-thirdparty.lua; - dependencies = [ - { - plugin = codeium-vim; - init = builtins.readFile ./codeium-vim.lua; - } - ]; - } - { - plugin = coq-artifacts; - } - ]; - } { plugin = nvim-surround; event = [ "BufReadPost" "BufNewFile" ]; diff --git a/modules/programs/nvim/plugins/mini-nvim.lua b/modules/programs/nvim/plugins/mini-nvim.lua index e89e7a3..f2c42d3 100644 --- a/modules/programs/nvim/plugins/mini-nvim.lua +++ b/modules/programs/nvim/plugins/mini-nvim.lua @@ -1,6 +1,5 @@ require("mini.align").setup() require("mini.move").setup() -require("mini.pairs").setup() require("mini.starter").setup() require("mini.statusline").setup({ diff --git a/modules/programs/nvim/plugins/nvim-cmp.lua b/modules/programs/nvim/plugins/nvim-cmp.lua new file mode 100644 index 0000000..1a8a070 --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-cmp.lua @@ -0,0 +1,114 @@ +local cmp = require("cmp") +local luasnip = require("luasnip") +require("luasnip.loaders.from_vscode").lazy_load() + +cmp.setup({ + formatting = { + format = require("lspkind").cmp_format({ + mode = "symbol", -- show only symbol annotations + maxwidth = 50, -- prevent the popup from showing more than provided characters + ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead + symbol_map = { + Codeium = "", + }, + }), + }, + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + 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 }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), + sources = { + { name = "async_path", priority = 1 }, + { name = "buffer", priority = 1 }, + { name = "luasnip", priority = 2 }, + { name = "codeium", priority = 3 }, + { name = "nvim_lsp", priority = 4 }, + }, +}) + +-- Set configuration for specific filetype. +cmp.setup.filetype("gitcommit", { + sources = cmp.config.sources({ + { name = "buffer" }, + }), +}) + +-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline({ "/", "?" }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = "buffer" }, + }, +}) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(":", { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = "async_path" }, + }, { + { name = "cmdline" }, + }), + enabled = function() + -- Set of commands where cmp will be disabled + local disabled = { + IncRename = true, + } + -- Get first word of cmdline + local cmd = vim.fn.getcmdline():match("%S+") + -- Return true if cmd isn't disabled + -- else call/return cmp.close(), which returns false + return not disabled[cmd] or cmp.close() + end, +}) +-- If you want insert `(` after select function or method item +local cmp_autopairs = require("nvim-autopairs.completion.cmp") +local handlers = require("nvim-autopairs.completion.handlers") + +cmp.event:on( + "confirm_done", + cmp_autopairs.on_confirm_done({ + filetypes = { + -- "*" is a alias to all filetypes + ["*"] = { + ["("] = { + kind = { + cmp.lsp.CompletionItemKind.Function, + cmp.lsp.CompletionItemKind.Method, + }, + handler = handlers["*"], + }, + }, + -- Disable for functional languages + haskell = false, + nix = false, + }, + }) +) diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 0c44ceb..bba7726 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -5,8 +5,9 @@ vim.diagnostic.config({ virtual_text = false, }) -local capabilities = vim.lsp.protocol.make_client_capabilities() --- NOTE for nvim-ufo +-- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers.. +local capabilities = require("cmp_nvim_lsp").default_capabilities() + -- Tell the server the capability of foldingRange, -- Neovim hasn't added foldingRange to default capabilities, users must add it manually capabilities.textDocument.foldingRange = { @@ -34,7 +35,7 @@ local on_attach_def = function(client, bufnr) l = { name = "lsp", d = { vim.diagnostic.open_float, "Open diagnostic window" }, - c = { vim.lsp.buf.code_action, "Code action" }, + c = { require("actions-preview").code_actions, "Code action", mode = { "v", "n" } }, r = { function() return ":IncRename " .. vim.fn.expand("") @@ -95,11 +96,21 @@ local on_attach_def = function(client, bufnr) vim.lsp.inlay_hint(bufnr, true) end, timeout) end + + require("lsp_signature").on_attach({ + bind = true, -- This is mandatory, otherwise border config won't get registered. + handler_opts = { + border = "rounded", + }, + }, bufnr) end local lspconfig_default_options = { on_attach = on_attach_def, capabilities = capabilities, + flags = { + debounce_text_changes = 100, + }, } ---function to add default options to lspconfig @@ -107,9 +118,8 @@ local lspconfig_default_options = { ---@param options table ---@return nil local function lspconfig_setup(lsp, options) - local coq_options = require("coq").lsp_ensure_capabilities({}) - local merged_options = vim.tbl_deep_extend("force", coq_options, lspconfig_default_options, options) - lspconfig[lsp].setup(merged_options) + local final_options = vim.tbl_deep_extend("force", lspconfig_default_options, options) + lspconfig[lsp].setup(final_options) end local servers = { diff --git a/modules/programs/nvim/plugins/nvim-treesitter.lua b/modules/programs/nvim/plugins/nvim-treesitter.lua index 0c13317..e221fdd 100644 --- a/modules/programs/nvim/plugins/nvim-treesitter.lua +++ b/modules/programs/nvim/plugins/nvim-treesitter.lua @@ -1,13 +1,8 @@ --- Load custom treesitter grammar for org filetype -require("orgmode").setup_ts_grammar() require("nvim-treesitter.configs").setup({ sync_install = false, auto_install = false, highlight = { enable = true, - -- Required for spellcheck, some LaTex highlights and - -- code block highlights that do not have ts grammar - additional_vim_regex_highlighting = { "org" }, }, context_commentstring = { enable = true, diff --git a/modules/programs/nvim/plugins/orgmode.lua b/modules/programs/nvim/plugins/orgmode.lua deleted file mode 100644 index 789eb0a..0000000 --- a/modules/programs/nvim/plugins/orgmode.lua +++ /dev/null @@ -1,4 +0,0 @@ -require("orgmode").setup({ - org_agenda_files = { "~/Notes/org" }, - org_default_notes_file = "~/Notes/org/refile.org", -}) diff --git a/modules/programs/nvim/plugins/which-key-nvim.lua b/modules/programs/nvim/plugins/which-key-nvim.lua index 8adb863..09f227f 100644 --- a/modules/programs/nvim/plugins/which-key-nvim.lua +++ b/modules/programs/nvim/plugins/which-key-nvim.lua @@ -34,11 +34,17 @@ require("which-key").register({ [""] = { name = "tab", [""] = { "tabnew", "New tab" }, - n = { "tabnext", "Next tab" }, - p = { "tabprevious", "Previous tab" }, d = { "tabclose", "Close tab" }, }, }, { prefix = "" }) +require("which-key").register({ + ["["] = { + t = { "tabprevious", "Previous tab" }, + }, + ["]"] = { + t = { "tabnext", "Next tab" }, + }, +}) -- file require("which-key").register({ diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix index eba8e54..39f81d4 100644 --- a/overlays/vimPlugins.nix +++ b/overlays/vimPlugins.nix @@ -4,11 +4,7 @@ _: prev: with lib.my; { vimPlugins = prev.vimPlugins // { - nvim-treesitter-textsubjects = prev.vimUtils.buildVimPluginFrom2Nix { - pname = "nvim-treesitter-textsubjects"; - version = mkVersionInput inputs.nvim-treesitter-textsubjects; - src = inputs.nvim-treesitter-textsubjects; - }; + inherit (inputs.codeium-nvim.packages.${prev.system}.vimPlugins) codeium-nvim; smartcolumn-nvim = prev.vimUtils.buildVimPluginFrom2Nix { pname = "smartcolumn-nvim"; @@ -27,5 +23,21 @@ with lib.my; version = mkVersionInput inputs.hmts-nvim; src = inputs.hmts-nvim; }; + + actions-preview-nvim = prev.vimUtils.buildVimPluginFrom2Nix { + pname = "actions-preview-nvim"; + version = mkVersionInput inputs.actions-preview-nvim; + src = inputs.actions-preview-nvim; + }; + + telescope-nvim = prev.vimPlugins.telescope-nvim.overrideAttrs (_: { + version = mkVersionInput inputs.telescope-nvim; + src = inputs.telescope-nvim; + }); + + nvim-treesitter = prev.vimPlugins.nvim-treesitter.overrideAttrs (_: { + version = mkVersionInput inputs.nvim-treesitter; + src = inputs.nvim-treesitter; + }); }; }