OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
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
 

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;
     };

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;
     };
 

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
+  ];
+}

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
+  ];
+}
 

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;
+      })
+    ]))
+  ];
+}

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