From 5c818bccb48287cdc950f2c620c83019c053fc59 Mon Sep 17 00:00:00 2001 From: Akirami <66513481+A-kirami@users.noreply.github.com> Date: Sun, 24 May 2026 23:33:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E9=A2=84=E8=A7=88=20?= =?UTF-8?q?ready=20=E5=90=8E=E5=90=8C=E6=AD=A5=E5=BD=93=E5=89=8D=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/pages/editor/GraphicalEditor/GraphicalEditor.tsx | 2 +- .../origine2/src/pages/editor/TextEditor/TextEditor.tsx | 2 +- packages/origine2/src/runtime/WG_ORIGINE_RUNTIME.ts | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/origine2/src/pages/editor/GraphicalEditor/GraphicalEditor.tsx b/packages/origine2/src/pages/editor/GraphicalEditor/GraphicalEditor.tsx index 10f8bcb1c..1759c7fd5 100644 --- a/packages/origine2/src/pages/editor/GraphicalEditor/GraphicalEditor.tsx +++ b/packages/origine2/src/pages/editor/GraphicalEditor/GraphicalEditor.tsx @@ -203,7 +203,7 @@ export default function GraphicalEditor(props: IGraphicalEditorProps) { }, [props.targetPath]); const syncCurrentLine = useCallback(() => { - const lineNumber = editorLineHolder.getSceneLine(props.targetPath) || 1; + const lineNumber = editorLineHolder.getSceneLineOrFirstLine(props.targetPath); EditorPreviewClient.sendSyncScene({ scenePath: props.targetPath, lineNumber, diff --git a/packages/origine2/src/pages/editor/TextEditor/TextEditor.tsx b/packages/origine2/src/pages/editor/TextEditor/TextEditor.tsx index f22ebd197..9a1b2956d 100644 --- a/packages/origine2/src/pages/editor/TextEditor/TextEditor.tsx +++ b/packages/origine2/src/pages/editor/TextEditor/TextEditor.tsx @@ -132,7 +132,7 @@ export default function TextEditor(props: ITextEditorProps) { }, 500), []); const syncCurrentLine = useCallback(() => { - const lineNumber = editorLineHolder.getSceneLine(props.targetPath) || editorRef.current?.getPosition()?.lineNumber || 1; + const lineNumber = editorLineHolder.getSceneLineOrFirstLine(props.targetPath); EditorPreviewClient.sendSyncScene({ scenePath: target?.path ?? '', lineNumber, diff --git a/packages/origine2/src/runtime/WG_ORIGINE_RUNTIME.ts b/packages/origine2/src/runtime/WG_ORIGINE_RUNTIME.ts index d8eb92e77..75d47c2a4 100644 --- a/packages/origine2/src/runtime/WG_ORIGINE_RUNTIME.ts +++ b/packages/origine2/src/runtime/WG_ORIGINE_RUNTIME.ts @@ -10,7 +10,7 @@ export const lspSceneName = {value: ""}; class EditorLineHolder{ private mapSceneUrlToSentence = new Map(); - + public recordSceneEditingLine(sceneUrl: string, lineNumber: number) { this.mapSceneUrlToSentence.set(sceneUrl, new Position(lineNumber, 0)); // console.log(this.mapSceneUrlToSentence); @@ -25,6 +25,11 @@ class EditorLineHolder{ return this.mapSceneUrlToSentence.get(sceneUrl)?.lineNumber ?? 0; } + public getSceneLineOrFirstLine(sceneUrl: string): number { + const lineNumber = this.getSceneLine(sceneUrl); + return lineNumber > 0 ? lineNumber : 1; + } + public getScenePosition(sceneUrl: string): Position { return this.mapSceneUrlToSentence.get(sceneUrl) ?? new Position(0, 0); }