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 {
36 public abstract class LanguageClient : Jsonrpc.Server {
38 public Project.Project project;
44 public signal void log(LanguageClientAction action, string message);
47 protected LanguageClient(Project.Project project)
49 // extend versions will proably call initialize to start and connect to server.
50 this.project = project;
59 utility method to build variant based queries
61 public Variant buildDict (...) {
62 var builder = new GLib.VariantBuilder (new GLib.VariantType ("a{sv}"));
65 string? key = l.arg ();
69 Variant val = l.arg ();
70 builder.add ("{sv}", key, val);
72 return builder.end ();
80 public abstract void initialize_server();
83 public abstract void document_open (JsRender.JsRender file) ;
84 public abstract async void document_save (JsRender.JsRender file);
85 public abstract void document_close (JsRender.JsRender file);
86 public abstract void document_change (JsRender.JsRender file );
87 public abstract async void document_change_force (JsRender.JsRender file, string contents );
88 public abstract void exit () throws GLib.Error;
89 public abstract async void shutdown () throws GLib.Error;
90 public abstract async Lsp.CompletionList? completion(JsRender.JsRender file, int line, int offset , int triggerType = 1) throws GLib.Error;
91 public abstract async Gee.ArrayList<Lsp.DocumentSymbol> syntax (JsRender.JsRender file) throws GLib.Error;