change document_save and document_change_real to async
authorAlan Knowles <alan@roojs.com>
Sun, 28 Jan 2024 03:51:55 +0000 (11:51 +0800)
committerAlan Knowles <alan@roojs.com>
Sun, 28 Jan 2024 03:51:55 +0000 (11:51 +0800)
src/Application.vala
src/Builder4/Editor.bjs
src/Builder4/Editor.vala
src/JsRender/Gtk.vala
src/Palete/CompletionProvider.vala
src/Palete/LanguageClient.vala
src/Palete/LanguageClientDummy.vala
src/Palete/LanguageClientJavascript.vala
src/Palete/LanguageClientVala.vala

index a6638b8..93bf147 100644 (file)
                                // it's ready..
                                 
                                ls.document_open(file);
-                               ls.document_save(file);
+                               ls.document_save.begin( file, (o,res) => {
+                                       ls.document_save.end(res);
+                                });
                                
                                //ls.syntax.begin(file, (obj,res) => {
                                //      ls.syntax.end(res);
index 16e7df7..9b3979c 100644 (file)
           "        // assume it's gtk...",
           "         var  oldcode =_this.file.toSource();",
           "        _this.file.setSource(str);",
-          "        _this.file.getLanguageServer().document_change(_this.file);",
           "\t    BuilderApplication.showSpinner(\"appointment soon\",\"document change pending\");",
+          "    \t_this.file.getLanguageServer().document_change(_this.file);",
+          "",
           "        _this.file.setSource(oldcode);",
           "        ",
           "\t\t ",
index 2b47e91..6a3b20e 100644 (file)
@@ -861,8 +861,9 @@ public class Editor : Object
                        // assume it's gtk...
                         var  oldcode =_this.file.toSource();
                        _this.file.setSource(str);
-                       _this.file.getLanguageServer().document_change(_this.file);
                            BuilderApplication.showSpinner("appointment soon","document change pending");
+                       _this.file.getLanguageServer().document_change(_this.file);
+               
                        _this.file.setSource(oldcode);
                        
                                 
index 2a3451c..4301fb7 100644 (file)
@@ -183,7 +183,9 @@ namespace JsRender {
        
                this.saveVala();
 
-               this.getLanguageServer().document_save(this);
+               this.getLanguageServer().document_save.begin(this, (obj, res) => {
+                       this.getLanguageServer().document_save.end(res);
+               });
                BuilderApplication.showSpinner("spinner", "document save send");                
            }
                // ignore these calls.
index 06259d4..5d8a29c 100644 (file)
@@ -208,7 +208,7 @@ namespace Palete {
                                        }
                                } 
                                
-                               this.file.getLanguageServer().document_change_force(this.file, this.editor.tempFileContents());                         
+                               yield this.file.getLanguageServer().document_change_force(this.file, this.editor.tempFileContents());                           
                                try {
                                        GLib.debug("sending request to language server %s", this.file.getLanguageServer().get_type().name());
                                        
index a2dee4c..0a07c84 100644 (file)
@@ -80,10 +80,10 @@ namespace Palete {
  
                
                public abstract void document_open (JsRender.JsRender file) ; 
-               public abstract void document_save (JsRender.JsRender file); 
+               public abstract async void document_save (JsRender.JsRender file); 
                public abstract void document_close (JsRender.JsRender file);
-               public abstract void document_change (JsRender.JsRender file );
-               public abstract void document_change_force (JsRender.JsRender file, string contents );
+               public abstract  void document_change (JsRender.JsRender file );
+               public abstract async void document_change_force (JsRender.JsRender file, string contents );
                public abstract void exit () throws GLib.Error;
                public abstract async void shutdown () throws GLib.Error;
                public abstract async Lsp.CompletionList?  completion(JsRender.JsRender file, int line, int offset , int triggerType = 1) throws GLib.Error;
index 4d4a53d..b22131a 100644 (file)
@@ -14,9 +14,9 @@ namespace Palete {
                        GLib.debug("initialize dummy server");                  
                }
                public override void document_open (JsRender.JsRender file)  {}
-               public override void document_save (JsRender.JsRender file)   {}
+               public override async void document_save (JsRender.JsRender file)   {}
                public override void document_change (JsRender.JsRender file    )     {}
-                       public override void document_change_force (JsRender.JsRender file, string contents    )     {}
+               public override async void document_change_force (JsRender.JsRender file, string contents    )     {}
                public override void document_close (JsRender.JsRender file) {}
                public override void exit () throws GLib.Error { }
                public override async void shutdown () throws GLib.Error { }
index 8f8b357..7f43fdd 100644 (file)
@@ -17,9 +17,6 @@ namespace Palete {
                }
                 
                 
-               
-               
-                
                public override void document_open (JsRender.JsRender file)  
                {
                        this.file_contents.set(file.path, file.toSourceCode());
@@ -27,7 +24,7 @@ namespace Palete {
                        BuilderApplication.updateCompileResults();
                
                }
-               public override void document_save (JsRender.JsRender file)  
+               public override async void document_save (JsRender.JsRender file)  
                {
                        
                        this.file_contents.set(file.path, file.toSourceCode());
@@ -35,15 +32,17 @@ namespace Palete {
                        Javascript.singleton().validate(file.toSourceCode(), file );
                        BuilderApplication.updateCompileResults();
                }
-               public override void document_change_force (JsRender.JsRender file, string contents )   {
+               public override async void document_change_force (JsRender.JsRender file, string contents )   {
                        this.file_contents.set(file.path, contents);
                        GLib.debug("set file %s : %d chars", file.path, this.file_contents.get(file.path).length);
                        Javascript.singleton().validate(contents, file );
                        BuilderApplication.updateCompileResults();
                }
-               public override void document_change (JsRender.JsRender file )    
+               public override  void document_change (JsRender.JsRender file )    
                {
-                       this.document_change_force( file, file.toSourceCode());
+                       this.document_change_force.begin( file, file.toSourceCode(), (obj, res) => {
+                               this.document_change_force.end(res);
+                       });;
                }
                public override void document_close (JsRender.JsRender file) {}
                public override void exit () throws GLib.Error { }
index fc6d25b..a7b9146 100644 (file)
@@ -50,7 +50,9 @@ namespace Palete {
                                }
                                this.countdown--;
                                if (this.countdown < 0){
-                                       this.document_change_force(this.change_queue_file,  this.change_queue_file_source);
+                                       this.document_change_force.begin(this.change_queue_file,  this.change_queue_file_source, (o, res) => {
+                                               this.document_change_force.end(res);
+                                       });
                                        this.change_queue_file = null;
                                           
                                }
@@ -309,14 +311,14 @@ namespace Palete {
 
                }
                
-               public override  void document_save (JsRender.JsRender file)  
+               public override  async void document_save (JsRender.JsRender file)  
        {
                        if (!this.isReady()) {
                                return;
                        }
                        // save only really flags the file on the server - to actually force a change update - we need to 
                        // flag it as changed.
-                       this.document_change_force(file, file.toSource());
+                       yield this.document_change_force(file, file.toSource());
                        
                        this.change_queue_file = null;
                        GLib.debug ("LS send save");
@@ -383,7 +385,9 @@ namespace Palete {
                public override void document_change (JsRender.JsRender file )    
                {
                        if (this.change_queue_file != null && this.change_queue_file.path != file.path) {
-                               this.document_change_force(this.change_queue_file, this.change_queue_file_source);
+                               this.document_change_force.begin(this.change_queue_file, this.change_queue_file_source, (o, res) => {
+                                       this.document_change_force.end(res);
+                               });
                        }
                        
                        this.countdown = 3;
@@ -394,7 +398,7 @@ namespace Palete {
                }
        
 
-               public override void document_change_force (JsRender.JsRender file, string contents)  
+               public override async void document_change_force (JsRender.JsRender file, string contents)  
        {
                        if (!this.isReady()) {
                                return;
@@ -410,7 +414,7 @@ namespace Palete {
                        node.set_array(ar);
                        this.log(LanguageClientAction.CHANGE, file.path);
                         try {
-                               this.jsonrpc_client.send_notification (
+                               yield this.jsonrpc_client.send_notification_async (
                                        "textDocument/didChange",
                                        this.buildDict (  
                                                textDocument : this.buildDict (    ///TextDocumentItem;