Gtk.TextIter cur_iter;
sbuf.get_iter_at_offset(out cur_iter, sbuf.cursor_position);
+
+ var cursor_at_line = cur_iter.get_line();
+
//var cur_line = cur_iter.get_line();
//if (cur_line > sel.line_start && cur_line < sel.line_end) {
this.el.editable = false;
+
+ var colon_pos = 0;
+
// now if we have selected a property...
if (this.propSelected.length> 0 ) {
start_line = nstart;
end_line = nend;
this.el.editable = true;
+
+
+ // see if we are 'right of ':'
+ // get an iter for the start of the line.
+ Gtk.TextIter start_line_iter;
+ this.el.buffer.get_iter_at_line(out start_line_iter, start_line);
+ var end_line_iter = start_line_iter.copy().forward_to_line_end();
+ var first_line = this.el.buffer.get_text(start_line_iter, end_line_iter, false);
+ colon_pos = start_line_iter.get_offset() + first_line.index_of(":");
+
+
+ if (start_line == cursor_at_line) {
+ var before_cursor_string = this.el.buffer.get_text(start_line_iter, cur_iter, false);
+ if (!before_cursor_string.contains(":")) {
+ this.el.editable = false;
+ }
+
+ }
+
+
}
print("propSelected = %s range %d -> %d\n", this.propSelected, start_line, end_line);
}
+
+
+
// check selection - if it's out of 'bounds'
if (this.el.editable && sbuf.get_has_selection()) {
Gtk.TextIter sel_start_iter, sel_end_iter;
// save?
this.el.editable = false;
}
+ if (colon_pos > 0 &&
+ (sel_start_iter.get_offset() < colon_pos || sel_end_iter.get_offset() < colon_pos)
+
+ ) {
+ this.el.editable = false;
+ }
+
+ }
+
}
print("- PREVIEW EDITOR CHANGED--");
+ this.dirty = true;
+ if (!this.checkSyntax()) {
+ return;
+ }
- this.checkSyntax();
+ // what are we editing??
+
- this.dirty = true;
+
return ;
if (str.length < 1) {
print("checkSyntax - empty string?\n");
- return true;
+ return false;
}
if (_this.file == null) {
- return true;
+ return false;
}
var p = Palete.factory(_this.file.xtype); // returns Roo | Gtk | PlainFile
if (_this.file.language != "js") {
- return;
+ return false; // fake syntax error.
}
- var res = this.highlightErrors(p.validateJavascript(
+ return this.highlightErrors(p.validateJavascript(
str,
"", // _this.key,
"file", //_this.ptype,
_this.file,
null
));
-
- if (!res) { // an error in the code.. don't save it..
- return;
- }
-
-
- print("calling validate vala\n");
-
- return true; // at present allow saving - even if it's invalid..
}
}