if (subdir == "build") { // cmake!
return;
}
-
if (subdir == "autom4te.cache") { // automake?
return;
}
- if (subdir == "debian") { // debian!?
+ if (subdir == "obj-x86_64-linux-gnu") { // meson?
return;
}
+ //if (subdir == "debian") { // debian!?
+ // return;
+ //}
var dir = this.path + (subdir.length > 0 ? "/" : "") + subdir;
}
if (FileUtils.test(dir + "/" + fn, GLib.FileTest.IS_DIR)) {
+ if (subdir == "debian") { // dont bother with subdirs of debian.
+ continue;
+ }
+
+
subs.add(dir + "/" + fn);
continue;
}
if (Regex.match_simple("\\.(o|cache|out|stamp|~)$", fn)) { // object..
continue;
}
- if (Regex.match_simple("^(config1.builder|a.out|stamp-h1|depcomp|config.log|config.status|obj-x86_64-linux-gnu)$", fn)) { // object..
+ if (Regex.match_simple("^(config1.builder|a.out|stamp-h1|depcomp|config.log|config.status)$", fn)) { // object..
continue;
}
string[] ret = {};
foreach(var jdir in this.sub_paths) {
-
-
-
if (Path.get_basename (jdir.path) == name) {
GLib.debug("pathsMatching %s\n", jdir.path);
ret += full_path ? jdir.path : jdir.relpath;
return ret;
}
+
+ public Gee.ArrayList<JsRender.Dir> pathsUnder(string name)
+ {
+ var ret = new Gee.ArrayList<JsRender.Dir>();
+
+ foreach(var jdir in this.sub_paths) {
+ if (jdir.relpath.has_prefix(name + "/")) {
+ ret.add(jdir as JsRender.Dir);
+ }
+
+ }
+ return ret;
+
+ }
+
public Gee.ArrayList<string> readArray(Json.Array ar)
{
var ret = new Gee.ArrayList<string>();
return ret;
}
- public void updateErrorsforFile(JsRender.JsRender? f)
+ // called from file..
+ public void addError(JsRender.JsRender f, Lsp.Diagnostic diag)
{
- if (f != null) {
- var n = this.updateErrorsByType(f, "WARN");
- n += this.updateErrorsByType(f, "ERR");
- n += this.updateErrorsByType(f, "DEPR");
- }
+ var new_ce = new Palete.CompileError.new_from_diagnostic(f, diag);
+ var ls = this.getErrors(new_ce.category); // will create if necessary..
+ // find the file in the list store.
- BuilderApplication.updateCompileResults();
-
-
+ for(var i =0; i < ls.get_n_items(); i++) {
+ var ce = ls.get_item(i) as Palete.CompileError;
+ if (ce.file.path == f.path) {
+ ce.lines.append(new_ce);
+ return;
+ }
+ }
+ // we did not have the file..
+ var add = new Palete.CompileError.new_from_file(f, diag.category);
+ ls.append(add);
+ add.lines.append(new_ce);
+
}
- public int updateErrorsByType(JsRender.JsRender f, string n)
+ public void removeError(JsRender.JsRender f, Lsp.Diagnostic diag)
{
- var ls = this.getErrors(n);
-
- // remove thie file from the list.
+ var ls = this.getErrors(diag.category);
for(var i =0; i < ls.get_n_items(); i++) {
var ce = ls.get_item(i) as Palete.CompileError;
- if (ce.file.path == f.path) {
- ls.remove(i);
- break;
+ if (ce.file.path != f.path) {
+ continue;
+ }
+ for(var j =0; j < ce.lines.get_n_items(); j++) {
+ var lce = ce.lines.get_item(j) as Palete.CompileError;
+
+ if (!diag.equals( lce.diag)) {
+ continue;
+ }
+ ce.lines.remove(j);
+ if (ce.lines.get_n_items() < 1) {
+ ls.remove(i);
+ return;
+ }
}
}
- var add = new Palete.CompileError.new_from_file(f, n);
- if (add.hasErrors()) {
- ls.append(add);
- return 1;
- }
- return 0;
+
}
public GLib.ListStore getErrors(string n)
{