use of org.eclipse.che.ide.api.editor.text.TextPosition in project che by eclipse.
the class MinimapAnnotationRenderer method removeAnnotationItem.
private void removeAnnotationItem(final AnnotationModelEvent event, final Annotation annotation, final Map<Integer, List<Annotation>> toRestore) {
final Position position = event.getPositionOfRemovedAnnotation(annotation);
final TextPosition textPosition = this.document.getPositionFromIndex(position.getOffset());
final int line = textPosition.getLine();
// remove all marks on the line
this.minimap.removeMarks(line, line);
// restore marks that are not removed
final LinearRange rangeForLine = this.document.getLinearRangeForLine(line);
final AnnotationModel model = event.getAnnotationModel();
final Iterator<Annotation> it = model.getAnnotationIterator(rangeForLine.getStartOffset(), rangeForLine.getLength(), false, true);
while (it.hasNext()) {
final Annotation current = it.next();
List<Annotation> lineAnnotations = toRestore.get(line);
if (!current.equals(annotation)) {
if (lineAnnotations == null) {
lineAnnotations = new ArrayList<>();
toRestore.put(line, lineAnnotations);
}
lineAnnotations.add(current);
} else {
if (lineAnnotations != null) {
lineAnnotations.removeAll(Collections.singletonList(current));
if (lineAnnotations.isEmpty()) {
toRestore.remove(line);
}
}
}
}
}
use of org.eclipse.che.ide.api.editor.text.TextPosition in project che by eclipse.
the class CloseCStyleCommentChangeInterceptorTest method testCloseComment.
@Test
public void testCloseComment() {
doReturn("/**").when(document).getLineContent(0);
doReturn(" *").when(document).getLineContent(1);
final TextChange input = new TextChange.Builder().from(new TextPosition(0, 0)).to(new TextPosition(1, 2)).insert("/**\n *").build();
final TextChange output = interceptor.processChange(input, document);
assertNull(output);
}
use of org.eclipse.che.ide.api.editor.text.TextPosition in project che by eclipse.
the class CloseCStyleCommentChangeInterceptorTest method testJavadocStyleComment.
@Ignore
@Test
public void testJavadocStyleComment() {
doReturn("/**").when(document).getLineContent(0);
doReturn(" *").when(document).getLineContent(1);
final TextChange input = new TextChange.Builder().from(new TextPosition(0, 3)).to(new TextPosition(1, 2)).insert("\n *").build();
final TextChange output = interceptor.processChange(input, document);
assertNotNull(output);
final TextChange expected = new TextChange.Builder().from(new TextPosition(0, 3)).to(new TextPosition(2, 3)).insert("\n * \n */").build();
Assert.assertEquals(expected, output);
}
use of org.eclipse.che.ide.api.editor.text.TextPosition in project che by eclipse.
the class CloseCStyleCommentChangeInterceptorTest method testNotFirstLineNoLeadingSpaces.
/**
* The input is a normal /* */ comment without leading spaces.
*/
@Ignore
@Test
public void testNotFirstLineNoLeadingSpaces() {
doReturn("").when(document).getLineContent(0);
doReturn("/*").when(document).getLineContent(1);
doReturn(" *").when(document).getLineContent(2);
final TextChange input = new TextChange.Builder().from(new TextPosition(1, 2)).to(new TextPosition(2, 2)).insert("\n *").build();
final TextChange output = interceptor.processChange(input, document);
assertNotNull(output);
final TextChange expected = new TextChange.Builder().from(new TextPosition(1, 2)).to(new TextPosition(3, 3)).insert("\n * \n */").build();
Assert.assertEquals(expected, output);
}
use of org.eclipse.che.ide.api.editor.text.TextPosition in project che by eclipse.
the class CloseCStyleCommentChangeInterceptorTest method testFirstLineNoLeadingSpaces.
@Ignore
@Test
public void testFirstLineNoLeadingSpaces() {
doReturn("/*").when(document).getLineContent(0);
doReturn(" *").when(document).getLineContent(1);
final TextChange input = new TextChange.Builder().from(new TextPosition(0, 2)).to(new TextPosition(1, 2)).insert("\n *").build();
final TextChange output = interceptor.processChange(input, document);
assertNotNull(output);
final TextChange expected = new TextChange.Builder().from(new TextPosition(0, 2)).to(new TextPosition(2, 3)).insert("\n * \n */").build();
Assert.assertEquals(expected, output);
}
Aggregations