From a7ccb415ec294c2d5945101895fd58b5c51bcee9 Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:50:45 +0800 Subject: [PATCH 01/13] feat: contribute native getting started walkthrough --- package.json | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 166d42e..45cf3b1 100644 --- a/package.json +++ b/package.json @@ -35,12 +35,19 @@ "activationEvents": [ "onLanguage:python", "onLanguage:json", - "onLanguage:jsonc" + "onLanguage:jsonc", + "workspaceContains:config.py", + "workspaceContains:src/config.py" ], - "main": "./out/extension.js", + "main": "./out/entrypoint.js", "l10n": "./l10n", "contributes": { "commands": [ + { + "command": "okScriptToolkit.openGettingStarted", + "title": "%command.openGettingStarted%", + "category": "%command.category%" + }, { "command": "okScriptToolkit.showTemplates", "title": "%command.showTemplates%", @@ -66,6 +73,11 @@ "title": "%command.openTemplateAssets%", "category": "%command.category%" }, + { + "command": "okScriptToolkit.openResourcePublisher", + "title": "%command.openResourcePublisher%", + "category": "%command.category%" + }, { "command": "okScriptToolkit.openAnnotationEditor", "title": "%command.openAnnotationEditor%", @@ -87,6 +99,61 @@ "category": "%command.category%" } ], + "walkthroughs": [ + { + "id": "okScriptToolkit.getStarted", + "title": "%walkthrough.title%", + "description": "%walkthrough.description%", + "steps": [ + { + "id": "chooseGoal", + "title": "%walkthrough.goal.title%", + "description": "%walkthrough.goal.description%" + }, + { + "id": "loadProject", + "title": "%walkthrough.project.title%", + "description": "%walkthrough.project.description%", + "completionEvents": [ + "onContext:okScriptToolkit.projectReady" + ] + }, + { + "id": "visualResources", + "title": "%walkthrough.visual.title%", + "description": "%walkthrough.visual.description%", + "media": { + "image": "media/gettingStarted/visual-workflow.svg", + "altText": "%walkthrough.visual.mediaAlt%" + }, + "completionEvents": [ + "onCommand:okScriptToolkit.openTemplateAssets" + ] + }, + { + "id": "publishResources", + "title": "%walkthrough.publish.title%", + "description": "%walkthrough.publish.description%", + "completionEvents": [ + "onCommand:okScriptToolkit.openResourcePublisher" + ] + }, + { + "id": "runTask", + "title": "%walkthrough.run.title%", + "description": "%walkthrough.run.description%", + "completionEvents": [ + "onCommand:okScriptToolkit.showTaskLauncher" + ] + }, + { + "id": "resources", + "title": "%walkthrough.links.title%", + "description": "%walkthrough.links.description%" + } + ] + } + ], "viewsContainers": { "activitybar": [ { From 3ad0f6c97e4a5b3b17a0de700485c6570a5c18fc Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:51:10 +0800 Subject: [PATCH 02/13] feat: wire getting started commands and project state --- src/entrypoint.ts | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/entrypoint.ts diff --git a/src/entrypoint.ts b/src/entrypoint.ts new file mode 100644 index 0000000..7508a67 --- /dev/null +++ b/src/entrypoint.ts @@ -0,0 +1,38 @@ +import * as vscode from 'vscode'; +import { activate as activateCore, deactivate as deactivateCore } from './extension'; +import { resolveProjectDir } from './projectConfig'; + +const WALKTHROUGH_ID = 'okScriptToolkit.getStarted'; +const PROJECT_READY_CONTEXT = 'okScriptToolkit.projectReady'; + +export function activate(context: vscode.ExtensionContext): void { + activateCore(context); + + const updateProjectReady = () => vscode.commands.executeCommand( + 'setContext', + PROJECT_READY_CONTEXT, + resolveProjectDir().length > 0, + ); + + context.subscriptions.push( + vscode.commands.registerCommand('okScriptToolkit.openGettingStarted', () => { + const walkthrough = `${context.extension.id}#${WALKTHROUGH_ID}`; + return vscode.commands.executeCommand('workbench.action.openWalkthrough', walkthrough); + }), + vscode.commands.registerCommand('okScriptToolkit.openResourcePublisher', () => { + return vscode.commands.executeCommand('okScriptToolkit.openTemplateAssets'); + }), + vscode.workspace.onDidChangeWorkspaceFolders(() => { void updateProjectReady(); }), + vscode.workspace.onDidChangeConfiguration((event) => { + if (event.affectsConfiguration('okScriptToolkit.okScriptProjectPath')) { + void updateProjectReady(); + } + }), + ); + + void updateProjectReady(); +} + +export function deactivate(): void { + deactivateCore(); +} From 06e36f36cd35dd1b32e500329b284a1ee591ae87 Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:51:32 +0800 Subject: [PATCH 03/13] feat: add walkthrough workflow illustration --- media/gettingStarted/visual-workflow.svg | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 media/gettingStarted/visual-workflow.svg diff --git a/media/gettingStarted/visual-workflow.svg b/media/gettingStarted/visual-workflow.svg new file mode 100644 index 0000000..c89189e --- /dev/null +++ b/media/gettingStarted/visual-workflow.svg @@ -0,0 +1,24 @@ + + Visual resource workflow + Image to Template, Rect, and Point annotations, then publish. + + + + + + + + + + + + Image + Template + Rect + Point + Select + resources + Publish + JSON / Python + + From e580f4a355c8d79dca15f6b4e31323c9551e76de Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:52:27 +0800 Subject: [PATCH 04/13] feat: localize getting started manifest --- package.nls.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/package.nls.json b/package.nls.json index 4982db4..f68f49a 100644 --- a/package.nls.json +++ b/package.nls.json @@ -2,15 +2,32 @@ "extension.displayName": "ok-script Toolkit", "extension.description": "IntelliSense, inline hints, template previews, task launching, character data tools, and more for ok-script projects.", "command.category": "ok-script Toolkit", + "command.openGettingStarted": "Getting Started", "command.showTemplates": "Open Resource Preview", "command.screenshotToTemplate": "Screenshot to Annotation Management", "command.openTemplatesEditor": "Open Resource Preview in Editor", "command.showTaskLauncher": "Open Console", "command.openCharacterManager": "Open Character & Skill Manager", "command.openTemplateAssets": "Open Annotation Management", + "command.openResourcePublisher": "Open Resource Publishing", "command.openAnnotationEditor": "Open Annotation Editor", "command.showTempScreenshots": "Open Temp Screenshots", "command.showConventionSources": "Project Convention vs My Settings", + "walkthrough.title": "Get Started with ok-script Toolkit", + "walkthrough.description": "Choose what you want to do and follow the project → resources → run workflow.", + "walkthrough.goal.title": "What do you want to do?", + "walkthrough.goal.description": "[Write or run tasks](command:okScriptToolkit.showTaskLauncher) · [Create visual resources](command:okScriptToolkit.openTemplateAssets) · [Publish resources](command:okScriptToolkit.openResourcePublisher)", + "walkthrough.project.title": "1. Load an ok-script project", + "walkthrough.project.description": "Open a workspace containing `config.py` or `src/config.py`, or configure `okScriptToolkit.okScriptProjectPath`. This step completes automatically when a supported project is detected.", + "walkthrough.visual.title": "2. Create visual resources", + "walkthrough.visual.description": "[Open Annotation Management](command:okScriptToolkit.openTemplateAssets) to capture or import images and create Template, Rect, and Point annotations in one editor.", + "walkthrough.visual.mediaAlt": "Image to Template, Rect, and Point annotation and publishing workflow", + "walkthrough.publish.title": "3. Publish resources", + "walkthrough.publish.description": "[Open Resource Publishing](command:okScriptToolkit.openResourcePublisher), select Template / Rect / Point, then publish. Position resources can be exported as JSON or Python.", + "walkthrough.run.title": "4. Run and debug", + "walkthrough.run.description": "[Open the runner](command:okScriptToolkit.showTaskLauncher), choose a task, adjust parameters, start it, and follow runtime status and logs.", + "walkthrough.links.title": "Keep exploring", + "walkthrough.links.description": "[Documentation](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issues / Feedback](https://github.com/AliceJump/ok-script-toolkit/issues) · [Release Notes](https://github.com/AliceJump/ok-script-toolkit/releases)", "viewContainer.title": "ok-script Tools", "viewContainer.tools.title": "ok-script Tools", "viewContainer.templates.title": "ok-script Resources", From a05cb7a2e269ef0eeedaef7d5a06c543465b87c5 Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:53:11 +0800 Subject: [PATCH 05/13] feat: localize getting started Chinese manifest --- package.nls.zh-cn.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/package.nls.zh-cn.json b/package.nls.zh-cn.json index 0db3fcf..3d8ca9f 100644 --- a/package.nls.zh-cn.json +++ b/package.nls.zh-cn.json @@ -2,15 +2,32 @@ "extension.displayName": "ok-script 工具箱", "extension.description": "为 ok-script 项目提供智能补全、行内提示、模板预览、任务启动、角色数据工具等完整开发辅助。", "command.category": "ok-script 工具箱", + "command.openGettingStarted": "入门指南", "command.showTemplates": "打开资源预览", "command.screenshotToTemplate": "截图并打开标注管理", "command.openTemplatesEditor": "在编辑器中打开资源预览", "command.showTaskLauncher": "打开控制台", "command.openCharacterManager": "打开角色技能管理面板", "command.openTemplateAssets": "打开标注管理", + "command.openResourcePublisher": "打开资源发布", "command.openAnnotationEditor": "打开标注编辑器", "command.showTempScreenshots": "打开临时截图", "command.showConventionSources": "项目约定 vs 我的设置", + "walkthrough.title": "开始使用 ok-script 工具箱", + "walkthrough.description": "先选择你想做的事,再按“项目 → 资源 → 运行”的流程开始工作。", + "walkthrough.goal.title": "你想做什么?", + "walkthrough.goal.description": "[编写或运行任务](command:okScriptToolkit.showTaskLauncher) · [制作视觉资源](command:okScriptToolkit.openTemplateAssets) · [发布资源](command:okScriptToolkit.openResourcePublisher)", + "walkthrough.project.title": "1. 加载 ok-script 项目", + "walkthrough.project.description": "打开包含 `config.py` 或 `src/config.py` 的工作区,或配置 `okScriptToolkit.okScriptProjectPath`。识别到支持的项目后本步骤会自动完成。", + "walkthrough.visual.title": "2. 制作视觉资源", + "walkthrough.visual.description": "[打开标注管理](command:okScriptToolkit.openTemplateAssets),截图或导入图片,并在一个编辑器中创建 Template、Rect、Point 标注。", + "walkthrough.visual.mediaAlt": "图片经过 Template、Rect、Point 标注后进入统一发布流程", + "walkthrough.publish.title": "3. 发布资源", + "walkthrough.publish.description": "[打开资源发布](command:okScriptToolkit.openResourcePublisher),选择 Template / Rect / Point 后发布;位置资源可导出为 JSON 或 Python。", + "walkthrough.run.title": "4. 运行和调试", + "walkthrough.run.description": "[打开运行器](command:okScriptToolkit.showTaskLauncher),选择任务、调整参数、启动,并查看运行状态与日志。", + "walkthrough.links.title": "长期入口", + "walkthrough.links.description": "[文档](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issue / 反馈](https://github.com/AliceJump/ok-script-toolkit/issues) · [更新日志](https://github.com/AliceJump/ok-script-toolkit/releases)", "viewContainer.title": "ok-script 工具", "viewContainer.tools.title": "ok-script 工具", "viewContainer.templates.title": "ok-script 资源", From 2ebe3bf9ad3782a9d4911bcb995129a920192422 Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:54:40 +0800 Subject: [PATCH 06/13] feat: localize getting started Spanish manifest --- package.nls.es.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/package.nls.es.json b/package.nls.es.json index c4614ae..7657d3a 100644 --- a/package.nls.es.json +++ b/package.nls.es.json @@ -2,15 +2,32 @@ "extension.displayName": "ok-script Toolkit", "extension.description": "Autocompletado, sugerencias en línea, vista previa de plantillas, lanzamiento de tareas, herramientas de datos de personajes y más para proyectos ok-script.", "command.category": "ok-script Toolkit", + "command.openGettingStarted": "Primeros pasos", "command.showTemplates": "Abrir galería de plantillas", "command.screenshotToTemplate": "Capturar en Recursos de Plantilla", "command.openTemplatesEditor": "Abrir galería de plantillas en el editor", "command.showTaskLauncher": "Abrir consola", "command.openCharacterManager": "Abrir gestor de personajes y habilidades", "command.openTemplateAssets": "Abrir recursos de plantillas", + "command.openResourcePublisher": "Abrir publicación de recursos", "command.openAnnotationEditor": "Abrir editor de anotaciones", "command.showTempScreenshots": "Abrir capturas temporales", "command.showConventionSources": "Convención del proyecto vs. mi configuración", + "walkthrough.title": "Primeros pasos con ok-script Toolkit", + "walkthrough.description": "Elige lo que quieres hacer y sigue el flujo proyecto → recursos → ejecución.", + "walkthrough.goal.title": "¿Qué quieres hacer?", + "walkthrough.goal.description": "[Escribir o ejecutar tareas](command:okScriptToolkit.showTaskLauncher) · [Crear recursos visuales](command:okScriptToolkit.openTemplateAssets) · [Publicar recursos](command:okScriptToolkit.openResourcePublisher)", + "walkthrough.project.title": "1. Cargar un proyecto ok-script", + "walkthrough.project.description": "Abre un espacio de trabajo con `config.py` o `src/config.py`, o configura `okScriptToolkit.okScriptProjectPath`. Este paso se completa automáticamente al detectar un proyecto compatible.", + "walkthrough.visual.title": "2. Crear recursos visuales", + "walkthrough.visual.description": "[Abrir gestión de anotaciones](command:okScriptToolkit.openTemplateAssets) para capturar o importar imágenes y crear anotaciones Template, Rect y Point en un único editor.", + "walkthrough.visual.mediaAlt": "Flujo de imagen a anotaciones Template, Rect y Point y publicación", + "walkthrough.publish.title": "3. Publicar recursos", + "walkthrough.publish.description": "[Abrir publicación de recursos](command:okScriptToolkit.openResourcePublisher), selecciona Template / Rect / Point y publica. Los recursos de posición pueden exportarse como JSON o Python.", + "walkthrough.run.title": "4. Ejecutar y depurar", + "walkthrough.run.description": "[Abrir el ejecutor](command:okScriptToolkit.showTaskLauncher), elige una tarea, ajusta parámetros, ejecútala y consulta el estado y los registros.", + "walkthrough.links.title": "Seguir explorando", + "walkthrough.links.description": "[Documentación](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issues / Comentarios](https://github.com/AliceJump/ok-script-toolkit/issues) · [Notas de versión](https://github.com/AliceJump/ok-script-toolkit/releases)", "viewContainer.title": "Herramientas de ok-script", "viewContainer.tools.title": "Herramientas de ok-script", "viewContainer.templates.title": "Plantillas de ok-script", From 9aae7193a98a515823f266daa5e122ad29154d22 Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:55:31 +0800 Subject: [PATCH 07/13] feat: localize getting started Japanese manifest --- package.nls.ja.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/package.nls.ja.json b/package.nls.ja.json index 01917fa..100113c 100644 --- a/package.nls.ja.json +++ b/package.nls.ja.json @@ -2,15 +2,32 @@ "extension.displayName": "ok-script ツールキット", "extension.description": "ok-script プロジェクト向けの補完、インラインヒント、テンプレートプレビュー、タスク起動、キャラクターデータツールなど。", "command.category": "ok-script ツールキット", + "command.openGettingStarted": "はじめに", "command.showTemplates": "テンプレートギャラリーを開く", "command.screenshotToTemplate": "スクリーンショットをテンプレート素材へ", "command.openTemplatesEditor": "テンプレートギャラリーをエディターで開く", "command.showTaskLauncher": "コンソールを開く", "command.openCharacterManager": "キャラクター・スキル管理を開く", "command.openTemplateAssets": "テンプレートアセットを開く", + "command.openResourcePublisher": "リソース公開を開く", "command.openAnnotationEditor": "アノテーションエディターを開く", "command.showTempScreenshots": "一時スクリーンショットを開く", "command.showConventionSources": "プロジェクト規約と自分の設定", + "walkthrough.title": "ok-script ツールキットを始める", + "walkthrough.description": "やりたいことを選び、プロジェクト → リソース → 実行の流れで進めます。", + "walkthrough.goal.title": "何をしますか?", + "walkthrough.goal.description": "[タスクを書く・実行する](command:okScriptToolkit.showTaskLauncher) · [ビジュアルリソースを作る](command:okScriptToolkit.openTemplateAssets) · [リソースを公開する](command:okScriptToolkit.openResourcePublisher)", + "walkthrough.project.title": "1. ok-script プロジェクトを読み込む", + "walkthrough.project.description": "`config.py` または `src/config.py` を含むワークスペースを開くか、`okScriptToolkit.okScriptProjectPath` を設定します。対応プロジェクトを検出すると自動で完了します。", + "walkthrough.visual.title": "2. ビジュアルリソースを作る", + "walkthrough.visual.description": "[アノテーション管理を開く](command:okScriptToolkit.openTemplateAssets)と、画像のキャプチャやインポート、Template・Rect・Point の注釈を 1 つのエディターで行えます。", + "walkthrough.visual.mediaAlt": "画像から Template、Rect、Point の注釈を作り公開するワークフロー", + "walkthrough.publish.title": "3. リソースを公開する", + "walkthrough.publish.description": "[リソース公開を開く](command:okScriptToolkit.openResourcePublisher)から Template / Rect / Point を選択して公開します。位置リソースは JSON または Python で出力できます。", + "walkthrough.run.title": "4. 実行とデバッグ", + "walkthrough.run.description": "[ランナーを開く](command:okScriptToolkit.showTaskLauncher)からタスクを選び、パラメータを調整して起動し、実行状態とログを確認します。", + "walkthrough.links.title": "さらに使う", + "walkthrough.links.description": "[ドキュメント](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issue / フィードバック](https://github.com/AliceJump/ok-script-toolkit/issues) · [リリースノート](https://github.com/AliceJump/ok-script-toolkit/releases)", "viewContainer.title": "ok-script ツール", "viewContainer.tools.title": "ok-script ツール", "viewContainer.templates.title": "ok-script テンプレート", From 3552f8a8e8a76ce012bc347878b426b59c375cb1 Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:56:20 +0800 Subject: [PATCH 08/13] feat: localize getting started Korean manifest --- package.nls.ko.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/package.nls.ko.json b/package.nls.ko.json index 0dc8f7c..f063125 100644 --- a/package.nls.ko.json +++ b/package.nls.ko.json @@ -2,15 +2,32 @@ "extension.displayName": "ok-script 툴킷", "extension.description": "ok-script 프로젝트용 자동 완성, 인라인 힌트, 템플릿 미리보기, 작업 실행, 캐릭터 데이터 도구 등.", "command.category": "ok-script 툴킷", + "command.openGettingStarted": "시작하기", "command.showTemplates": "템플릿 갤러리 열기", "command.screenshotToTemplate": "스크린샷을 템플릿 에셋으로", "command.openTemplatesEditor": "편집기에서 템플릿 갤러리 열기", "command.showTaskLauncher": "콘솔 열기", "command.openCharacterManager": "캐릭터·스킬 관리자 열기", "command.openTemplateAssets": "템플릿 에셋 열기", + "command.openResourcePublisher": "리소스 게시 열기", "command.openAnnotationEditor": "어노테이션 편집기 열기", "command.showTempScreenshots": "임시 스크린샷 열기", "command.showConventionSources": "프로젝트 규약과 내 설정", + "walkthrough.title": "ok-script 툴킷 시작하기", + "walkthrough.description": "원하는 작업을 선택하고 프로젝트 → 리소스 → 실행 흐름을 따라가세요.", + "walkthrough.goal.title": "무엇을 하시겠어요?", + "walkthrough.goal.description": "[작업 작성 또는 실행](command:okScriptToolkit.showTaskLauncher) · [시각 리소스 제작](command:okScriptToolkit.openTemplateAssets) · [리소스 게시](command:okScriptToolkit.openResourcePublisher)", + "walkthrough.project.title": "1. ok-script 프로젝트 불러오기", + "walkthrough.project.description": "`config.py` 또는 `src/config.py`가 있는 작업 영역을 열거나 `okScriptToolkit.okScriptProjectPath`를 설정하세요. 지원 프로젝트가 감지되면 자동으로 완료됩니다.", + "walkthrough.visual.title": "2. 시각 리소스 제작", + "walkthrough.visual.description": "[주석 관리 열기](command:okScriptToolkit.openTemplateAssets)에서 이미지를 캡처하거나 가져오고 하나의 편집기에서 Template, Rect, Point 주석을 만드세요.", + "walkthrough.visual.mediaAlt": "이미지에서 Template, Rect, Point 주석을 만들고 게시하는 워크플로", + "walkthrough.publish.title": "3. 리소스 게시", + "walkthrough.publish.description": "[리소스 게시 열기](command:okScriptToolkit.openResourcePublisher)에서 Template / Rect / Point를 선택해 게시하세요. 위치 리소스는 JSON 또는 Python으로 내보낼 수 있습니다.", + "walkthrough.run.title": "4. 실행 및 디버깅", + "walkthrough.run.description": "[러너 열기](command:okScriptToolkit.showTaskLauncher)에서 작업을 선택하고 매개변수를 조정해 실행한 뒤 상태와 로그를 확인하세요.", + "walkthrough.links.title": "더 알아보기", + "walkthrough.links.description": "[문서](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issue / 피드백](https://github.com/AliceJump/ok-script-toolkit/issues) · [릴리스 노트](https://github.com/AliceJump/ok-script-toolkit/releases)", "viewContainer.title": "ok-script 도구", "viewContainer.tools.title": "ok-script 도구", "viewContainer.templates.title": "ok-script 템플릿", From 5cccf4780adf0ec88460767dd6db17712ece6906 Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Tue, 6 Oct 2026 22:57:07 +0800 Subject: [PATCH 09/13] feat: localize getting started Traditional Chinese manifest --- package.nls.zh-tw.json | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/package.nls.zh-tw.json b/package.nls.zh-tw.json index 06aa241..022d01d 100644 --- a/package.nls.zh-tw.json +++ b/package.nls.zh-tw.json @@ -2,15 +2,32 @@ "extension.displayName": "ok-script 工具箱", "extension.description": "為 ok-script 專案提供智慧補全、行內提示、模板預覽、任務啟動、角色資料工具等完整開發輔助。", "command.category": "ok-script 工具箱", + "command.openGettingStarted": "入門指南", "command.showTemplates": "開啟模板面板", "command.screenshotToTemplate": "截圖並開啟模板素材", "command.openTemplatesEditor": "在編輯器中開啟模板面板", "command.showTaskLauncher": "開啟控制台", "command.openCharacterManager": "開啟角色技能管理面板", "command.openTemplateAssets": "開啟模板素材", + "command.openResourcePublisher": "開啟資源發布", "command.openAnnotationEditor": "開啟標註編輯器", "command.showTempScreenshots": "開啟臨時截圖", "command.showConventionSources": "專案約定 vs 我的設定", + "walkthrough.title": "開始使用 ok-script 工具箱", + "walkthrough.description": "先選擇你想做的事,再依照「專案 → 資源 → 執行」的流程開始工作。", + "walkthrough.goal.title": "你想做什麼?", + "walkthrough.goal.description": "[編寫或執行任務](command:okScriptToolkit.showTaskLauncher) · [製作視覺資源](command:okScriptToolkit.openTemplateAssets) · [發布資源](command:okScriptToolkit.openResourcePublisher)", + "walkthrough.project.title": "1. 載入 ok-script 專案", + "walkthrough.project.description": "開啟包含 `config.py` 或 `src/config.py` 的工作區,或設定 `okScriptToolkit.okScriptProjectPath`。偵測到支援的專案後本步驟會自動完成。", + "walkthrough.visual.title": "2. 製作視覺資源", + "walkthrough.visual.description": "[開啟標註管理](command:okScriptToolkit.openTemplateAssets),截圖或匯入圖片,並在同一個編輯器中建立 Template、Rect、Point 標註。", + "walkthrough.visual.mediaAlt": "圖片經過 Template、Rect、Point 標註後進入統一發布流程", + "walkthrough.publish.title": "3. 發布資源", + "walkthrough.publish.description": "[開啟資源發布](command:okScriptToolkit.openResourcePublisher),選擇 Template / Rect / Point 後發布;位置資源可匯出為 JSON 或 Python。", + "walkthrough.run.title": "4. 執行和除錯", + "walkthrough.run.description": "[開啟執行器](command:okScriptToolkit.showTaskLauncher),選擇任務、調整參數、啟動,並查看執行狀態與日誌。", + "walkthrough.links.title": "長期入口", + "walkthrough.links.description": "[文件](https://github.com/AliceJump/ok-script-toolkit#readme) · [GitHub](https://github.com/AliceJump/ok-script-toolkit) · [Issue / 回饋](https://github.com/AliceJump/ok-script-toolkit/issues) · [更新日誌](https://github.com/AliceJump/ok-script-toolkit/releases)", "viewContainer.title": "ok-script 工具", "viewContainer.tools.title": "ok-script 工具", "viewContainer.templates.title": "ok-script 模板", From 058d0030d8ba286575eea7c4e82a090a6b3ec86e Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Wed, 7 Oct 2026 02:04:36 +0800 Subject: [PATCH 10/13] fix: keep walkthrough project readiness accurate --- src/entrypoint.ts | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/entrypoint.ts b/src/entrypoint.ts index 7508a67..ff3eb89 100644 --- a/src/entrypoint.ts +++ b/src/entrypoint.ts @@ -1,3 +1,5 @@ +import * as fs from 'fs'; +import * as path from 'path'; import * as vscode from 'vscode'; import { activate as activateCore, deactivate as deactivateCore } from './extension'; import { resolveProjectDir } from './projectConfig'; @@ -5,15 +7,38 @@ import { resolveProjectDir } from './projectConfig'; const WALKTHROUGH_ID = 'okScriptToolkit.getStarted'; const PROJECT_READY_CONTEXT = 'okScriptToolkit.projectReady'; +function isSupportedProject(projectDir: string): boolean { + if (!projectDir) return false; + try { + if (!fs.statSync(projectDir).isDirectory()) return false; + } catch { + return false; + } + + return [ + path.join(projectDir, 'config.py'), + path.join(projectDir, 'src', 'config.py'), + ].some((file) => { + try { + return fs.statSync(file).isFile(); + } catch { + return false; + } + }); +} + export function activate(context: vscode.ExtensionContext): void { activateCore(context); const updateProjectReady = () => vscode.commands.executeCommand( 'setContext', PROJECT_READY_CONTEXT, - resolveProjectDir().length > 0, + isSupportedProject(resolveProjectDir()), ); + const rootConfigWatcher = vscode.workspace.createFileSystemWatcher('**/config.py'); + const srcConfigWatcher = vscode.workspace.createFileSystemWatcher('**/src/config.py'); + context.subscriptions.push( vscode.commands.registerCommand('okScriptToolkit.openGettingStarted', () => { const walkthrough = `${context.extension.id}#${WALKTHROUGH_ID}`; @@ -28,6 +53,12 @@ export function activate(context: vscode.ExtensionContext): void { void updateProjectReady(); } }), + rootConfigWatcher, + rootConfigWatcher.onDidCreate(() => { void updateProjectReady(); }), + rootConfigWatcher.onDidDelete(() => { void updateProjectReady(); }), + srcConfigWatcher, + srcConfigWatcher.onDidCreate(() => { void updateProjectReady(); }), + srcConfigWatcher.onDidDelete(() => { void updateProjectReady(); }), ); void updateProjectReady(); From 9cc95ad5ac8c908adcece570088315f56f79b3c7 Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Wed, 7 Oct 2026 02:32:11 +0800 Subject: [PATCH 11/13] fix: provide media for every walkthrough step --- package.json | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 45cf3b1..4cd3633 100644 --- a/package.json +++ b/package.json @@ -108,12 +108,20 @@ { "id": "chooseGoal", "title": "%walkthrough.goal.title%", - "description": "%walkthrough.goal.description%" + "description": "%walkthrough.goal.description%", + "media": { + "image": "media/gettingStarted/visual-workflow.svg", + "altText": "%walkthrough.visual.mediaAlt%" + } }, { "id": "loadProject", "title": "%walkthrough.project.title%", "description": "%walkthrough.project.description%", + "media": { + "image": "media/gettingStarted/visual-workflow.svg", + "altText": "%walkthrough.visual.mediaAlt%" + }, "completionEvents": [ "onContext:okScriptToolkit.projectReady" ] @@ -134,6 +142,10 @@ "id": "publishResources", "title": "%walkthrough.publish.title%", "description": "%walkthrough.publish.description%", + "media": { + "image": "media/gettingStarted/visual-workflow.svg", + "altText": "%walkthrough.visual.mediaAlt%" + }, "completionEvents": [ "onCommand:okScriptToolkit.openResourcePublisher" ] @@ -142,6 +154,10 @@ "id": "runTask", "title": "%walkthrough.run.title%", "description": "%walkthrough.run.description%", + "media": { + "image": "media/gettingStarted/visual-workflow.svg", + "altText": "%walkthrough.visual.mediaAlt%" + }, "completionEvents": [ "onCommand:okScriptToolkit.showTaskLauncher" ] @@ -149,7 +165,11 @@ { "id": "resources", "title": "%walkthrough.links.title%", - "description": "%walkthrough.links.description%" + "description": "%walkthrough.links.description%", + "media": { + "image": "media/gettingStarted/visual-workflow.svg", + "altText": "%walkthrough.visual.mediaAlt%" + } } ] } @@ -472,4 +492,4 @@ "dependencies": { "jpeg-js": "^0.4.4" } -} +} \ No newline at end of file From f56bd39914dde514169e6f7047291e9ae4a555ff Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Wed, 7 Oct 2026 02:56:41 +0800 Subject: [PATCH 12/13] chore: sync JetBrains onboarding implementation --- jetbrains | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jetbrains b/jetbrains index 8830e7c..6c0d7f6 160000 --- a/jetbrains +++ b/jetbrains @@ -1 +1 @@ -Subproject commit 8830e7c7e6c9139578c2d37403f4c69fa899ef8e +Subproject commit 6c0d7f671ba5000db78b56faa5366331cfea837f From 6df27346c8d89b91dda233cea7a91d7b3c4122cf Mon Sep 17 00:00:00 2001 From: AliceJump <2630923991@qq.com> Date: Wed, 7 Oct 2026 04:17:36 +0800 Subject: [PATCH 13/13] fix: watch configured projects outside workspace --- src/entrypoint.ts | 54 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/src/entrypoint.ts b/src/entrypoint.ts index ff3eb89..606a961 100644 --- a/src/entrypoint.ts +++ b/src/entrypoint.ts @@ -36,8 +36,45 @@ export function activate(context: vscode.ExtensionContext): void { isSupportedProject(resolveProjectDir()), ); - const rootConfigWatcher = vscode.workspace.createFileSystemWatcher('**/config.py'); - const srcConfigWatcher = vscode.workspace.createFileSystemWatcher('**/src/config.py'); + let configWatcherDisposables: vscode.Disposable[] = []; + + const disposeConfigWatchers = () => { + for (const disposable of configWatcherDisposables) disposable.dispose(); + configWatcherDisposables = []; + }; + + const addConfigWatcher = (pattern: string | vscode.RelativePattern) => { + const watcher = vscode.workspace.createFileSystemWatcher(pattern); + configWatcherDisposables.push( + watcher, + watcher.onDidCreate(() => { void updateProjectReady(); }), + watcher.onDidDelete(() => { void updateProjectReady(); }), + ); + }; + + const bindConfigWatchers = () => { + disposeConfigWatchers(); + + // Workspace globs keep automatic project detection responsive. + addConfigWatcher('**/config.py'); + addConfigWatcher('**/src/config.py'); + + // A configured project may live outside the open workspace. String globs only + // watch workspace folders, so bind additional RelativePatterns to that directory. + const configuredPath = vscode.workspace + .getConfiguration('okScriptToolkit') + .get('okScriptProjectPath') + ?.trim(); + if (configuredPath) { + const configuredProjectDir = resolveProjectDir(); + if (configuredProjectDir) { + addConfigWatcher(new vscode.RelativePattern(configuredProjectDir, 'config.py')); + addConfigWatcher(new vscode.RelativePattern(configuredProjectDir, 'src/config.py')); + } + } + }; + + bindConfigWatchers(); context.subscriptions.push( vscode.commands.registerCommand('okScriptToolkit.openGettingStarted', () => { @@ -47,18 +84,17 @@ export function activate(context: vscode.ExtensionContext): void { vscode.commands.registerCommand('okScriptToolkit.openResourcePublisher', () => { return vscode.commands.executeCommand('okScriptToolkit.openTemplateAssets'); }), - vscode.workspace.onDidChangeWorkspaceFolders(() => { void updateProjectReady(); }), + vscode.workspace.onDidChangeWorkspaceFolders(() => { + bindConfigWatchers(); + void updateProjectReady(); + }), vscode.workspace.onDidChangeConfiguration((event) => { if (event.affectsConfiguration('okScriptToolkit.okScriptProjectPath')) { + bindConfigWatchers(); void updateProjectReady(); } }), - rootConfigWatcher, - rootConfigWatcher.onDidCreate(() => { void updateProjectReady(); }), - rootConfigWatcher.onDidDelete(() => { void updateProjectReady(); }), - srcConfigWatcher, - srcConfigWatcher.onDidCreate(() => { void updateProjectReady(); }), - srcConfigWatcher.onDidDelete(() => { void updateProjectReady(); }), + new vscode.Disposable(disposeConfigWatchers), ); void updateProjectReady();