Adapt to improved SourceContent
Change-Id: Icbf240ce86e4abeb5f3e6f490dd2d9a49c01f5c1
diff --git a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporterTest.java b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporterTest.java
index f7b150d..b197e39 100644
--- a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporterTest.java
+++ b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporterTest.java
@@ -70,7 +70,7 @@
final RSourceUnit su= createSourceUnit(source);
final SourceContent sourceContent= su.getContent(new NullProgressMonitor());
final SourceComponent sourceComponent= this.rParser.scanSourceUnit(
- new StringParserInput(sourceContent.getText()).init() );
+ new StringParserInput(sourceContent.getString()).init() );
final List<Problem> collectedProblems= new ArrayList<>();
this.problemReporter.run(su, sourceContent, sourceComponent, new ProblemRequestor() {
@Override
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RBuildReconciler.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RBuildReconciler.java
index 05d8c09..7c3ac38 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RBuildReconciler.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RBuildReconciler.java
@@ -24,8 +24,6 @@
import org.eclipse.core.runtime.OperationCanceledException;
import org.eclipse.core.runtime.Status;
-import org.eclipse.statet.jcommons.text.core.TextLineInformation;
-
import org.eclipse.statet.internal.r.core.sourcemodel.RModelManagerImpl;
import org.eclipse.statet.internal.r.core.sourcemodel.RReconciler;
import org.eclipse.statet.r.core.RCore;
@@ -97,12 +95,10 @@
// problemRequestor.beginReportingSequence();
try {
final List<RAstNode> comments= ((SourceComponent) data.ast.getRoot()).getComments();
- this.taskScanner.setup((IResource) su.getResource());
- final TextLineInformation lines= data.content.getLines();
+ this.taskScanner.setup(data.content, (IResource)su.getResource());
for (final RAstNode comment : comments) {
- final int offset= comment.getStartOffset() + 1;
- this.taskScanner.checkForTasks(data.content.getText().substring(
- offset, offset + comment.getLength() - 1 ), offset, lines );
+ this.taskScanner.checkForTasks(
+ comment.getStartOffset() + 1, comment.getEndOffset() );
}
}
catch (final Exception e) {
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RBuilder.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RBuilder.java
index 324c137..08cd2e0 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RBuilder.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RBuilder.java
@@ -50,6 +50,7 @@
import org.eclipse.statet.ltk.buildpath.core.BuildpathElement;
import org.eclipse.statet.ltk.buildpath.core.BuildpathUtils;
import org.eclipse.statet.ltk.core.Ltk;
+import org.eclipse.statet.ltk.core.SourceContent;
import org.eclipse.statet.ltk.model.core.LtkModels;
import org.eclipse.statet.ltk.model.core.SourceUnitManager;
import org.eclipse.statet.r.core.RBuildpaths;
@@ -453,8 +454,9 @@
protected void doParseRd(final IFile file) throws CoreException {
try {
- this.taskMarkerHandler.setup(file);
- new RdParser(readFile(file), this.taskMarkerHandler).check();
+ final SourceContent sourceContent= new SourceContent(0, readFile(file));
+ this.taskMarkerHandler.setup(sourceContent, file);
+ new RdParser(sourceContent, this.taskMarkerHandler).check();
}
catch (final CoreException e) {
this.statusCollector.add(new Status(IStatus.ERROR, RCore.BUNDLE_ID, 0,
@@ -463,7 +465,7 @@
}
}
- protected char[] readFile(final IFile file) throws CoreException {
+ protected String readFile(final IFile file) throws CoreException {
String charset= null;
InputStream input= null;
try {
@@ -478,9 +480,7 @@
text.append(readBuffer, 0, n);
}
- final char[] chars= new char[text.length()];
- text.getChars(0, chars.length, chars, 0);
- return chars;
+ return text.toString();
}
catch (final UnsupportedEncodingException e) {
throw new CoreException(new Status(
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RdParser.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RdParser.java
index 457e167..08c74bd 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RdParser.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/builder/RdParser.java
@@ -17,109 +17,33 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.statet.jcommons.collections.IntArrayList;
-import org.eclipse.statet.jcommons.collections.IntList;
-import org.eclipse.statet.jcommons.text.core.TextLineInformation;
-import org.eclipse.statet.jcommons.text.core.TextRegion;
-
-import org.eclipse.statet.ecommons.text.core.JFaceTextRegion;
+import org.eclipse.statet.ltk.core.SourceContent;
public class RdParser {
- public class LineInformation implements TextLineInformation {
-
-
- private final IntList offsets;
-
-
- public LineInformation() {
- this.offsets= new IntArrayList();
- }
-
- public void addLine(final int offset) {
- this.offsets.add(offset);
- }
-
- @Override
- public int getNumberOfLines() {
- return this.offsets.size();
- }
-
- @Override
- public int getLineOfOffset(final int offset) {
- if (this.offsets.size() == 0) {
- return -1;
- }
- int low= 0;
- int high= this.offsets.size() - 1;
-
- while (low <= high) {
- final int mid= (low + high) >> 1;
- final int lineOffset= this.offsets.getAt(mid);
-
- if (lineOffset < offset) {
- low= mid + 1;
- }
- else if (lineOffset > offset) {
- high= mid - 1;
- }
- else {
- return mid;
- }
- }
- return low - 1;
- }
-
- @Override
- public int getStartOffset(final int line) {
- if (line < 0 || line >= this.offsets.size()) {
- return -1;
- }
- return this.offsets.getAt(line);
- }
-
- @Override
- public int getEndOffset(final int line) {
- return (line + 1 == this.offsets.size()) ? RdParser.this.content.length : this.offsets.getAt(line + 1);
- }
-
- @Override
- public int getLength(final int line) {
- return (line + 1 == this.offsets.size()) ?
- (RdParser.this.content.length - this.offsets.getAt(line)) :
- (this.offsets.getAt(line + 1) - this.offsets.getAt(line) );
- }
-
- @Override
- public TextRegion getRegion(final int line) {
- return JFaceTextRegion.newByStartEnd(this.offsets.getAt(line),
- (line + 1 == this.offsets.size()) ?
- RdParser.this.content.length :
- this.offsets.getAt(line + 1) );
- }
-
- }
-
-
- private static final char[][] PLATFORM_KEYWORDS= { // without '#'
- "ifdef".toCharArray(), "ifndef".toCharArray(), "endif".toCharArray() }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ private static final char[][] PLATFORM_KEYWORDS= { // without '#'
+ "ifdef".toCharArray(), //$NON-NLS-1$
+ "ifndef".toCharArray(), //$NON-NLS-1$
+ "endif".toCharArray() }; //$NON-NLS-1$
private enum Last { NONE, NEWLINE, BACKSLASH }
- private final RTaskMarkerHandler markers;
+
+ private final SourceContent sourceContent;
private final char[] content;
+ private final RTaskMarkerHandler markers;
+
private int currentOffset= 0;
private final int currentLine= 1;
private Last lastChar= Last.NONE;
- private final LineInformation lineStructure;
- public RdParser(final char[] content, final RTaskMarkerHandler markers) {
- this.content= content;
+ public RdParser(final SourceContent sourceContent, final RTaskMarkerHandler markers) {
+ this.sourceContent= sourceContent;
+ this.content= sourceContent.getString().toCharArray();
this.markers= markers;
- this.lineStructure= new LineInformation();
}
public void check() throws CoreException {
@@ -182,7 +106,7 @@
}
}
try {
- this.markers.checkForTasks(new String(this.content, start, end - start + 1), start, this.lineStructure);
+ this.markers.checkForTasks(start, end);
}
catch (final BadLocationException e) {
}
@@ -197,7 +121,6 @@
this.currentOffset++;
}
- this.lineStructure.addLine(this.currentOffset);
this.lastChar= Last.NEWLINE;
return true;
}
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/RReconciler.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/RReconciler.java
index fc214d6..1e65300 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/RReconciler.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/RReconciler.java
@@ -181,10 +181,10 @@
final TextParserInput input;
if (data.content.getStartOffset() != 0) {
- input= new OffsetStringParserInput(data.content.getText(), data.content.getStartOffset());
+ input= new OffsetStringParserInput(data.content.getString(), data.content.getStartOffset());
}
else {
- input= this.raInput.reset(data.content.getText());
+ input= this.raInput.reset(data.content.getString());
}
final RParser rParser= new RParser(AstInfo.LEVEL_MODEL_DEFAULT,
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporter.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporter.java
index a13d6b8..8355fe1 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporter.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporter.java
@@ -14,6 +14,8 @@
package org.eclipse.statet.internal.r.core.sourcemodel;
+import static org.eclipse.statet.jcommons.lang.ObjectUtils.nonNullLateInit;
+
import static org.eclipse.statet.ltk.ast.core.AstNode.NA_OFFSET;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS123_SYNTAX_NUMBER_EXP_DIGIT_MISSING;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS123_SYNTAX_NUMBER_HEX_DIGIT_MISSING;
@@ -133,16 +135,14 @@
private final boolean reportSubsequent= false;
- private SourceUnit sourceUnit;
- private SourceContent sourceContent;
- private String currentText;
- private ProblemRequestor currentRequestor;
+ private SourceUnit sourceUnit= nonNullLateInit();
+ private SourceContent sourceContent= nonNullLateInit();
+ private ProblemRequestor currentRequestor= nonNullLateInit();
private final StringBuilder tmpBuilder= new StringBuilder();
private final MessageBuilder messageBuilder= new MessageBuilder();
private final List<Problem> problemBuffer= new ArrayList<>(BUFFER_SIZE);
private final RValueFormatter valueFormatter= new RValueFormatter();
-// private int maxOffset;
public SyntaxProblemReporter() {
@@ -154,9 +154,6 @@
try {
this.sourceUnit= su;
this.sourceContent= content;
- this.currentText= content.getText();
-// this.currentDoc= su.getDocument(null);
-// this.maxOffset= this.currentDoc.getLength();
this.currentRequestor= problemRequestor;
node.acceptInR(this);
if (this.problemBuffer.size() > 0) {
@@ -167,7 +164,6 @@
finally {
this.problemBuffer.clear();
this.sourceUnit= null;
-// this.currentDoc= null;
this.currentRequestor= null;
}
}
@@ -222,14 +218,16 @@
else {
if (node.getLength() - offset > START_TEXT_LIMIT) {
final StringBuilder sb= getStringBuilder();
- sb.append(this.sourceContent.getText(),
- node.getStartOffset() + offset, node.getStartOffset() + offset + START_TEXT_LIMIT);
+ this.sourceContent.appendStringTo(sb,
+ node.getStartOffset() + offset,
+ node.getStartOffset() + offset + START_TEXT_LIMIT );
sb.append('…');
return sb.toString();
}
else {
- return this.sourceContent.getText().substring(
- node.getStartOffset() + offset, node.getEndOffset() + offset );
+ return this.sourceContent.getString(
+ node.getStartOffset() + offset,
+ node.getEndOffset() );
}
}
}
@@ -238,7 +236,10 @@
final String text= node.getText();
if (text != null) {
if (text.length() > FULL_TEXT_LIMIT) {
- return text.substring(0, FULL_TEXT_LIMIT) + '…';
+ final StringBuilder sb= getStringBuilder();
+ sb.append(text, 0, FULL_TEXT_LIMIT);
+ sb.append('…');
+ return sb.toString();
}
else {
return text;
@@ -246,11 +247,17 @@
}
else {
if (node.getLength() > FULL_TEXT_LIMIT) {
- return this.currentText.substring(node.getStartOffset(),
- node.getStartOffset() + FULL_TEXT_LIMIT ) + '…';
+ final StringBuilder sb= getStringBuilder();
+ this.sourceContent.appendStringTo(sb,
+ node.getStartOffset(),
+ node.getStartOffset() + FULL_TEXT_LIMIT );
+ sb.append('…');
+ return sb.toString();
}
else {
- return this.currentText.substring(node.getStartOffset(), node.getEndOffset());
+ return this.sourceContent.getString(
+ node.getStartOffset(),
+ node.getEndOffset() );
}
}
}
@@ -263,8 +270,9 @@
return text.substring(begin, begin + detail.getLength());
}
else {
- return this.sourceContent.getText().substring(
- detail.getStartOffset(), detail.getEndOffset() );
+ return this.sourceContent.getString(
+ detail.getStartOffset(),
+ detail.getEndOffset() );
}
}
@@ -279,8 +287,9 @@
null)));
case STATUS12_SYNTAX_TOKEN_UNEXPECTED:
- addProblem(Problem.SEVERITY_ERROR, code,
- this.messageBuilder.bind(ProblemMessages.Syntax_TokenUnexpected_message, getFullText(node)),
+ addProblem(Problem.SEVERITY_ERROR, code, this.messageBuilder.bind(
+ ProblemMessages.Syntax_TokenUnexpected_message,
+ getFullText(node) ),
node.getStartOffset(), node.getEndOffset() );
break STATUS;
@@ -301,16 +310,18 @@
sb.append(" (").append(node.getStartOffset()).append(", ").append(node.getLength()).append(')'); //$NON-NLS-1$ //$NON-NLS-2$
sb.append('\n');
if (this.sourceContent != null) {
- final TextLineInformation lines= this.sourceContent.getLines();
- final int line= lines.getLineOfOffset(node.getStartOffset());
- sb.append(" Line ").append((line + 1)).append(" (offset )").append(lines.getStartOffset(line)); //$NON-NLS-1$ //$NON-NLS-2$
+ final TextLineInformation lines= this.sourceContent.getStringLines();
+ final int line= lines.getLineOfOffset(node.getStartOffset() - this.sourceContent.getStartOffset());
+ sb.append(" Line ").append((line + 1)); //$NON-NLS-1$ //$NON-NLS-2$
sb.append('\n');
final int firstLine= Math.max(0, line - 2);
- final int lastLine= Math.min(lines.getNumberOfLines() - 1, lines.getLineOfOffset(line) + 2);
- sb.append(" Source (line ").append((firstLine + 1)).append('-').append((lastLine)).append("): \n"); //$NON-NLS-1$ //$NON-NLS-2$
- sb.append(this.currentText.substring(lines.getStartOffset(firstLine),
- lines.getStartOffset(lastLine) ));
+ final int lastLine= Math.min(lines.getNumberOfLines() - 1,
+ lines.getLineOfOffset(node.getEndOffset() - this.sourceContent.getStartOffset()) + 2 );
+ sb.append(" Source (line ").append((firstLine + 1)).append('-').append((lastLine + 1)).append("): \n"); //$NON-NLS-1$ //$NON-NLS-2$
+ sb.append(this.sourceContent.getString(),
+ lines.getStartOffset(firstLine),
+ lines.getEndOffset(lastLine) );
}
RCorePlugin.log(new Status(IStatus.WARNING, RCore.BUNDLE_ID, sb.toString()));
}
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/search/RElementSearch.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/search/RElementSearch.java
index 192e0b6..a71376a 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/search/RElementSearch.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/search/RElementSearch.java
@@ -96,7 +96,7 @@
final RSourceUnitModelInfo modelInfo= (RSourceUnitModelInfo)sourceUnit.getModelInfo(RModel.R_TYPE_ID,
RModelManager.MODEL_FILE, progress.newChild(1) );
- final SourceContent content= sourceUnit.getContent(progress.newChild(1));
+ final SourceContent sourceContent= sourceUnit.getContent(progress.newChild(1));
final List<List<? extends RElementAccess>> allFrameAccess= new ArrayList<>();
for (final String frameId : this.definitionFrameIds) {
@@ -116,8 +116,7 @@
}
}
- final String contentText= content.getText();
- final TextLineInformation lineInformation= content.getLines();
+ final TextLineInformation lines= sourceContent.getStringLines();
final Map<Integer, LineElement<RSourceUnit>> lineElements= new HashMap<>();
for (final List<? extends RElementAccess> allAccess : allFrameAccess) {
@@ -127,12 +126,12 @@
final TextRegion region= RModelUtils.getNameSourceRegion(access);
final Integer lineNumber= Integer.valueOf(
- lineInformation.getLineOfOffset(region.getStartOffset()) );
+ lines.getLineOfOffset(region.getStartOffset()) );
LineElement<RSourceUnit> lineElement= lineElements.get(lineNumber);
if (lineElement == null) {
- final int lineOffset= lineInformation.getStartOffset(lineNumber);
+ final int lineOffset= lines.getStartOffset(lineNumber);
lineElement= new LineElement<>(bestUnit, lineNumber, lineOffset,
- getContent(contentText, lineOffset, lineOffset + lineInformation.getLength(lineNumber)) );
+ getContent(sourceContent, lineOffset, lines.getEndOffset(lineNumber)) );
lineElements.put(lineNumber, lineElement);
}
@@ -156,13 +155,17 @@
access : null;
}
- private String getContent(final String text, final int start, final int end) {
+ private String getContent(final SourceContent sourceContent,
+ final int startOffset, final int endOffset) {
+ final String s= sourceContent.getString();
this.sb.setLength(0);
- for (int idx= start; idx < end; idx++) {
- final char c= text.charAt(idx);
+ final int end= endOffset - sourceContent.getStartOffset();
+ for (int idx= startOffset - sourceContent.getStartOffset(); idx < end; idx++) {
+ final char c= s.charAt(idx);
if (Character.isWhitespace(c) || Character.isISOControl(c)) {
this.sb.append(' ');
- } else {
+ }
+ else {
this.sb.append(c);
}
}
diff --git a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/core/model/RChunkReconciler.java b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/core/model/RChunkReconciler.java
index 5b22a2c..9e206b2 100644
--- a/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/core/model/RChunkReconciler.java
+++ b/redocs/org.eclipse.statet.redocs.r/src/org/eclipse/statet/redocs/r/core/model/RChunkReconciler.java
@@ -101,10 +101,14 @@
}
public void reconcileAst(final TModelContainer adapter,
- final SourceContent content, final List<? extends EmbeddingAstNode> list,
+ final SourceContent sourceContent, final List<? extends EmbeddingAstNode> list,
final IProgressMonitor monitor) {
- final String source= content.getText();
- final TextLineInformation lines= content.getLines();
+ if (sourceContent.getStartOffset() != 0) {
+ throw new UnsupportedOperationException();
+ }
+
+ final String source= sourceContent.getString();
+ final TextLineInformation lines= sourceContent.getStringLines();
this.raChunkStartLineMatcher.reset(source);
if (this.raChunkRefLineMatcher != null) {
@@ -250,8 +254,8 @@
label= labelNode.getText();
}
else {
- label= new String(content.getText().substring(
- labelNode.getStartOffset(), labelNode.getEndOffset() ));
+ label= content.getString(
+ labelNode.getStartOffset(), labelNode.getEndOffset() );
}
name= RElementName.create(RElementName.MAIN_OTHER, label);
nameRegion= labelNode;
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r.textile/src/org/eclipse/statet/internal/redocs/wikitext/r/textile/core/TextileValidator.java b/redocs/org.eclipse.statet.redocs.wikitext.r.textile/src/org/eclipse/statet/internal/redocs/wikitext/r/textile/core/TextileValidator.java
index b527282..9344807 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r.textile/src/org/eclipse/statet/internal/redocs/wikitext/r/textile/core/TextileValidator.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r.textile/src/org/eclipse/statet/internal/redocs/wikitext/r/textile/core/TextileValidator.java
@@ -46,18 +46,20 @@
@Override
- public void run(final WikitextSourceUnit su, final SourceContent content,
+ public void run(final WikitextSourceUnit su, final SourceContent sourceContent,
final WikidocSourceUnitModelInfo model,
final ProblemRequestor requestor, final int level, final IProgressMonitor monitor) {
+ if (sourceContent.getStartOffset() != 0) {
+ throw new UnsupportedOperationException();
+ }
- final Matcher matcher= BLOCK_START_PATTERN.matcher(content.getText());
+ final Matcher matcher= BLOCK_START_PATTERN.matcher(sourceContent.getString());
- final TextLineInformation lines= content.getLines();
- final int numLines= lines.getNumberOfLines();
- int start= 0;
- for (int line= 0; line < numLines; line++) {
- final int end= lines.getEndOffset(line);
- matcher.region(start, end);
+ final TextLineInformation lines= sourceContent.getStringLines();
+ int startOffset= 0;
+ for (int line= 0; line < lines.getNumberOfLines(); line++) {
+ final int endOffset= lines.getEndOffset(line);
+ matcher.region(startOffset, endOffset);
if (matcher.find()) {
final String followingCharacter= matcher.group(2);
if (followingCharacter == null || !followingCharacter.equals(" ")) { //$NON-NLS-1$
@@ -65,10 +67,10 @@
requestor.acceptProblems(new BasicProblem(WikitextModel.WIKIDOC_TYPE_ID,
Problem.SEVERITY_WARNING, 0,
NLS.bind(Messages.Validation_BlockWhitespace_message, matched),
- line, start, matcher.end(1) ));
+ line, startOffset, matcher.end(1) ));
}
}
- start= end;
+ startOffset= endOffset;
}
}
diff --git a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/YamlFormatDetector.java b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/YamlFormatDetector.java
index 9268787..9936765 100644
--- a/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/YamlFormatDetector.java
+++ b/redocs/org.eclipse.statet.redocs.wikitext.r/src/org/eclipse/statet/internal/redocs/wikitext/r/ui/processing/YamlFormatDetector.java
@@ -23,11 +23,11 @@
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.SubMonitor;
import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
import org.eclipse.osgi.util.NLS;
+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.docmlet.base.ui.DocmlBaseUI;
import org.eclipse.statet.docmlet.base.ui.processing.DocProcessingConfig;
@@ -71,15 +71,14 @@
try {
final SourceContent content= unit.getContent(m.newChild(1));
m.worked(0);
- final IRegion yamlRegion= getYamlBlockRegion(content);
+ final TextRegion yamlRegion= getYamlBlockRegion(content);
m.worked(1);
final YamlParser yamlParser= new YamlParser();
yamlParser.setScalarText(true);
- final String code= content.getText().substring(
- yamlRegion.getOffset(), yamlRegion.getOffset() + yamlRegion.getLength());
- final SourceComponent block= yamlParser.parse(code, null, yamlRegion.getOffset());
+ final String code= content.getString(yamlRegion);
+ final SourceComponent block= yamlParser.parse(code, null, yamlRegion.getStartOffset());
final String format= searchOutputInfo(block, code);
final String ext= toExtension(format);
@@ -104,11 +103,11 @@
}
- private IRegion getYamlBlockRegion(final SourceContent content)
+ private TextRegion getYamlBlockRegion(final SourceContent sourceContent)
throws BadLocationException, CoreException {
- final TextLineInformation lines= content.getLines();
+ final TextLineInformation lines= sourceContent.getStringLines();
final YamlBlockWeaveParticipant part= new YamlBlockWeaveParticipant();
- part.reset(content);
+ part.reset(sourceContent);
int lineEndOffset= lines.getStartOffset(0);
final int numLines= lines.getNumberOfLines();
@@ -120,13 +119,15 @@
lineOffset= lineEndOffset;
lineEndOffset= lines.getEndOffset(line);
if (part.checkEndLine(lineOffset, lineEndOffset)) {
- return new Region(part.getStartOffset(), lineEndOffset);
+ return new BasicTextRegion(
+ sourceContent.getStartOffset() + part.getStartOffset(),
+ sourceContent.getStartOffset() + lineEndOffset );
}
}
}
}
throw new CoreException(new Status(IStatus.ERROR, WikitextRweaveCore.BUNDLE_ID,
- "No YAML metadata block found."));
+ "No YAML metadata block found." ));
}
diff --git a/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/rhelp/core/update/REnvIndexUpdater.java b/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/rhelp/core/update/REnvIndexUpdater.java
index 516d523..8454e04 100644
--- a/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/rhelp/core/update/REnvIndexUpdater.java
+++ b/rhelp/org.eclipse.statet.rhelp.core/src/org/eclipse/statet/rhelp/core/update/REnvIndexUpdater.java
@@ -384,7 +384,7 @@
if (idx < 0) {
continue;
}
- final String descr= new String(line.substring(idx + 1).trim());
+ final String descr= line.substring(idx + 1).trim();
line= line.substring(0, idx);
this.index.addDefaultKeyword(line.split("\\|"), descr); //$NON-NLS-1$
}