-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprogramming.nix
More file actions
180 lines (180 loc) · 4.76 KB
/
programming.nix
File metadata and controls
180 lines (180 loc) · 4.76 KB
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
{pkgs, lib, ...}:
{
# run the emacs server daemon so starting emacs (as a client) is super fast:
services.emacs = {
enable = true;
package = (with pkgs; (
(emacsPackagesFor emacs-pgtk).emacsWithPackages (epkgs: with epkgs; [
evil # evil-mode provides vim keybindings (but not in everything! but better than viper, the builtin vim keybindings)
ess # Emacs Speaks Statistics (R and SAS)
projectile # project management?
neotree
ob-rust # org-babel
rust-mode
ob-elm
org # let's see if this satisfies the req's of ob-elm, company-org-block, and ox-reveal?
elm-mode
treesit-grammars.with-all-grammars
#tree-sitter-langs
company # means "complete any"
# company-stan
company-math
company-jedi # python
company-ghci # haskell
#company-org-block # org block autocompletion?
company-c-headers
company-nixos-options
company-native-complete
helm
flycheck
magit
lsp-mode
evil-markdown
htmlize
ox-reveal
zotero
fira-code-mode
doom-themes
doom-modeline
adwaita-dark-theme
gnuplot
gnuplot-mode
lsp-pyright
]
)
));
};
environment.systemPackages = with pkgs; [
## Programming languages and related utils
gnumake
entr # run commands when files change, ie: ls . | entr python -m main
rlwrap # readline wrap?
sbcl # Steel Bank Common Lisp (Cargegie Mellon)
jdk21 # Java 21
#android-studio-full
#qemu-utils
# jdk17
#### C/C++ programming:
valgrind
#gcc # conflicts with clang, I prefer clang error messages
gdb
openmpi # not sure if this works with clang
clang # conflicts with gcc...
#### Oracle:
oracle-instantclient
#### Scala:
spark
sbt
#hadoop # I think this is provided by spark because collisions
#### Markdown and document processing:
pandoc # written in Haskell, maybe this should be in console.nix?
#### R command line environment, RPackages.nix because RStudio in gui.nix
(rWrapper.override {packages = import ./RPackages.nix {inherit pkgs; }; })
#### Python:
uv # replace pip and package your python stuff better?
pyright # Python linting tools, uses nodejs, probably why here and not below.
(python3.withPackages (ps: with ps; [
ollama # python lib to interface with ollama
#stem # tor
python-sat # commented to demo
# jedi-language-server
# pycosat
# pillow
# types-pillow
requests
# types-requests
# beautifulsoup4
guppy3 # get heap/memory layout info
# pip
# numpy
# numpy-stl # stereolithography
# scipy
# mypy
# flake8
# pytest
# coverage
# cython
# wheel
jupyterlab
# flax
# pyspark
# networkx
# pygraphviz
# pygame
# #tensorflow
# # tensorflow-datasets
# #keras
# # torchaudio
# # #jupyterlab_lsp # pypi says requires:
pandas
statsmodels
ipython
scikit-learn
# sympy
# #tornado
# # flask
# # django
# # pympler
# # pyqtgraph
]))
#### Haskell
(haskellPackages.ghcWithPackages (pkgs: with pkgs; [
cabal-install
lens
yesod-bin
tasty
# # intero # marked broken
hlint # req'd by haskell layer
hspec
pandoc
# apply-refact # req'd
stylish-haskell # marked broken
hasktags
hoogle
# # ghc-mod # marked broken
# #haskell-lsp
# #hie # not defined
ihaskell # maybe { allowBroken = true; }
Euterpea
]))
#### Go:
go
#### Rust:
rustc
cargo
rustfmt
rust-script
#### Node and Javascript:
nodejs
deno
] ++ (with nodePackages; [
npm
typescript
typescript-language-server
#ts-node # removed, support now built into node?
#create-next-app
#react-tools
#yarn # TODO - do I need this for hadoop or does hadoop supply its own?
#### Elm:
]) ++ (with elmPackages; [
elm
#elm-format
elm-analyse # lint?
#elm-coverage # removed? no longer available...
elm-test
elm-review
elm-language-server
elm-optimize-level-2
elm-live # live reload
]) ++ [
# do I need these?:
kubectl # kubernetes
#docker # why?
podman-desktop # replaces docker (why ?) do I need this in addition to enable above?
openshift
#minishift # discontinued upstream, use crc instead
# Not using below because it requires NetworkManager
#crc # manage local OpenShift 4.x cluster or Podman VM optimized for testing and development
ansible
];
}