From 3aaf340173d3151dd131f679b3bf419da5cd456b Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Fri, 26 Sep 2025 16:48:12 -0500 Subject: [PATCH] zsh: optimize setOptions with array-based loops Replace individual setopt statements with array-based loops for cfg.setOptions. Use lib.hm.zsh.define for consistent array formatting and add unset statements to clean up temporary variables, improving consistency with other zsh optimizations. Signed-off-by: Austin Horstman --- modules/programs/zsh/default.nix | 8 ++++++-- tests/modules/programs/zsh/default.nix | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/programs/zsh/default.nix b/modules/programs/zsh/default.nix index 8ba25fb7..cb69da59 100644 --- a/modules/programs/zsh/default.nix +++ b/modules/programs/zsh/default.nix @@ -17,7 +17,6 @@ let ; cfg = config.programs.zsh; - bindkeyCommands = { emacs = "bindkey -e"; viins = "bindkey -v"; @@ -501,7 +500,12 @@ in (lib.mkIf (cfg.setOptions != [ ]) ( mkOrder 950 '' - ${concatStringsSep "\n" (map (option: "setopt ${option}") cfg.setOptions)} + # Set shell options + ${lib.hm.zsh.define "set_opts" cfg.setOptions} + for opt in "''${set_opts[@]}"; do + setopt "$opt" + done + unset opt set_opts '' )) diff --git a/tests/modules/programs/zsh/default.nix b/tests/modules/programs/zsh/default.nix index b1b090b0..998be5f0 100644 --- a/tests/modules/programs/zsh/default.nix +++ b/tests/modules/programs/zsh/default.nix @@ -16,6 +16,7 @@ zsh-plugins = ./plugins.nix; zsh-prezto = ./prezto.nix; zsh-session-variables = ./session-variables.nix; + zsh-smart-formatting = ./smart-formatting.nix; zsh-syntax-highlighting = ./syntax-highlighting.nix; zsh-zprof = ./zprof.nix; zshrc-contents-priorities = ./zshrc-content-priorities.nix;