11import { Autowired } from '@ali/common-di' ;
22import { ClientAppContribution } from '@ali/ide-core-browser' ;
33import { OnEvent , WithEventBus , BasicEvent , Domain } from '@ali/ide-core-common' ;
4- import { EditorDocumentModelSavedEvent } from '@ali/ide-editor/lib/browser' ;
4+ import {
5+ EditorDocumentModelSavedEvent ,
6+ EditorDocumentModelContentChangedEvent ,
7+ IEditorDocumentModelService ,
8+ } from '@ali/ide-editor/lib/browser' ;
59import { IFileServiceClient } from '@ali/ide-file-service/lib/common' ;
610import { AppConfig , RuntimeConfig } from '../../common/types' ;
711import * as path from 'path' ;
@@ -22,6 +26,9 @@ export class EditorActionEventContribution extends WithEventBus implements Clien
2226 @Autowired ( RuntimeConfig )
2327 runtimeConfig : RuntimeConfig ;
2428
29+ @Autowired ( IEditorDocumentModelService )
30+ docModelService : IEditorDocumentModelService ;
31+
2532 onStart ( ) { }
2633
2734 @OnEvent ( EditorDocumentModelSavedEvent )
@@ -33,4 +40,19 @@ export class EditorActionEventContribution extends WithEventBus implements Clien
3340 this . runtimeConfig . workspace . onDidSaveTextDocument ( { filepath, content } ) ;
3441 }
3542 }
43+
44+ @OnEvent ( EditorDocumentModelContentChangedEvent )
45+ async onEditorDocumentModelContentChangedEvent ( e : EditorDocumentModelContentChangedEvent ) {
46+ if ( this . runtimeConfig . workspace ?. onDidChangeTextDocument ) {
47+ const { uri } = e . payload ;
48+ const model = this . docModelService . getModelReference ( uri ) ;
49+ if ( model ) {
50+ const filepath = path . relative ( this . appConfig . workspaceDir , uri . codeUri . fsPath ) ;
51+ this . runtimeConfig . workspace . onDidChangeTextDocument ( {
52+ filepath,
53+ content : model . instance . getText ( ) ,
54+ } ) ;
55+ }
56+ }
57+ }
3658}
0 commit comments