aboutsummaryrefslogtreecommitdiff
path: root/overlays/emacs/packages.nix
blob: d7ada545fefcf23dc57be1e6205b11fd02e3a3ad (plain)
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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
# https://github.com/jwiegley/nix-config/blob/master/overlays/10-emacs.nix
{ pkgs, ... }:
let
  inherit (pkgs) fetchurl fetchgit fetchFromGitHub stdenv;

  withPatches = pkg: patches:
    pkg.OverrideAttrs(attrs: { inherit patches; });
  compileElispFiles = pkgs.callPackage ./builders/elisp.nix;
  fetchFromEmacsWiki = pkgs.callPackage ({ fetchurl, name, sha256 }:
    fetchurl {
      inherit sha256;
      url = "https://www.emacswiki.org/emacs/download/" + name;
    });
  compileEmacsWikiFile = { name, sha256, buildInputs ? [], patches ? [] }:
    compileElispFiles {
      inherit name buildInputs patches;
      src = fetchFromEmacsWiki { inherit name sha256; };
    };
in rec {
  ascii = compileEmacsWikiFile {
    name = "ascii.el";
    sha256 = "1ijpnk334fbah94vm7dkcd2w4zcb0l7yn4nr9rwgpr2l25llnr0f";
  };
  hexrgb = compileEmacsWikiFile {
    name = "hexrgb.el";
    sha256 = "18hb8brf7x92aidjfgczxangri6rkqq4x5d06lh41193f97rslm8";
  };

  palette = compileEmacsWikiFile {
    name = "palette.el";
    sha256 = "149y6bmn0njgq632m9zdnaaw7wrvxvfqndpqlgcizn6dwzixiih6";
    buildInputs = [ hexrgb ];
  };

  awqat = compileElispFiles {
    name = "awqat.el";
    src = fetchFromGitHub {
      owner = "waqtalsalah";
      repo = "awqat";
      rev = "09106d79f50a1b8fbb0cbc017da0714a7c4ce3b3";
      sha256 = "1my82b2yzirzmphv25cyk0yldvg0fxaa43vrpxg7x6ldn7npvfvj";
    };
  };

  emacs-package-list = (epkgs: (with epkgs.melpaPackages; [
    all-the-icons
    all-the-icons-dired
    all-the-icons-gnus
    all-the-icons-ibuffer
    add-node-modules-path
    ag
    alchemist
    anaconda-mode
    anti-zenburn-theme
    anzu
    auctex-latexmk
    autodisass-java-bytecode
    avy
    bash-completion
    bind-key
    bnf-mode
    browse-kill-ring
    buffer-move
    bundler
    cider
    cljsbuild-mode
    clojure-mode
    coffee-mode
    company
    counsel
    counsel-projectile
    counsel-tramp
    coverlay
    css-eldoc
    csv
    d-mode
    dap-mode
    define-word
    diff-hl
    diminish
    direnv
    disable-mouse
    docker
    docker-compose-mode
    docker-tramp
    dockerfile-mode
    doom-themes
    editorconfig
    edts
    ein
    elein
    elfeed
    elfeed-org
    elixir-mode
    elm-mode
    erlang
    ess
    exec-path-from-shell
    expand-region
    f
    flycheck
    flycheck-clojure
    flycheck-color-mode-line
    flycheck-credo
    flycheck-elixir
    flycheck-elm
    flycheck-haskell
    flycheck-ledger
    flycheck-ocaml
    flycheck-popup-tip
    flycheck-pos-tip
    flycheck-posframe
    flycheck-rust
    flycheck-vale
    fold-dwim
    forge
    fullframe
    geben
    geben-helm-projectile
    geiser
    git-auto-commit-mode
    git-commit
    git-timemachine
    gitconfig-mode
    gitignore-mode
    go-autocomplete
    go-eldoc
    go-mode
    go-stacktracer
    #goto-gem
    gnuplot
    graphviz-dot-mode
    guix
    gxref
    haml-mode
    haskell-mode
    helm
    helm-bbdb
    helm-bibtex
    helm-descbinds
    helm-flycheck
    helm-flyspell
    helm-gtags
    helm-lsp
    helm-mu
    helm-pass
    helm-projectile
    helm-rg
    helm-sql-connect
    helm-tramp
    helm-wordnet
    helm-xref
    highlight-escape-sequences
    #hindent
    htmlize
    hydra
    ibuffer-vc
    import-js
    inf-ruby
    ivy
    jedi
    js-comint
    js2-mode
    json-mode
    ledger-mode
    less-css-mode
    list-unicode-display
    lsp-haskell
    lsp-mode
    lsp-java
    lsp-ui
    magit
    markdown-mode
    mbsync
    mmm-mode
    modus-themes
    mpdel
    multiple-cursors
    mwim
    nix-buffer
    nix-mode
    nix-update
    ob-elixir
    ob-go
    ob-ipython
    ob-mongo
    olivetti
    org-babel-eval-in-repl
    org-cliplink
    org-gcal
    org-pomodoro
    org-projectile
    org-ref
    org-sync
    ox-gfm
    page-break-lines
    pass
    pcmpl-args
    pcmpl-git
    pcmpl-pip
    pcomplete-extension
    pdf-tools
    peep-dired
    php-mode
    pip-requirements
    polymode
    projectile
    racer
    rainbow-delimiters
    realgud
    realgud-jdb
    regex-tool
    robe
    rspec-mode
    ruby-compilation
    ruby-hash-syntax
    rust-mode
    sass-mode
    scss-mode
    session
    skewer-less
    skewer-mode
    smartparens
    smex
    smooth-scrolling
    solarized-theme
    spacemacs-theme
    spaceline
    swiper
    swiper-helm
    switch-window
    tagedit
    toml-mode
    treemacs
    treemacs-all-the-icons
    tuareg
    typescript-mode
    unfill
    unicode-fonts
    unicode-whitespace
    use-package
    virtualenvwrapper
    wgrep-ag
    which-key
    whitespace-cleanup-mode
    whole-line-or-region
    with-editor
    xref-js2
    yari
    yasnippet
    z3-mode
    zeal-at-point
    zenburn-theme
  ]) ++ (with epkgs.elpaPackages; [
    auctex
    pinentry
    python
    rainbow-mode
    spinner
    undo-tree
  ]) ++ (with epkgs.melpaStablePackages; [
  ]) ++ [
    awqat
    ascii
    hexrgb
  ]);
}