132 lines
1.8 KiB
Nix
132 lines
1.8 KiB
Nix
{ pkgs, ... }:
|
|
with pkgs;
|
|
let
|
|
|
|
tools = [
|
|
fswatch # File watcher utility, replacing libuv.fs_event for neovim 10.0
|
|
fzf
|
|
git
|
|
sqlite
|
|
tree-sitter
|
|
];
|
|
|
|
c = [
|
|
clang
|
|
clang-tools
|
|
cmake
|
|
gcc
|
|
gnumake
|
|
];
|
|
|
|
gamedev = [
|
|
# parser, linter and formatter for GDScript
|
|
gdtoolkit_3
|
|
gdtoolkit_4
|
|
];
|
|
|
|
golang = [
|
|
delve # debugger
|
|
go
|
|
gofumpt
|
|
goimports-reviser
|
|
golines
|
|
gopls
|
|
gotools
|
|
];
|
|
|
|
haskell = [
|
|
haskell-language-server
|
|
ghc
|
|
];
|
|
|
|
lua = [
|
|
lua-language-server
|
|
stylua
|
|
];
|
|
|
|
markup = [
|
|
cbfmt # format codeblocks
|
|
codespell
|
|
markdownlint-cli
|
|
mdformat
|
|
typst-lsp
|
|
];
|
|
|
|
nix = [
|
|
alejandra
|
|
nixd
|
|
nixfmt-rfc-style
|
|
nixpkgs-fmt
|
|
statix
|
|
];
|
|
|
|
python = [
|
|
black
|
|
isort
|
|
python311Packages.jedi-language-server
|
|
ruff
|
|
ruff-lsp
|
|
];
|
|
|
|
rust = [
|
|
rustToolchain
|
|
bacon # background code check
|
|
];
|
|
rustToolchain = pkgs.fenix.stable.withComponents [
|
|
"cargo"
|
|
"clippy"
|
|
"rust-src"
|
|
"rustc"
|
|
"rustfmt"
|
|
"rust-analyzer"
|
|
];
|
|
|
|
shell = [
|
|
nodePackages.bash-language-server
|
|
shellcheck
|
|
shfmt
|
|
];
|
|
|
|
web = [
|
|
deno
|
|
nodePackages.sql-formatter
|
|
nodePackages.typescript-language-server
|
|
nodejs
|
|
prettierd # multi-language formatters
|
|
vscode-langservers-extracted
|
|
yarn
|
|
];
|
|
|
|
extraPackages =
|
|
tools
|
|
++ c
|
|
++ gamedev
|
|
++ golang
|
|
++ haskell
|
|
++ lua
|
|
++ markup
|
|
++ nix
|
|
++ python
|
|
++ rust
|
|
++ shell
|
|
++ web;
|
|
in
|
|
|
|
{
|
|
# for quick development
|
|
home.packages = rust;
|
|
|
|
programs.neovim = {
|
|
enable = true;
|
|
defaultEditor = true;
|
|
package = pkgs.neovim-unwrapped;
|
|
plugins = with pkgs.vimPlugins; [ telescope-cheat-nvim ];
|
|
inherit extraPackages;
|
|
};
|
|
|
|
programs.helix = {
|
|
enable = true;
|
|
inherit extraPackages;
|
|
};
|
|
}
|