aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-07-23 14:58:45 +0100
committerGitHub <[email protected]>2020-07-23 14:58:45 +0100
commit7bada8a76dd6438cb6549d735d06e60fc50f6388 (patch)
tree31e30e51dc863c01a3e1befa43ef58c6089c41dd /docs
parent83f364523f6874e52ed8db50be00fd28bdb57b94 (diff)
parentb68ef1231daf6eb1abeb06a30dc89af1254b833d (diff)
Merge #5473
5473: Changes to rust-project.json r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'docs')
-rw-r--r--docs/user/manual.adoc33
1 files changed, 28 insertions, 5 deletions
diff --git a/docs/user/manual.adoc b/docs/user/manual.adoc
index 57251b851..4b31145de 100644
--- a/docs/user/manual.adoc
+++ b/docs/user/manual.adoc
@@ -273,9 +273,6 @@ However, if you use some other build system, you'll have to describe the structu
273[source,TypeScript] 273[source,TypeScript]
274---- 274----
275interface JsonProject { 275interface JsonProject {
276 /// The set of paths containing the crates for this project.
277 /// Any `Crate` must be nested inside some `root`.
278 roots: string[];
279 /// The set of crates comprising the current project. 276 /// The set of crates comprising the current project.
280 /// Must include all transitive dependencies as well as sysroot crate (libstd, libcore and such). 277 /// Must include all transitive dependencies as well as sysroot crate (libstd, libcore and such).
281 crates: Crate[]; 278 crates: Crate[];
@@ -288,11 +285,37 @@ interface Crate {
288 edition: "2015" | "2018"; 285 edition: "2015" | "2018";
289 /// Dependencies 286 /// Dependencies
290 deps: Dep[]; 287 deps: Dep[];
288 /// Should this crate be treated as a member of current "workspace".
289 ///
290 /// By default, inferred from the `root_module` (members are the crates which reside
291 /// inside the directory opened in the editor).
292 ///
293 /// Set this to `false` for things like standard library and 3rd party crates to
294 /// enable performance optimizations (rust-analyzer assumes that non-member crates
295 /// don't change).
296 is_workspace_member?: boolean;
297 /// Optionally specify the (super)set of `.rs` files comprising this crate.
298 ///
299 /// By default, rust-analyzer assumes that only files under `root_module.parent` can belong to a crate.
300 /// `include_dirs` are included recursively, unless a subdirectory is in `exclude_dirs`.
301 ///
302 /// Different crates can share the same `source`.
303
304 /// If two crates share an `.rs` file in common, they *must* have the same `source`.
305 /// rust-analyzer assumes that files from one source can't refer to files in another source.
306 source?: {
307 include_dirs: string[],
308 exclude_dirs: string[],
309 },
291 /// The set of cfgs activated for a given crate, like `["unix", "feature=foo", "feature=bar"]`. 310 /// The set of cfgs activated for a given crate, like `["unix", "feature=foo", "feature=bar"]`.
292 cfg: string[]; 311 cfg: string[];
312 /// Target triple for this Crate.
313 ///
314 /// Used when running `rustc --print cfg` to get target-specific cfgs.
315 target?: string;
316 /// Environment variables, used for the `env!` macro
317 env: : { [key: string]: string; },
293 318
294 /// value of the OUT_DIR env variable.
295 out_dir?: string;
296 /// For proc-macro crates, path to compiles proc-macro (.so file). 319 /// For proc-macro crates, path to compiles proc-macro (.so file).
297 proc_macro_dylib_path?: string; 320 proc_macro_dylib_path?: string;
298} 321}