-
+ /*
public class AppSettings : Object
{
}
-
+ */
public static BuilderApplication application = null;
{ "application/x-rootwindow-drop", 0, Target.ROOTWIN }
};
*/
- public AppSettings settings = null;
+ //public AppSettings settings = null;
flags: ApplicationFlags.FLAGS_NONE
);
BuilderApplication.windows = new Gee.ArrayList<Xcls_MainWindow>();
+ BuilderApplication.windowlist = new GLib.ListStore(typeof(WindowState));
//BuilderApplication.valacompilequeue = new Palete.ValaCompileQueue();
configDirectory();
- this.settings = AppSettings.factory();
+ // this.settings = AppSettings.factory();
var opt_context = new OptionContext ("Application Builder");
try {
this.testBjs(cur_project);
this.languageServer(cur_project);
this.compileBjs(cur_project);
- this.compileVala();
+ //this.compileVala();
}
+ public static Settings settings;
+ protected override void activate ()
+ {
+ var css = new Gtk.CssProvider();
+ css.load_from_resource("/css/roobuilder.css");
+
+ Gtk.StyleContext.add_provider_for_display(
+ Gdk.Display.get_default(),
+ css ,
+ Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
+ );
+ BuilderApplication.settings = new Settings();
+
+ var w = new Xcls_MainWindow();
+ w.initChildren();
+ BuilderApplication.addWindow(w);
+
+ // it looks like showall after children causes segfault on ubuntu 14.4
+ w.windowstate.init();
+ // w.windowstate.showPopoverFiles(w.open_projects_btn.el, null, false);
+ w.show();
+
+ }
public static BuilderApplication singleton( string[]? args)
{
});
}
+
}
void listProjects()
var ar = cur_project.sortedFiles();
foreach(var file in ar) {
- string oldstr;
+
+ if (file is JsRender.PlainFile) {
+ continue;
+ }
+
file.loadItems();
var oldfn = file.targetName();
- GLib.FileUtils.get_contents(oldfn, out oldstr);
+
+ print("\n\n\n\nFile : %s\n", oldfn);
+
var outstr = file.toSourceCode();
+
+ /* line number checking
+ var bad = false;
+ // check line numbers:
+ var bits = outstr.split("\n");
+ var end = bits.length;
+ for(var i = 0;i < end; i++) {
+ print("%i : %s\n", i+1 , bits[i]);
+ if (!bad && bits[i].has_prefix("/*") && !bits[i].has_prefix(("/*%d*" +"/").printf(i+1))) {
+ end = i + 5 > bits.length ? bits.length: (i + 5);
+ print ("^^^^ mismatch\null");
+ bad = true;
+ }
+
+
+ }
+ if (bad) {
+ GLib.error("got bad file");
+ }
+ */
+ // compare files.
+ string oldstr;
+ GLib.FileUtils.get_contents(oldfn, out oldstr);
if (outstr != oldstr) {
GLib.FileUtils.set_contents("/tmp/" + file.name + ".out", outstr);
print("meld %s /tmp/%s\n", oldfn, file.name + ".out");
//GLib.Process.exit(Posix.EXIT_SUCCESS);
- }
- print("# Files match %s\n", file.name);
+ }
+ //print("# Files match %s\n", file.name);
}
} catch (FileError e) {
GLib.debug("Got error %s", e.message);
if (file == null) {
// then compile them all, and compare them...
-
-
-
-
+
GLib.error("missing file %s in project %s", BuilderApplication.opt_bjs_compile, cur_project.name);
}
if (ls == null) {
GLib.error("No langauge server returned for file:%s", file.relpath);
}
+
+ //GLib.debug("started server - sleep 30 secs so you can gdb attach");
+ //Posix.sleep( 30 );
var loop = new MainLoop();
GLib.Timeout.add_seconds(1, () => {
- if (!ls.isReady()) {
- GLib.debug("waiting for server to be ready");
- return true;
- }
+
GLib.debug("Sending document_open");
// it's ready..
ls.document_open(file);
+ ls.document_save.begin( file, (o,res) => {
+ ls.document_save.end(res);
+ });
+
+ //ls.syntax.begin(file, (obj,res) => {
+ // ls.syntax.end(res);
+
+ //});
+
+
return false;
});
GLib.Process.exit(Posix.EXIT_SUCCESS);
}
-
+ /*
void compileVala()
{
if (BuilderApplication.opt_compile_target == null) {
GLib.Process.exit(Posix.EXIT_SUCCESS);
}
+ */
void pullResources()
{
if (!opt_pull_resources) {
// move to 'window colletction?
public static Gee.ArrayList<Xcls_MainWindow> windows;
+ public static GLib.ListStore windowlist;
public static void addWindow(Xcls_MainWindow w)
{
+ windowlist.append(w.windowstate);
BuilderApplication.windows.add(w);
- BuilderApplication.updateWindows();
+
}
{
//GLib.debug("remove window before = %d", BuilderApplication.windows.size);
BuilderApplication.windows.remove(w);
- BuilderApplication.updateWindows();
+ for(var i = 0 ; i < windowlist.get_n_items(); i++) {
+ var ws = windowlist.get_item(i) as WindowState;
+ if (ws.file.path == w.windowstate.file.path && ws.project.path == w.windowstate.project.path) {
+ windowlist.remove(i);
+ break;
+ }
+ }
+
+
w.el.hide();
w.el.close();
}
- public static void updateWindows()
- {
- foreach(var ww in BuilderApplication.windows) {
- ww.windowbtn.updateMenu();
- }
- }
+
public static Xcls_MainWindow? getWindow(JsRender.JsRender file)
{
foreach(var ww in BuilderApplication.windows) {
{
var w = new Xcls_MainWindow();
w.ref();
- BuilderApplication.addWindow(w);
w.initChildren();
+ BuilderApplication.addWindow(w);
+ w.windowstate.init();
w.windowstate.fileViewOpen(file, false, line);
w.el.present();
}
+ static int queue_update_compile_countdown = -1;
+ static uint queue_update_compile_id = 0;
+
public static void updateCompileResults( )
{
+ queue_update_compile_countdown = 2; // 1 second after last call.
+ if (queue_update_compile_id == 0) {
+ queue_update_compile_id = GLib.Timeout.add(100, () => {
+ if (queue_update_compile_countdown < 0) {
+ return true;
+ }
+ queue_update_compile_countdown--;
+ if (queue_update_compile_countdown < 0) {
+ realUpdateCompileResults();
+ }
+
+ return true;
+ });
+ }
+ }
+
+
+ public static void realUpdateCompileResults( )
+ {
+
+
+
foreach(var ww in BuilderApplication.windows) {
if (ww == null || ww.windowstate == null || ww.windowstate.project ==null) {
continue;
}
+
ww.windowstate.updateErrorMarksAll();
- GLib.debug("calling udate Errors of window %s", ww.windowstate.file.targetName());
+ //GLib.debug("calling udate Errors of window %s", ww.windowstate.file.targetName());
ww.updateErrors();
-
+ ww.windowstate.left_tree.updateErrors();
+ ww.windowstate.left_props.updateErrors();
}
}
- public static void showSpinner(bool state)
+
+ public static void showSpinnerLspLog(Palete.LanguageClientAction action, string message) {
+
+ var msg = action.to_string() + " " + message;
+ switch(action) {
+
+ case Palete.LanguageClientAction.INIT:
+ case Palete.LanguageClientAction.LAUNCH:
+ case Palete.LanguageClientAction.ACCEPT:
+ BuilderApplication.showSpinner( "software-update-available", msg );
+ return;
+
+ case Palete.LanguageClientAction.DIAG:
+ BuilderApplication.showSpinner( "format-justify-fill", msg);
+ return;
+
+ case Palete.LanguageClientAction.DIAG_END:
+ BuilderApplication.showSpinner( "", "");
+ return;
+
+ case Palete.LanguageClientAction.OPEN:
+ BuilderApplication.showSpinner( "document-open", msg);
+ return;
+ case Palete.LanguageClientAction.SAVE:
+ BuilderApplication.showSpinner( "document-save", msg);
+ return;
+ case Palete.LanguageClientAction.CLOSE:
+ BuilderApplication.showSpinner( "window.close", msg);
+ return;
+ case Palete.LanguageClientAction.CHANGE:
+ BuilderApplication.showSpinner( "format-text-direction-ltr", msg);
+ return;
+ case Palete.LanguageClientAction.TERM:
+ BuilderApplication.showSpinner( "media-playback-stop", msg);
+ return;
+ case Palete.LanguageClientAction.COMPLETE:
+ BuilderApplication.showSpinner( "mail-send-recieve", msg);
+ return;
+
+ case Palete.LanguageClientAction.COMPLETE_REPLY:
+ BuilderApplication.showSpinner( "face-cool", msg);
+ return;
+
+ case Palete.LanguageClientAction.RESTART:
+ case Palete.LanguageClientAction.ERROR:
+ case Palete.LanguageClientAction.ERROR_START:
+ case Palete.LanguageClientAction.ERROR_RPC:
+ case Palete.LanguageClientAction.ERROR_REPLY:
+ BuilderApplication.showSpinner( "software-update-urgent", msg );
+ return;
+
+ case Palete.LanguageClientAction.EXIT:
+ BuilderApplication.showSpinner( "face-sick", msg);
+ return;
+
+
+ }
+ }
+
+ public static void showSpinner(string icon, string tooltip = "")
{
+
+ // events:
+ // doc change send: - spinner -
+
+
+ // ?? restart = software-update-urgent - crash?
+
+
foreach (var win in BuilderApplication.windows) {
- if (state) {
- win.statusbar_compile_spinner.start();
+ if (icon != "") {
+ win.statusbar_compile_spinner.start(icon, tooltip);
} else {
win.statusbar_compile_spinner.stop();
}
-