diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 35a42618..a75c63eb 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -583,6 +583,22 @@ - Add inline typst concealing support under `vim.languages.typst` using [typst-concealer]. +[axelbdt](https://github.com/axelbdt): + +[neocodeium]: https://github.com/monkoose/neocodeium + +- Add [neocodeium] plugin in `vim.assistant.neocodeium` with `enable`, `setupOpts` and `keymaps` + +[JudahZF](https://github.com/JudahZF): + +- Added gitFiles mapping option to telescope + +[CaueAnjos](https://github.com/CaueAnjos): + +[roslyn-nvim]: https://github.com/seblyng/roslyn.nvim + +- Add roslyn-ls with [roslyn-nvim] as available `lsp.server` option for the C# language. + [KrappRamiro](https://github.com/KrappRamiro): [phaazon/hop.nvim]: https://github.com/hadronized/hop.nvim diff --git a/modules/plugins/languages/csharp.nix b/modules/plugins/languages/csharp.nix index 20e5bd72..a71cbe45 100644 --- a/modules/plugins/languages/csharp.nix +++ b/modules/plugins/languages/csharp.nix @@ -162,12 +162,41 @@ ''; init_options = {}; }; + + roslyn-ls = { + package = pkgs.roslyn-ls; + internalFormatter = true; + lspConfig = '' + vim.env.PATH = vim.env.PATH .. ":${cfg.lsp.package}/lib/roslyn-ls/" + + local uv = vim.uv + local fs = vim.fs + + vim.lsp.config("roslyn", { + cmd = ${ + if isList cfg.lsp.package + then expToLua cfg.lsp.package + else '' + { + "dotnet", + "${cfg.lsp.package}/lib/roslyn-ls/Microsoft.CodeAnalysis.LanguageServer.dll", + "--logLevel", + "Information", + "--extensionLogDirectory", + fs.joinpath(uv.os_tmpdir(), "roslyn_ls/logs"), + "--stdio", + } + '' + } + }) + ''; + }; }; extraServerPlugins = { omnisharp = ["omnisharp-extended-lsp-nvim"]; csharp_ls = ["csharpls-extended-lsp-nvim"]; - roslyn_ls = []; + roslyn-ls = ["roslyn-nvim"]; }; cfg = config.vim.languages.csharp; @@ -177,8 +206,9 @@ in { enable = mkEnableOption "C# language support"; treesitter = { - enable = mkEnableOption "C# treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = mkGrammarOption pkgs "c-sharp"; + enable = mkEnableOption "C#/razor treesitter" // {default = config.vim.languages.enableTreesitter;}; + csPackage = mkGrammarOption pkgs "c-sharp"; + razorPackage = mkGrammarOption pkgs "razor"; }; lsp = { @@ -195,7 +225,7 @@ in { config = mkIf cfg.enable (mkMerge [ (mkIf cfg.treesitter.enable { vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; + vim.treesitter.grammars = [cfg.treesitter.csPackage cfg.treesitter.razorPackage]; }) (mkIf cfg.lsp.enable { diff --git a/npins/sources.json b/npins/sources.json index 919ef20d..7ff48e23 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -2373,6 +2373,19 @@ "url": "https://github.com/rose-pine/neovim/archive/72a04c4065345b51b56aed4859ea1d884f734097.tar.gz", "hash": "144jffddwf727w4yqbikv2f46cny8r9z8mpkbc5ngzail5ldj0q8" }, + "roslyn-nvim": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "seblyng", + "repo": "roslyn.nvim" + }, + "branch": "main", + "submodules": false, + "revision": "1ebc9393d3e577d9f68102f14d98b2e4e7f15644", + "url": "https://github.com/seblyng/roslyn.nvim/archive/1ebc9393d3e577d9f68102f14d98b2e4e7f15644.tar.gz", + "hash": "0jbgxyrv59pf2n4xy821vcbwiahi4nal642nrpiwymzwya355adh" + }, "rtp-nvim": { "type": "Git", "repository": {