Adapt to moved ILineInformation/TextLineInformation
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/internal/docmlet/tex/core/model/LtxProblemAstVisitor.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/internal/docmlet/tex/core/model/LtxProblemAstVisitor.java
index 01adc7d..b1f60ba 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/internal/docmlet/tex/core/model/LtxProblemAstVisitor.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/internal/docmlet/tex/core/model/LtxProblemAstVisitor.java
@@ -28,8 +28,9 @@
import java.util.ArrayList;
import java.util.List;
+import org.eclipse.statet.jcommons.text.core.TextLineInformation;
+
import org.eclipse.statet.ecommons.runtime.core.util.MessageBuilder;
-import org.eclipse.statet.ecommons.text.core.ILineInformation;
import org.eclipse.statet.docmlet.tex.core.ast.Comment;
import org.eclipse.statet.docmlet.tex.core.ast.ControlNode;
@@ -62,7 +63,7 @@
private ISourceUnit currentUnit;
private String currentText;
- private ILineInformation currentLines;
+ private TextLineInformation currentLines;
private ProblemRequestor currentRequestor;
private final MessageBuilder messageBuilder= new MessageBuilder();
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/internal/docmlet/tex/core/model/LtxProblemModelCheck.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/internal/docmlet/tex/core/model/LtxProblemModelCheck.java
index 65793ba..eab034a 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/internal/docmlet/tex/core/model/LtxProblemModelCheck.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/internal/docmlet/tex/core/model/LtxProblemModelCheck.java
@@ -20,9 +20,9 @@
import java.util.List;
import org.eclipse.statet.jcommons.collections.ImList;
+import org.eclipse.statet.jcommons.text.core.TextLineInformation;
import org.eclipse.statet.ecommons.runtime.core.util.MessageBuilder;
-import org.eclipse.statet.ecommons.text.core.ILineInformation;
import org.eclipse.statet.docmlet.tex.core.ast.TexAstNode;
import org.eclipse.statet.docmlet.tex.core.model.ILtxModelInfo;
@@ -46,7 +46,7 @@
private ISourceUnit currentUnit;
private String currentText;
- private ILineInformation currentLines;
+ private TextLineInformation currentLines;
private ProblemRequestor currentRequestor;
private final MessageBuilder messageBuilder= new MessageBuilder();
diff --git a/docmlet/org.eclipse.statet.docmlet.wikitext.commonmark.core/src/org/eclipse/statet/internal/docmlet/wikitext/commonmark/core/ContentLineSequence.java b/docmlet/org.eclipse.statet.docmlet.wikitext.commonmark.core/src/org/eclipse/statet/internal/docmlet/wikitext/commonmark/core/ContentLineSequence.java
index 1681dc0..c47cab0 100644
--- a/docmlet/org.eclipse.statet.docmlet.wikitext.commonmark.core/src/org/eclipse/statet/internal/docmlet/wikitext/commonmark/core/ContentLineSequence.java
+++ b/docmlet/org.eclipse.statet.docmlet.wikitext.commonmark.core/src/org/eclipse/statet/internal/docmlet/wikitext/commonmark/core/ContentLineSequence.java
@@ -14,28 +14,27 @@
package org.eclipse.statet.internal.docmlet.wikitext.commonmark.core;
-import static com.google.common.base.Preconditions.checkArgument;
-
import java.util.ArrayList;
import java.util.List;
-import org.eclipse.jface.text.BadLocationException;
-
-import org.eclipse.statet.ecommons.text.core.ILineInformation;
+import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
+import org.eclipse.statet.jcommons.text.core.TextLineInformation;
+@NonNullByDefault
public class ContentLineSequence extends LineSequence {
private final String content;
- private final ILineInformation lineInfos;
+ private final TextLineInformation lineInfos;
- private Line currentLine;
+ private @Nullable Line currentLine;
private final List<Line> followingLines= new ArrayList<>();
- public ContentLineSequence(final String content, final ILineInformation lineInfos) {
+ public ContentLineSequence(final String content, final TextLineInformation lineInfos) {
this.content= content;
this.lineInfos= lineInfos;
@@ -43,53 +42,50 @@
}
- private Line createLine(final int lineNumber) {
+ private @Nullable Line createLine(final int lineNumber) {
if (lineNumber >= this.lineInfos.getNumberOfLines()) {
return null;
}
- try {
- final int startOffset= this.lineInfos.getLineOffset(lineNumber);
- int endOffset= this.lineInfos.getLineEndOffset(lineNumber);
- final String delimiter;
- switch ((endOffset > startOffset) ? this.content.charAt(endOffset - 1) : 0) {
- case '\n':
+
+ final int startOffset= this.lineInfos.getStartOffset(lineNumber);
+ int endOffset= this.lineInfos.getEndOffset(lineNumber);
+ final String delimiter;
+ switch ((endOffset > startOffset) ? this.content.charAt(endOffset - 1) : 0) {
+ case '\n':
+ endOffset--;
+ if (endOffset > startOffset && this.content.charAt(endOffset - 1) == '\r') {
endOffset--;
- if (endOffset > startOffset && this.content.charAt(endOffset - 1) == '\r') {
- endOffset--;
- delimiter= "\r\n";
- }
- else {
- delimiter= "\n";
- }
- break;
- case '\r':
- endOffset--;
- delimiter= "\r";
- break;
- default:
- delimiter= "";
- break;
+ delimiter= "\r\n";
}
-
- return new Line(lineNumber, startOffset, 0, this.content.substring(startOffset, endOffset), delimiter);
+ else {
+ delimiter= "\n";
+ }
+ break;
+ case '\r':
+ endOffset--;
+ delimiter= "\r";
+ break;
+ default:
+ delimiter= "";
+ break;
}
- catch (final BadLocationException e) {
- throw new RuntimeException(e);
- }
+ return new Line(lineNumber, startOffset, 0, this.content.substring(startOffset, endOffset), delimiter);
}
@Override
- public Line getCurrentLine() {
+ public @Nullable Line getCurrentLine() {
return this.currentLine;
}
@Override
- public Line getNextLine() {
+ public @Nullable Line getNextLine() {
return getNextLine(0);
}
- public Line getNextLine(final int index) {
- checkArgument(index >= 0);
+ public @Nullable Line getNextLine(final int index) {
+ if (index < 0) {
+ throw new IllegalArgumentException();
+ }
if (this.currentLine != null) {
while (index >= this.followingLines.size()) {
final Line line= createLine(this.currentLine.getLineNumber() + this.followingLines.size() + 1);
diff --git a/docmlet/org.eclipse.statet.docmlet.wikitext.commonmark.core/src/org/eclipse/statet/internal/docmlet/wikitext/commonmark/core/LineSequence.java b/docmlet/org.eclipse.statet.docmlet.wikitext.commonmark.core/src/org/eclipse/statet/internal/docmlet/wikitext/commonmark/core/LineSequence.java
index 8ea3a6d..1baaae5 100644
--- a/docmlet/org.eclipse.statet.docmlet.wikitext.commonmark.core/src/org/eclipse/statet/internal/docmlet/wikitext/commonmark/core/LineSequence.java
+++ b/docmlet/org.eclipse.statet.docmlet.wikitext.commonmark.core/src/org/eclipse/statet/internal/docmlet/wikitext/commonmark/core/LineSequence.java
@@ -15,15 +15,15 @@
package org.eclipse.statet.internal.docmlet.wikitext.commonmark.core;
import org.eclipse.statet.jcommons.lang.ObjectUtils.ToStringBuilder;
+import org.eclipse.statet.jcommons.text.core.util.TextLineInformationCreator;
-import org.eclipse.statet.ecommons.text.LineInformationCreator;
public abstract class LineSequence {
public static LineSequence create(final String text) {
- return new ContentLineSequence(text, new LineInformationCreator().create(text));
+ return new ContentLineSequence(text, new TextLineInformationCreator().create(text));
}
diff --git a/docmlet/org.eclipse.statet.docmlet.wikitext.core/src/org/eclipse/statet/docmlet/wikitext/core/source/WeaveLanguageProcessor.java b/docmlet/org.eclipse.statet.docmlet.wikitext.core/src/org/eclipse/statet/docmlet/wikitext/core/source/WeaveLanguageProcessor.java
index b158b10..751f312 100644
--- a/docmlet/org.eclipse.statet.docmlet.wikitext.core/src/org/eclipse/statet/docmlet/wikitext/core/source/WeaveLanguageProcessor.java
+++ b/docmlet/org.eclipse.statet.docmlet.wikitext.core/src/org/eclipse/statet/docmlet/wikitext/core/source/WeaveLanguageProcessor.java
@@ -20,7 +20,6 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.eclipse.jface.text.BadLocationException;
import org.eclipse.mylyn.wikitext.parser.Attributes;
import org.eclipse.mylyn.wikitext.parser.DocumentBuilder;
import org.eclipse.mylyn.wikitext.parser.Locator;
@@ -29,10 +28,9 @@
import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.text.core.BasicTextRegion;
+import org.eclipse.statet.jcommons.text.core.TextLineInformation;
import org.eclipse.statet.jcommons.text.core.TextRegion;
-import org.eclipse.statet.ecommons.text.core.ILineInformation;
-
import org.eclipse.statet.docmlet.wikitext.core.markup.IWikitextLocator;
import org.eclipse.statet.docmlet.wikitext.core.markup.MarkupParser2;
import org.eclipse.statet.ltk.core.SourceContent;
@@ -327,20 +325,15 @@
@Override
public int getLineNumber() {
- try {
- if (this.lineNumber < 0) {
- final ILineInformation lines= WeaveLanguageProcessor.this.orgContent.getLines();
- this.lineNumber= lines.getLineOfOffset(this.beginOffset);
- }
- return this.lineNumber;
+ if (this.lineNumber < 0) {
+ final TextLineInformation lines= WeaveLanguageProcessor.this.orgContent.getLines();
+ this.lineNumber= lines.getLineOfOffset(this.beginOffset);
}
- catch (final BadLocationException e) {
- throw new RuntimeException(e);
- }
+ return this.lineNumber;
}
- private ILineInformation getLines() throws BadLocationException {
- final ILineInformation lines= WeaveLanguageProcessor.this.orgContent.getLines();
+ private TextLineInformation getLines() {
+ final TextLineInformation lines= WeaveLanguageProcessor.this.orgContent.getLines();
if (this.lineNumber < 0) {
this.lineNumber= lines.getLineOfOffset(this.beginOffset);
}
@@ -349,12 +342,7 @@
@Override
public int getLineOffset() {
- try {
- return getLines().getLineOffset(this.lineNumber);
- }
- catch (final BadLocationException e) {
- throw new RuntimeException(e);
- }
+ return getLines().getStartOffset(this.lineNumber);
}
@Override
@@ -364,22 +352,11 @@
@Override
public int getLineLength() {
- try {
- return getLines().getLineLength(this.lineNumber);
- }
- catch (final BadLocationException e) {
- throw new RuntimeException(e);
- }
+ return getLines().getLength(this.lineNumber);
}
public int getLineEndOffset() {
- try {
- final ILineInformation lines= getLines();
- return lines.getLineEndOffset(this.lineNumber);
- }
- catch (final BadLocationException e) {
- throw new RuntimeException(e);
- }
+ return getLines().getEndOffset(this.lineNumber);
}
@Override
@@ -503,78 +480,73 @@
final String source= content.getText();
- try {
- this.embeddedList.clear();
-
- for (int iPart= 0; iPart < this.chunkParticipants.size(); iPart++) {
- this.chunkParticipants.get(iPart).reset(content);
- }
- for (int iPart= 0; iPart < this.inlineParticipants.size(); iPart++) {
- this.inlineParticipants.get(iPart).reset(content);
- }
- if (this.inlineMatcher == null) {
- final Pattern pattern= combineInlineParticipants();
- if (pattern != null) {
- this.inlineMatcher= pattern.matcher(source);
- if (DEBUGGING && this.inlineMatcher.groupCount() != this.inlineParticipants.size()) {
- System.out.println(this.inlineMatcher.pattern());
- }
+ this.embeddedList.clear();
+
+ for (int iPart= 0; iPart < this.chunkParticipants.size(); iPart++) {
+ this.chunkParticipants.get(iPart).reset(content);
+ }
+ for (int iPart= 0; iPart < this.inlineParticipants.size(); iPart++) {
+ this.inlineParticipants.get(iPart).reset(content);
+ }
+ if (this.inlineMatcher == null) {
+ final Pattern pattern= combineInlineParticipants();
+ if (pattern != null) {
+ this.inlineMatcher= pattern.matcher(source);
+ if (DEBUGGING && this.inlineMatcher.groupCount() != this.inlineParticipants.size()) {
+ System.out.println(this.inlineMatcher.pattern());
}
}
- else {
- this.inlineMatcher.reset(source);
- }
-
- this.sBuilder.setLength(0);
- this.sBuilder.ensureCapacity(source.length() + 40);
- int endOffset= 0;
- final ILineInformation lines= content.getLines();
- int lineEndOffset= lines.getLineOffset(0);
- final int numLines= lines.getNumberOfLines();
- for (int line= 0; line < numLines; line++) {
- int lineOffset= lineEndOffset;
- lineEndOffset= lines.getLineEndOffset(line);
- final int nPart= this.chunkParticipants.size();
- for (int iPart= 0; iPart < nPart; iPart++) {
- final BlockWeaveParticipant part= this.chunkParticipants.get(iPart);
- if (part.checkStartLine(lineOffset, lineEndOffset)) {
- append(source, endOffset, part.getStartOffset());
- final int checkedBeginOffset= this.sBuilder.length();
-
- part.appendReplacement(this.sBuilder, source, part.getStartOffset(), lineEndOffset);
- final int checkedEndOffset= this.sBuilder.length();
-
- endOffset= source.length();
- while (++line < numLines) {
- lineOffset= lineEndOffset;
- lineEndOffset= lines.getLineEndOffset(line);
- if (part.checkEndLine(lineOffset, lineEndOffset)) {
- endOffset= lineEndOffset;
- break;
- }
+ }
+ else {
+ this.inlineMatcher.reset(source);
+ }
+
+ this.sBuilder.setLength(0);
+ this.sBuilder.ensureCapacity(source.length() + 40);
+ int endOffset= 0;
+ final TextLineInformation lines= content.getLines();
+ int lineEndOffset= lines.getStartOffset(0);
+ final int numLines= lines.getNumberOfLines();
+ for (int line= 0; line < numLines; line++) {
+ int lineOffset= lineEndOffset;
+ lineEndOffset= lines.getEndOffset(line);
+ final int nPart= this.chunkParticipants.size();
+ for (int iPart= 0; iPart < nPart; iPart++) {
+ final BlockWeaveParticipant part= this.chunkParticipants.get(iPart);
+ if (part.checkStartLine(lineOffset, lineEndOffset)) {
+ append(source, endOffset, part.getStartOffset());
+ final int checkedBeginOffset= this.sBuilder.length();
+
+ part.appendReplacement(this.sBuilder, source, part.getStartOffset(), lineEndOffset);
+ final int checkedEndOffset= this.sBuilder.length();
+
+ endOffset= source.length();
+ while (++line < numLines) {
+ lineOffset= lineEndOffset;
+ lineEndOffset= lines.getEndOffset(line);
+ if (part.checkEndLine(lineOffset, lineEndOffset)) {
+ endOffset= lineEndOffset;
+ break;
}
-
- this.embeddedList.add(new EmbeddedChunk(part,
- checkedBeginOffset, checkedEndOffset,
- part.getStartOffset(), endOffset ));
}
+
+ this.embeddedList.add(new EmbeddedChunk(part,
+ checkedBeginOffset, checkedEndOffset,
+ part.getStartOffset(), endOffset ));
}
}
-
- if (this.sBuilder.length() > 0 || (this.inlineMatcher != null && this.inlineMatcher.find())) {
- append(source, endOffset, source.length());
-
- checkedContent= this.sBuilder.toString();
- }
- else {
- checkedContent= source;
- }
-
- this.embeddedIterator.reset();
}
- catch (final BadLocationException e) {
- throw new RuntimeException(e);
+
+ if (this.sBuilder.length() > 0 || (this.inlineMatcher != null && this.inlineMatcher.find())) {
+ append(source, endOffset, source.length());
+
+ checkedContent= this.sBuilder.toString();
}
+ else {
+ checkedContent= source;
+ }
+
+ this.embeddedIterator.reset();
this.ignoreCounter= 0;