Merge branch 'master' of http://git.roojs.com/roobuilder
[roobuilder] / src / Palete / LanguageClientJavascript.vala
index 8f8b357..b283835 100644 (file)
@@ -15,10 +15,7 @@ namespace Palete {
                public override   void  initialize_server()   {
                        GLib.debug("initialize javascript server");                     
                }
-                
-                
-               
-               
+               public override bool isReady ()  { return true; } 
                 
                public override void document_open (JsRender.JsRender file)  
                {
@@ -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 { }
@@ -59,7 +58,7 @@ namespace Palete {
                        //GLib.debug("got file %s : %s ", file.path, this.file_contents.get(file.path));
                        
                        var ar = this.file_contents.get(file.path).split("\n");
-                       var ln = line >= ar.length ? "" :  ar[line-1];
+                       var ln = line >= ar.length || line < 1 ? "" :  ar[line-1];
                        if (offset-1 >= ln.length) {
                                GLib.debug("request for complete on line %d  @ pos %d > line length %d", line, offset, (int) ln.length);
                                return ret;
@@ -279,20 +278,30 @@ namespace Palete {
                                        
                                
                        }
-                       
                         
                        
                        
-                       
-                       
                        return ret;
                
                }
-               public override async Gee.ArrayList<Lsp.DocumentSymbol> syntax (JsRender.JsRender file) throws GLib.Error {
-                       var ret = new Gee.ArrayList<Lsp.DocumentSymbol>();      
+                
+               public override async  Lsp.Hover hover (JsRender.JsRender file, int line, int offset) throws GLib.Error {
+                       return new Lsp.Hover();
+               }
+               public override void queueDocumentSymbols (JsRender.JsRender file) { }
+               public override async Gee.ArrayList<Lsp.DocumentSymbol> documentSymbols (JsRender.JsRender file) throws GLib.Error {
+                       var ret = new Gee.ArrayList<Lsp.DocumentSymbol>();      
                        return ret;
                }
-               
+               public override async Gee.ArrayList<Lsp.SignatureInformation> signatureHelp (JsRender.JsRender file, int line, int offset) throws GLib.Error
+               {
+                       return new Gee.ArrayList<Lsp.SignatureInformation>();   
+               }
+               public override async Gee.ArrayList<Lsp.SymbolInformation> symbol (string sym) throws GLib.Error 
+               {
+                       return new Gee.ArrayList<Lsp.SymbolInformation>();
+               }
+               
        }
        
 }
\ No newline at end of file