diff --git a/flake.lock b/flake.lock index b7557c7..cadcc97 100644 --- a/flake.lock +++ b/flake.lock @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1728603284, - "narHash": "sha256-ecnalVee5X0m3pyQyaz6IH/EnveQERA8RSPlAyS54+c=", + "lastModified": 1729231104, + "narHash": "sha256-bRfk5ns1kp+D9/ngAYm5RhT9f/egXkfL1Xhd5j0c0W8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d3429a135af936205b7af11a70780cb03260586c", + "rev": "ac76a342a8e881cfae21716a9ef0668422882837", "type": "github" }, "original": { @@ -18,11 +18,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1728500571, - "narHash": "sha256-dOymOQ3AfNI4Z337yEwHGohrVQb4yPODCW9MDUyAc4w=", + "lastModified": 1729044727, + "narHash": "sha256-GKJjtPY+SXfLF/yTN7M2cAnQB6RERFKnQhD8UvPSf3M=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d51c28603def282a24fa034bcb007e2bcb5b5dd0", + "rev": "dc2e0028d274394f73653c7c90cc63edbb696be1", "type": "github" }, "original": { @@ -51,11 +51,11 @@ "nvim_plugin-JoosepAlviste/nvim-ts-context-commentstring": { "flake": false, "locked": { - "lastModified": 1727634549, - "narHash": "sha256-6GjUWGuFsP5F/+pMssPxVstriccLYYeLwbtjwuHohcA=", + "lastModified": 1728200262, + "narHash": "sha256-uJDuxc6iDo/fCtfRUpUmE4HIaH9YBs44+vXzw/yFP64=", "owner": "JoosepAlviste", "repo": "nvim-ts-context-commentstring", - "rev": "44fd461b879d80a21d5041f312f070f22551c0bc", + "rev": "9c74db656c3d0b1c4392fc89a016b1910539e7c0", "type": "github" }, "original": { @@ -83,11 +83,11 @@ "nvim_plugin-MeanderingProgrammer/render-markdown.nvim": { "flake": false, "locked": { - "lastModified": 1729167727, - "narHash": "sha256-bsTsfnz4AT1LsPnLjp2nDJqnrTBf1CC7J3+ZVb7N/bw=", + "lastModified": 1729200469, + "narHash": "sha256-SUuBju402ORBi9PlL5vcz/VHe0yyRB6MTnGEpm4bJtA=", "owner": "MeanderingProgrammer", "repo": "render-markdown.nvim", - "rev": "2f36ac16df20e0c6512f14e2793f7b2ba235989c", + "rev": "bea6f2078e34abdf5c2632f593651bb13205477f", "type": "github" }, "original": { @@ -144,14 +144,30 @@ "type": "github" } }, + "nvim_plugin-b0o/schemastore.nvim": { + "flake": false, + "locked": { + "lastModified": 1729191636, + "narHash": "sha256-wmTJdOT7ZA17RJx5CDmqRIh4dSnx6AdlcopeTzNYnSs=", + "owner": "b0o", + "repo": "schemastore.nvim", + "rev": "ee460baf4c8d29d051906d39b0e095289a3ddc9a", + "type": "github" + }, + "original": { + "owner": "b0o", + "repo": "schemastore.nvim", + "type": "github" + } + }, "nvim_plugin-catppuccin/nvim": { "flake": false, "locked": { - "lastModified": 1726377217, - "narHash": "sha256-9fEESnT8KSlng+naqVlyrRJnnbRGE0RxTSSGO0gcSKw=", + "lastModified": 1728131011, + "narHash": "sha256-j6F078taxuGzr3jngrc+Pc5I1kDdxTLMETgq6Xn4w/4=", "owner": "catppuccin", "repo": "nvim", - "rev": "63685e1562ef53873c9764b483d7ac5c7a608922", + "rev": "7be452ee067978cdc8b2c5f3411f0c71ffa612b9", "type": "github" }, "original": { @@ -179,11 +195,11 @@ "nvim_plugin-folke/lazy.nvim": { "flake": false, "locked": { - "lastModified": 1726474661, - "narHash": "sha256-Atu3GTH7HAH5TnOFn8Ew6n/XqLgaVZgi+SCaHHsa7HU=", + "lastModified": 1727855684, + "narHash": "sha256-WI241RduX495zN/H1vltxNYC88TiDIJSFwZ5UmA+weU=", "owner": "folke", "repo": "lazy.nvim", - "rev": "460e1cd8f24e364d54543a4b0e83f6f4ec1f65fb", + "rev": "1159bdccd8910a0fd0914b24d6c3d186689023d9", "type": "github" }, "original": { @@ -211,11 +227,11 @@ "nvim_plugin-folke/which-key.nvim": { "flake": false, "locked": { - "lastModified": 1726684657, - "narHash": "sha256-P3Uugc+RPsRVD/kFCmHDow3PLeb2oXEbNX3WzoZ9xlw=", + "lastModified": 1727856297, + "narHash": "sha256-crECQnWpptz1A/hOndHPEduK6MqWQH8kyf58h+4snHo=", "owner": "folke", "repo": "which-key.nvim", - "rev": "fb070344402cfc662299d9914f5546d840a22126", + "rev": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821", "type": "github" }, "original": { @@ -355,11 +371,11 @@ "nvim_plugin-lukas-reineke/indent-blankline.nvim": { "flake": false, "locked": { - "lastModified": 1725325339, - "narHash": "sha256-5+RulvASXwO2y8owz+6NbPK925llpkACSjC5TuAnUUk=", + "lastModified": 1728270661, + "narHash": "sha256-OKtaibgT9uPQQmddfj7YKgAYc7lz4ne1dbUz9PdRAvA=", "owner": "lukas-reineke", "repo": "indent-blankline.nvim", - "rev": "18603eb949eba08300799f64027af11ef922283f", + "rev": "e7a4442e055ec953311e77791546238d1eaae507", "type": "github" }, "original": { @@ -384,6 +400,22 @@ "type": "github" } }, + "nvim_plugin-m4xshen/hardtime.nvim": { + "flake": false, + "locked": { + "lastModified": 1728748235, + "narHash": "sha256-iEA14DhSxmKxPE2TCa7csJ2ZSaN7enI0kwZCxDPL/e4=", + "owner": "m4xshen", + "repo": "hardtime.nvim", + "rev": "027d6f991927a71bd510a7673ae5bb404ca2a1c7", + "type": "github" + }, + "original": { + "owner": "m4xshen", + "repo": "hardtime.nvim", + "type": "github" + } + }, "nvim_plugin-mbbill/undotree": { "flake": false, "locked": { @@ -403,11 +435,11 @@ "nvim_plugin-mfussenegger/nvim-lint": { "flake": false, "locked": { - "lastModified": 1727002360, - "narHash": "sha256-mg3IqNfIeWimasYEHilqv4Yx67hTHBubq19nLTNrjLk=", + "lastModified": 1729155978, + "narHash": "sha256-4sGU9yKrIJRlnyRGYVi2aNNycsS+KABTheNnawLGMM8=", "owner": "mfussenegger", "repo": "nvim-lint", - "rev": "968a35d54b3a4c1ce66609cf80b14d4ae44fe77f", + "rev": "16b21a7d04d06661f92f273a0744fd81fb19e09e", "type": "github" }, "original": { @@ -416,14 +448,30 @@ "type": "github" } }, + "nvim_plugin-mrcjkb/rustaceanvim": { + "flake": false, + "locked": { + "lastModified": 1729179129, + "narHash": "sha256-CTxEf7w2Pr24Q7QP8sXrq8Yx5eK/Qs0cykMF6gLUNN8=", + "owner": "mrcjkb", + "repo": "rustaceanvim", + "rev": "6eb1c41463a0ad02a4fe799321cc7f651b87e576", + "type": "github" + }, + "original": { + "owner": "mrcjkb", + "repo": "rustaceanvim", + "type": "github" + } + }, "nvim_plugin-neovim/nvim-lspconfig": { "flake": false, "locked": { - "lastModified": 1727646088, - "narHash": "sha256-uor4Ff229WY0jrscUnneDAQHfUdz/vwzNtUYSSNkmKA=", + "lastModified": 1729055524, + "narHash": "sha256-f9CqwKBWZgC2ystm+g7FmsHR0fLcM6Wj+GkSwoUIanw=", "owner": "neovim", "repo": "nvim-lspconfig", - "rev": "0678aa439b82965daf03679cd146e84f10e299c3", + "rev": "541f3a2781de481bb84883889e4d9f0904250a56", "type": "github" }, "original": { @@ -515,11 +563,11 @@ "nvim_plugin-nvim-telescope/telescope.nvim": { "flake": false, "locked": { - "lastModified": 1727679374, - "narHash": "sha256-IwUBAPaWmwZtZgom7Nb6JvxGgignHXoTpKYZeW6fmBo=", + "lastModified": 1728518892, + "narHash": "sha256-HWNfj3/b+CUFgWR26IzAuMzlSCEuiK/7n8tWHwqAAik=", "owner": "nvim-telescope", "repo": "telescope.nvim", - "rev": "eae0d8fbde590b0eaa2f9481948cd6fd7dd21656", + "rev": "df534c3042572fb958586facd02841e10186707c", "type": "github" }, "original": { @@ -531,11 +579,11 @@ "nvim_plugin-nvim-tree/nvim-tree.lua": { "flake": false, "locked": { - "lastModified": 1727674441, - "narHash": "sha256-BSEaW6Xp0tdmYNI5/YojVQY74lCxwCsSvOS7dG0mMkw=", + "lastModified": 1728892603, + "narHash": "sha256-iYVsOpvKQpPSwVMVRqmKkfsjqU9lsBWWEVkqjT1pH18=", "owner": "nvim-tree", "repo": "nvim-tree.lua", - "rev": "c9104a5d079db5a158c9562c54689df27d52dccc", + "rev": "f5f67892996b280ae78b1b0a2d07c4fa29ae0905", "type": "github" }, "original": { @@ -547,11 +595,11 @@ "nvim_plugin-nvim-tree/nvim-web-devicons": { "flake": false, "locked": { - "lastModified": 1727657734, - "narHash": "sha256-L8h0CiOYwZVFjsTH6XiEb/636RiFLxE7YhH00uv2zK4=", + "lastModified": 1728608318, + "narHash": "sha256-SUWEOp+QcfHjYaqqr4Zwvh0x91IAJXvrdMkQtuWMlGc=", "owner": "nvim-tree", "repo": "nvim-web-devicons", - "rev": "6b53401918a9033a41159d012160c5fb5eb249ae", + "rev": "19d257cf889f79f4022163c3fbb5e08639077bd8", "type": "github" }, "original": { @@ -560,6 +608,22 @@ "type": "github" } }, + "nvim_plugin-nvim-treesitter/nvim-treesitter-context": { + "flake": false, + "locked": { + "lastModified": 1729198533, + "narHash": "sha256-2JAS86lxUuWVoJ3jJQh4gB0bGEY5jSDUVq1lQRyNhmw=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "rev": "bf6386d9bbb9e53386987beb90264abd4faf5c74", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "type": "github" + } + }, "nvim_plugin-preservim/nerdcommenter": { "flake": false, "locked": { @@ -579,11 +643,11 @@ "nvim_plugin-rafamadriz/friendly-snippets": { "flake": false, "locked": { - "lastModified": 1727061933, - "narHash": "sha256-yTsuV5unoujY0mhLINssYYBWCeefe+nJaxQHJKm7hlk=", + "lastModified": 1728273759, + "narHash": "sha256-H94Ryad0ZsSg/gioUgW+7sowij7GgtEUMNFi1IOZAys=", "owner": "rafamadriz", "repo": "friendly-snippets", - "rev": "00ba9dd3df89509f95437b8d595553707c46d5ea", + "rev": "de8fce94985873666bd9712ea3e49ee17aadb1ed", "type": "github" }, "original": { @@ -611,11 +675,11 @@ "nvim_plugin-rmagatti/auto-session": { "flake": false, "locked": { - "lastModified": 1727198255, - "narHash": "sha256-Ym54141+P2M1Eq2qNDOjdY0cER/LhQKs9pa0tadeSLk=", + "lastModified": 1728095376, + "narHash": "sha256-WM/Umjw8EvO6pUoKOG2MYXlmHxgIh42YGKH2w/g02Yg=", "owner": "rmagatti", "repo": "auto-session", - "rev": "21e33854fb3e561cb738dfefcd9d1d84fe6faaef", + "rev": "9d02776ed42874d37869dc683396234e3724b52d", "type": "github" }, "original": { @@ -675,11 +739,11 @@ "nvim_plugin-stevearc/conform.nvim": { "flake": false, "locked": { - "lastModified": 1726168403, - "narHash": "sha256-AWgG+16Bh/xu50pU78mKIcQy9MKzWF1YKdbEt5jX0WQ=", + "lastModified": 1729039923, + "narHash": "sha256-X+9+X31AmJqYWQv2QxX5AEovHwGV/K2q6A0RtiIZGGk=", "owner": "stevearc", "repo": "conform.nvim", - "rev": "1a99fdc1d3aa9ccdf3021e67982a679a8c5c740c", + "rev": "f5bd8419f8a29451e20bdb1061a54fe13d5c8de3", "type": "github" }, "original": { @@ -723,11 +787,11 @@ "nvim_plugin-uga-rosa/ccc.nvim": { "flake": false, "locked": { - "lastModified": 1724982444, - "narHash": "sha256-wixdlzKo1ilea7SMichKjTwe8DhqHB4cI/SG9aciBnc=", + "lastModified": 1727935067, + "narHash": "sha256-OhdR2sAQV5PvlhaKQ6rYneMmvQiN3QfymOeanpAs9wY=", "owner": "uga-rosa", "repo": "ccc.nvim", - "rev": "790aa881d7f47bc7cc07ad03f1216bb7caf9ef67", + "rev": "7c639042583c7bdc7ce2e37e5a0e0aa6d0659c6a", "type": "github" }, "original": { @@ -795,6 +859,7 @@ "nvim_plugin-MunifTanjim/nui.nvim": "nvim_plugin-MunifTanjim/nui.nvim", "nvim_plugin-RRethy/vim-illuminate": "nvim_plugin-RRethy/vim-illuminate", "nvim_plugin-Saecki/crates.nvim": "nvim_plugin-Saecki/crates.nvim", + "nvim_plugin-b0o/schemastore.nvim": "nvim_plugin-b0o/schemastore.nvim", "nvim_plugin-catppuccin/nvim": "nvim_plugin-catppuccin/nvim", "nvim_plugin-chrisgrieser/nvim-early-retirement": "nvim_plugin-chrisgrieser/nvim-early-retirement", "nvim_plugin-folke/lazy.nvim": "nvim_plugin-folke/lazy.nvim", @@ -810,8 +875,10 @@ "nvim_plugin-lnc3l0t/glow.nvim": "nvim_plugin-lnc3l0t/glow.nvim", "nvim_plugin-lukas-reineke/indent-blankline.nvim": "nvim_plugin-lukas-reineke/indent-blankline.nvim", "nvim_plugin-lvimuser/lsp-inlayhints.nvim": "nvim_plugin-lvimuser/lsp-inlayhints.nvim", + "nvim_plugin-m4xshen/hardtime.nvim": "nvim_plugin-m4xshen/hardtime.nvim", "nvim_plugin-mbbill/undotree": "nvim_plugin-mbbill/undotree", "nvim_plugin-mfussenegger/nvim-lint": "nvim_plugin-mfussenegger/nvim-lint", + "nvim_plugin-mrcjkb/rustaceanvim": "nvim_plugin-mrcjkb/rustaceanvim", "nvim_plugin-neovim/nvim-lspconfig": "nvim_plugin-neovim/nvim-lspconfig", "nvim_plugin-nvim-lua/plenary.nvim": "nvim_plugin-nvim-lua/plenary.nvim", "nvim_plugin-nvim-lualine/lualine.nvim": "nvim_plugin-nvim-lualine/lualine.nvim", @@ -821,6 +888,7 @@ "nvim_plugin-nvim-telescope/telescope.nvim": "nvim_plugin-nvim-telescope/telescope.nvim", "nvim_plugin-nvim-tree/nvim-tree.lua": "nvim_plugin-nvim-tree/nvim-tree.lua", "nvim_plugin-nvim-tree/nvim-web-devicons": "nvim_plugin-nvim-tree/nvim-web-devicons", + "nvim_plugin-nvim-treesitter/nvim-treesitter-context": "nvim_plugin-nvim-treesitter/nvim-treesitter-context", "nvim_plugin-preservim/nerdcommenter": "nvim_plugin-preservim/nerdcommenter", "nvim_plugin-rafamadriz/friendly-snippets": "nvim_plugin-rafamadriz/friendly-snippets", "nvim_plugin-rcarriga/nvim-notify": "nvim_plugin-rcarriga/nvim-notify", @@ -845,11 +913,11 @@ ] }, "locked": { - "lastModified": 1727663505, - "narHash": "sha256-83j/GrHsx8GFUcQofKh+PRPz6pz8sxAsZyT/HCNdey8=", + "lastModified": 1729218602, + "narHash": "sha256-KDmYxpkFWa0Go0WnOpkgQOypVaQxbwgpEutET5ey1VQ=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "c2099c6c7599ea1980151b8b6247a8f93e1806ee", + "rev": "9051466c82b9b3a6ba9e06be99621ad25423ec94", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 55c1a80..02dc047 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,12 @@ "nvim_plugin-catppuccin/nvim".flake = false; # color scheme "nvim_plugin-nvim-tree/nvim-web-devicons".url = "github:nvim-tree/nvim-web-devicons"; "nvim_plugin-nvim-tree/nvim-web-devicons".flake = false; + + "nvim_plugin-m4xshen/hardtime.nvim".url = "github:m4xshen/hardtime.nvim"; + "nvim_plugin-m4xshen/hardtime.nvim".flake = false; + + "nvim_plugin-nvim-treesitter/nvim-treesitter-context".url = "github:nvim-treesitter/nvim-treesitter-context"; + "nvim_plugin-nvim-treesitter/nvim-treesitter-context".flake = false; # "nvim_plugin-nvim-treesitter/nvim-treesitter" NOTE: using nix pkgs since it is packaged with all grammars "nvim_plugin-nvim-lua/plenary.nvim".url = "github:nvim-lua/plenary.nvim"; "nvim_plugin-nvim-lua/plenary.nvim".flake = false; # utils used by many plugins @@ -78,6 +84,8 @@ "nvim_plugin-j-hui/fidget.nvim".flake = false; "nvim_plugin-neovim/nvim-lspconfig".url = "github:neovim/nvim-lspconfig"; "nvim_plugin-neovim/nvim-lspconfig".flake = false; + "nvim_plugin-b0o/schemastore.nvim".url = "github:b0o/schemastore.nvim"; + "nvim_plugin-b0o/schemastore.nvim".flake = false; "nvim_plugin-hrsh7th/nvim-cmp".url = "github:hrsh7th/nvim-cmp"; "nvim_plugin-hrsh7th/nvim-cmp".flake = false; "nvim_plugin-L3MON4D3/LuaSnip".url = "github:L3MON4D3/LuaSnip"; @@ -98,6 +106,8 @@ # "nvim_plugin-yetone/avante.nvim".flake = false; "nvim_plugin-folke/neodev.nvim".url = "github:folke/neodev.nvim"; "nvim_plugin-folke/neodev.nvim".flake = false; + "nvim_plugin-mrcjkb/rustaceanvim".url = "github:mrcjkb/rustaceanvim"; + "nvim_plugin-mrcjkb/rustaceanvim".flake = false; "nvim_plugin-Saecki/crates.nvim".url = "github:Saecki/crates.nvim"; "nvim_plugin-Saecki/crates.nvim".flake = false; "nvim_plugin-lvimuser/lsp-inlayhints.nvim".url = "github:lvimuser/lsp-inlayhints.nvim"; @@ -199,7 +209,7 @@ yaml-language-server lemminx # xml # Other - # typescript + typescript nodejs_20 clang zig @@ -256,8 +266,6 @@ ''export XDG_STATE_HOME="$NVIM_FLAKE_BASE_DIR/nvim_ringofstorms_${version}/state"'' "--run" ''export XDG_CACHE_HOME="$NVIM_FLAKE_BASE_DIR/nvim_ringofstorms_${version}/cache"'' - "--run" - ''export TESTASDASD="${lib.concatStringsSep "|" (lib.attrValues stable_pkgs.vimPlugins.nvim-treesitter.grammarPlugins)}"'' ]; }); }; diff --git a/lua/plugins/cmp_autocompletion.lua b/lua/plugins/cmp_autocompletion.lua index bb656eb..1217474 100644 --- a/lua/plugins/cmp_autocompletion.lua +++ b/lua/plugins/cmp_autocompletion.lua @@ -15,10 +15,6 @@ return { }, }, "saadparwaiz1/cmp_luasnip", - - -- Adds other completion capabilities. - -- nvim-cmp does not ship with all sources by default. They are split - -- into multiple repos for maintenance purposes. "hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-buffer", "hrsh7th/cmp-path", @@ -26,10 +22,7 @@ return { "zbirenbaum/copilot.lua", cmd = "Copilot", event = "InsertEnter", - opts = { - -- suggestion = { enabled = false, auto_trigger = false }, - -- panel = { enabled = false, auto_trigger = false }, - }, + opts = {}, main = "copilot", }, { "zbirenbaum/copilot-cmp", opts = {}, main = "copilot_cmp" }, @@ -91,21 +84,22 @@ return { { name = "copilot", priority = 9, - keyword_length = 1, - filter = function(keyword) - -- Check if keyword length is some number and not just whitespace - if #keyword < 2 or keyword:match("^%s*$") then - return false - end - return true - end, + -- keyword_length = 1, + -- filter = function(keyword) + -- -- Check if keyword length is some number and not just whitespace + -- if #keyword < 2 or keyword:match("^%s*$") then + -- return false + -- end + -- return true + -- end, + -- max_item_count = 3, }, { name = "nvim_lsp", priority = 8, max_item_count = 100 }, - { name = "luasnip", priority = 7 }, + { name = "luasnip", priority = 7, max_item_count = 5 }, -- This source provides file path completions, helping you to complete file paths in your code - { name = "path", priority = 7 }, + { name = "path", priority = 7, max_item_count = 3 }, -- This source provides completion items from the current buffer, meaning it suggests words that have already been typed in the same file. - { name = "buffer", priority = 6 }, + { name = "buffer", priority = 6, max_item_count = 5 }, -- Rust crates.io integration { name = "crates" }, }, diff --git a/lua/plugins/hardtime.lua b/lua/plugins/hardtime.lua new file mode 100644 index 0000000..bb46e46 --- /dev/null +++ b/lua/plugins/hardtime.lua @@ -0,0 +1,6 @@ +return { + "m4xshen/hardtime.nvim", + event = "VeryLazy", + dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" }, + opts = {}, +} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua index 03bad59..59eb7b3 100644 --- a/lua/plugins/lsp.lua +++ b/lua/plugins/lsp.lua @@ -34,6 +34,7 @@ return { }, main = "lsp-inlayhints", }, + { "b0o/schemastore.nvim" }, -- Automatically install LSPs and related tools to stdpath for Neovim { "williamboman/mason.nvim", enabled = not NIX, config = true }, -- NOTE: Must be loaded before dependants { "williamboman/mason-lspconfig.nvim", enabled = not NIX }, @@ -68,6 +69,7 @@ return { U.safeRequire("cmp_nvim_lsp", function(c) capabilities = vim.tbl_deep_extend("force", capabilities, c.default_capabilities()) end) + local schemastore = require("schemastore") -- TODO finish porting over lsp configs: https://github.com/RingOfStorms/nvim/blob/master/lua/plugins/lsp.lua local servers = { @@ -77,6 +79,7 @@ return { -- But for many setups, the LSP (`tsserver`) will work just fine -- Note that `rust-analyzer` is done via mrcjkb/rustaceanvim plugin above, do not register it here. lua_ls = { + capabilities = capabilities, settings = { Lua = { runtime = { @@ -110,8 +113,22 @@ return { }, }, }, - rust_analyzer = {}, - nil_ls = {}, + -- rust_analyzer = { + -- capabilities = capabilities, + -- settings = { + -- ["rust-analyzer"] = { + -- check = { + -- command = "clippy", + -- }, + -- diagnostics = { + -- enable = true, + -- }, + -- }, + -- }, + -- }, + nil_ls = { -- nix + capabilities = capabilities, + }, -- tsserver = { -- -- typescript/javascript -- implicitProjectConfiguration = { @@ -120,12 +137,14 @@ return { -- }, ts_ls = { -- typescript/javascript + capabilities = capabilities, implicitProjectConfiguration = { checkJs = true, }, }, tailwindcss = { -- tailwind css + capabilities = capabilities, -- https://www.tailwind-variants.org/docs/getting-started#intellisense-setup-optional tailwindCSS = { experimental = { @@ -137,24 +156,46 @@ return { }, cssls = { -- css + capabilities = capabilities, }, jsonls = { -- json + capabilities = capabilities, + settings = { + json = { + schemas = schemastore.json.schemas(), + validate = { enable = true }, + }, + }, }, pyright = { -- python + capabilities = capabilities, }, marksman = { -- markdown + capabilities = capabilities, }, taplo = { -- toml + capabilities = capabilities, }, yamlls = { -- yaml + capabilities = capabilities, + settings = { + yaml = { + schemas = schemastore.yaml.schemas(), + schemaStore = { + enable = false, + url = "", + }, + }, + }, }, lemminx = { -- xml + capabilities = capabilities, }, } if NIX then diff --git a/lua/plugins/rustaceanvim.lua b/lua/plugins/rustaceanvim.lua new file mode 100644 index 0000000..396c799 --- /dev/null +++ b/lua/plugins/rustaceanvim.lua @@ -0,0 +1,19 @@ +vim.g.rustaceanvim = { + tools = { + enable_clippy = true, + enable_nextest = true, + reload_workspace_from_cargo_toml = true, + }, + server = { + -- cmd = { "nix", "run", "nixpkgs#rust-analyzer" }, + }, +} + +return { + "mrcjkb/rustaceanvim", + version = "^5", + lazy = false, -- already lazy + ft = { "rust" }, + keys = {}, + command = "RustLsp", +} diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua index f353eb7..d37cdf2 100644 --- a/lua/plugins/telescope.lua +++ b/lua/plugins/telescope.lua @@ -2,8 +2,8 @@ return { "nvim-telescope/telescope.nvim", dependencies = { { "nvim-lua/plenary.nvim" }, - { "nvim-telescope/telescope-fzf-native.nvim" }, - { "nvim-telescope/telescope-ui-select.nvim" }, + { "nvim-telescope/telescope-fzf-native.nvim", event = "VeryLazy" }, + { "nvim-telescope/telescope-ui-select.nvim", event = "VeryLazy" }, }, init = function() U.cmd_executable("rg", { diff --git a/lua/plugins/treesitter_context.lua b/lua/plugins/treesitter_context.lua new file mode 100644 index 0000000..ec6e39b --- /dev/null +++ b/lua/plugins/treesitter_context.lua @@ -0,0 +1,21 @@ +return { + "nvim-treesitter/nvim-treesitter-context", + event = "BufRead", + opts = { + enable = true, -- Enable this plugin (Can be enabled/disabled later via commands) + max_lines = 0, -- How many lines the window should span. Values <= 0 mean no limit. + min_window_height = 0, -- Minimum editor window height to enable context. Values <= 0 mean no limit. + line_numbers = true, + multiline_threshold = 20, -- Maximum number of lines to show for a single context + trim_scope = "outer", -- Which context lines to discard if `max_lines` is exceeded. Choices: 'inner', 'outer' + mode = "cursor", -- Line used to calculate context. Choices: 'cursor', 'topline' + -- Separator between context and content. Should be a single character string, like '-'. + -- When separator is set, the context will only show up when there are at least 2 lines above cursorline. + separator = nil, + zindex = 20, -- The Z-index of the context window + on_attach = nil, -- (fun(buf: integer): boolean) return false to disable attaching + }, + config = function(_, opts) + require("treesitter-context").setup(opts) + end, +}