always: { priority: "high" this.get('sliderA').getValue() == this.get('sliderB').getValue() + 0.1 } always: { priority: "low" 2 == 2 }
Saved.
ObjectEditor -- constraintEditor>>reloadConstraints
X

Menu
        }
        var keyvalue = rawString.split(':');
        if (keyvalue.length === 2) {
            var key = keyvalue[0].trim();
            var val = keyvalue[1].trim();
            if (val[0] == '"' || val[0] == "'") {
                // remove quotes for strings
                val = val.substr(1, val.length - 2);
            }
            return [key, val];
        }
        return null;
    }
    
    // find all new constraints
    var matches = code.match(constraintPattern);
    console.log(matches);
    if (matches) {
        console.log('constraints found: ' + matches.length);
        var that = this;
        matches.forEach(function(constraintCode) {
            var m = constraintCode.match(innerPattern);
            console.log(m);
            if (m) {
                var condition = m[4].trim();
                var opt1 = parseOption(m[1]), 
                    opt2 = parseOption(m[2]), 
                    opt3 = parseOption(m[3]);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<lively.morphic.Text#F97BD... - constraintEditor>
Tag:
run
save
Tests

-- ALL --
disableConstraints
doSave
hasChanged
indicateChanges
reloadConstraints
reset
Scripts
-
+
-
Connections
+
-- ALL --
textString,AttributeConnection(<lively.morphic.Text#F97BD... - constraintEditor>.textString --> <lively.morphic.Text#F97BD... - constraintEditor>.indicateChanges)
textString,AttributeConnection(<lively.morphic.Text#F97BD... - constraintEditor>.textString --> <lively.morphic.Text#F97BD... - constraintEditor>.highlightSyntaxDebounced)
all