HASH e6a516e1442c
DATE 2026-01-31
SUBJECT nvf: powershell language module init
FILES 3 CHANGED
HASH e6a516e1442c
DATE 2026-01-31
SUBJECT nvf: powershell language module init
FILES 3 CHANGED
┌─ outputs/pkgs/ook-vim/config/plugins/languages.nix ────────────────────────┐
│ diff --git a/outputs/pkgs/ook-vim/config/plugins/languages.nix b/outputs/pkgs/ook- │
│ vim/config/plugins/languages.nix │
│ index 17f192d..f18a8cc 100644 │
│ --- a/outputs/pkgs/ook-vim/config/plugins/languages.nix │
│ +++ b/outputs/pkgs/ook-vim/config/plugins/languages.nix │
│ @@ -1,5 +1,10 @@ │
│ { │
│ vim.languages = { │
│ + powershell = { │
│ + enable = true; │
│ + lsp.enable = true; │
│ + treesitter.enable = true; │
│ + }; │
│ astro = { │
│ enable = true; │
│ extraDiagnostics.enable = true; │
│ @@ -42,11 +47,11 @@ │
│ treesitter.enable = true; │
│ lsp = { │
│ enable = true; │
│ - server = "tinymist"; │
│ + servers = ["tinymist"]; │
│ }; │
│ format = { │
│ enable = true; │
│ - type = "typstyle"; │
│ + type = ["typstyle"]; │
│ }; │
│ extensions.typst-preview-nvim = { │
│ enable = true; │
│ @@ -92,11 +97,11 @@ │
│ extraDiagnostics.enable = true; │
│ format = { │
│ enable = true; │
│ - type = "alejandra"; │
│ + type = ["alejandra"]; │
│ }; │
│ lsp = { │
│ enable = true; │
│ - server = "nil"; │
│ + server = ["nil"]; │
│ }; │
│ treesitter.enable = true; │
│ }; │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ .../config/plugins/languages.nix ───┐
│ diff --git a/outputs/pkgs/ook-vim/config/plu │
│ gins/languages.nix b/outputs/pkgs/ook-vim/co │
│ nfig/plugins/languages.nix │
│ index 17f192d..f18a8cc 100644 │
│ --- a/outputs/pkgs/ook-vim/config/plugins/la │
│ nguages.nix │
│ +++ b/outputs/pkgs/ook-vim/config/plugins/la │
│ nguages.nix │
│ @@ -1,5 +1,10 @@ │
│ { │
│ vim.languages = { │
│ + powershell = { │
│ + enable = true; │
│ + lsp.enable = true; │
│ + treesitter.enable = true; │
│ + }; │
│ astro = { │
│ enable = true; │
│ extraDiagnostics.enable = true; │
│ @@ -42,11 +47,11 @@ │
│ treesitter.enable = true; │
│ lsp = { │
│ enable = true; │
│ - server = "tinymist"; │
│ + servers = ["tinymist"]; │
│ }; │
│ format = { │
│ enable = true; │
│ - type = "typstyle"; │
│ + type = ["typstyle"]; │
│ }; │
│ extensions.typst-preview-nvim = { │
│ enable = true; │
│ @@ -92,11 +97,11 @@ │
│ extraDiagnostics.enable = true; │
│ format = { │
│ enable = true; │
│ - type = "alejandra"; │
│ + type = ["alejandra"]; │
│ }; │
│ lsp = { │
│ enable = true; │
│ - server = "nil"; │
│ + server = ["nil"]; │
│ }; │
│ treesitter.enable = true; │
│ }; │
└──────────────────────────────────────────────┘
┌─ outputs/pkgs/ook-vim/modules/plugins/languages/default.nix ───────────────┐
│ diff --git a/outputs/pkgs/ook-vim/modules/plugins/languages/default.nix b/outputs/ │
│ pkgs/ook-vim/modules/plugins/languages/default.nix │
│ index a50dfb6..78c0e0e 100644 │
│ --- a/outputs/pkgs/ook-vim/modules/plugins/languages/default.nix │
│ +++ b/outputs/pkgs/ook-vim/modules/plugins/languages/default.nix │
│ @@ -1 +1,6 @@ │
│ -{imports = [./markdown.nix];} │
│ +{ │
│ + imports = [ │
│ + ./markdown.nix │
│ + ./powershell.nix │
│ + ]; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...plugins/languages/default.nix ───┐
│ diff --git a/outputs/pkgs/ook-vim/modules/pl │
│ ugins/languages/default.nix b/outputs/pkgs/o │
│ ok-vim/modules/plugins/languages/default.nix │
│ index a50dfb6..78c0e0e 100644 │
│ --- a/outputs/pkgs/ook-vim/modules/plugins/l │
│ anguages/default.nix │
│ +++ b/outputs/pkgs/ook-vim/modules/plugins/l │
│ anguages/default.nix │
│ @@ -1 +1,6 @@ │
│ -{imports = [./markdown.nix];} │
│ +{ │
│ + imports = [ │
│ + ./markdown.nix │
│ + ./powershell.nix │
│ + ]; │
│ +} │
└──────────────────────────────────────────────┘
┌─ outputs/pkgs/ook-vim/modules/plugins/languages/powershell.nix ────────────┐
│ diff --git a/outputs/pkgs/ook-vim/modules/plugins/languages/powershell.nix b/outpu │
│ ts/pkgs/ook-vim/modules/plugins/languages/powershell.nix │
│ new file mode 100644 │
│ index 0000000..5df59ec │
│ --- /dev/null │
│ +++ b/outputs/pkgs/ook-vim/modules/plugins/languages/powershell.nix │
│ @@ -0,0 +1,60 @@ │
│ +{ │
│ + config, │
│ + pkgs, │
│ + lib, │
│ + ... │
│ +}: let │
│ + inherit (builtins) attrNames; │
│ + inherit (lib.options) mkEnableOption mkOption; │
│ + inherit (lib.modules) mkIf mkMerge; │
│ + inherit (lib.types) enum listOf; │
│ + inherit (lib.nvim.types) mkGrammarOption; │
│ + inherit (lib.nvim.attrsets) mapListToAttrs; │
│ + │
│ + cfg = config.vim.languages.powershell; │
│ + │
│ + defaultServers = ["powershell-editor-services"]; │
│ + servers = { │
│ + powershell-editor-services = { │
│ + enable = true; │
│ + cmd = ["${pkgs.powershell-editor-services}/bin/PowerShellEditorServices"]; │
│ + filetypes = ["ps1" "psm1" "psd1"]; │
│ + root_markers = [".git"]; │
│ + }; │
│ + }; │
│ +in { │
│ + options.vim.languages.powershell = { │
│ + enable = mkEnableOption "PowerShell language support"; │
│ + treesitter = { │
│ + enable = mkEnableOption "PowerShell Treesitter support" // {default = confi │
│ g.vim.languages.enableTreesitter;}; │
│ + package = mkGrammarOption pkgs "powershell"; │
│ + }; │
│ + │
│ + lsp = { │
│ + enable = mkEnableOption "PowerShell LSP support" // {default = config.vim.l │
│ sp.enable;}; │
│ + servers = mkOption { │
│ + type = listOf (enum (attrNames servers)); │
│ + default = defaultServers; │
│ + description = "PowerShell LSP server to use"; │
│ + }; │
│ + }; │
│ + }; │
│ + │
│ + config = mkMerge [ │
│ + (mkIf cfg.treesitter.enable { │
│ + vim.treesitter.enable = true; │
│ + vim.treesitter.grammars = [cfg.treesitter.package]; │
│ + }) │
│ + │
│ + (mkIf cfg.enable (mkMerge [ │
│ + (mkIf cfg.lsp.enable { │
│ + vim.lsp.servers = │
│ + mapListToAttrs (n: { │
│ + name = n; │
│ + value = servers.${n}; │
│ + }) │
│ + cfg.lsp.servers; │
│ + }) │
│ + ])) │
│ + ]; │
│ +} │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...gins/languages/powershell.nix ───┐
│ diff --git a/outputs/pkgs/ook-vim/modules/pl │
│ ugins/languages/powershell.nix b/outputs/pkg │
│ s/ook-vim/modules/plugins/languages/powershe │
│ ll.nix │
│ new file mode 100644 │
│ index 0000000..5df59ec │
│ --- /dev/null │
│ +++ b/outputs/pkgs/ook-vim/modules/plugins/l │
│ anguages/powershell.nix │
│ @@ -0,0 +1,60 @@ │
│ +{ │
│ + config, │
│ + pkgs, │
│ + lib, │
│ + ... │
│ +}: let │
│ + inherit (builtins) attrNames; │
│ + inherit (lib.options) mkEnableOption mkOp │
│ tion; │
│ + inherit (lib.modules) mkIf mkMerge; │
│ + inherit (lib.types) enum listOf; │
│ + inherit (lib.nvim.types) mkGrammarOption; │
│ + inherit (lib.nvim.attrsets) mapListToAttr │
│ s; │
│ + │
│ + cfg = config.vim.languages.powershell; │
│ + │
│ + defaultServers = ["powershell-editor-serv │
│ ices"]; │
│ + servers = { │
│ + powershell-editor-services = { │
│ + enable = true; │
│ + cmd = ["${pkgs.powershell-editor-serv │
│ ices}/bin/PowerShellEditorServices"]; │
│ + filetypes = ["ps1" "psm1" "psd1"]; │
│ + root_markers = [".git"]; │
│ + }; │
│ + }; │
│ +in { │
│ + options.vim.languages.powershell = { │
│ + enable = mkEnableOption "PowerShell lan │
│ guage support"; │
│ + treesitter = { │
│ + enable = mkEnableOption "PowerShell T │
│ reesitter support" // {default = config.vim. │
│ languages.enableTreesitter;}; │
│ + package = mkGrammarOption pkgs "power │
│ shell"; │
│ + }; │
│ + │
│ + lsp = { │
│ + enable = mkEnableOption "PowerShell L │
│ SP support" // {default = config.vim.lsp.ena │
│ ble;}; │
│ + servers = mkOption { │
│ + type = listOf (enum (attrNames serv │
│ ers)); │
│ + default = defaultServers; │
│ + description = "PowerShell LSP serve │
│ r to use"; │
│ + }; │
│ + }; │
│ + }; │
│ + │
│ + config = mkMerge [ │
│ + (mkIf cfg.treesitter.enable { │
│ + vim.treesitter.enable = true; │
│ + vim.treesitter.grammars = [cfg.treesi │
│ tter.package]; │
│ + }) │
│ + │
│ + (mkIf cfg.enable (mkMerge [ │
│ + (mkIf cfg.lsp.enable { │
│ + vim.lsp.servers = │
│ + mapListToAttrs (n: { │
│ + name = n; │
│ + value = servers.${n}; │
│ + }) │
│ + cfg.lsp.servers; │
│ + }) │
│ + ])) │
│ + ]; │
│ +} │
└──────────────────────────────────────────────┘
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET