103 lines
2.8 KiB
Nix
103 lines
2.8 KiB
Nix
{
|
|
description = "A wrapper for Helix that provides language support";
|
|
|
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
outputs = {nixpkgs, ...}: let
|
|
supportedSystems = nixpkgs.lib.systems.flakeExposed;
|
|
forAllSupportedSystems = f:
|
|
nixpkgs.lib.genAttrs supportedSystems (
|
|
system:
|
|
f (import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
})
|
|
);
|
|
in {
|
|
packages = forAllSupportedSystems (pkgs: {
|
|
default = let
|
|
package = pkgs.helix;
|
|
in
|
|
pkgs.symlinkJoin {
|
|
name = package.pname;
|
|
paths = [package];
|
|
buildInputs = [pkgs.makeWrapper];
|
|
postBuild = ''
|
|
wrapProgram $out/bin/${package.meta.mainProgram} \
|
|
--suffix PATH : ${pkgs.lib.makeBinPath (builtins.attrValues {
|
|
# Language support
|
|
inherit
|
|
(pkgs)
|
|
# LSP
|
|
clang-tools
|
|
clojure-lsp
|
|
cmake-language-server
|
|
dart
|
|
docker-compose-language-service
|
|
dockerfile-language-server-nodejs
|
|
emmet-ls
|
|
gopls
|
|
jdt-language-server
|
|
kotlin-language-server
|
|
lua-language-server
|
|
marksman
|
|
nil
|
|
perlnavigator
|
|
pyright
|
|
rust-analyzer
|
|
taplo
|
|
terraform-ls
|
|
texlab
|
|
tinymist
|
|
vscode-langservers-extracted
|
|
yaml-language-server
|
|
zls
|
|
# DAP
|
|
omnisharp-roslyn
|
|
lldb
|
|
netcoredbg
|
|
delve
|
|
;
|
|
inherit
|
|
(pkgs.nodePackages_latest)
|
|
# LSP
|
|
bash-language-server
|
|
graphql-language-service-cli
|
|
intelephense
|
|
svelte-language-server
|
|
typescript-language-server
|
|
vls
|
|
;
|
|
inherit
|
|
(pkgs.rubyPackages)
|
|
# LSP
|
|
solargraph
|
|
;
|
|
inherit
|
|
(pkgs.python3Packages)
|
|
# LSP
|
|
python-lsp-server
|
|
;
|
|
inherit
|
|
(pkgs.kdePackages)
|
|
# LSP
|
|
qtdeclarative
|
|
;
|
|
inherit
|
|
(pkgs.ocamlPackages)
|
|
# LSP
|
|
ocaml-lsp
|
|
;
|
|
# Clipboard support
|
|
inherit
|
|
(pkgs)
|
|
wl-clipboard
|
|
;
|
|
})}
|
|
'';
|
|
inherit (package) meta;
|
|
};
|
|
});
|
|
};
|
|
}
|