diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Cargo.lock | 1285 | ||||
-rw-r--r-- | crates/ra_cli/Cargo.toml | 1 | ||||
-rw-r--r-- | crates/ra_cli/src/main.rs | 33 | ||||
-rw-r--r-- | crates/ra_editor/src/extend_selection.rs | 14 | ||||
-rw-r--r-- | crates/ra_syntax/src/algo/mod.rs | 6 | ||||
-rw-r--r-- | editors/emacs/ra.el | 87 |
7 files changed, 1422 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore index f7723af00..531323cf0 100644 --- a/.gitignore +++ b/.gitignore | |||
@@ -1,5 +1,4 @@ | |||
1 | /target/ | 1 | /target/ |
2 | **/*.rs.bk | 2 | **/*.rs.bk |
3 | Cargo.lock | ||
4 | .vscode/* | 3 | .vscode/* |
5 | *.log | 4 | *.log |
diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 000000000..e51fd4a7a --- /dev/null +++ b/Cargo.lock | |||
@@ -0,0 +1,1285 @@ | |||
1 | [[package]] | ||
2 | name = "aho-corasick" | ||
3 | version = "0.6.8" | ||
4 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
5 | dependencies = [ | ||
6 | "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
7 | ] | ||
8 | |||
9 | [[package]] | ||
10 | name = "ansi_term" | ||
11 | version = "0.11.0" | ||
12 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
13 | dependencies = [ | ||
14 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
15 | ] | ||
16 | |||
17 | [[package]] | ||
18 | name = "arrayvec" | ||
19 | version = "0.4.7" | ||
20 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
21 | dependencies = [ | ||
22 | "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", | ||
23 | ] | ||
24 | |||
25 | [[package]] | ||
26 | name = "atty" | ||
27 | version = "0.2.11" | ||
28 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
29 | dependencies = [ | ||
30 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
31 | "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
32 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
33 | ] | ||
34 | |||
35 | [[package]] | ||
36 | name = "backtrace" | ||
37 | version = "0.3.9" | ||
38 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
39 | dependencies = [ | ||
40 | "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", | ||
41 | "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
42 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
43 | "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", | ||
44 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
45 | ] | ||
46 | |||
47 | [[package]] | ||
48 | name = "backtrace-sys" | ||
49 | version = "0.1.24" | ||
50 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
51 | dependencies = [ | ||
52 | "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", | ||
53 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
54 | ] | ||
55 | |||
56 | [[package]] | ||
57 | name = "base64" | ||
58 | version = "0.9.3" | ||
59 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
60 | dependencies = [ | ||
61 | "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
62 | "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
63 | ] | ||
64 | |||
65 | [[package]] | ||
66 | name = "bitflags" | ||
67 | version = "1.0.4" | ||
68 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
69 | |||
70 | [[package]] | ||
71 | name = "byteorder" | ||
72 | version = "1.2.6" | ||
73 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
74 | |||
75 | [[package]] | ||
76 | name = "cargo_metadata" | ||
77 | version = "0.6.0" | ||
78 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
79 | dependencies = [ | ||
80 | "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
81 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
82 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
83 | "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
84 | "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", | ||
85 | ] | ||
86 | |||
87 | [[package]] | ||
88 | name = "cc" | ||
89 | version = "1.0.25" | ||
90 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
91 | |||
92 | [[package]] | ||
93 | name = "cfg-if" | ||
94 | version = "0.1.5" | ||
95 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
96 | |||
97 | [[package]] | ||
98 | name = "chrono" | ||
99 | version = "0.4.6" | ||
100 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
101 | dependencies = [ | ||
102 | "num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", | ||
103 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
104 | "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", | ||
105 | ] | ||
106 | |||
107 | [[package]] | ||
108 | name = "clap" | ||
109 | version = "2.32.0" | ||
110 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
111 | dependencies = [ | ||
112 | "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
113 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", | ||
114 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
115 | "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
116 | "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
117 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
118 | "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
119 | ] | ||
120 | |||
121 | [[package]] | ||
122 | name = "cloudabi" | ||
123 | version = "0.0.3" | ||
124 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
125 | dependencies = [ | ||
126 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
127 | ] | ||
128 | |||
129 | [[package]] | ||
130 | name = "crossbeam-channel" | ||
131 | version = "0.2.5" | ||
132 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
133 | dependencies = [ | ||
134 | "crossbeam-epoch 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
135 | "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
136 | "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
137 | "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
138 | "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
139 | ] | ||
140 | |||
141 | [[package]] | ||
142 | name = "crossbeam-deque" | ||
143 | version = "0.2.0" | ||
144 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
145 | dependencies = [ | ||
146 | "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
147 | "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
148 | ] | ||
149 | |||
150 | [[package]] | ||
151 | name = "crossbeam-epoch" | ||
152 | version = "0.3.1" | ||
153 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
154 | dependencies = [ | ||
155 | "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", | ||
156 | "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
157 | "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
158 | "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
159 | "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
160 | "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", | ||
161 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
162 | ] | ||
163 | |||
164 | [[package]] | ||
165 | name = "crossbeam-epoch" | ||
166 | version = "0.6.0" | ||
167 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
168 | dependencies = [ | ||
169 | "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", | ||
170 | "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
171 | "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
172 | "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
173 | "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
174 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
175 | ] | ||
176 | |||
177 | [[package]] | ||
178 | name = "crossbeam-utils" | ||
179 | version = "0.2.2" | ||
180 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
181 | dependencies = [ | ||
182 | "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
183 | ] | ||
184 | |||
185 | [[package]] | ||
186 | name = "crossbeam-utils" | ||
187 | version = "0.5.0" | ||
188 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
189 | |||
190 | [[package]] | ||
191 | name = "deunicode" | ||
192 | version = "0.4.3" | ||
193 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
194 | |||
195 | [[package]] | ||
196 | name = "difference" | ||
197 | version = "2.0.0" | ||
198 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
199 | |||
200 | [[package]] | ||
201 | name = "drop_bomb" | ||
202 | version = "0.1.4" | ||
203 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
204 | |||
205 | [[package]] | ||
206 | name = "either" | ||
207 | version = "1.5.0" | ||
208 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
209 | |||
210 | [[package]] | ||
211 | name = "error-chain" | ||
212 | version = "0.12.0" | ||
213 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
214 | dependencies = [ | ||
215 | "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", | ||
216 | ] | ||
217 | |||
218 | [[package]] | ||
219 | name = "failure" | ||
220 | version = "0.1.2" | ||
221 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
222 | dependencies = [ | ||
223 | "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", | ||
224 | "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
225 | ] | ||
226 | |||
227 | [[package]] | ||
228 | name = "failure_derive" | ||
229 | version = "0.1.2" | ||
230 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
231 | dependencies = [ | ||
232 | "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||
233 | "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
234 | "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", | ||
235 | "synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
236 | ] | ||
237 | |||
238 | [[package]] | ||
239 | name = "flexi_logger" | ||
240 | version = "0.9.2" | ||
241 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
242 | dependencies = [ | ||
243 | "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
244 | "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", | ||
245 | "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
246 | "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
247 | ] | ||
248 | |||
249 | [[package]] | ||
250 | name = "fst" | ||
251 | version = "0.3.2" | ||
252 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
253 | dependencies = [ | ||
254 | "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
255 | "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
256 | ] | ||
257 | |||
258 | [[package]] | ||
259 | name = "fuchsia-zircon" | ||
260 | version = "0.3.3" | ||
261 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
262 | dependencies = [ | ||
263 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
264 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
265 | ] | ||
266 | |||
267 | [[package]] | ||
268 | name = "fuchsia-zircon-sys" | ||
269 | version = "0.3.3" | ||
270 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
271 | |||
272 | [[package]] | ||
273 | name = "gen_lsp_server" | ||
274 | version = "0.1.0" | ||
275 | dependencies = [ | ||
276 | "crossbeam-channel 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
277 | "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
278 | "languageserver-types 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
279 | "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
280 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
281 | "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
282 | "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", | ||
283 | ] | ||
284 | |||
285 | [[package]] | ||
286 | name = "glob" | ||
287 | version = "0.2.11" | ||
288 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
289 | |||
290 | [[package]] | ||
291 | name = "heck" | ||
292 | version = "0.3.0" | ||
293 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
294 | dependencies = [ | ||
295 | "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
296 | ] | ||
297 | |||
298 | [[package]] | ||
299 | name = "humansize" | ||
300 | version = "1.1.0" | ||
301 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
302 | |||
303 | [[package]] | ||
304 | name = "idna" | ||
305 | version = "0.1.5" | ||
306 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
307 | dependencies = [ | ||
308 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
309 | "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
310 | "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", | ||
311 | ] | ||
312 | |||
313 | [[package]] | ||
314 | name = "im" | ||
315 | version = "12.0.0" | ||
316 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
317 | dependencies = [ | ||
318 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
319 | "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
320 | ] | ||
321 | |||
322 | [[package]] | ||
323 | name = "itertools" | ||
324 | version = "0.7.8" | ||
325 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
326 | dependencies = [ | ||
327 | "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
328 | ] | ||
329 | |||
330 | [[package]] | ||
331 | name = "itoa" | ||
332 | version = "0.4.3" | ||
333 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
334 | |||
335 | [[package]] | ||
336 | name = "join_to_string" | ||
337 | version = "0.1.1" | ||
338 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
339 | |||
340 | [[package]] | ||
341 | name = "languageserver-types" | ||
342 | version = "0.50.0" | ||
343 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
344 | dependencies = [ | ||
345 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
346 | "num-derive 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
347 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
348 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
349 | "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
350 | "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", | ||
351 | "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
352 | "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
353 | ] | ||
354 | |||
355 | [[package]] | ||
356 | name = "lazy_static" | ||
357 | version = "1.1.0" | ||
358 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
359 | dependencies = [ | ||
360 | "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
361 | ] | ||
362 | |||
363 | [[package]] | ||
364 | name = "libc" | ||
365 | version = "0.2.43" | ||
366 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
367 | |||
368 | [[package]] | ||
369 | name = "lock_api" | ||
370 | version = "0.1.3" | ||
371 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
372 | dependencies = [ | ||
373 | "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
374 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
375 | ] | ||
376 | |||
377 | [[package]] | ||
378 | name = "log" | ||
379 | version = "0.4.5" | ||
380 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
381 | dependencies = [ | ||
382 | "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
383 | ] | ||
384 | |||
385 | [[package]] | ||
386 | name = "matches" | ||
387 | version = "0.1.8" | ||
388 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
389 | |||
390 | [[package]] | ||
391 | name = "memchr" | ||
392 | version = "2.0.2" | ||
393 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
394 | dependencies = [ | ||
395 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
396 | ] | ||
397 | |||
398 | [[package]] | ||
399 | name = "memmap" | ||
400 | version = "0.6.2" | ||
401 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
402 | dependencies = [ | ||
403 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
404 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
405 | ] | ||
406 | |||
407 | [[package]] | ||
408 | name = "memoffset" | ||
409 | version = "0.2.1" | ||
410 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
411 | |||
412 | [[package]] | ||
413 | name = "nodrop" | ||
414 | version = "0.1.12" | ||
415 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
416 | |||
417 | [[package]] | ||
418 | name = "num-derive" | ||
419 | version = "0.2.2" | ||
420 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
421 | dependencies = [ | ||
422 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
423 | "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||
424 | "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
425 | "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", | ||
426 | ] | ||
427 | |||
428 | [[package]] | ||
429 | name = "num-integer" | ||
430 | version = "0.1.39" | ||
431 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
432 | dependencies = [ | ||
433 | "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
434 | ] | ||
435 | |||
436 | [[package]] | ||
437 | name = "num-traits" | ||
438 | version = "0.2.6" | ||
439 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
440 | |||
441 | [[package]] | ||
442 | name = "num_cpus" | ||
443 | version = "1.8.0" | ||
444 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
445 | dependencies = [ | ||
446 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
447 | ] | ||
448 | |||
449 | [[package]] | ||
450 | name = "once_cell" | ||
451 | version = "0.1.5" | ||
452 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
453 | dependencies = [ | ||
454 | "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
455 | ] | ||
456 | |||
457 | [[package]] | ||
458 | name = "owning_ref" | ||
459 | version = "0.3.3" | ||
460 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
461 | dependencies = [ | ||
462 | "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
463 | ] | ||
464 | |||
465 | [[package]] | ||
466 | name = "parking_lot" | ||
467 | version = "0.6.4" | ||
468 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
469 | dependencies = [ | ||
470 | "lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
471 | "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
472 | ] | ||
473 | |||
474 | [[package]] | ||
475 | name = "parking_lot_core" | ||
476 | version = "0.3.1" | ||
477 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
478 | dependencies = [ | ||
479 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
480 | "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
481 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
482 | "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
483 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
484 | ] | ||
485 | |||
486 | [[package]] | ||
487 | name = "percent-encoding" | ||
488 | version = "1.0.1" | ||
489 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
490 | |||
491 | [[package]] | ||
492 | name = "pest" | ||
493 | version = "1.0.6" | ||
494 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
495 | |||
496 | [[package]] | ||
497 | name = "pest_derive" | ||
498 | version = "1.0.8" | ||
499 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
500 | dependencies = [ | ||
501 | "pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
502 | "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", | ||
503 | "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)", | ||
504 | ] | ||
505 | |||
506 | [[package]] | ||
507 | name = "proc-macro2" | ||
508 | version = "0.4.19" | ||
509 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
510 | dependencies = [ | ||
511 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
512 | ] | ||
513 | |||
514 | [[package]] | ||
515 | name = "quote" | ||
516 | version = "0.3.15" | ||
517 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
518 | |||
519 | [[package]] | ||
520 | name = "quote" | ||
521 | version = "0.6.8" | ||
522 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
523 | dependencies = [ | ||
524 | "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||
525 | ] | ||
526 | |||
527 | [[package]] | ||
528 | name = "ra_analysis" | ||
529 | version = "0.1.0" | ||
530 | dependencies = [ | ||
531 | "crossbeam-channel 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
532 | "fst 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
533 | "im 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
534 | "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
535 | "once_cell 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
536 | "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
537 | "ra_editor 0.1.0", | ||
538 | "ra_syntax 0.1.0", | ||
539 | "rayon 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
540 | "relative-path 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", | ||
541 | "salsa 0.1.0", | ||
542 | "test_utils 0.1.0", | ||
543 | ] | ||
544 | |||
545 | [[package]] | ||
546 | name = "ra_cli" | ||
547 | version = "0.1.0" | ||
548 | dependencies = [ | ||
549 | "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
550 | "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
551 | "join_to_string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
552 | "ra_editor 0.1.0", | ||
553 | "ra_syntax 0.1.0", | ||
554 | "tools 0.1.0", | ||
555 | ] | ||
556 | |||
557 | [[package]] | ||
558 | name = "ra_editor" | ||
559 | version = "0.1.0" | ||
560 | dependencies = [ | ||
561 | "itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
562 | "join_to_string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
563 | "ra_syntax 0.1.0", | ||
564 | "superslice 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
565 | "test_utils 0.1.0", | ||
566 | ] | ||
567 | |||
568 | [[package]] | ||
569 | name = "ra_lsp_server" | ||
570 | version = "0.1.0" | ||
571 | dependencies = [ | ||
572 | "cargo_metadata 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
573 | "crossbeam-channel 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
574 | "drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
575 | "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
576 | "flexi_logger 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
577 | "gen_lsp_server 0.1.0", | ||
578 | "im 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
579 | "languageserver-types 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
580 | "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
581 | "ra_analysis 0.1.0", | ||
582 | "ra_editor 0.1.0", | ||
583 | "ra_syntax 0.1.0", | ||
584 | "rayon 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
585 | "relative-path 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", | ||
586 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
587 | "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
588 | "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", | ||
589 | "smol_str 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
590 | "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", | ||
591 | "text_unit 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
592 | "url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
593 | "walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
594 | ] | ||
595 | |||
596 | [[package]] | ||
597 | name = "ra_syntax" | ||
598 | version = "0.1.0" | ||
599 | dependencies = [ | ||
600 | "drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
601 | "itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
602 | "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
603 | "smol_str 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
604 | "test_utils 0.1.0", | ||
605 | "text_unit 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
606 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
607 | "walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
608 | ] | ||
609 | |||
610 | [[package]] | ||
611 | name = "rand" | ||
612 | version = "0.4.3" | ||
613 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
614 | dependencies = [ | ||
615 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
616 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
617 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
618 | ] | ||
619 | |||
620 | [[package]] | ||
621 | name = "rand" | ||
622 | version = "0.5.5" | ||
623 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
624 | dependencies = [ | ||
625 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
626 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
627 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
628 | "rand_core 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
629 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
630 | ] | ||
631 | |||
632 | [[package]] | ||
633 | name = "rand_core" | ||
634 | version = "0.2.1" | ||
635 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
636 | |||
637 | [[package]] | ||
638 | name = "rayon" | ||
639 | version = "1.0.2" | ||
640 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
641 | dependencies = [ | ||
642 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
643 | "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
644 | "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
645 | ] | ||
646 | |||
647 | [[package]] | ||
648 | name = "rayon-core" | ||
649 | version = "1.4.1" | ||
650 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
651 | dependencies = [ | ||
652 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
653 | "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
654 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
655 | "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
656 | ] | ||
657 | |||
658 | [[package]] | ||
659 | name = "redox_syscall" | ||
660 | version = "0.1.40" | ||
661 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
662 | |||
663 | [[package]] | ||
664 | name = "redox_termios" | ||
665 | version = "0.1.1" | ||
666 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
667 | dependencies = [ | ||
668 | "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", | ||
669 | ] | ||
670 | |||
671 | [[package]] | ||
672 | name = "regex" | ||
673 | version = "1.0.5" | ||
674 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
675 | dependencies = [ | ||
676 | "aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
677 | "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
678 | "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
679 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
680 | "utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
681 | ] | ||
682 | |||
683 | [[package]] | ||
684 | name = "regex-syntax" | ||
685 | version = "0.6.2" | ||
686 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
687 | dependencies = [ | ||
688 | "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
689 | ] | ||
690 | |||
691 | [[package]] | ||
692 | name = "relative-path" | ||
693 | version = "0.3.7" | ||
694 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
695 | |||
696 | [[package]] | ||
697 | name = "remove_dir_all" | ||
698 | version = "0.5.1" | ||
699 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
700 | dependencies = [ | ||
701 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
702 | ] | ||
703 | |||
704 | [[package]] | ||
705 | name = "ron" | ||
706 | version = "0.3.0" | ||
707 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
708 | dependencies = [ | ||
709 | "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
710 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
711 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
712 | ] | ||
713 | |||
714 | [[package]] | ||
715 | name = "rustc-demangle" | ||
716 | version = "0.1.9" | ||
717 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
718 | |||
719 | [[package]] | ||
720 | name = "rustc_version" | ||
721 | version = "0.2.3" | ||
722 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
723 | dependencies = [ | ||
724 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
725 | ] | ||
726 | |||
727 | [[package]] | ||
728 | name = "ryu" | ||
729 | version = "0.2.6" | ||
730 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
731 | |||
732 | [[package]] | ||
733 | name = "safemem" | ||
734 | version = "0.3.0" | ||
735 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
736 | |||
737 | [[package]] | ||
738 | name = "salsa" | ||
739 | version = "0.1.0" | ||
740 | dependencies = [ | ||
741 | "im 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
742 | "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
743 | ] | ||
744 | |||
745 | [[package]] | ||
746 | name = "same-file" | ||
747 | version = "1.0.3" | ||
748 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
749 | dependencies = [ | ||
750 | "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
751 | ] | ||
752 | |||
753 | [[package]] | ||
754 | name = "scopeguard" | ||
755 | version = "0.3.3" | ||
756 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
757 | |||
758 | [[package]] | ||
759 | name = "semver" | ||
760 | version = "0.9.0" | ||
761 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
762 | dependencies = [ | ||
763 | "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
764 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
765 | ] | ||
766 | |||
767 | [[package]] | ||
768 | name = "semver-parser" | ||
769 | version = "0.7.0" | ||
770 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
771 | |||
772 | [[package]] | ||
773 | name = "serde" | ||
774 | version = "1.0.79" | ||
775 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
776 | dependencies = [ | ||
777 | "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
778 | ] | ||
779 | |||
780 | [[package]] | ||
781 | name = "serde_derive" | ||
782 | version = "1.0.79" | ||
783 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
784 | dependencies = [ | ||
785 | "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||
786 | "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
787 | "syn 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
788 | ] | ||
789 | |||
790 | [[package]] | ||
791 | name = "serde_json" | ||
792 | version = "1.0.27" | ||
793 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
794 | dependencies = [ | ||
795 | "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
796 | "ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
797 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
798 | ] | ||
799 | |||
800 | [[package]] | ||
801 | name = "slug" | ||
802 | version = "0.1.4" | ||
803 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
804 | dependencies = [ | ||
805 | "deunicode 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
806 | ] | ||
807 | |||
808 | [[package]] | ||
809 | name = "smallvec" | ||
810 | version = "0.6.5" | ||
811 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
812 | dependencies = [ | ||
813 | "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
814 | ] | ||
815 | |||
816 | [[package]] | ||
817 | name = "smol_str" | ||
818 | version = "0.1.6" | ||
819 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
820 | dependencies = [ | ||
821 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
822 | ] | ||
823 | |||
824 | [[package]] | ||
825 | name = "stable_deref_trait" | ||
826 | version = "1.1.1" | ||
827 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
828 | |||
829 | [[package]] | ||
830 | name = "strsim" | ||
831 | version = "0.7.0" | ||
832 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
833 | |||
834 | [[package]] | ||
835 | name = "superslice" | ||
836 | version = "0.1.0" | ||
837 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
838 | |||
839 | [[package]] | ||
840 | name = "syn" | ||
841 | version = "0.11.11" | ||
842 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
843 | dependencies = [ | ||
844 | "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", | ||
845 | "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
846 | "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
847 | ] | ||
848 | |||
849 | [[package]] | ||
850 | name = "syn" | ||
851 | version = "0.14.9" | ||
852 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
853 | dependencies = [ | ||
854 | "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||
855 | "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
856 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
857 | ] | ||
858 | |||
859 | [[package]] | ||
860 | name = "syn" | ||
861 | version = "0.15.4" | ||
862 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
863 | dependencies = [ | ||
864 | "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||
865 | "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
866 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
867 | ] | ||
868 | |||
869 | [[package]] | ||
870 | name = "synom" | ||
871 | version = "0.11.3" | ||
872 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
873 | dependencies = [ | ||
874 | "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
875 | ] | ||
876 | |||
877 | [[package]] | ||
878 | name = "synstructure" | ||
879 | version = "0.9.0" | ||
880 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
881 | dependencies = [ | ||
882 | "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||
883 | "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
884 | "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", | ||
885 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
886 | ] | ||
887 | |||
888 | [[package]] | ||
889 | name = "tempdir" | ||
890 | version = "0.3.7" | ||
891 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
892 | dependencies = [ | ||
893 | "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
894 | "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
895 | ] | ||
896 | |||
897 | [[package]] | ||
898 | name = "tera" | ||
899 | version = "0.11.16" | ||
900 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
901 | dependencies = [ | ||
902 | "chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
903 | "error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
904 | "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", | ||
905 | "humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
906 | "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
907 | "pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||
908 | "pest_derive 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
909 | "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
910 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
911 | "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", | ||
912 | "slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
913 | "unic-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
914 | "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
915 | ] | ||
916 | |||
917 | [[package]] | ||
918 | name = "termion" | ||
919 | version = "1.5.1" | ||
920 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
921 | dependencies = [ | ||
922 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
923 | "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", | ||
924 | "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
925 | ] | ||
926 | |||
927 | [[package]] | ||
928 | name = "test_utils" | ||
929 | version = "0.1.0" | ||
930 | dependencies = [ | ||
931 | "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
932 | "itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
933 | "text_unit 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", | ||
934 | ] | ||
935 | |||
936 | [[package]] | ||
937 | name = "text_unit" | ||
938 | version = "0.1.4" | ||
939 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
940 | dependencies = [ | ||
941 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
942 | ] | ||
943 | |||
944 | [[package]] | ||
945 | name = "textwrap" | ||
946 | version = "0.10.0" | ||
947 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
948 | dependencies = [ | ||
949 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
950 | ] | ||
951 | |||
952 | [[package]] | ||
953 | name = "thread_local" | ||
954 | version = "0.3.6" | ||
955 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
956 | dependencies = [ | ||
957 | "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
958 | ] | ||
959 | |||
960 | [[package]] | ||
961 | name = "time" | ||
962 | version = "0.1.40" | ||
963 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
964 | dependencies = [ | ||
965 | "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", | ||
966 | "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", | ||
967 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
968 | ] | ||
969 | |||
970 | [[package]] | ||
971 | name = "tools" | ||
972 | version = "0.1.0" | ||
973 | dependencies = [ | ||
974 | "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
975 | "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
976 | "heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
977 | "itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
978 | "ron 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
979 | "tera 0.11.16 (registry+https://github.com/rust-lang/crates.io-index)", | ||
980 | "walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
981 | ] | ||
982 | |||
983 | [[package]] | ||
984 | name = "typenum" | ||
985 | version = "1.10.0" | ||
986 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
987 | |||
988 | [[package]] | ||
989 | name = "ucd-util" | ||
990 | version = "0.1.1" | ||
991 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
992 | |||
993 | [[package]] | ||
994 | name = "unic-char-property" | ||
995 | version = "0.7.0" | ||
996 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
997 | dependencies = [ | ||
998 | "unic-char-range 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
999 | ] | ||
1000 | |||
1001 | [[package]] | ||
1002 | name = "unic-char-range" | ||
1003 | version = "0.7.0" | ||
1004 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1005 | |||
1006 | [[package]] | ||
1007 | name = "unic-common" | ||
1008 | version = "0.7.0" | ||
1009 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1010 | |||
1011 | [[package]] | ||
1012 | name = "unic-segment" | ||
1013 | version = "0.7.0" | ||
1014 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1015 | dependencies = [ | ||
1016 | "unic-ucd-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1017 | ] | ||
1018 | |||
1019 | [[package]] | ||
1020 | name = "unic-ucd-segment" | ||
1021 | version = "0.7.0" | ||
1022 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1023 | dependencies = [ | ||
1024 | "unic-char-property 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1025 | "unic-char-range 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1026 | "unic-ucd-version 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1027 | ] | ||
1028 | |||
1029 | [[package]] | ||
1030 | name = "unic-ucd-version" | ||
1031 | version = "0.7.0" | ||
1032 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1033 | dependencies = [ | ||
1034 | "unic-common 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1035 | ] | ||
1036 | |||
1037 | [[package]] | ||
1038 | name = "unicode-bidi" | ||
1039 | version = "0.3.4" | ||
1040 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1041 | dependencies = [ | ||
1042 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1043 | ] | ||
1044 | |||
1045 | [[package]] | ||
1046 | name = "unicode-normalization" | ||
1047 | version = "0.1.7" | ||
1048 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1049 | |||
1050 | [[package]] | ||
1051 | name = "unicode-segmentation" | ||
1052 | version = "1.2.1" | ||
1053 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1054 | |||
1055 | [[package]] | ||
1056 | name = "unicode-width" | ||
1057 | version = "0.1.5" | ||
1058 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1059 | |||
1060 | [[package]] | ||
1061 | name = "unicode-xid" | ||
1062 | version = "0.0.4" | ||
1063 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1064 | |||
1065 | [[package]] | ||
1066 | name = "unicode-xid" | ||
1067 | version = "0.1.0" | ||
1068 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1069 | |||
1070 | [[package]] | ||
1071 | name = "unreachable" | ||
1072 | version = "1.0.0" | ||
1073 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1074 | dependencies = [ | ||
1075 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1076 | ] | ||
1077 | |||
1078 | [[package]] | ||
1079 | name = "url" | ||
1080 | version = "1.7.1" | ||
1081 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1082 | dependencies = [ | ||
1083 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1084 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1085 | "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1086 | ] | ||
1087 | |||
1088 | [[package]] | ||
1089 | name = "url_serde" | ||
1090 | version = "0.2.0" | ||
1091 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1092 | dependencies = [ | ||
1093 | "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1094 | "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1095 | ] | ||
1096 | |||
1097 | [[package]] | ||
1098 | name = "utf8-ranges" | ||
1099 | version = "1.0.1" | ||
1100 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1101 | |||
1102 | [[package]] | ||
1103 | name = "vec_map" | ||
1104 | version = "0.8.1" | ||
1105 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1106 | |||
1107 | [[package]] | ||
1108 | name = "version_check" | ||
1109 | version = "0.1.4" | ||
1110 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1111 | |||
1112 | [[package]] | ||
1113 | name = "void" | ||
1114 | version = "1.0.2" | ||
1115 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1116 | |||
1117 | [[package]] | ||
1118 | name = "walkdir" | ||
1119 | version = "2.2.5" | ||
1120 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1121 | dependencies = [ | ||
1122 | "same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1123 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1124 | "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1125 | ] | ||
1126 | |||
1127 | [[package]] | ||
1128 | name = "winapi" | ||
1129 | version = "0.3.5" | ||
1130 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1131 | dependencies = [ | ||
1132 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1133 | "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1134 | ] | ||
1135 | |||
1136 | [[package]] | ||
1137 | name = "winapi-i686-pc-windows-gnu" | ||
1138 | version = "0.4.0" | ||
1139 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1140 | |||
1141 | [[package]] | ||
1142 | name = "winapi-util" | ||
1143 | version = "0.1.1" | ||
1144 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1145 | dependencies = [ | ||
1146 | "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", | ||
1147 | ] | ||
1148 | |||
1149 | [[package]] | ||
1150 | name = "winapi-x86_64-pc-windows-gnu" | ||
1151 | version = "0.4.0" | ||
1152 | source = "registry+https://github.com/rust-lang/crates.io-index" | ||
1153 | |||
1154 | [metadata] | ||
1155 | "checksum aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "68f56c7353e5a9547cbd76ed90f7bb5ffc3ba09d4ea9bd1d8c06c8b1142eeb5a" | ||
1156 | "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" | ||
1157 | "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" | ||
1158 | "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" | ||
1159 | "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" | ||
1160 | "checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" | ||
1161 | "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" | ||
1162 | "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" | ||
1163 | "checksum byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "90492c5858dd7d2e78691cfb89f90d273a2800fc11d98f60786e5d87e2f83781" | ||
1164 | "checksum cargo_metadata 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d6809b327f87369e6f3651efd2c5a96c49847a3ed2559477ecba79014751ee1" | ||
1165 | "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" | ||
1166 | "checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" | ||
1167 | "checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878" | ||
1168 | "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" | ||
1169 | "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" | ||
1170 | "checksum crossbeam-channel 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a5716fadb87a5633db34c5e83ee6e036e6edc229f8a6bfb7c7c84ed340ba95df" | ||
1171 | "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" | ||
1172 | "checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" | ||
1173 | "checksum crossbeam-epoch 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c90f1474584f38e270b5b613e898c8c328aa4f3dea85e0a27ac2e642f009416" | ||
1174 | "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" | ||
1175 | "checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" | ||
1176 | "checksum deunicode 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690" | ||
1177 | "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" | ||
1178 | "checksum drop_bomb 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "69b26e475fd29098530e709294e94e661974c851aed42512793f120fed4e199f" | ||
1179 | "checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" | ||
1180 | "checksum error-chain 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "07e791d3be96241c77c43846b665ef1384606da2cd2a48730abe606a12906e02" | ||
1181 | "checksum failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7efb22686e4a466b1ec1a15c2898f91fa9cb340452496dca654032de20ff95b9" | ||
1182 | "checksum failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "946d0e98a50d9831f5d589038d2ca7f8f455b1c21028c0db0e84116a12696426" | ||
1183 | "checksum flexi_logger 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2103a4bd3f67bf8b3e89fe0695cd13ac23c9968a2a81f2ccf2d95f1bb4e5a520" | ||
1184 | "checksum fst 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9b0408ab57c1bf7c634b2ac6a165d14f642dc3335a43203090a7f8c78b54577b" | ||
1185 | "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" | ||
1186 | "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" | ||
1187 | "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" | ||
1188 | "checksum heck 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ea04fa3ead4e05e51a7c806fc07271fdbde4e246a6c6d1efd52e72230b771b82" | ||
1189 | "checksum humansize 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e" | ||
1190 | "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" | ||
1191 | "checksum im 12.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1ca4b379f0383e3a502dfdd6a9424fd9707633160d5215bb42d7e00db8a056ab" | ||
1192 | "checksum itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f58856976b776fedd95533137617a02fb25719f40e7d9b01c7043cd65474f450" | ||
1193 | "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" | ||
1194 | "checksum join_to_string 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7bddc885f3fd69dd4b5d747c2efe6dd2c36d795ea9938281ed50910e32c95e31" | ||
1195 | "checksum languageserver-types 0.50.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6866bed90d044147c6d71d3e4d31339e356164ab7b76b9fd13ccb1211528e166" | ||
1196 | "checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" | ||
1197 | "checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" | ||
1198 | "checksum lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "949826a5ccf18c1b3a7c3d57692778d21768b79e46eb9dd07bfc4c2160036c54" | ||
1199 | "checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f" | ||
1200 | "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" | ||
1201 | "checksum memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a3b4142ab8738a78c51896f704f83c11df047ff1bda9a92a661aa6361552d93d" | ||
1202 | "checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff" | ||
1203 | "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" | ||
1204 | "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" | ||
1205 | "checksum num-derive 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0d2c31b75c36a993d30c7a13d70513cb93f02acafdd5b7ba250f9b0e18615de7" | ||
1206 | "checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea" | ||
1207 | "checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1" | ||
1208 | "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" | ||
1209 | "checksum once_cell 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "cecf059b719a56d137b66fadaee0781c08b1f61c040c36f5c6851d6769bab0af" | ||
1210 | "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" | ||
1211 | "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" | ||
1212 | "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" | ||
1213 | "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" | ||
1214 | "checksum pest 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0fce5d8b5cc33983fc74f78ad552b5522ab41442c4ca91606e4236eb4b5ceefc" | ||
1215 | "checksum pest_derive 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3294f437119209b084c797604295f40227cffa35c57220b1e99a6ff3bf8ee4" | ||
1216 | "checksum proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "ffe022fb8c8bd254524b0b3305906c1921fa37a84a644e29079a9e62200c3901" | ||
1217 | "checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" | ||
1218 | "checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5" | ||
1219 | "checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" | ||
1220 | "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" | ||
1221 | "checksum rand_core 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "edecf0f94da5551fc9b492093e30b041a891657db7940ee221f9d2f66e82eef2" | ||
1222 | "checksum rayon 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "df7a791f788cb4c516f0e091301a29c2b71ef680db5e644a7d68835c8ae6dbfa" | ||
1223 | "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" | ||
1224 | "checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" | ||
1225 | "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" | ||
1226 | "checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341" | ||
1227 | "checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" | ||
1228 | "checksum relative-path 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "e614f96449605730b4f7ad2c019e88c1652d730634b4eba07b810801856635e3" | ||
1229 | "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" | ||
1230 | "checksum ron 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9fa11b7a38511d46ff1959ae46ebb60bd8a746f17bdd0206b4c8de7559ac47b" | ||
1231 | "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" | ||
1232 | "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" | ||
1233 | "checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7" | ||
1234 | "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" | ||
1235 | "checksum same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10f7794e2fda7f594866840e95f5c5962e886e228e68b6505885811a94dd728c" | ||
1236 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" | ||
1237 | "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" | ||
1238 | "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" | ||
1239 | "checksum serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "84257ccd054dc351472528c8587b4de2dbf0dc0fe2e634030c1a90bfdacebaa9" | ||
1240 | "checksum serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)" = "31569d901045afbff7a9479f793177fe9259819aff10ab4f89ef69bbc5f567fe" | ||
1241 | "checksum serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "59790990c5115d16027f00913e2e66de23a51f70422e549d2ad68c8c5f268f1c" | ||
1242 | "checksum slug 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" | ||
1243 | "checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" | ||
1244 | "checksum smol_str 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "248055d41f4c53f8ee7048e8a578a5190d0cca306630718091e4d481735e44b9" | ||
1245 | "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" | ||
1246 | "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" | ||
1247 | "checksum superslice 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b50b13d42370e0f5fc62eafdd5c2d20065eaf5458dab215ff3e20e63eea96b30" | ||
1248 | "checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" | ||
1249 | "checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" | ||
1250 | "checksum syn 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9056ebe7f2d6a38bc63171816fd1d3430da5a43896de21676dc5c0a4b8274a11" | ||
1251 | "checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" | ||
1252 | "checksum synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb9b7550d063ea184027c9b8c20ac167cd36d3e06b3a40bceb9d746dc1a7b7" | ||
1253 | "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" | ||
1254 | "checksum tera 0.11.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4f79f17fe555fffe4838a082a63636883ee13022888dc7bdc99edad8e0a411cd" | ||
1255 | "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" | ||
1256 | "checksum text_unit 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc86da66d0b9aa8d359b0ec31b4342c6bc52637eadef05b91b098551a9f8e9" | ||
1257 | "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" | ||
1258 | "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" | ||
1259 | "checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" | ||
1260 | "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" | ||
1261 | "checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" | ||
1262 | "checksum unic-char-property 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce36d3f7ce754afdbccccf8ff0dd0134e50fb44aaae579f96218856e9e5dbd1e" | ||
1263 | "checksum unic-char-range 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d9ab85fab42ad1b26cafc03bf891f69cb4d6e15f491030e89a0122197baa8ae8" | ||
1264 | "checksum unic-common 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8d4a7ade929ef7d971e16ced21a8cd56a63869aa6032dfb8cb083cf7d077bf" | ||
1265 | "checksum unic-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c9ca47cbb09fb5fcd066b5867d11dc528302fa465277882797d6a836e1ee6f9e" | ||
1266 | "checksum unic-ucd-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "48f1a08ce0409a9e391b88d1930118eec48af12742fc538bcec55f775865776e" | ||
1267 | "checksum unic-ucd-version 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1f5e6c6c53c2d0ece4a5964bc55fcff8602153063cb4fab20958ff32998ff6" | ||
1268 | "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" | ||
1269 | "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" | ||
1270 | "checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1" | ||
1271 | "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" | ||
1272 | "checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" | ||
1273 | "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" | ||
1274 | "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" | ||
1275 | "checksum url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2a321979c09843d272956e73700d12c4e7d3d92b2ee112b31548aef0d4efc5a6" | ||
1276 | "checksum url_serde 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74e7d099f1ee52f823d4bdd60c93c3602043c728f5db3b97bdb548467f7bddea" | ||
1277 | "checksum utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd70f467df6810094968e2fce0ee1bd0e87157aceb026a8c083bcf5e25b9efe4" | ||
1278 | "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" | ||
1279 | "checksum version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7716c242968ee87e5542f8021178248f267f295a5c4803beae8b8b7fd9bc6051" | ||
1280 | "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" | ||
1281 | "checksum walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "af464bc7be7b785c7ac72e266a6b67c4c9070155606f51655a650a6686204e35" | ||
1282 | "checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd" | ||
1283 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" | ||
1284 | "checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" | ||
1285 | "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" | ||
diff --git a/crates/ra_cli/Cargo.toml b/crates/ra_cli/Cargo.toml index 17011e063..5e7bf3ed4 100644 --- a/crates/ra_cli/Cargo.toml +++ b/crates/ra_cli/Cargo.toml | |||
@@ -7,6 +7,7 @@ publish = false | |||
7 | [dependencies] | 7 | [dependencies] |
8 | clap = "2.32.0" | 8 | clap = "2.32.0" |
9 | failure = "0.1.1" | 9 | failure = "0.1.1" |
10 | join_to_string = "0.1.1" | ||
10 | ra_syntax = { path = "../ra_syntax" } | 11 | ra_syntax = { path = "../ra_syntax" } |
11 | ra_editor = { path = "../ra_editor" } | 12 | ra_editor = { path = "../ra_editor" } |
12 | tools = { path = "../tools" } | 13 | tools = { path = "../tools" } |
diff --git a/crates/ra_cli/src/main.rs b/crates/ra_cli/src/main.rs index 96e5b718c..11605cfd8 100644 --- a/crates/ra_cli/src/main.rs +++ b/crates/ra_cli/src/main.rs | |||
@@ -1,6 +1,7 @@ | |||
1 | extern crate clap; | 1 | extern crate clap; |
2 | #[macro_use] | 2 | #[macro_use] |
3 | extern crate failure; | 3 | extern crate failure; |
4 | extern crate join_to_string; | ||
4 | extern crate ra_syntax; | 5 | extern crate ra_syntax; |
5 | extern crate ra_editor; | 6 | extern crate ra_editor; |
6 | extern crate tools; | 7 | extern crate tools; |
@@ -10,9 +11,10 @@ use std::{ | |||
10 | time::Instant | 11 | time::Instant |
11 | }; | 12 | }; |
12 | use clap::{App, Arg, SubCommand}; | 13 | use clap::{App, Arg, SubCommand}; |
14 | use join_to_string::join; | ||
13 | use tools::collect_tests; | 15 | use tools::collect_tests; |
14 | use ra_syntax::File; | 16 | use ra_syntax::{TextRange, File}; |
15 | use ra_editor::{syntax_tree, file_structure}; | 17 | use ra_editor::{syntax_tree, file_structure, extend_selection}; |
16 | 18 | ||
17 | type Result<T> = ::std::result::Result<T, failure::Error>; | 19 | type Result<T> = ::std::result::Result<T, failure::Error>; |
18 | 20 | ||
@@ -39,6 +41,10 @@ fn main() -> Result<()> { | |||
39 | .arg(Arg::with_name("no-dump").long("--no-dump")) | 41 | .arg(Arg::with_name("no-dump").long("--no-dump")) |
40 | ) | 42 | ) |
41 | .subcommand(SubCommand::with_name("symbols")) | 43 | .subcommand(SubCommand::with_name("symbols")) |
44 | .subcommand(SubCommand::with_name("extend-selection") | ||
45 | .arg(Arg::with_name("start")) | ||
46 | .arg(Arg::with_name("end")) | ||
47 | ) | ||
42 | .get_matches(); | 48 | .get_matches(); |
43 | match matches.subcommand() { | 49 | match matches.subcommand() { |
44 | ("parse", Some(matches)) => { | 50 | ("parse", Some(matches)) => { |
@@ -65,6 +71,13 @@ fn main() -> Result<()> { | |||
65 | let (test, tree) = render_test(file, line)?; | 71 | let (test, tree) = render_test(file, line)?; |
66 | println!("{}\n{}", test, tree); | 72 | println!("{}\n{}", test, tree); |
67 | } | 73 | } |
74 | ("extend-selection", Some(matches)) => { | ||
75 | let start: u32 = matches.value_of("start").unwrap().parse()?; | ||
76 | let end: u32 = matches.value_of("end").unwrap().parse()?; | ||
77 | let file = file()?; | ||
78 | let sels = selections(&file, start, end); | ||
79 | println!("{}", sels) | ||
80 | } | ||
68 | _ => unreachable!(), | 81 | _ => unreachable!(), |
69 | } | 82 | } |
70 | Ok(()) | 83 | Ok(()) |
@@ -95,3 +108,19 @@ fn render_test(file: &Path, line: usize) -> Result<(String, String)> { | |||
95 | let tree = syntax_tree(&file); | 108 | let tree = syntax_tree(&file); |
96 | Ok((test.text, tree)) | 109 | Ok((test.text, tree)) |
97 | } | 110 | } |
111 | |||
112 | fn selections(file: &File, start: u32, end: u32) -> String { | ||
113 | let mut ranges = Vec::new(); | ||
114 | let mut cur = Some(TextRange::from_to((start - 1).into(), (end - 1).into())); | ||
115 | while let Some(r) = cur { | ||
116 | ranges.push(r); | ||
117 | cur = extend_selection(&file, r); | ||
118 | } | ||
119 | let ranges = ranges.iter() | ||
120 | .map(|r| (1 + u32::from(r.start()), 1 + u32::from(r.end()))) | ||
121 | .map(|(s, e)| format!("({} {})", s, e)); | ||
122 | join(ranges) | ||
123 | .separator(" ") | ||
124 | .surround_with("(", ")") | ||
125 | .to_string() | ||
126 | } | ||
diff --git a/crates/ra_editor/src/extend_selection.rs b/crates/ra_editor/src/extend_selection.rs index 5fd1ca4fc..dc914a26a 100644 --- a/crates/ra_editor/src/extend_selection.rs +++ b/crates/ra_editor/src/extend_selection.rs | |||
@@ -64,7 +64,7 @@ fn pick_best<'a>(l: SyntaxNodeRef<'a>, r: SyntaxNodeRef<'a>) -> SyntaxNodeRef<'a | |||
64 | fn priority(n: SyntaxNodeRef) -> usize { | 64 | fn priority(n: SyntaxNodeRef) -> usize { |
65 | match n.kind() { | 65 | match n.kind() { |
66 | WHITESPACE => 0, | 66 | WHITESPACE => 0, |
67 | IDENT | SELF_KW | SUPER_KW | CRATE_KW => 2, | 67 | IDENT | SELF_KW | SUPER_KW | CRATE_KW | LIFETIME => 2, |
68 | _ => 1, | 68 | _ => 1, |
69 | } | 69 | } |
70 | } | 70 | } |
@@ -164,4 +164,16 @@ fn main() { foo+<|>bar;} | |||
164 | &["bar", "foo+bar"] | 164 | &["bar", "foo+bar"] |
165 | ); | 165 | ); |
166 | } | 166 | } |
167 | |||
168 | #[test] | ||
169 | fn test_extend_selection_prefer_lifetimes() { | ||
170 | do_check( | ||
171 | r#"fn foo<<|>'a>() {}"#, | ||
172 | &["'a", "<'a>"] | ||
173 | ); | ||
174 | do_check( | ||
175 | r#"fn foo<'a<|>>() {}"#, | ||
176 | &["'a", "<'a>"] | ||
177 | ); | ||
178 | } | ||
167 | } | 179 | } |
diff --git a/crates/ra_syntax/src/algo/mod.rs b/crates/ra_syntax/src/algo/mod.rs index 7287f5bb2..8de44c586 100644 --- a/crates/ra_syntax/src/algo/mod.rs +++ b/crates/ra_syntax/src/algo/mod.rs | |||
@@ -78,7 +78,11 @@ impl<'f> Iterator for LeafAtOffset<'f> { | |||
78 | } | 78 | } |
79 | 79 | ||
80 | pub fn find_covering_node(root: SyntaxNodeRef, range: TextRange) -> SyntaxNodeRef { | 80 | pub fn find_covering_node(root: SyntaxNodeRef, range: TextRange) -> SyntaxNodeRef { |
81 | assert!(is_subrange(root.range(), range)); | 81 | assert!( |
82 | is_subrange(root.range(), range), | ||
83 | "node range: {:?}, target range: {:?}", | ||
84 | root.range(), range, | ||
85 | ); | ||
82 | let (left, right) = match ( | 86 | let (left, right) = match ( |
83 | find_leaf_at_offset(root, range.start()).right_biased(), | 87 | find_leaf_at_offset(root, range.start()).right_biased(), |
84 | find_leaf_at_offset(root, range.end()).left_biased() | 88 | find_leaf_at_offset(root, range.end()).left_biased() |
diff --git a/editors/emacs/ra.el b/editors/emacs/ra.el new file mode 100644 index 000000000..099f611be --- /dev/null +++ b/editors/emacs/ra.el | |||
@@ -0,0 +1,87 @@ | |||
1 | ;;; ra.el --- Rust analyzer emacs bindings -*- lexical-binding: t; -*- | ||
2 | ;;; Commentary: | ||
3 | ;;; Small utilities for interacting with Rust analyzer. | ||
4 | ;;; Run | ||
5 | ;;; cargo install --git https://github.com/matklad/rust-analyzer/ ra_cli | ||
6 | ;;; to install the analyzer binary. Then copy-paste the bellow code to | ||
7 | ;;; your `.init.el` and use `ra-extend-selection` and | ||
8 | ;;; `ra-shrink-selection` functions. | ||
9 | ;;; Code: | ||
10 | |||
11 | |||
12 | (defvar ra--selections-cache '(0 0 ())) | ||
13 | (defun ra--cache-tick () | ||
14 | "Get buffer modification count for cache." | ||
15 | (nth 0 ra--selections-cache)) | ||
16 | (defun ra--cache-sel () | ||
17 | "Get current selection for cache." | ||
18 | (nth 1 ra--selections-cache)) | ||
19 | (defun ra--cache-nth-sel (n) | ||
20 | "Get Nth selection." | ||
21 | (nth n (nth 2 ra--selections-cache))) | ||
22 | (defun ra--cache-set-nth-sel (n) | ||
23 | "Get Nth selection." | ||
24 | (setf (nth 1 ra--selections-cache) n) | ||
25 | (nth n (nth 2 ra--selections-cache))) | ||
26 | |||
27 | |||
28 | (defun ra-extend-selection () | ||
29 | "Extend START END region to contain the encompassing syntactic construct." | ||
30 | (interactive) | ||
31 | (let* ((p (point)) | ||
32 | (m (or (and mark-active (mark)) p)) | ||
33 | (start (min p m)) | ||
34 | (end (max p m))) | ||
35 | (ra--extend-selection start end))) | ||
36 | |||
37 | |||
38 | (defun ra-shrink-selection (start end) | ||
39 | "Shrink START END region to contain previous selection." | ||
40 | (interactive "r") | ||
41 | (ra--freshen-cache start end) | ||
42 | (let ((sel-id (ra--cache-sel))) | ||
43 | (if (not (= 0 sel-id)) | ||
44 | (let* ((r (ra--cache-set-nth-sel (- sel-id 1)))) | ||
45 | (push-mark (nth 0 r) t t) | ||
46 | (goto-char (nth 1 r)) | ||
47 | (setq deactivate-mark nil))))) | ||
48 | |||
49 | ; Add this to setup keybinding | ||
50 | ; (require 'rust-mode) | ||
51 | ; (define-key rust-mode-map (kbd "C-w") 'ra-extend-selection) | ||
52 | ; (define-key rust-mode-map (kbd "C-S-w") 'ra-shrink-selection) | ||
53 | |||
54 | |||
55 | |||
56 | (defun ra--extend-selection (start end) | ||
57 | "Extend START END region to contain the encompassing syntactic construct." | ||
58 | (ra--freshen-cache start end) | ||
59 | (let* ((next-sel-idx (+ 1 (ra--cache-sel))) | ||
60 | (r (ra--cache-set-nth-sel next-sel-idx))) | ||
61 | (push-mark (nth 0 r) t t) | ||
62 | (goto-char (nth 1 r)) | ||
63 | (setq deactivate-mark nil))) | ||
64 | |||
65 | (defun ra--selections (start end) | ||
66 | "Get list of selections for START END from Rust analyzer." | ||
67 | (read (with-output-to-string | ||
68 | (call-process-region | ||
69 | (point-min) (point-max) | ||
70 | "ra_cli" nil standard-output nil | ||
71 | "extend-selection" | ||
72 | (number-to-string start) | ||
73 | (number-to-string end))))) | ||
74 | |||
75 | (defun ra--freshen-cache (start end) | ||
76 | "Make selection cache up-to-date for current buffer state and START END." | ||
77 | (if (not (and | ||
78 | (= (buffer-modified-tick) (ra--cache-tick)) | ||
79 | (equal `(,start ,end) (ra--cache-nth-sel (ra--cache-sel))))) | ||
80 | (ra--set-cache start end))) | ||
81 | |||
82 | (defun ra--set-cache (start end) | ||
83 | "Set selections cache for current buffer state and START END." | ||
84 | (setq ra--selections-cache `(,(buffer-modified-tick) 0 ,(ra--selections start end)))) | ||
85 | |||
86 | (provide 'ra) | ||
87 | ;;; ra.el ends here | ||