 97ad321e42
			
		
	
	
		97ad321e42
		
			
		
	
	
	
	
		
			
			The update for zsh-autosuggestions in #51752 broke the module. This fix reflects the required changes.
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { config, pkgs, lib, ... }:
 | |
| 
 | |
| with lib;
 | |
| 
 | |
| let
 | |
|   cfg = config.programs.zsh.autosuggestions;
 | |
| in
 | |
| {
 | |
|   options.programs.zsh.autosuggestions = {
 | |
| 
 | |
|     enable = mkEnableOption "zsh-autosuggestions";
 | |
| 
 | |
|     highlightStyle = mkOption {
 | |
|       type = types.str;
 | |
|       default = "fg=8"; # https://github.com/zsh-users/zsh-autosuggestions/tree/v0.4.3#suggestion-highlight-style
 | |
|       description = "Highlight style for suggestions ({fore,back}ground color)";
 | |
|       example = "fg=cyan";
 | |
|     };
 | |
| 
 | |
|     strategy = mkOption {
 | |
|       type = types.enum [ "history" "match_prev_cmd" ];
 | |
|       default = "history";
 | |
|       description = ''
 | |
|         Set ZSH_AUTOSUGGEST_STRATEGY to choose the strategy for generating suggestions.
 | |
|         There are currently two to choose from:
 | |
| 
 | |
|           * history: Chooses the most recent match.
 | |
|           * match_prev_cmd: Chooses the most recent match whose preceding history item matches
 | |
|             the most recently executed command (more info). Note that this strategy won't work as
 | |
|             expected with ZSH options that don't preserve the history order such as
 | |
|             HIST_IGNORE_ALL_DUPS or HIST_EXPIRE_DUPS_FIRST.
 | |
|       '';
 | |
|     };
 | |
| 
 | |
|     extraConfig = mkOption {
 | |
|       type = with types; attrsOf str;
 | |
|       default = {};
 | |
|       description = "Attribute set with additional configuration values";
 | |
|       example = literalExample ''
 | |
|         {
 | |
|           "ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE" = "20";
 | |
|         }
 | |
|       '';
 | |
|     };
 | |
| 
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
| 
 | |
|     programs.zsh.interactiveShellInit = ''
 | |
|       source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh
 | |
| 
 | |
|       export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="${cfg.highlightStyle}"
 | |
|       export ZSH_AUTOSUGGEST_STRATEGY=("${cfg.strategy}")
 | |
| 
 | |
|       ${concatStringsSep "\n" (mapAttrsToList (key: value: ''export ${key}="${value}"'') cfg.extraConfig)}
 | |
|     '';
 | |
| 
 | |
|   };
 | |
| }
 |