2 generic interface to language server
3 ?? first of will be for vala... but later?
4 based on gvls-client-jsonrpc (loosly)
5 and vala-language-server
12 public enum LanguageClientAction {
35 public abstract class LanguageClient : Jsonrpc.Server {
37 public Project.Project project;
43 public signal void log(LanguageClientAction action, string message);
46 protected LanguageClient(Project.Project project)
48 // extend versions will proably call initialize to start and connect to server.
49 this.project = project;
58 utility method to build variant based queries
60 public Variant buildDict (...) {
61 var builder = new GLib.VariantBuilder (new GLib.VariantType ("a{sv}"));
64 string? key = l.arg ();
68 Variant val = l.arg ();
69 builder.add ("{sv}", key, val);
71 return builder.end ();
79 public abstract void initialize_server();
82 public abstract void document_open (JsRender.JsRender file) ;
83 public abstract async void document_save (JsRender.JsRender file);
84 public abstract void document_close (JsRender.JsRender file);
85 public abstract void document_change (JsRender.JsRender file );
86 public abstract async void document_change_force (JsRender.JsRender file, string contents );
87 public abstract void exit () throws GLib.Error;
88 public abstract async void shutdown () throws GLib.Error;
89 public abstract async Lsp.CompletionList? completion(JsRender.JsRender file, int line, int offset , int triggerType = 1) throws GLib.Error;
90 public abstract async Gee.ArrayList<Lsp.DocumentSymbol> syntax (JsRender.JsRender file) throws GLib.Error;