2024-04-05 22:56:00 +02:00
|
|
|
{ lib, pkgs, system, config, ... }:
|
|
|
|
let
|
|
|
|
flakePkg = ref: (builtins.getFlake ref).packages.${system}.default;
|
|
|
|
default-packages = with pkgs; [
|
2024-05-04 13:09:32 +02:00
|
|
|
# MISSING: haxe_language_server, racket_langserver, zls
|
2024-04-05 22:56:00 +02:00
|
|
|
# Language Servers
|
2024-04-10 18:03:17 +02:00
|
|
|
(pkgs.linkFarm "clang-nvim" (map
|
|
|
|
(bin: { name = "bin/${bin}"; path = "${clang-tools}/bin/${bin}"; })
|
|
|
|
[ "clangd" "clang-format" ])) # Don't include everything from clang-tools
|
2024-04-05 22:56:00 +02:00
|
|
|
elixir-ls
|
2024-05-04 13:09:32 +02:00
|
|
|
(pkgs.stdenv.mkDerivation {
|
|
|
|
name = "glsl-analyzer";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "nolanderc";
|
|
|
|
repo = "glsl_analyzer";
|
|
|
|
rev = "3514b232795858c6a1870832d2ff033eb54103ab";
|
|
|
|
leaveDotGit = true;
|
|
|
|
hash = "sha256-2+Q9A6QXbMuwlHRK2d1xxK3OBzk/I/cw96H6o4YnVKc=";
|
|
|
|
};
|
|
|
|
|
|
|
|
dontConfigure = true;
|
|
|
|
|
|
|
|
nativeBuildInputs = with pkgs; [ zig_0_12.hook git ];
|
|
|
|
})
|
2024-04-05 22:56:00 +02:00
|
|
|
jdt-language-server
|
|
|
|
lua-language-server
|
2024-05-04 13:09:32 +02:00
|
|
|
(flakePkg "github:oxalica/nil")
|
2024-04-05 22:56:00 +02:00
|
|
|
ocamlPackages.ocaml-lsp
|
|
|
|
openscad-lsp
|
2024-05-04 13:09:32 +02:00
|
|
|
(pkgs.rustPlatform.buildRustPackage {
|
|
|
|
name = "prosemd-lsp";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
|
|
owner = "kitten";
|
|
|
|
repo = "prosemd-lsp";
|
|
|
|
rev = "d6073d9ec269cec820b3efc77e0f62bcff47790e";
|
|
|
|
hash = "sha256-Mkbl8wT04sNjV7fpDJh9HbEqnCdi6SMXdlPCbT2801c=";
|
|
|
|
};
|
|
|
|
|
|
|
|
cargoSha256 = "sha256-/jx1hC/98v5L8XLG3ecFkk5H60HDtaKede+a8HDeFk4=";
|
|
|
|
})
|
2024-04-05 22:56:00 +02:00
|
|
|
taplo
|
|
|
|
vscode-langservers-extracted # cssls, eslint, html, jsonls
|
|
|
|
|
|
|
|
# Formatters
|
|
|
|
(pkgs.linkFarm "prettier" [{ name = "bin/prettier"; path = "${nodePackages.prettier}/bin/prettier"; }]) # needed due to symlink shenanigans
|
|
|
|
fnlfmt
|
|
|
|
nixpkgs-fmt
|
2024-05-04 13:09:32 +02:00
|
|
|
shfmt
|
|
|
|
stylua
|
2024-04-05 22:56:00 +02:00
|
|
|
|
|
|
|
# Misc
|
|
|
|
html-tidy
|
|
|
|
shellcheck
|
|
|
|
];
|
|
|
|
in
|
|
|
|
{
|
|
|
|
options.cgnix.nvim-tools = lib.mkOption {
|
|
|
|
default = default-packages;
|
|
|
|
};
|
|
|
|
|
|
|
|
config.cgnix.entries.nvim_tools = pkgs.symlinkJoin {
|
|
|
|
name = "nvim-tools";
|
|
|
|
paths = config.cgnix.nvim-tools;
|
|
|
|
};
|
|
|
|
}
|