tangled
alpha
login
or
join now
hauleth.dev
/
dotfiles
1
fork
atom
this repo has no description
1
fork
atom
overview
issues
pulls
pipelines
Replace Lexical with Expert
hauleth.dev
1 week ago
1fed8203
055c73a7
verified
This commit was signed with the committer's
known signature
.
hauleth.dev
SSH Key Fingerprint:
SHA256:1hEP8QO8nM2KQfQ8jK4Q19y/CmqVZQI/cNSht3c1QlI=
+82
-84
7 changed files
expand all
collapse all
unified
split
dev_shells.nix
flake.lock
flake.nix
modules
fish.nix
nvim
fnl
langclient.fnl
nvim.nix
templates
elixir
flake.nix
+1
-4
dev_shells.nix
···
5
5
lib,
6
6
stdenv,
7
7
darwin,
8
8
-
lexical,
9
8
livebook,
10
9
}: {
11
10
livebook = pkgs.mkShell {
···
21
20
packages = [
22
21
erlang
23
22
rebar3
24
24
-
erlang-ls
25
23
];
26
24
};
27
25
28
28
-
elixir = with beam.packages.erlang_27;
26
26
+
elixir = with beam.packages.erlang;
29
27
mkShell {
30
28
packages =
31
29
[
32
30
elixir
33
33
-
lexical
34
31
];
35
32
};
36
33
+68
-67
flake.lock
···
21
21
"type": "github"
22
22
}
23
23
},
24
24
+
"beam-flakes": {
25
25
+
"inputs": {
26
26
+
"flake-parts": [
27
27
+
"expert",
28
28
+
"flake-parts"
29
29
+
],
30
30
+
"nixpkgs": [
31
31
+
"expert",
32
32
+
"nixpkgs"
33
33
+
]
34
34
+
},
35
35
+
"locked": {
36
36
+
"lastModified": 1771594669,
37
37
+
"narHash": "sha256-bjqfo3IobpY0se/LOL6U7J0AodvMTZjZad1x3XLc7HY=",
38
38
+
"owner": "elixir-tools",
39
39
+
"repo": "nix-beam-flakes",
40
40
+
"rev": "da950d6652b5b4bc43ee7c440a39097b4d96e448",
41
41
+
"type": "github"
42
42
+
},
43
43
+
"original": {
44
44
+
"owner": "elixir-tools",
45
45
+
"repo": "nix-beam-flakes",
46
46
+
"type": "github"
47
47
+
}
48
48
+
},
24
49
"darwin": {
25
50
"inputs": {
26
51
"nixpkgs": [
···
57
82
"type": "github"
58
83
}
59
84
},
85
85
+
"expert": {
86
86
+
"inputs": {
87
87
+
"beam-flakes": "beam-flakes",
88
88
+
"flake-parts": "flake-parts",
89
89
+
"nixpkgs": [
90
90
+
"nixpkgs"
91
91
+
]
92
92
+
},
93
93
+
"locked": {
94
94
+
"lastModified": 1772206698,
95
95
+
"narHash": "sha256-wyEBuDbmkifIphiSddyZu/IAVrud1Iu1AyNXVkCTWB0=",
96
96
+
"owner": "elixir-lang",
97
97
+
"repo": "expert",
98
98
+
"rev": "44a43e2d146ddb1a5cd9cce35b5cd7cd8947a94f",
99
99
+
"type": "github"
100
100
+
},
101
101
+
"original": {
102
102
+
"owner": "elixir-lang",
103
103
+
"repo": "expert",
104
104
+
"type": "github"
105
105
+
}
106
106
+
},
60
107
"flake-parts": {
61
108
"inputs": {
62
109
"nixpkgs-lib": "nixpkgs-lib"
···
80
127
"nixpkgs-lib": "nixpkgs-lib_2"
81
128
},
82
129
"locked": {
83
83
-
"lastModified": 1719994518,
84
84
-
"narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=",
130
130
+
"lastModified": 1769996383,
131
131
+
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
85
132
"owner": "hercules-ci",
86
133
"repo": "flake-parts",
87
87
-
"rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7",
134
134
+
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
88
135
"type": "github"
89
136
},
90
137
"original": {
···
110
157
},
111
158
"flake-utils_2": {
112
159
"inputs": {
113
113
-
"systems": "systems_2"
160
160
+
"systems": "systems"
114
161
},
115
162
"locked": {
116
163
"lastModified": 1731533236,
···
161
208
"type": "github"
162
209
}
163
210
},
164
164
-
"lexical": {
165
165
-
"inputs": {
166
166
-
"flake-parts": "flake-parts_2",
167
167
-
"nixpkgs": "nixpkgs",
168
168
-
"systems": "systems"
169
169
-
},
170
170
-
"locked": {
171
171
-
"lastModified": 1739906465,
172
172
-
"narHash": "sha256-p8XSJBX1igwC+ssEJGD8wb/ZYaEgLGozlY8N6spo3cA=",
173
173
-
"owner": "lexical-lsp",
174
174
-
"repo": "lexical",
175
175
-
"rev": "477e8b418b27960710109d0014167bb371b0cade",
176
176
-
"type": "github"
177
177
-
},
178
178
-
"original": {
179
179
-
"owner": "lexical-lsp",
180
180
-
"repo": "lexical",
181
181
-
"type": "github"
182
182
-
}
183
183
-
},
184
211
"lix": {
185
212
"flake": false,
186
213
"locked": {
···
220
247
},
221
248
"nixpkgs": {
222
249
"locked": {
223
223
-
"lastModified": 1719931832,
224
224
-
"narHash": "sha256-0LD+KePCKKEb4CcPsTBOwf019wDtZJanjoKm1S8q3Do=",
250
250
+
"lastModified": 1771147098,
251
251
+
"narHash": "sha256-jpfPdBjKO232s5NueoNEvvVzpndiUzPLNYcH4/Ov0gY=",
225
252
"owner": "NixOS",
226
253
"repo": "nixpkgs",
227
227
-
"rev": "0aeab749216e4c073cece5d34bc01b79e717c3e0",
254
254
+
"rev": "e3cb16bccd9facebae3ba29c6a76a4cc1b73462a",
228
255
"type": "github"
229
256
},
230
257
"original": {
231
231
-
"id": "nixpkgs",
232
232
-
"type": "indirect"
258
258
+
"owner": "NixOS",
259
259
+
"ref": "nixpkgs-unstable",
260
260
+
"repo": "nixpkgs",
261
261
+
"type": "github"
233
262
}
234
263
},
235
264
"nixpkgs-lib": {
···
249
278
},
250
279
"nixpkgs-lib_2": {
251
280
"locked": {
252
252
-
"lastModified": 1719876945,
253
253
-
"narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=",
254
254
-
"type": "tarball",
255
255
-
"url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz"
256
256
-
},
257
257
-
"original": {
258
258
-
"type": "tarball",
259
259
-
"url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz"
260
260
-
}
261
261
-
},
262
262
-
"nixpkgs_2": {
263
263
-
"locked": {
264
264
-
"lastModified": 1771147098,
265
265
-
"narHash": "sha256-jpfPdBjKO232s5NueoNEvvVzpndiUzPLNYcH4/Ov0gY=",
266
266
-
"owner": "NixOS",
267
267
-
"repo": "nixpkgs",
268
268
-
"rev": "e3cb16bccd9facebae3ba29c6a76a4cc1b73462a",
281
281
+
"lastModified": 1769909678,
282
282
+
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
283
283
+
"owner": "nix-community",
284
284
+
"repo": "nixpkgs.lib",
285
285
+
"rev": "72716169fe93074c333e8d0173151350670b824c",
269
286
"type": "github"
270
287
},
271
288
"original": {
272
272
-
"owner": "NixOS",
273
273
-
"ref": "nixpkgs-unstable",
274
274
-
"repo": "nixpkgs",
289
289
+
"owner": "nix-community",
290
290
+
"repo": "nixpkgs.lib",
275
291
"type": "github"
276
292
}
277
293
},
···
280
296
"agnoster": "agnoster",
281
297
"darwin": "darwin",
282
298
"darwin-stable": "darwin-stable",
283
283
-
"flake-parts": "flake-parts",
299
299
+
"expert": "expert",
300
300
+
"flake-parts": "flake-parts_2",
284
301
"home-manager": "home-manager",
285
285
-
"lexical": "lexical",
286
302
"lix": "lix",
287
303
"lix-module": "lix-module",
288
288
-
"nixpkgs": "nixpkgs_2"
304
304
+
"nixpkgs": "nixpkgs"
289
305
}
290
306
},
291
307
"systems": {
292
292
-
"locked": {
293
293
-
"lastModified": 1681028828,
294
294
-
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
295
295
-
"owner": "nix-systems",
296
296
-
"repo": "default",
297
297
-
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
298
298
-
"type": "github"
299
299
-
},
300
300
-
"original": {
301
301
-
"owner": "nix-systems",
302
302
-
"repo": "default",
303
303
-
"type": "github"
304
304
-
}
305
305
-
},
306
306
-
"systems_2": {
307
308
"locked": {
308
309
"lastModified": 1681028828,
309
310
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+3
-2
flake.nix
···
34
34
# inputs.nixpkgs.follows = "nixpkgs";
35
35
# };
36
36
37
37
-
lexical = {
38
38
-
url = "github:lexical-lsp/lexical";
37
37
+
expert = {
38
38
+
url = "github:elixir-lang/expert";
39
39
+
inputs.nixpkgs.follows = "nixpkgs";
39
40
};
40
41
41
42
# nixvim = {
+1
modules/fish.nix
···
23
23
home.sessionVariables = {
24
24
PAGER = "${pkgs.less}/bin/less";
25
25
MANPAGER = "nvim +Man!";
26
26
+
MANWIDTH = 80;
26
27
LESS = "-SRFXi";
27
28
ERL_FLAGS = "-kernel shell_history enabled";
28
29
};
+2
-4
modules/nvim.nix
···
10
10
#
11
11
# runtimepath editing is not yet perfect, but works good enough so far
12
12
customRC = let
13
13
-
lexical = pkgs.lexical.override {
14
14
-
beamPackages = pkgs.beam27Packages;
15
15
-
};
13
13
+
expert = inputs.expert.packages.${pkgs.stdenv.hostPlatform.system}.expert;
16
14
in ''
17
15
set runtimepath+=${./nvim}/after
18
16
set runtimepath^=${./nvim}
19
17
lua << EOF
20
18
vim.g.lsp_paths = {
21
19
['rust_analyzer'] = "${pkgs.rust-analyzer}/bin/rust-analyzer",
22
22
-
['lexical'] = "${lexical}/bin/lexical",
20
20
+
['expert'] = "${expert}/bin/expert",
23
21
['elp'] = "${pkgs.erlang-language-platform}/bin/elp",
24
22
['typos_lsp'] = "${pkgs.typos-lsp}/bin/typos-lsp"
25
23
}
+7
-3
modules/nvim/fnl/langclient.fnl
···
3
3
(use nvim {: fun : cmd : opt : map :buf-map bmap})
4
4
(use picker)
5
5
(import-macros logger :nvim.logger)
6
6
-
(import-macros {: augroup} :nvim)
6
6
+
(import-macros {: augroup : defcommand} :nvim)
7
7
8
8
(let [lsp vim.lsp
9
9
border :rounded]
···
40
40
:cmd [vim.g.lsp_paths.rust_analyzer]
41
41
:settings {:rust-analyzer {:files {:excludeDirs [".direnv"]}}}})
42
42
43
43
-
(setup :lexical {
43
43
+
(setup :expert {
44
44
:root_markers [ "mix.exs" ".git" ".jj" ]
45
45
:filetypes [ "elixir" "eelixir" "heex" ]
46
46
-
:cmd [vim.g.lsp_paths.lexical]})
46
46
+
:cmd [vim.g.lsp_paths.expert "--stdio"]})
47
47
48
48
(setup :elp {
49
49
:root_markers [ "rebar.config" ]
···
67
67
; :cmd [vim.g.lsm_paths.taplo :lsp :stdio]})
68
68
69
69
; (augroup lsp-direnv (on User :DirenvLoaded (cmd.LspStart)))
70
70
+
71
71
+
(defcommand LspRestart {:nargs 1}
72
72
+
(vim.lsp.enable (tostring args) false)
73
73
+
(vim.lsp.enable (tostring args) true))
-4
templates/elixir/flake.nix
···
34
34
}: {
35
35
devenv.shells.default = {
36
36
language.elixir.enable = true;
37
37
-
38
38
-
packages = [
39
39
-
pkgs.lexical
40
40
-
];
41
37
};
42
38
};
43
39
};