dsh-code-server-app 0.1.2 → 0.1.19
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/README.md +23 -10
- package/lib/client.js +5 -944
- package/lib/index.js +14 -5
- package/package.json +8 -3
- package/scripts/setup-code-server.mjs +1 -3
package/lib/index.js
CHANGED
|
@@ -63,6 +63,9 @@ export const Config = z.object({
|
|
|
63
63
|
/** reserveComposer=true(默认)窗口不盖输入框(初始/缩放/最大化止于输入栏上方);
|
|
64
64
|
* false 时允许盖住输入框(最大化到视口底)。 */
|
|
65
65
|
reserveComposer: z.boolean().default(true),
|
|
66
|
+
/** windowedOpen=false(默认)点击悬浮球打开内部浮动窗口;
|
|
67
|
+
* true 时改为在浏览器新标签页打开 code-server(自动启动并跟随工作区)。 */
|
|
68
|
+
windowedOpen: z.boolean().default(false),
|
|
66
69
|
});
|
|
67
70
|
|
|
68
71
|
const DEFAULT_CONFIG = {
|
|
@@ -105,11 +108,10 @@ function win32() {
|
|
|
105
108
|
return process.platform === 'win32';
|
|
106
109
|
}
|
|
107
110
|
|
|
108
|
-
/** 插件自带 code-server
|
|
111
|
+
/** 插件自带 code-server 入口探测,兼容两种依赖布局:
|
|
109
112
|
* 1. profile 专用目录:profileRoot/.code-server-app/node_modules/code-server/...
|
|
110
113
|
* (方案 D 默认安装位,独立项目、避开 profile 依赖树冲突);
|
|
111
|
-
* 2.
|
|
112
|
-
* 3. pnpm hoisted:profile node_modules/code-server/...(历史布局)。
|
|
114
|
+
* 2. 包内:插件目录/node_modules/code-server/...(开发期 link:/独立 npm install 布局)。
|
|
113
115
|
* 不存在 → 回退配置/PATH。 */
|
|
114
116
|
function bundledRuntimeEntry() {
|
|
115
117
|
try {
|
|
@@ -117,8 +119,8 @@ function bundledRuntimeEntry() {
|
|
|
117
119
|
const candidates = [
|
|
118
120
|
// profile 专用目录:here=.../dsh-code-server/lib → ../..=node_modules → ../../..=profile根
|
|
119
121
|
path.join(here, '..', '..', '..', '.code-server-app', 'node_modules', 'code-server', 'out', 'node', 'entry.js'),
|
|
122
|
+
// 包内(dev link / 独立目录):here=.../lib → ../node_modules
|
|
120
123
|
path.join(here, '..', 'node_modules', 'code-server', 'out', 'node', 'entry.js'),
|
|
121
|
-
path.join(here, '..', '..', 'code-server', 'out', 'node', 'entry.js'),
|
|
122
124
|
];
|
|
123
125
|
for (const entry of candidates) {
|
|
124
126
|
if (fs.existsSync(entry)) return entry;
|
|
@@ -229,6 +231,7 @@ export async function apply(ctx, config) {
|
|
|
229
231
|
// ---- 设置:行配置为种子;settings 命名空间持久化(设置卡片写入) ----
|
|
230
232
|
const settingsSvc = ctx.get('settings');
|
|
231
233
|
let reserveComposer = true;
|
|
234
|
+
let windowedOpen = false;
|
|
232
235
|
if (settingsSvc !== undefined && typeof settingsSvc.register === 'function') {
|
|
233
236
|
try {
|
|
234
237
|
const scope = settingsSvc.register(SETTINGS_NS, Config);
|
|
@@ -236,15 +239,20 @@ export async function apply(ctx, config) {
|
|
|
236
239
|
if (rawDoc !== undefined && rawDoc !== null) {
|
|
237
240
|
const resolved = scope.get();
|
|
238
241
|
reserveComposer = resolved && typeof resolved.reserveComposer === 'boolean' ? resolved.reserveComposer : true;
|
|
242
|
+
windowedOpen = resolved && typeof resolved.windowedOpen === 'boolean' ? resolved.windowedOpen : false;
|
|
239
243
|
}
|
|
240
244
|
scope.watch((next) => {
|
|
241
245
|
if (next != null && typeof next.reserveComposer === 'boolean') {
|
|
242
246
|
reserveComposer = next.reserveComposer;
|
|
243
247
|
console.log(`[code-server] reserveComposer updated: ${reserveComposer}`);
|
|
244
248
|
}
|
|
249
|
+
if (next != null && typeof next.windowedOpen === 'boolean') {
|
|
250
|
+
windowedOpen = next.windowedOpen;
|
|
251
|
+
console.log(`[code-server] windowedOpen updated: ${windowedOpen}`);
|
|
252
|
+
}
|
|
245
253
|
});
|
|
246
254
|
} catch (error) {
|
|
247
|
-
console.error(`[code-server] settings unavailable; using
|
|
255
|
+
console.error(`[code-server] settings unavailable; using defaults (reserveComposer=true, windowedOpen=false): ${error.message}`);
|
|
248
256
|
}
|
|
249
257
|
}
|
|
250
258
|
|
|
@@ -282,6 +290,7 @@ export async function apply(ctx, config) {
|
|
|
282
290
|
logTail: state.logTail.slice(-LOG_TAIL_MAX),
|
|
283
291
|
adopted: state.adopted,
|
|
284
292
|
reserveComposer,
|
|
293
|
+
windowedOpen,
|
|
285
294
|
env: state.env,
|
|
286
295
|
setup: {
|
|
287
296
|
running: state.setup.running,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-code-server-app",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Integrate code-server (VS Code in the browser) into DSH Web:
|
|
3
|
+
"version": "0.1.19",
|
|
4
|
+
"description": "Integrate code-server (VS Code in the browser) into DSH Web: floating ball entry + fullscreen overlay, host-side process lifecycle over a /code-server JSON API (motion-based spring window animations).",
|
|
5
5
|
"homepage": "https://github.com/jinsiyu/dsh-code-server-app",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -36,7 +36,12 @@
|
|
|
36
36
|
],
|
|
37
37
|
"scripts": {
|
|
38
38
|
"postinstall": "node scripts/setup-code-server.mjs",
|
|
39
|
-
"setup:code-server": "node scripts/setup-code-server.mjs"
|
|
39
|
+
"setup:code-server": "node scripts/setup-code-server.mjs",
|
|
40
|
+
"build:client": "node scripts/build-client.mjs"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"esbuild": "^0.25.0",
|
|
44
|
+
"motion": "^12.0.0"
|
|
40
45
|
},
|
|
41
46
|
"license": "MIT",
|
|
42
47
|
"allowScripts": {
|
|
@@ -52,13 +52,11 @@ function profileRootOf() {
|
|
|
52
52
|
function findCodeServer() {
|
|
53
53
|
// 布局候选(与安装目标同顺序):
|
|
54
54
|
// 1. profile 专用目录:profileRoot\code-server-app\node_modules\code-server
|
|
55
|
-
// 2.
|
|
56
|
-
// 3. 包内:pkgRoot/node_modules/code-server(回退/独立目录)
|
|
55
|
+
// 2. 包内:pkgRoot/node_modules/code-server(开发期 link:/独立目录)
|
|
57
56
|
const profileRoot = profileRootOf();
|
|
58
57
|
const cands = [];
|
|
59
58
|
if (profileRoot !== null) {
|
|
60
59
|
cands.push(join(profileRoot, APP_DIR_NAME, 'node_modules', 'code-server'));
|
|
61
|
-
cands.push(join(profileRoot, 'node_modules', 'code-server'));
|
|
62
60
|
}
|
|
63
61
|
cands.push(join(pkgRoot, 'node_modules', 'code-server'));
|
|
64
62
|
for (const cand of cands) {
|