Bug 553830: [SourceEditor] Add support for negative replacementOffset
in assist SourceProposal
(for context information in FragmentDocument)
Change-Id: Iffd7e7e8d74751a2429f583fd5e85837b2fbc35e
diff --git a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/SourceProposal.java b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/SourceProposal.java
index 84253f9..9d68f3c 100644
--- a/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/SourceProposal.java
+++ b/ltk/org.eclipse.statet.ltk.ui/src/org/eclipse/statet/ltk/ui/sourceediting/assist/SourceProposal.java
@@ -273,7 +273,7 @@
}
protected @Nullable String getValidationPrefix(final int offset) throws BadLocationException {
- final int startOffset= getReplacementOffset();
+ final int startOffset= Math.max(getReplacementOffset(), 0);
if (offset >= startOffset) {
return getInvocationContext().getDocument().get(startOffset, offset - startOffset);
}
@@ -419,7 +419,7 @@
@Override
public int getPrefixCompletionStart(final IDocument document,
final int offset) {
- return getReplacementOffset();
+ return Math.max(getReplacementOffset(), 0);
}
@Override
@@ -445,7 +445,7 @@
final boolean smartToggle= (stateMask & SWT.CTRL) != 0;
try {
- final int replacementOffset= getReplacementOffset();
+ final int replacementOffset= Math.max(getReplacementOffset(), 0);
final int replacementLength= computeReplacementLength(replacementOffset, viewer.getSelectedRange(), offset, isInOverwriteMode(smartToggle));
if (validate(viewer.getDocument(), offset, null)) {
@@ -532,7 +532,7 @@
final int widgetCaret= viewer.getTextWidget().getCaretOffset();
final int modelCaret= viewer.widgetOffset2ModelOffset(widgetCaret);
- final int replacementOffset= getReplacementOffset();
+ final int replacementOffset= Math.max(getReplacementOffset(), 0);
int replacementLength;
try {
replacementLength= computeReplacementLength(replacementOffset, viewer.getSelectedRange(), modelCaret, true);