104 lines
2.2 KiB
Nix

{
pkgs,
lib,
theme,
...
}:
{
catppuccin.helix = {
enable = true;
flavor = theme.flavor;
};
programs = {
fish.shellAliases.edit = "hx";
helix =
let
prettier = format: {
command = "prettier";
args = [
"--stdin-filepath"
"file.${format}"
];
};
in
{
enable = true;
defaultEditor = true;
extraPackages = with pkgs; [
# Markdown
marksman
markdown-oxide
# Html, css, Json, Eslint
vscode-langservers-extracted
# Yaml
ansible-language-server
yaml-language-server
];
settings = {
editor = {
auto-save = {
after-delay.enable = true;
focus-lost = true;
};
cursor-shape = {
normal = "block";
insert = "bar";
select = "underline";
};
lsp = {
display-inlay-hints = true;
display-messages = true;
};
};
keys.normal = {
C-f = ":format";
};
};
languages.language = [
{
name = "css";
formatter = prettier "css";
auto-format = true;
}
{
name = "json";
language-servers = [
"vscode-json-language-server"
];
formatter = prettier "json";
auto-format = true;
}
{
name = "jsonc";
language-servers = [
];
formatter = prettier "jsonc";
file-types = [
"jsonc"
];
auto-format = true;
}
{
name = "markdown";
formatter = prettier "md";
auto-format = true;
}
{
name = "nix";
formatter.command = lib.getExe pkgs.nixfmt-rfc-style;
auto-format = true;
}
{
name = "yaml";
formatter = prettier "yaml";
auto-format = true;
}
];
};
};
}