-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdev.nix
executable file
·82 lines (71 loc) · 1.59 KB
/
dev.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
{ config, lib, pkgs, ... }: {
environment.systemPackages = with pkgs; [
# tools of the trade
gnumake
cmake
automake
autoconf
libtool
neovim # backup editor of choice, after emacs ;)
# publishing
tectonic # lean latex builds
pandoc
python39Packages.pygments
# languages
rustup
sbcl
nodejs
yarn
kotlin
python3
jq # transforms json documents
# ocaml for compilers class
ocaml
ocamlformat # formatter
ocamlPackages.ocp-indent # backup formatter
ocamlPackages.ocaml-lsp
ocamlPackages.merlin
# Spellcheck
(aspellWithDicts (dicts: with dicts; [ en en-computers en-science ]))
# fancy tools
awscli
# formatters + language servers
editorconfig-core-c
nixfmt-classic
html-tidy
pipenv
# python37Packages.python-language-server
black
nodePackages.typescript-language-server
nodePackages.prettier
nodePackages.vscode-langservers-extracted
rust-analyzer
pgformatter
python39Packages.sqlparse
sqls
clang-tools
shfmt
stylelint
shellcheck
emacs-lsp-booster
# development apps
plantuml # plain-text diagrams!
# editing!
zstd # compression for emacs session files
pinentry-emacs
sqlite
];
fonts.packages = with pkgs; [ nerdfonts ];
nixpkgs.overlays = [
(self: super: {
emacsCustom = super.emacs.override {
withPgtk = true;
withSQLite3 = true;
# withWebP = true;
withNativeCompilation = true;
};
})
];
# Android debugging.
programs.adb.enable = true;
}