aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Cargo.lock1285
-rw-r--r--crates/ra_cli/Cargo.toml1
-rw-r--r--crates/ra_cli/src/main.rs33
-rw-r--r--crates/ra_editor/src/extend_selection.rs14
-rw-r--r--crates/ra_syntax/src/algo/mod.rs6
-rw-r--r--editors/emacs/ra.el87
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
3Cargo.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]]
2name = "aho-corasick"
3version = "0.6.8"
4source = "registry+https://github.com/rust-lang/crates.io-index"
5dependencies = [
6 "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
7]
8
9[[package]]
10name = "ansi_term"
11version = "0.11.0"
12source = "registry+https://github.com/rust-lang/crates.io-index"
13dependencies = [
14 "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
15]
16
17[[package]]
18name = "arrayvec"
19version = "0.4.7"
20source = "registry+https://github.com/rust-lang/crates.io-index"
21dependencies = [
22 "nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
23]
24
25[[package]]
26name = "atty"
27version = "0.2.11"
28source = "registry+https://github.com/rust-lang/crates.io-index"
29dependencies = [
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]]
36name = "backtrace"
37version = "0.3.9"
38source = "registry+https://github.com/rust-lang/crates.io-index"
39dependencies = [
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]]
48name = "backtrace-sys"
49version = "0.1.24"
50source = "registry+https://github.com/rust-lang/crates.io-index"
51dependencies = [
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]]
57name = "base64"
58version = "0.9.3"
59source = "registry+https://github.com/rust-lang/crates.io-index"
60dependencies = [
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]]
66name = "bitflags"
67version = "1.0.4"
68source = "registry+https://github.com/rust-lang/crates.io-index"
69
70[[package]]
71name = "byteorder"
72version = "1.2.6"
73source = "registry+https://github.com/rust-lang/crates.io-index"
74
75[[package]]
76name = "cargo_metadata"
77version = "0.6.0"
78source = "registry+https://github.com/rust-lang/crates.io-index"
79dependencies = [
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]]
88name = "cc"
89version = "1.0.25"
90source = "registry+https://github.com/rust-lang/crates.io-index"
91
92[[package]]
93name = "cfg-if"
94version = "0.1.5"
95source = "registry+https://github.com/rust-lang/crates.io-index"
96
97[[package]]
98name = "chrono"
99version = "0.4.6"
100source = "registry+https://github.com/rust-lang/crates.io-index"
101dependencies = [
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]]
108name = "clap"
109version = "2.32.0"
110source = "registry+https://github.com/rust-lang/crates.io-index"
111dependencies = [
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]]
122name = "cloudabi"
123version = "0.0.3"
124source = "registry+https://github.com/rust-lang/crates.io-index"
125dependencies = [
126 "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
127]
128
129[[package]]
130name = "crossbeam-channel"
131version = "0.2.5"
132source = "registry+https://github.com/rust-lang/crates.io-index"
133dependencies = [
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]]
142name = "crossbeam-deque"
143version = "0.2.0"
144source = "registry+https://github.com/rust-lang/crates.io-index"
145dependencies = [
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]]
151name = "crossbeam-epoch"
152version = "0.3.1"
153source = "registry+https://github.com/rust-lang/crates.io-index"
154dependencies = [
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]]
165name = "crossbeam-epoch"
166version = "0.6.0"
167source = "registry+https://github.com/rust-lang/crates.io-index"
168dependencies = [
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]]
178name = "crossbeam-utils"
179version = "0.2.2"
180source = "registry+https://github.com/rust-lang/crates.io-index"
181dependencies = [
182 "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
183]
184
185[[package]]
186name = "crossbeam-utils"
187version = "0.5.0"
188source = "registry+https://github.com/rust-lang/crates.io-index"
189
190[[package]]
191name = "deunicode"
192version = "0.4.3"
193source = "registry+https://github.com/rust-lang/crates.io-index"
194
195[[package]]
196name = "difference"
197version = "2.0.0"
198source = "registry+https://github.com/rust-lang/crates.io-index"
199
200[[package]]
201name = "drop_bomb"
202version = "0.1.4"
203source = "registry+https://github.com/rust-lang/crates.io-index"
204
205[[package]]
206name = "either"
207version = "1.5.0"
208source = "registry+https://github.com/rust-lang/crates.io-index"
209
210[[package]]
211name = "error-chain"
212version = "0.12.0"
213source = "registry+https://github.com/rust-lang/crates.io-index"
214dependencies = [
215 "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
216]
217
218[[package]]
219name = "failure"
220version = "0.1.2"
221source = "registry+https://github.com/rust-lang/crates.io-index"
222dependencies = [
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]]
228name = "failure_derive"
229version = "0.1.2"
230source = "registry+https://github.com/rust-lang/crates.io-index"
231dependencies = [
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]]
239name = "flexi_logger"
240version = "0.9.2"
241source = "registry+https://github.com/rust-lang/crates.io-index"
242dependencies = [
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]]
250name = "fst"
251version = "0.3.2"
252source = "registry+https://github.com/rust-lang/crates.io-index"
253dependencies = [
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]]
259name = "fuchsia-zircon"
260version = "0.3.3"
261source = "registry+https://github.com/rust-lang/crates.io-index"
262dependencies = [
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]]
268name = "fuchsia-zircon-sys"
269version = "0.3.3"
270source = "registry+https://github.com/rust-lang/crates.io-index"
271
272[[package]]
273name = "gen_lsp_server"
274version = "0.1.0"
275dependencies = [
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]]
286name = "glob"
287version = "0.2.11"
288source = "registry+https://github.com/rust-lang/crates.io-index"
289
290[[package]]
291name = "heck"
292version = "0.3.0"
293source = "registry+https://github.com/rust-lang/crates.io-index"
294dependencies = [
295 "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
296]
297
298[[package]]
299name = "humansize"
300version = "1.1.0"
301source = "registry+https://github.com/rust-lang/crates.io-index"
302
303[[package]]
304name = "idna"
305version = "0.1.5"
306source = "registry+https://github.com/rust-lang/crates.io-index"
307dependencies = [
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]]
314name = "im"
315version = "12.0.0"
316source = "registry+https://github.com/rust-lang/crates.io-index"
317dependencies = [
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]]
323name = "itertools"
324version = "0.7.8"
325source = "registry+https://github.com/rust-lang/crates.io-index"
326dependencies = [
327 "either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
328]
329
330[[package]]
331name = "itoa"
332version = "0.4.3"
333source = "registry+https://github.com/rust-lang/crates.io-index"
334
335[[package]]
336name = "join_to_string"
337version = "0.1.1"
338source = "registry+https://github.com/rust-lang/crates.io-index"
339
340[[package]]
341name = "languageserver-types"
342version = "0.50.0"
343source = "registry+https://github.com/rust-lang/crates.io-index"
344dependencies = [
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]]
356name = "lazy_static"
357version = "1.1.0"
358source = "registry+https://github.com/rust-lang/crates.io-index"
359dependencies = [
360 "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
361]
362
363[[package]]
364name = "libc"
365version = "0.2.43"
366source = "registry+https://github.com/rust-lang/crates.io-index"
367
368[[package]]
369name = "lock_api"
370version = "0.1.3"
371source = "registry+https://github.com/rust-lang/crates.io-index"
372dependencies = [
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]]
378name = "log"
379version = "0.4.5"
380source = "registry+https://github.com/rust-lang/crates.io-index"
381dependencies = [
382 "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
383]
384
385[[package]]
386name = "matches"
387version = "0.1.8"
388source = "registry+https://github.com/rust-lang/crates.io-index"
389
390[[package]]
391name = "memchr"
392version = "2.0.2"
393source = "registry+https://github.com/rust-lang/crates.io-index"
394dependencies = [
395 "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
396]
397
398[[package]]
399name = "memmap"
400version = "0.6.2"
401source = "registry+https://github.com/rust-lang/crates.io-index"
402dependencies = [
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]]
408name = "memoffset"
409version = "0.2.1"
410source = "registry+https://github.com/rust-lang/crates.io-index"
411
412[[package]]
413name = "nodrop"
414version = "0.1.12"
415source = "registry+https://github.com/rust-lang/crates.io-index"
416
417[[package]]
418name = "num-derive"
419version = "0.2.2"
420source = "registry+https://github.com/rust-lang/crates.io-index"
421dependencies = [
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]]
429name = "num-integer"
430version = "0.1.39"
431source = "registry+https://github.com/rust-lang/crates.io-index"
432dependencies = [
433 "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
434]
435
436[[package]]
437name = "num-traits"
438version = "0.2.6"
439source = "registry+https://github.com/rust-lang/crates.io-index"
440
441[[package]]
442name = "num_cpus"
443version = "1.8.0"
444source = "registry+https://github.com/rust-lang/crates.io-index"
445dependencies = [
446 "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)",
447]
448
449[[package]]
450name = "once_cell"
451version = "0.1.5"
452source = "registry+https://github.com/rust-lang/crates.io-index"
453dependencies = [
454 "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
455]
456
457[[package]]
458name = "owning_ref"
459version = "0.3.3"
460source = "registry+https://github.com/rust-lang/crates.io-index"
461dependencies = [
462 "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
463]
464
465[[package]]
466name = "parking_lot"
467version = "0.6.4"
468source = "registry+https://github.com/rust-lang/crates.io-index"
469dependencies = [
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]]
475name = "parking_lot_core"
476version = "0.3.1"
477source = "registry+https://github.com/rust-lang/crates.io-index"
478dependencies = [
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]]
487name = "percent-encoding"
488version = "1.0.1"
489source = "registry+https://github.com/rust-lang/crates.io-index"
490
491[[package]]
492name = "pest"
493version = "1.0.6"
494source = "registry+https://github.com/rust-lang/crates.io-index"
495
496[[package]]
497name = "pest_derive"
498version = "1.0.8"
499source = "registry+https://github.com/rust-lang/crates.io-index"
500dependencies = [
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]]
507name = "proc-macro2"
508version = "0.4.19"
509source = "registry+https://github.com/rust-lang/crates.io-index"
510dependencies = [
511 "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
512]
513
514[[package]]
515name = "quote"
516version = "0.3.15"
517source = "registry+https://github.com/rust-lang/crates.io-index"
518
519[[package]]
520name = "quote"
521version = "0.6.8"
522source = "registry+https://github.com/rust-lang/crates.io-index"
523dependencies = [
524 "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)",
525]
526
527[[package]]
528name = "ra_analysis"
529version = "0.1.0"
530dependencies = [
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]]
546name = "ra_cli"
547version = "0.1.0"
548dependencies = [
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]]
558name = "ra_editor"
559version = "0.1.0"
560dependencies = [
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]]
569name = "ra_lsp_server"
570version = "0.1.0"
571dependencies = [
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]]
597name = "ra_syntax"
598version = "0.1.0"
599dependencies = [
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]]
611name = "rand"
612version = "0.4.3"
613source = "registry+https://github.com/rust-lang/crates.io-index"
614dependencies = [
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]]
621name = "rand"
622version = "0.5.5"
623source = "registry+https://github.com/rust-lang/crates.io-index"
624dependencies = [
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]]
633name = "rand_core"
634version = "0.2.1"
635source = "registry+https://github.com/rust-lang/crates.io-index"
636
637[[package]]
638name = "rayon"
639version = "1.0.2"
640source = "registry+https://github.com/rust-lang/crates.io-index"
641dependencies = [
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]]
648name = "rayon-core"
649version = "1.4.1"
650source = "registry+https://github.com/rust-lang/crates.io-index"
651dependencies = [
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]]
659name = "redox_syscall"
660version = "0.1.40"
661source = "registry+https://github.com/rust-lang/crates.io-index"
662
663[[package]]
664name = "redox_termios"
665version = "0.1.1"
666source = "registry+https://github.com/rust-lang/crates.io-index"
667dependencies = [
668 "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
669]
670
671[[package]]
672name = "regex"
673version = "1.0.5"
674source = "registry+https://github.com/rust-lang/crates.io-index"
675dependencies = [
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]]
684name = "regex-syntax"
685version = "0.6.2"
686source = "registry+https://github.com/rust-lang/crates.io-index"
687dependencies = [
688 "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
689]
690
691[[package]]
692name = "relative-path"
693version = "0.3.7"
694source = "registry+https://github.com/rust-lang/crates.io-index"
695
696[[package]]
697name = "remove_dir_all"
698version = "0.5.1"
699source = "registry+https://github.com/rust-lang/crates.io-index"
700dependencies = [
701 "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
702]
703
704[[package]]
705name = "ron"
706version = "0.3.0"
707source = "registry+https://github.com/rust-lang/crates.io-index"
708dependencies = [
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]]
715name = "rustc-demangle"
716version = "0.1.9"
717source = "registry+https://github.com/rust-lang/crates.io-index"
718
719[[package]]
720name = "rustc_version"
721version = "0.2.3"
722source = "registry+https://github.com/rust-lang/crates.io-index"
723dependencies = [
724 "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
725]
726
727[[package]]
728name = "ryu"
729version = "0.2.6"
730source = "registry+https://github.com/rust-lang/crates.io-index"
731
732[[package]]
733name = "safemem"
734version = "0.3.0"
735source = "registry+https://github.com/rust-lang/crates.io-index"
736
737[[package]]
738name = "salsa"
739version = "0.1.0"
740dependencies = [
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]]
746name = "same-file"
747version = "1.0.3"
748source = "registry+https://github.com/rust-lang/crates.io-index"
749dependencies = [
750 "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
751]
752
753[[package]]
754name = "scopeguard"
755version = "0.3.3"
756source = "registry+https://github.com/rust-lang/crates.io-index"
757
758[[package]]
759name = "semver"
760version = "0.9.0"
761source = "registry+https://github.com/rust-lang/crates.io-index"
762dependencies = [
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]]
768name = "semver-parser"
769version = "0.7.0"
770source = "registry+https://github.com/rust-lang/crates.io-index"
771
772[[package]]
773name = "serde"
774version = "1.0.79"
775source = "registry+https://github.com/rust-lang/crates.io-index"
776dependencies = [
777 "serde_derive 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
778]
779
780[[package]]
781name = "serde_derive"
782version = "1.0.79"
783source = "registry+https://github.com/rust-lang/crates.io-index"
784dependencies = [
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]]
791name = "serde_json"
792version = "1.0.27"
793source = "registry+https://github.com/rust-lang/crates.io-index"
794dependencies = [
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]]
801name = "slug"
802version = "0.1.4"
803source = "registry+https://github.com/rust-lang/crates.io-index"
804dependencies = [
805 "deunicode 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
806]
807
808[[package]]
809name = "smallvec"
810version = "0.6.5"
811source = "registry+https://github.com/rust-lang/crates.io-index"
812dependencies = [
813 "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
814]
815
816[[package]]
817name = "smol_str"
818version = "0.1.6"
819source = "registry+https://github.com/rust-lang/crates.io-index"
820dependencies = [
821 "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
822]
823
824[[package]]
825name = "stable_deref_trait"
826version = "1.1.1"
827source = "registry+https://github.com/rust-lang/crates.io-index"
828
829[[package]]
830name = "strsim"
831version = "0.7.0"
832source = "registry+https://github.com/rust-lang/crates.io-index"
833
834[[package]]
835name = "superslice"
836version = "0.1.0"
837source = "registry+https://github.com/rust-lang/crates.io-index"
838
839[[package]]
840name = "syn"
841version = "0.11.11"
842source = "registry+https://github.com/rust-lang/crates.io-index"
843dependencies = [
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]]
850name = "syn"
851version = "0.14.9"
852source = "registry+https://github.com/rust-lang/crates.io-index"
853dependencies = [
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]]
860name = "syn"
861version = "0.15.4"
862source = "registry+https://github.com/rust-lang/crates.io-index"
863dependencies = [
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]]
870name = "synom"
871version = "0.11.3"
872source = "registry+https://github.com/rust-lang/crates.io-index"
873dependencies = [
874 "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
875]
876
877[[package]]
878name = "synstructure"
879version = "0.9.0"
880source = "registry+https://github.com/rust-lang/crates.io-index"
881dependencies = [
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]]
889name = "tempdir"
890version = "0.3.7"
891source = "registry+https://github.com/rust-lang/crates.io-index"
892dependencies = [
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]]
898name = "tera"
899version = "0.11.16"
900source = "registry+https://github.com/rust-lang/crates.io-index"
901dependencies = [
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]]
918name = "termion"
919version = "1.5.1"
920source = "registry+https://github.com/rust-lang/crates.io-index"
921dependencies = [
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]]
928name = "test_utils"
929version = "0.1.0"
930dependencies = [
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]]
937name = "text_unit"
938version = "0.1.4"
939source = "registry+https://github.com/rust-lang/crates.io-index"
940dependencies = [
941 "serde 1.0.79 (registry+https://github.com/rust-lang/crates.io-index)",
942]
943
944[[package]]
945name = "textwrap"
946version = "0.10.0"
947source = "registry+https://github.com/rust-lang/crates.io-index"
948dependencies = [
949 "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
950]
951
952[[package]]
953name = "thread_local"
954version = "0.3.6"
955source = "registry+https://github.com/rust-lang/crates.io-index"
956dependencies = [
957 "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
958]
959
960[[package]]
961name = "time"
962version = "0.1.40"
963source = "registry+https://github.com/rust-lang/crates.io-index"
964dependencies = [
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]]
971name = "tools"
972version = "0.1.0"
973dependencies = [
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]]
984name = "typenum"
985version = "1.10.0"
986source = "registry+https://github.com/rust-lang/crates.io-index"
987
988[[package]]
989name = "ucd-util"
990version = "0.1.1"
991source = "registry+https://github.com/rust-lang/crates.io-index"
992
993[[package]]
994name = "unic-char-property"
995version = "0.7.0"
996source = "registry+https://github.com/rust-lang/crates.io-index"
997dependencies = [
998 "unic-char-range 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
999]
1000
1001[[package]]
1002name = "unic-char-range"
1003version = "0.7.0"
1004source = "registry+https://github.com/rust-lang/crates.io-index"
1005
1006[[package]]
1007name = "unic-common"
1008version = "0.7.0"
1009source = "registry+https://github.com/rust-lang/crates.io-index"
1010
1011[[package]]
1012name = "unic-segment"
1013version = "0.7.0"
1014source = "registry+https://github.com/rust-lang/crates.io-index"
1015dependencies = [
1016 "unic-ucd-segment 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
1017]
1018
1019[[package]]
1020name = "unic-ucd-segment"
1021version = "0.7.0"
1022source = "registry+https://github.com/rust-lang/crates.io-index"
1023dependencies = [
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]]
1030name = "unic-ucd-version"
1031version = "0.7.0"
1032source = "registry+https://github.com/rust-lang/crates.io-index"
1033dependencies = [
1034 "unic-common 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
1035]
1036
1037[[package]]
1038name = "unicode-bidi"
1039version = "0.3.4"
1040source = "registry+https://github.com/rust-lang/crates.io-index"
1041dependencies = [
1042 "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
1043]
1044
1045[[package]]
1046name = "unicode-normalization"
1047version = "0.1.7"
1048source = "registry+https://github.com/rust-lang/crates.io-index"
1049
1050[[package]]
1051name = "unicode-segmentation"
1052version = "1.2.1"
1053source = "registry+https://github.com/rust-lang/crates.io-index"
1054
1055[[package]]
1056name = "unicode-width"
1057version = "0.1.5"
1058source = "registry+https://github.com/rust-lang/crates.io-index"
1059
1060[[package]]
1061name = "unicode-xid"
1062version = "0.0.4"
1063source = "registry+https://github.com/rust-lang/crates.io-index"
1064
1065[[package]]
1066name = "unicode-xid"
1067version = "0.1.0"
1068source = "registry+https://github.com/rust-lang/crates.io-index"
1069
1070[[package]]
1071name = "unreachable"
1072version = "1.0.0"
1073source = "registry+https://github.com/rust-lang/crates.io-index"
1074dependencies = [
1075 "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
1076]
1077
1078[[package]]
1079name = "url"
1080version = "1.7.1"
1081source = "registry+https://github.com/rust-lang/crates.io-index"
1082dependencies = [
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]]
1089name = "url_serde"
1090version = "0.2.0"
1091source = "registry+https://github.com/rust-lang/crates.io-index"
1092dependencies = [
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]]
1098name = "utf8-ranges"
1099version = "1.0.1"
1100source = "registry+https://github.com/rust-lang/crates.io-index"
1101
1102[[package]]
1103name = "vec_map"
1104version = "0.8.1"
1105source = "registry+https://github.com/rust-lang/crates.io-index"
1106
1107[[package]]
1108name = "version_check"
1109version = "0.1.4"
1110source = "registry+https://github.com/rust-lang/crates.io-index"
1111
1112[[package]]
1113name = "void"
1114version = "1.0.2"
1115source = "registry+https://github.com/rust-lang/crates.io-index"
1116
1117[[package]]
1118name = "walkdir"
1119version = "2.2.5"
1120source = "registry+https://github.com/rust-lang/crates.io-index"
1121dependencies = [
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]]
1128name = "winapi"
1129version = "0.3.5"
1130source = "registry+https://github.com/rust-lang/crates.io-index"
1131dependencies = [
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]]
1137name = "winapi-i686-pc-windows-gnu"
1138version = "0.4.0"
1139source = "registry+https://github.com/rust-lang/crates.io-index"
1140
1141[[package]]
1142name = "winapi-util"
1143version = "0.1.1"
1144source = "registry+https://github.com/rust-lang/crates.io-index"
1145dependencies = [
1146 "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
1147]
1148
1149[[package]]
1150name = "winapi-x86_64-pc-windows-gnu"
1151version = "0.4.0"
1152source = "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]
8clap = "2.32.0" 8clap = "2.32.0"
9failure = "0.1.1" 9failure = "0.1.1"
10join_to_string = "0.1.1"
10ra_syntax = { path = "../ra_syntax" } 11ra_syntax = { path = "../ra_syntax" }
11ra_editor = { path = "../ra_editor" } 12ra_editor = { path = "../ra_editor" }
12tools = { path = "../tools" } 13tools = { 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 @@
1extern crate clap; 1extern crate clap;
2#[macro_use] 2#[macro_use]
3extern crate failure; 3extern crate failure;
4extern crate join_to_string;
4extern crate ra_syntax; 5extern crate ra_syntax;
5extern crate ra_editor; 6extern crate ra_editor;
6extern crate tools; 7extern crate tools;
@@ -10,9 +11,10 @@ use std::{
10 time::Instant 11 time::Instant
11}; 12};
12use clap::{App, Arg, SubCommand}; 13use clap::{App, Arg, SubCommand};
14use join_to_string::join;
13use tools::collect_tests; 15use tools::collect_tests;
14use ra_syntax::File; 16use ra_syntax::{TextRange, File};
15use ra_editor::{syntax_tree, file_structure}; 17use ra_editor::{syntax_tree, file_structure, extend_selection};
16 18
17type Result<T> = ::std::result::Result<T, failure::Error>; 19type 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
112fn 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
80pub fn find_covering_node(root: SyntaxNodeRef, range: TextRange) -> SyntaxNodeRef { 80pub 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