nixos/pkgs/helix/default.nix

66 lines
1.3 KiB
Nix

{
lib,
pkgs,
inputs,
...
}@args:
let
inherit (inputs.helix.packages."${pkgs.system}") helix helix-unwrapped;
helix-core = helix-unwrapped.overrideAttrs {
HELIX_DEFAULT_RUNTIME = "${grammarRuntime}";
};
helix-wrapped = (helix.override grammarConfig).passthru.wrapper helix-core;
grammars = import ./grammars args;
grammarOverlays = grammars.overlays;
grammarRuntime = grammars.runtime;
grammarConfig = {
inherit grammarOverlays;
};
runtimeInputs = (
with pkgs;
[
idris2Packages.idris2Lsp
lua-language-server
bash-language-server
hurl
cmake-language-server
kdlfmt
rustfmt
clang-tools
libxml2
typstyle
pyright
ruff
gotools
yaml-language-server
taplo
markdown-oxide
nixd
deno
nixfmt-rfc-style
vscode-langservers-extracted
fish-lsp
gopls
golangci-lint-langserver
tinymist
delve
# lldb
rust-analyzer
nil
haskell-language-server
neocmakelsp
]
);
in
pkgs.symlinkJoin {
name = "helix-wrapped";
paths = [ helix-wrapped ];
inherit (helix-wrapped) meta;
buildInputs = [
pkgs.makeWrapper
];
postBuild = ''
wrapProgram $out/bin/hx \
--suffix PATH : ${lib.makeBinPath runtimeInputs}
'';
}