@zhangfengshun/dsh-remote-ssh 2.3.4 → 2.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/lib/client.js +28 -15
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
本文件的版本号与 `package.json` 的 `version` 保持一致。每个版本对应一个 Cordis Package 快照(`pkg-N`)。
|
|
4
4
|
|
|
5
|
+
## [2.3.5] — 地球角标样式重制:右下角、默认文件夹形状、透明底白经纬线
|
|
6
|
+
### 变更
|
|
7
|
+
- **文件夹形状与默认完全一致**:不再自绘/改写文件夹几何,壳层 IconFolderOpen16/Close16 的原始路径与几何零改写,仅向工作区行首槽位 svg **追加**一个透明地球经纬线组(appendChild 不触碰 React 管理的子节点,零对账风险)。
|
|
8
|
+
- **角标移到右下角**:地球中心 (11.6, 11.9),含轮廓圈、经线椭圆、赤道与南北纬弧。
|
|
9
|
+
- **透明底色**:去掉蓝色圆盘与描边底环,仅保留白色经纬线(0.9 描边),地球区域全透明。
|
|
10
|
+
- 状态判据改为 svg 内 `[data-rssh-globe]` 子节点存在性(React 属性还原/子节点重建均覆盖),1s 复检自愈逻辑不变。
|
|
11
|
+
|
|
5
12
|
## [2.3.4] — 修复点击会话后图标退化 + 角标加大
|
|
6
13
|
### 修复
|
|
7
14
|
- **图标退化**:点击会话等交互触发 React 重渲染,会把 svg 的 viewBox/children 还原成纯文件夹(属性级变化不触发 childList 观察器),而 2.3.3 的防重入守卫只认 data 标记——标记在即跳过,还原后永不重刷。改为:守卫校验**实际状态**(viewBox 是否为目标帧),不匹配即重新应用;并维护已匹配标题元素清单,**每 1s 幂等复检**(断连清理),任何还原 1 秒内自愈。
|
package/lib/client.js
CHANGED
|
@@ -1139,8 +1139,8 @@ window.__ModuleLoader__.load({
|
|
|
1139
1139
|
// ---- 远程工作区图标:单个「地球角标文件夹」SVG 替换壳层默认纯文件夹图标 ----
|
|
1140
1140
|
// 壳层工作区行的文件夹图标是固定原语(IconFolderOpen16/Close16),无 per-workspace
|
|
1141
1141
|
// 图标 API;旧方案在标题里塞 🌐 emoji 造成「文件夹 + 地球」双重标识。现按标题文本
|
|
1142
|
-
// 定位远程工作区行,找到行首 slot.folder
|
|
1143
|
-
//
|
|
1142
|
+
// 定位远程工作区行,找到行首 slot.folder 槽位(标题的前兄弟),向其中的 svg
|
|
1143
|
+
// 追加地球经纬线组 —— 文件夹本体保持壳层默认原语几何,零改写零对账风险。
|
|
1144
1144
|
var remoteTitles = new Set();
|
|
1145
1145
|
var watchedTitles = []; // 已匹配的标题元素:定时幂等复检,抵消 React 重渲染对图标的还原
|
|
1146
1146
|
function refreshRemoteTitles() {
|
|
@@ -1155,21 +1155,34 @@ window.__ModuleLoader__.load({
|
|
|
1155
1155
|
swapWorkspaceIconsIn(document.body); // 标题集就绪后补一次全量替换
|
|
1156
1156
|
}).catch(function () {});
|
|
1157
1157
|
}
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1158
|
+
/** 地球经纬线组(右下角、无圆盘底色):线为白色、其余全透明;文件夹本体完全
|
|
1159
|
+
* 保留壳层默认原语(IconFolderOpen16/Close16 原始路径与几何,零改写),
|
|
1160
|
+
* 仅向 svg 追加本组 —— appendChild 不触碰 React 管理的子节点,零对账风险。 */
|
|
1161
|
+
function globeGridElement() {
|
|
1162
|
+
var NS = "http://www.w3.org/2000/svg";
|
|
1163
|
+
var g = document.createElementNS(NS, "g");
|
|
1164
|
+
g.setAttribute("data-rssh-globe", "1");
|
|
1165
|
+
g.setAttribute("fill", "none");
|
|
1166
|
+
g.setAttribute("stroke", "#ffffff");
|
|
1167
|
+
g.setAttribute("stroke-width", "0.9");
|
|
1168
|
+
function add(name, attrs) {
|
|
1169
|
+
var n = document.createElementNS(NS, name);
|
|
1170
|
+
for (var k in attrs) n.setAttribute(k, attrs[k]);
|
|
1171
|
+
g.appendChild(n);
|
|
1172
|
+
}
|
|
1173
|
+
add("circle", { cx: "11.6", cy: "11.9", r: "3.4" }); // 地球轮廓
|
|
1174
|
+
add("ellipse", { cx: "11.6", cy: "11.9", rx: "1.6", ry: "3.4" }); // 经线
|
|
1175
|
+
add("path", { d: "M8.2 11.9h6.8" }); // 赤道(纬线)
|
|
1176
|
+
add("path", { d: "M8.7 9.6c0.9 0.65 1.85 0.97 2.9 0.97s2-0.32 2.9-0.97" }); // 北纬弧
|
|
1177
|
+
add("path", { d: "M8.7 14.2c0.9-0.65 1.85-0.97 2.9-0.97s2 0.32 2.9 0.97" }); // 南纬弧
|
|
1178
|
+
return g;
|
|
1179
|
+
}
|
|
1180
|
+
/** 幂等应用:React 还原/重建子节点会清掉本组 —— 以 [data-rssh-globe] 子节点
|
|
1181
|
+
* 存在性为状态判据(覆盖属性级还原与节点重建),缺席即追加。 */
|
|
1166
1182
|
function applyFolderGlobe(slotSvg) {
|
|
1167
|
-
if (slotSvg.
|
|
1183
|
+
if (slotSvg.querySelector("[data-rssh-globe]")) return;
|
|
1168
1184
|
slotSvg.setAttribute("data-rssh-folder-globe", "1");
|
|
1169
|
-
slotSvg.
|
|
1170
|
-
slotSvg.setAttribute("width", "16");
|
|
1171
|
-
slotSvg.setAttribute("height", "16");
|
|
1172
|
-
slotSvg.innerHTML = FOLDER_GLOBE_INNER;
|
|
1185
|
+
slotSvg.appendChild(globeGridElement());
|
|
1173
1186
|
}
|
|
1174
1187
|
/** 对单个标题元素做行首槽位修复:projectRow > [slot.folder(svg), …, projectText > title],
|
|
1175
1188
|
* 文件夹 svg 在标题的前兄弟槽位 —— 向上 ≤4 层取每层容器第一个子元素,首个含 svg 即是。 */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhangfengshun/dsh-remote-ssh",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.5",
|
|
4
4
|
"description": "DSH web plugin: VSCode Remote-SSH-like remote development (SSH to supercomputers/servers, remote workspace, file explorer, integrated terminal), integrated with dsh-better-sidebar and DSH settings.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dsh",
|