use of org.activityinfo.model.formula.SourceRange in project activityinfo by bedatadriven.
the class Linter method applyMarks.
private void applyMarks(ParsedFormula formula) {
if (!formula.isValid()) {
for (FormulaError error : formula.getErrors()) {
if (error.hasSourceRange()) {
SourceRange range = error.getSourceRange();
MarkOptions options = MarkOptions.create();
options.setClassName("CodeMirror-lint-mark-error");
options.setTitle(error.getMessage());
TextMarker marker = editor.getDoc().markText(pos(range.getStart()), pos(range.getEnd()), options);
markers.add(marker);
}
}
} else {
for (FieldReference fieldReference : formula.getReferences()) {
SourceRange range = fieldReference.getSourceRange();
MarkOptions options = MarkOptions.create();
options.setClassName(FormulaResources.INSTANCE.styles().fieldAnnotation());
options.setTitle(fieldReference.getDescription());
TextMarker marker = editor.getDoc().markText(pos(range.getStart()), pos(range.getEnd()), options);
markers.add(marker);
}
}
}
use of org.activityinfo.model.formula.SourceRange in project activityinfo by bedatadriven.
the class FormulaValidatorTest method badNumberOfArguments.
@Test
public void badNumberOfArguments() {
FormulaValidator validator = validate("IF(1)");
assertThat(validator.getErrors(), hasSize(1));
assertThat(validator.getErrors().get(0).getSourceRange(), equalTo(new SourceRange(new SourcePos(0, 0), 5)));
}
Aggregations