diff --git a/.changeset/gorgeous-hats-smile.md b/.changeset/gorgeous-hats-smile.md new file mode 100644 index 00000000..cf4b6461 --- /dev/null +++ b/.changeset/gorgeous-hats-smile.md @@ -0,0 +1,33 @@ +--- +"@difizen/libro-cofine-editor-contribution": patch +"@difizen/libro-cofine-editor-core": patch +"@difizen/libro-search-code-cell": patch +"@difizen/libro-cofine-textmate": patch +"@difizen/libro-language-client": patch +"@difizen/libro-cofine-editor": patch +"@difizen/libro-markdown-cell": patch +"@difizen/libro-shared-model": patch +"@difizen/libro-code-editor": patch +"@difizen/libro-prompt-cell": patch +"@difizen/libro-virtualized": patch +"@difizen/libro-codemirror": patch +"@difizen/libro-rendermime": patch +"@difizen/libro-code-cell": patch +"@difizen/libro-markdown": patch +"@difizen/libro-raw-cell": patch +"@difizen/libro-terminal": patch +"@difizen/libro-jupyter": patch +"@difizen/libro-common": patch +"@difizen/libro-kernel": patch +"@difizen/libro-output": patch +"@difizen/libro-search": patch +"@difizen/libro-widget": patch +"@difizen/libro-core": patch +"@difizen/libro-l10n": patch +"@difizen/libro-lab": patch +"@difizen/libro-lsp": patch +"@difizen/libro-toc": patch +"@difizen/libro-docs": patch +--- + +Lab: open file after creation diff --git a/packages/libro-jupyter/src/file/file-create-modal.tsx b/packages/libro-jupyter/src/file/file-create-modal.tsx index 4f14c693..289ebbcd 100644 --- a/packages/libro-jupyter/src/file/file-create-modal.tsx +++ b/packages/libro-jupyter/src/file/file-create-modal.tsx @@ -1,4 +1,5 @@ import type { ModalItemProps, ModalItem } from '@difizen/mana-app'; +import { CommandRegistry } from '@difizen/mana-app'; import { URI, useInject, ViewManager } from '@difizen/mana-app'; import { Col, Form, message, Row, Input, Modal } from 'antd'; import type { InputRef } from 'antd'; @@ -27,6 +28,7 @@ export const FileCreateModalComponent: React.FC> = data, }: ModalItemProps) => { const fileService = useInject(JupyterFileService); + const commands = useInject(CommandRegistry); const viewManager = useInject(ViewManager); const [fileType, setFileType] = useState(data?.fileType); const [fileView, setFileView] = useState(); @@ -37,13 +39,20 @@ export const FileCreateModalComponent: React.FC> = await form.validateFields(); close(); try { - await fileService.newFile( + const stat = await fileService.newFile( values.fileName + (fileType || ''), new URI(data?.path), ); if (fileView) { fileView.model.refresh(); } + if (stat.isFile) { + commands.executeCommand('fileTree.command.openfile', { + fileStat: stat, + uri: stat.resource, + }); + } + // message.success('新建文件成功'); } catch { message.error('新建文件失败'); } diff --git a/packages/libro-jupyter/src/file/file-service.ts b/packages/libro-jupyter/src/file/file-service.ts index dac327a4..34697922 100644 --- a/packages/libro-jupyter/src/file/file-service.ts +++ b/packages/libro-jupyter/src/file/file-service.ts @@ -205,7 +205,7 @@ export class JupyterFileService extends FileService { ext, }); await this.rename(new URI(res.path.toString()), fileName); - return this.resolve(target); + return this.resolve(targetFileUri); } async newFileDir(dirName: string, target: URI): Promise { diff --git a/packages/libro-jupyter/src/file/index.ts b/packages/libro-jupyter/src/file/index.ts index 09571d9e..5551b61d 100644 --- a/packages/libro-jupyter/src/file/index.ts +++ b/packages/libro-jupyter/src/file/index.ts @@ -7,3 +7,4 @@ export * from './file-protocol.js'; export * from './file-icon.js'; export * from './file-create-modal.js'; export * from './file-createdir-modal.js'; +export * from './file-command.js';