diff --git a/configuration.nix b/configuration.nix index aadd1f83..3b8e3d25 100644 --- a/configuration.nix +++ b/configuration.nix @@ -48,7 +48,6 @@ isMaximal: { # Assembly is not common, and the asm LSP is a major hit-or-miss assembly.enable = false; - astro.enable = false; markdown.enable = isMaximal; html.enable = isMaximal; css.enable = isMaximal; @@ -65,7 +64,6 @@ isMaximal: { python.enable = isMaximal; dart.enable = isMaximal; bash.enable = isMaximal; - gleam.enable = false; r.enable = isMaximal; tailwind.enable = isMaximal; typst.enable = isMaximal; diff --git a/docs/release-notes/rl-0.7.md b/docs/release-notes/rl-0.7.md index 59267ddf..4b778a0f 100644 --- a/docs/release-notes/rl-0.7.md +++ b/docs/release-notes/rl-0.7.md @@ -359,7 +359,6 @@ The changes are, in no particular order: - Add LSP and Treesitter support for Assembly under `vim.languages.assembly` - Move [which-key](https://github.com/folke/which-key.nvim) to the new spec - Add LSP and Treesitter support for Nushell under `vim.languages.nu` -- Add LSP and Treesitter support for Gleam under `vim.languages.gleam` [Bloxx12](https://github.com/Bloxx12) @@ -384,7 +383,3 @@ The changes are, in no particular order: [Nowaaru](https://github.com/Nowaaru): - Add `precognition-nvim`. - -[DamitusThyYeeticus123](https://github.com/DamitusThyYeetus123): - -- Add support for [Astro](https://astro.build/) language server. diff --git a/flake.lock b/flake.lock index e84beb3a..f05da25d 100644 --- a/flake.lock +++ b/flake.lock @@ -38,11 +38,11 @@ }, "mnw": { "locked": { - "lastModified": 1731821965, - "narHash": "sha256-QiGi/HBQRnIRGY4gQPuH7T3hr7NznOpEO7qNpF5ldmE=", + "lastModified": 1733021555, + "narHash": "sha256-bc+reHXXfdn94MnDsqBrNm2ojOnJfbd64e00nzsP0EI=", "owner": "Gerg-L", "repo": "mnw", - "rev": "5fe5c41975ed0af55f55dc37cd28ba906a5d015e", + "rev": "6841d93fe50eb335da45e11d4dabaa1844f3f79a", "type": "github" }, "original": { diff --git a/modules/plugins/languages/astro.nix b/modules/plugins/languages/astro.nix deleted file mode 100644 index 9e70424b..00000000 --- a/modules/plugins/languages/astro.nix +++ /dev/null @@ -1,159 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - inherit (builtins) attrNames; - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.lists) isList; - inherit (lib.meta) getExe; - inherit (lib.types) enum either listOf package str; - inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.languages) diagnosticsToLua; - inherit (lib.nvim.types) mkGrammarOption diagnostics; - - cfg = config.vim.languages.astro; - - defaultServer = "astro"; - servers = { - astro = { - package = pkgs.astro-language-server; - lspConfig = '' - lspconfig.astro.setup { - capabilities = capabilities; - on_attach = attach_keymaps, - cmd = ${ - if isList cfg.lsp.package - then expToLua cfg.lsp.package - else ''{"${cfg.lsp.package}/bin/astro-ls", "--stdio"}'' - } - } - ''; - }; - }; - - # TODO: specify packages - defaultFormat = "prettier"; - formats = { - prettier = { - package = pkgs.nodePackages.prettier; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.prettier.with({ - command = "${cfg.format.package}/bin/prettier", - }) - ) - ''; - }; - - biome = { - package = pkgs.biome; - nullConfig = '' - table.insert( - ls_sources, - null_ls.builtins.formatting.biome.with({ - command = "${cfg.format.package}/bin/biome", - }) - ) - ''; - }; - }; - - # TODO: specify packages - defaultDiagnosticsProvider = ["eslint_d"]; - diagnosticsProviders = { - eslint_d = { - package = pkgs.eslint_d; - nullConfig = pkg: '' - table.insert( - ls_sources, - null_ls.builtins.diagnostics.eslint_d.with({ - command = "${getExe pkg}", - }) - ) - ''; - }; - }; -in { - options.vim.languages.astro = { - enable = mkEnableOption "Astro language support"; - - treesitter = { - enable = mkEnableOption "Astro treesitter" // {default = config.vim.languages.enableTreesitter;}; - - astroPackage = mkGrammarOption pkgs "astro"; - }; - - lsp = { - enable = mkEnableOption "Astro LSP support" // {default = config.vim.languages.enableLSP;}; - - server = mkOption { - description = "Astro LSP server to use"; - type = enum (attrNames servers); - default = defaultServer; - }; - - package = mkOption { - description = "Astro LSP server package, or the command to run as a list of strings"; - example = ''[lib.getExe pkgs.astro-language-server "--minify" "--stdio"]''; - type = either package (listOf str); - default = servers.${cfg.lsp.server}.package; - }; - }; - - format = { - enable = mkEnableOption "Astro formatting" // {default = config.vim.languages.enableFormat;}; - - type = mkOption { - description = "Astro formatter to use"; - type = enum (attrNames formats); - default = defaultFormat; - }; - - package = mkOption { - description = "Astro formatter package"; - type = package; - default = formats.${cfg.format.type}.package; - }; - }; - - extraDiagnostics = { - enable = mkEnableOption "extra Astro diagnostics" // {default = config.vim.languages.enableExtraDiagnostics;}; - - types = diagnostics { - langDesc = "Astro"; - inherit diagnosticsProviders; - inherit defaultDiagnosticsProvider; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.treesitter.enable { - vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.astroPackage]; - }) - - (mkIf cfg.lsp.enable { - vim.lsp.lspconfig.enable = true; - vim.lsp.lspconfig.sources.astro-lsp = servers.${cfg.lsp.server}.lspConfig; - }) - - (mkIf cfg.format.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources.astro-format = formats.${cfg.format.type}.nullConfig; - }) - - (mkIf cfg.extraDiagnostics.enable { - vim.lsp.null-ls.enable = true; - vim.lsp.null-ls.sources = diagnosticsToLua { - lang = "astro"; - config = cfg.extraDiagnostics.types; - inherit diagnosticsProviders; - }; - }) - ]); -} diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index a69d3e8d..58662354 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -3,13 +3,11 @@ in { imports = [ ./asm.nix - ./astro.nix ./bash.nix ./dart.nix ./clang.nix ./css.nix ./elixir.nix - ./gleam.nix ./go.nix ./hcl.nix ./kotlin.nix diff --git a/modules/plugins/languages/gleam.nix b/modules/plugins/languages/gleam.nix deleted file mode 100644 index 284d3443..00000000 --- a/modules/plugins/languages/gleam.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - inherit (builtins) attrNames; - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.modules) mkIf mkMerge; - inherit (lib.lists) isList; - inherit (lib.types) enum either listOf package str; - inherit (lib.nvim.lua) expToLua; - inherit (lib.nvim.types) mkGrammarOption; - - cfg = config.vim.languages.gleam; - - defaultServer = "gleam"; - servers = { - gleam = { - package = pkgs.gleam; - lspConfig = '' - lspconfig.gleam.setup{ - capabilities = capabilities, - on_attach = default_on_attach, - cmd = ${ - if isList cfg.lsp.package - then expToLua cfg.lsp.package - else ''{"${cfg.lsp.package}/bin/gleam", "lsp"}'' - } - } - ''; - }; - }; -in { - options.vim.languages.gleam = { - enable = mkEnableOption "Gleam language support"; - - treesitter = { - enable = mkEnableOption "Gleam treesitter" // {default = config.vim.languages.enableTreesitter;}; - package = mkGrammarOption pkgs "gleam"; - }; - - lsp = { - enable = mkEnableOption "Gleam LSP support" // {default = config.vim.languages.enableLSP;}; - - server = mkOption { - type = enum (attrNames servers); - default = defaultServer; - description = "Gleam LSP server to use"; - }; - - package = mkOption { - type = either package (listOf str); - default = servers.${cfg.lsp.server}.package; - description = "Gleam LSP server package, or the command to run as a list of strings"; - }; - }; - }; - - config = mkIf cfg.enable (mkMerge [ - (mkIf cfg.treesitter.enable { - vim.treesitter.enable = true; - vim.treesitter.grammars = [cfg.treesitter.package]; - }) - - (mkIf cfg.lsp.enable { - vim.lsp.lspconfig.enable = true; - vim.lsp.lspconfig.sources.gleam-lsp = servers.${cfg.lsp.server}.lspConfig; - }) - ]); -}