1 | !include once #1015780 // RSyntaxTextArea libs / imports [include] |
2 | |
3 | import org.fife.ui.rsyntaxtextarea.RSyntaxDocument; |
4 | |
5 | sclass RSTADummyParser extends org.fife.ui.rsyntaxtextarea.parser.AbstractParser { |
6 | delegate ParseResult, DefaultParseResult, DefaultParserNotice |
7 | to org.fife.ui.rsyntaxtextarea.parser. |
8 | |
9 | // list of errors to show. also used to verify that we're on the |
10 | // correct text version |
11 | gettable L<Error> errors; |
12 | |
13 | sclass Error { |
14 | settable TokenRangeWithSrc tokenRange; |
15 | settable S msg; |
16 | } |
17 | |
18 | @Override |
19 | public ParseResult parse(RSyntaxDocument doc, String style) ctex { |
20 | var result = new DefaultParseResult(this); |
21 | var errors = this.errors; |
22 | if (empty(errors)) ret result; |
23 | |
24 | // if wrong text, temporarily return no errors |
25 | // (forceReparse will be called by actual parser) |
26 | S text = doc.getText(0, doc.getLength()); |
27 | if (!eq(text, first(errors).tokenRange.fullSourceText())) |
28 | ret result; |
29 | |
30 | // We're on the right text, convert messages and return them |
31 | for (Error e : errors) { |
32 | LineAndColumn start = e.tokenRange.startLineAndCol(); |
33 | LineAndColumn end = e.tokenRange.endLineAndCol(); |
34 | int length = end.line > start.line |
35 | // spanning multiple lines |
36 | ? lengthOfLine(text, start.line-1)-(start.col-1) |
37 | // start and end in same line |
38 | : end.col-start.col; |
39 | result.addNotice(new DefaultParserNotice(this, |
40 | e.msg, start.line-1, start.col-1, length)); |
41 | } |
42 | |
43 | ret result; |
44 | } |
45 | |
46 | void setErrors(L<Error> errors, RSyntaxTextArea textArea) { |
47 | this.errors = errors; |
48 | swing { |
49 | textArea.forceReparsing(RSTADummyParser.this); |
50 | } |
51 | } |
52 | |
53 | void install(RSyntaxTextArea textArea) swing { |
54 | textArea.addParser(RSTADummyParser.this); |
55 | } |
56 | } |
Began life as a copy of #1035120
download show line numbers debug dex old transpilations
Travelled to 3 computer(s): bhatertpkbcr, mowyntqkapby, mqqgnosmbjvj
No comments. add comment
Snippet ID: | #1035126 |
Snippet name: | RSTADummyParser - just for forwarding the actual parser's error highlights (backup) |
Eternal ID of this version: | #1035126/1 |
Text MD5: | 53aec16e62441b53869950fdfd86ca1f |
Author: | stefan |
Category: | javax |
Type: | JavaX fragment (include) |
Public (visible to everyone): | Yes |
Archived (hidden from active list): | No |
Created/modified: | 2022-03-30 17:32:40 |
Source code size: | 1832 bytes / 56 lines |
Pitched / IR pitched: | No / No |
Views / Downloads: | 115 / 126 |
Referenced in: | [show references] |