This commit is contained in:
Lukas Wurzinger 2024-12-14 09:37:14 +01:00
parent c150747784
commit 3247594e7b
2 changed files with 108 additions and 81 deletions

View file

@ -15,87 +15,7 @@
); );
in { in {
packages = forAllSupportedSystems (pkgs: { packages = forAllSupportedSystems (pkgs: {
default = let default = pkgs.callPackage ./package.nix {};
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
;
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;
};
}); });
}; };
} }

107
package.nix Normal file
View file

@ -0,0 +1,107 @@
{
helix,
symlinkJoin,
pkgs,
}: let
languageServers = [
# C & C++
pkgs.clang-tools
# Clojure
pkgs.clojure-lsp
# Dart
pkgs.dart
# Go
pkgs.gopls
# Java
pkgs.jdt-language-server
# Kotlin
pkgs.kotlin-language-server
# Lua
pkgs.lua-language-server
# Nix
pkgs.nil
# Perl
pkgs.perlnavigator
# Python
pkgs.python3Packages.python-lsp-server
pkgs.python3Packages.python-lsp-ruff
# Rust
pkgs.rust-analyzer
# Zig
pkgs.zls
# C#
pkgs.omnisharp-roslyn
# PHP
pkgs.nodePackages_latest.intelephense
# TypeScript
pkgs.nodePackages_latest.typescript-language-server
# Ruby
pkgs.rubyPackages.solargraph
# OCaml
pkgs.ocamlPackages.ocaml-lsp
# Bash
pkgs.nodePackages_latest.bash-language-server
# HTML & CSS tooling
pkgs.emmet-ls
# HTML & CSS & JSON & ESLint
pkgs.vscode-langservers-extracted
# Markdown
pkgs.marksman
# LaTeX
pkgs.texlab
# Typst
pkgs.tinymist
# CMake
pkgs.cmake-language-server
# Docker
pkgs.docker-compose-language-service
pkgs.dockerfile-language-server-nodejs
# Terraform
pkgs.terraform-ls
# YAML
pkgs.yaml-language-server
# TOML
pkgs.taplo
# QML
pkgs.kdePackages.qtdeclarative
# Svelte
pkgs.nodePackages_latest.svelte-language-server
# GraphQL
pkgs.nodePackages_latest.graphql-language-service-cli
];
debugAdapters = [
# C & C++
pkgs.lldb
# C#
pkgs.netcoredbg
# Go
pkgs.delve
];
clipboardProviders = [
pkgs.wl-clipboard
];
in
symlinkJoin {
name = helix.pname;
paths = [helix];
buildInputs = [pkgs.makeWrapper];
postBuild = ''
wrapProgram $out/bin/${helix.meta.mainProgram} \
--suffix PATH : ${pkgs.lib.makeBinPath (languageServers ++ debugAdapters ++ clipboardProviders)}
'';
inherit (helix) meta;
}