82 lines
1.9 KiB
Nix
82 lines
1.9 KiB
Nix
{
|
|
osConfig,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
programs.helix = {
|
|
enable = true;
|
|
extraPackages = with pkgs; [
|
|
nixd
|
|
bash-language-server
|
|
docker-language-server
|
|
fish-lsp
|
|
typescript-language-server
|
|
superhtml
|
|
hyprls
|
|
jq-lsp
|
|
vscode-json-languageserver
|
|
texlab # Latex
|
|
lua-language-server
|
|
marksman # Markdown
|
|
clang-tools # Clangd
|
|
intelephense # Php
|
|
ruff # Python
|
|
rust-analyzer
|
|
vscode-css-languageserver
|
|
systemd-lsp
|
|
taplo
|
|
vue-language-server
|
|
yaml-language-server
|
|
zls
|
|
];
|
|
settings = {
|
|
editor.cursor-shape = {
|
|
normal = "block";
|
|
insert = "bar";
|
|
select = "underline";
|
|
};
|
|
keys.normal = {
|
|
space.space = "file_picker";
|
|
G = "goto_file_end";
|
|
D = "kill_to_line_end";
|
|
V = [ "extend_to_line_bounds" ];
|
|
"$" = "goto_line_end";
|
|
"^" = "goto_line_start";
|
|
x = "delete_selection";
|
|
esc = [
|
|
"collapse_selection"
|
|
"keep_primary_selection"
|
|
];
|
|
space.w = ":w";
|
|
space.q = ":q";
|
|
};
|
|
};
|
|
languages.language = [
|
|
{
|
|
name = "nix";
|
|
auto-format = true;
|
|
}
|
|
];
|
|
languages.language-server = {
|
|
nixd = {
|
|
command = "nixd";
|
|
args = [ "--semantic-tokens=true" ];
|
|
config.nixd =
|
|
let
|
|
myFlake = ''(builtins.getFlake "/etc/nixos")'';
|
|
nixosOpts = "${myFlake}.nixosConfigurations.${osConfig.networking.hostName}.options";
|
|
in
|
|
{
|
|
nixpkgs.expr = "import ${myFlake}.inputs.nixpkgs { }";
|
|
formatting.command = [ "${lib.getExe pkgs.nixfmt}" ];
|
|
options = {
|
|
nixos.expr = nixosOpts;
|
|
home-manager.expr = "${nixosOpts}.home-manager.users.type.getSubOptions []";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|