From 3078a49d8d616f97365dbb42ed6e4e798629b856 Mon Sep 17 00:00:00 2001 From: Lorenzo Addazi Date: Thu, 10 Dec 2020 22:47:14 +0000 Subject: [PATCH] Fixes eclipse/xtext-core#1517 Signed-off-by: Lorenzo Addazi --- .../contentassist/ContentAssistService.java | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/contentassist/ContentAssistService.java b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/contentassist/ContentAssistService.java index 8cdca7b76..76e2e86c4 100644 --- a/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/contentassist/ContentAssistService.java +++ b/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/contentassist/ContentAssistService.java @@ -183,19 +183,14 @@ public class ContentAssistService { } protected TextEdit toTextEdit(ReplaceRegion region, Document doc) { - Position start = null; - if (region.getOffset() > doc.getContents().length()) { - Position docEnd = doc.getPosition(doc.getContents().length()); - start = new Position(docEnd.getLine(), docEnd.getCharacter() + region.getLength()); - } else { - start = doc.getPosition(region.getOffset()); - } - Position end = null; - if (region.getEndOffset() > doc.getContents().length()) { - end = new Position(start.getLine(), start.getCharacter() + region.getLength()); - } else { - end = doc.getPosition(region.getEndOffset()); - } + final Position start = getPosition(doc, region.getOffset()); + final Position end = getPosition(doc, region.getEndOffset()); return new TextEdit(new Range(start, end), region.getText()); } + + private Position getPosition(final Document doc, final int offset) { + final int docLength = doc.getContents().length(); + return offset > docLength ? doc.getPosition(docLength) : doc.getPosition(offset); + } + }