summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-07-09 17:06:50 -0400
committerGitHub <noreply@github.com>2024-07-09 17:06:50 -0400
commite5c3c21e95bd6c8cfb0d26de8f79684709d64e81 (patch)
tree978ca4c454bd5d198e0cc5554d86779c201b1c6b /cli
parent3674f4536b27f82bbf7a4a9334255976deddf29e (diff)
feat(workspace): support object config (#24483)
This adds object config for the workspace config: ```json { "workspace": { "members": ["./member-1", "./member-2"] } } ``` This is a more verbose version of `"workspace": ["./member-1", "./member-2"]`. Although we don't need it at the moment, it makes the naming of `"workspace"` more clear and leaves the object open for more config in the future. Closes https://github.com/denoland/deno/issues/24456
Diffstat (limited to 'cli')
-rw-r--r--cli/lsp/config.rs3
-rw-r--r--cli/schemas/config-file.v1.json26
2 files changed, 23 insertions, 6 deletions
diff --git a/cli/lsp/config.rs b/cli/lsp/config.rs
index 481273930..d207b81a9 100644
--- a/cli/lsp/config.rs
+++ b/cli/lsp/config.rs
@@ -1534,11 +1534,12 @@ impl ConfigData {
let workspace = config_file
.as_ref()
- .and_then(|c| c.json.workspace.as_ref().map(|w| (c, w)));
+ .and_then(|c| c.to_workspace_config().ok().flatten().map(|w| (c, w)));
let is_workspace_root = workspace.is_some();
let workspace_members = if let Some((config, workspace)) = workspace {
Arc::new(
workspace
+ .members
.iter()
.flat_map(|p| {
let dir_specifier = config.specifier.join(p).ok()?;
diff --git a/cli/schemas/config-file.v1.json b/cli/schemas/config-file.v1.json
index 84e65fc77..96a95ca16 100644
--- a/cli/schemas/config-file.v1.json
+++ b/cli/schemas/config-file.v1.json
@@ -605,11 +605,27 @@
]
},
"workspace": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "The members of this workspace."
+ "oneOf": [
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The members of this workspace."
+ },
+ {
+ "type": "object",
+ "properties": {
+ "members": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The members of this workspace."
+ }
+ }
+ }
+ ]
}
}
}