@@ -429,70 +429,92 @@ However, if you use some other build system, you'll have to describe the structu
429
429
[source,TypeScript]
430
430
----
431
431
interface JsonProject {
432
- /// Path to the directory with *source code* of sysroot crates.
432
+ /// Path to the directory with *source code* of
433
+ /// sysroot crates.
434
+ ///
435
+ /// It should point to the directory where std,
436
+ /// core, and friends can be found:
433
437
///
434
- /// It should point to the directory where std, core, and friends can be found:
435
438
/// https://github.com/rust-lang/rust/tree/master/library.
436
439
///
437
- /// If provided, rust-analyzer automatically adds dependencies on sysroot
438
- /// crates. Conversely, if you omit this path, you can specify sysroot
439
- /// dependencies yourself and, for example, have several different "sysroots" in
440
- /// one graph of crates.
440
+ /// If provided, rust-analyzer automatically adds
441
+ /// dependencies on sysroot crates. Conversely,
442
+ /// if you omit this path, you can specify sysroot
443
+ /// dependencies yourself and, for example, have
444
+ /// several different "sysroots" in one graph of
445
+ /// crates.
441
446
sysroot_src?: string;
442
- /// The set of crates comprising the current project.
443
- /// Must include all transitive dependencies as well as sysroot crate (libstd, libcore and such).
447
+ /// The set of crates comprising the current
448
+ /// project. Must include all transitive
449
+ /// dependencies as well as sysroot crate (libstd,
450
+ /// libcore and such).
444
451
crates: Crate[];
445
452
}
446
453
447
454
interface Crate {
448
- /// Optional crate name used for display purposes, without affecting semantics.
449
- /// See the `deps` key for semantically-significant crate names.
455
+ /// Optional crate name used for display purposes,
456
+ /// without affecting semantics. See the `deps`
457
+ /// key for semantically-significant crate names.
450
458
display_name?: string;
451
459
/// Path to the root module of the crate.
452
460
root_module: string;
453
461
/// Edition of the crate.
454
462
edition: "2015" | "2018" | "2021";
455
463
/// Dependencies
456
464
deps: Dep[];
457
- /// Should this crate be treated as a member of current "workspace".
465
+ /// Should this crate be treated as a member of
466
+ /// current "workspace".
458
467
///
459
- /// By default, inferred from the `root_module` (members are the crates which reside
460
- /// inside the directory opened in the editor).
468
+ /// By default, inferred from the `root_module`
469
+ /// (members are the crates which reside inside
470
+ /// the directory opened in the editor).
461
471
///
462
- /// Set this to `false` for things like standard library and 3rd party crates to
463
- /// enable performance optimizations (rust-analyzer assumes that non-member crates
464
- /// don't change).
472
+ /// Set this to `false` for things like standard
473
+ /// library and 3rd party crates to enable
474
+ /// performance optimizations (rust-analyzer
475
+ /// assumes that non-member crates don't change).
465
476
is_workspace_member?: boolean;
466
- /// Optionally specify the (super)set of `.rs` files comprising this crate.
477
+ /// Optionally specify the (super)set of `.rs`
478
+ /// files comprising this crate.
467
479
///
468
- /// By default, rust-analyzer assumes that only files under `root_module.parent` can belong to a crate.
469
- /// `include_dirs` are included recursively, unless a subdirectory is in `exclude_dirs`.
480
+ /// By default, rust-analyzer assumes that only
481
+ /// files under `root_module.parent` can belong
482
+ /// to a crate. `include_dirs` are included
483
+ /// recursively, unless a subdirectory is in
484
+ /// `exclude_dirs`.
470
485
///
471
486
/// Different crates can share the same `source`.
472
487
///
473
- /// If two crates share an `.rs` file in common, they *must* have the same `source`.
474
- /// rust-analyzer assumes that files from one source can't refer to files in another source.
488
+ /// If two crates share an `.rs` file in common,
489
+ /// they *must* have the same `source`.
490
+ /// rust-analyzer assumes that files from one
491
+ /// source can't refer to files in another source.
475
492
source?: {
476
493
include_dirs: string[],
477
494
exclude_dirs: string[],
478
495
},
479
- /// The set of cfgs activated for a given crate, like `["unix", "feature=\"foo\"", "feature=\"bar\""]`.
496
+ /// The set of cfgs activated for a given crate, like
497
+ /// `["unix", "feature=\"foo\"", "feature=\"bar\""]`.
480
498
cfg: string[];
481
499
/// Target triple for this Crate.
482
500
///
483
- /// Used when running `rustc --print cfg` to get target-specific cfgs.
501
+ /// Used when running `rustc --print cfg`
502
+ /// to get target-specific cfgs.
484
503
target?: string;
485
- /// Environment variables, used for the `env!` macro
504
+ /// Environment variables, used for
505
+ /// the `env!` macro
486
506
env: : { [key: string]: string; },
487
507
488
- /// For proc-macro crates, path to compiles proc-macro (.so file).
508
+ /// For proc-macro crates, path to compiled
509
+ /// proc-macro (.so file).
489
510
proc_macro_dylib_path?: string;
490
511
}
491
512
492
513
interface Dep {
493
514
/// Index of a crate in the `crates` array.
494
515
crate: number,
495
- /// Name as should appear in the (implicit) `extern crate name` declaration.
516
+ /// Name as should appear in the (implicit)
517
+ /// `extern crate name` declaration.
496
518
name: string,
497
519
}
498
520
----
0 commit comments