Browse Source

fixes for syncing up delete and rename resource with the typescript language service

Shaddock Heath 9 years ago
parent
commit
b2a386c668

+ 1 - 1
Script/AtomicEditor/ui/resourceEditors/AbstractTextResourceEditorBuilder.ts

@@ -70,7 +70,7 @@ export abstract class AbstractTextResourceEditorBuilder implements Editor.Extens
 
 
         editor.subscribeToEvent(EditorEvents.DeleteResourceNotification, (data) => {
         editor.subscribeToEvent(EditorEvents.DeleteResourceNotification, (data) => {
             const webClient = editor.webView.webClient;
             const webClient = editor.webView.webClient;
-            webClient.executeJavaScript(`HOST_resourceDeleted("atomic://${this.getNormalizedPath(data.path)}");`);
+            webClient.executeJavaScript(`HOST_resourceDeleted("${this.getNormalizedPath(data.path)}");`);
         });
         });
 
 
         editor.subscribeToEvent(EditorEvents.UserPreferencesChangedNotification, (data: EditorEvents.UserPreferencesChangedEvent) => {
         editor.subscribeToEvent(EditorEvents.UserPreferencesChangedNotification, (data: EditorEvents.UserPreferencesChangedEvent) => {

+ 8 - 2
Script/AtomicWebViewEditor/clientExtensions/languageExtensions/typescript/workerprocess/TypescriptLanguageServiceWebWorker.ts

@@ -286,6 +286,9 @@ export default class TypescriptLanguageServiceWebWorker {
         // so, compare the ends
         // so, compare the ends
         const fn = this.resolvePartialFilename(eventData.filename);
         const fn = this.resolvePartialFilename(eventData.filename);
 
 
+        // Add this file right away, and then add the rest of the project files
+        this.languageService.addProjectFile(fn, eventData.code);
+
         this.loadProjectFiles().then(() => {
         this.loadProjectFiles().then(() => {
             //let diagnostics = this.languageService.compile([fn]);
             //let diagnostics = this.languageService.compile([fn]);
             this.handleGetAnnotations(port, eventData);
             this.handleGetAnnotations(port, eventData);
@@ -531,7 +534,8 @@ export default class TypescriptLanguageServiceWebWorker {
      * @param  {WorkerProcessCommands.DeleteMessageData} eventData
      * @param  {WorkerProcessCommands.DeleteMessageData} eventData
      */
      */
     handleDelete(port: MessagePort, eventData: WorkerProcessTypes.DeleteMessageData) {
     handleDelete(port: MessagePort, eventData: WorkerProcessTypes.DeleteMessageData) {
-        this.languageService.deleteProjectFile(eventData.path);
+        let filename = this.resolvePartialFilename(eventData.path);
+        this.languageService.deleteProjectFile(filename);
     }
     }
 
 
     /**
     /**
@@ -540,7 +544,9 @@ export default class TypescriptLanguageServiceWebWorker {
      * @param  {WorkerProcessCommands.RenameMessageData} eventData
      * @param  {WorkerProcessCommands.RenameMessageData} eventData
      */
      */
     handleRename(port: MessagePort, eventData: WorkerProcessTypes.RenameMessageData) {
     handleRename(port: MessagePort, eventData: WorkerProcessTypes.RenameMessageData) {
-        this.languageService.renameProjectFile(eventData.path, eventData.newPath);
+        let fromFn = this.resolvePartialFilename(eventData.path);
+        let toFn = fromFn.replace(eventData.path, eventData.newPath);
+        this.languageService.renameProjectFile(fromFn, toFn);
     }
     }
 
 
     setPreferences(port: MessagePort, eventData: WorkerProcessTypes.SetPreferencesMessageData) {
     setPreferences(port: MessagePort, eventData: WorkerProcessTypes.SetPreferencesMessageData) {