Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ mod shell;
pub use shell::{ShellHostModule, ShellSurface, ShellViewContrib};
#[path = "contributes/connection.rs"]
mod connection;
#[path = "contributes/terminal_launch.rs"]
mod terminal_launch;
pub use connection::*;
pub use terminal_launch::{ResolvedTerminalLaunch, TerminalLaunchError};
#[path = "contributes/resource_workbench.rs"]
mod resource_workbench;
pub use resource_workbench::*;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::collections::BTreeMap;

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)]
Expand All @@ -9,16 +11,39 @@ pub struct ResourceConnectionContrib {
pub description: Option<String>,
#[serde(default)]
pub icon: Option<String>,
#[serde(rename = "runtimeId")]
/// 提供者运行时 ID。声明了 `terminal` 的连接不需要(也不允许)提供者进程。
#[serde(default, rename = "runtimeId")]
pub runtime_id: String,
#[serde(rename = "resourceType")]
/// 传给提供者 `resource/open` 的资源类型。声明了 `terminal` 时不适用。
#[serde(default, rename = "resourceType")]
pub resource_type: String,
#[serde(default, rename = "shellViewId")]
pub shell_view_id: Option<String>,
/// 终端型连接:打开时由宿主直接以本地进程启动一个终端标签,不需要提供者进程。
#[serde(default)]
pub terminal: Option<ResourceConnectionTerminal>,
#[serde(default)]
pub form: ResourceConnectionForm,
}

/// 终端型连接的启动声明。
///
/// `args` / `env` / `title` 中的 `{{字段ID}}` 由宿主按连接表单里保存的值替换。
/// `command` 固定写死、不允许占位符:要执行什么程序只由扩展作者决定,
/// 连接数据(可能来自云同步 / 团队共享)无法改变它。
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Eq)]
#[serde(deny_unknown_fields)]
pub struct ResourceConnectionTerminal {
pub command: String,
#[serde(default)]
pub args: Vec<String>,
#[serde(default)]
pub env: BTreeMap<String, String>,
/// 标签标题模板;缺省使用连接名称。
#[serde(default)]
pub title: Option<String>,
}

#[derive(Debug, Clone, Default, Deserialize, Serialize, PartialEq, Eq)]
#[serde(deny_unknown_fields)]
pub struct ResourceConnectionForm {
Expand Down
Loading
Loading