mirror of
https://github.com/nix-community/home-manager
synced 2024-12-24 02:39:48 +01:00
fish: basic completions support
This commit is contained in:
parent
b18d302d44
commit
c22f3e1d29
1 changed files with 16 additions and 8 deletions
|
@ -14,13 +14,13 @@ let
|
|||
mapAttrsToList (k: v: "alias ${k}='${v}'") cfg.shellAliases
|
||||
);
|
||||
|
||||
fileType = types.submodule (
|
||||
fileType = textGen: types.submodule (
|
||||
{ name, config, ... }: {
|
||||
options = {
|
||||
body = mkOption {
|
||||
default = null;
|
||||
type = types.nullOr types.lines;
|
||||
description = "Body of the function.";
|
||||
description = "Body of the file.";
|
||||
};
|
||||
|
||||
source = mkOption {
|
||||
|
@ -36,11 +36,7 @@ let
|
|||
source = mkIf (config.body != null) (
|
||||
mkDefault (pkgs.writeTextFile {
|
||||
inherit name;
|
||||
text = ''
|
||||
function ${name}
|
||||
${config.body}
|
||||
end
|
||||
'';
|
||||
text = textGen name config.body;
|
||||
executable = true;
|
||||
})
|
||||
);
|
||||
|
@ -125,12 +121,24 @@ in
|
|||
};
|
||||
|
||||
programs.fish.functions = mkOption {
|
||||
type = types.attrsOf fileType;
|
||||
type = types.attrsOf (fileType (name: body: ''
|
||||
function ${name}
|
||||
${body}
|
||||
end
|
||||
''));
|
||||
default = {};
|
||||
description = ''
|
||||
Functions to add to fish.
|
||||
'';
|
||||
};
|
||||
|
||||
programs.fish.completions = mkOption {
|
||||
type = types.attrsOf (fileType (name: body: body));
|
||||
default = {};
|
||||
description = ''
|
||||
Completions to add to fish.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [{
|
||||
|
|
Loading…
Reference in a new issue