public void selectionChanged(@NotNull SelectionEvent selectionEvent) { final Editor editor = selectionEvent.getEditor(); final Document document = editor.getDocument(); if (myMakingChanges || (document instanceof DocumentEx && ((DocumentEx) document).isInEventsHandling())) { return; } myMakingChanges = true; try { final com.intellij.openapi.util.TextRange newRange = selectionEvent.getNewRange(); for (Editor e : EditorFactory.getInstance().getEditors(document)) { if (!e.equals(editor)) { e.getSelectionModel().setSelection(newRange.getStartOffset(), newRange.getEndOffset()); } } } finally { myMakingChanges = false; } } }
collectRangeMarker(rangeHighlighter, lineOffset, leftGreedyMarker, emptyMarkers); document.processRangeMarkers(rangeMarker -> { collectRangeMarker(rangeMarker, lineOffset, leftGreedyMarker, emptyMarkers); return true; document.insertString(lineOffset, " "); document.insertString(lineOffset, PRIVATE); document.deleteString(lineOffset + PRIVATE.length(), lineOffset + PRIVATE.length() + 1); int idx = document.getText().indexOf(PRIVATE, lineOffset); if (idx > -1 && idx < exprOffset) { document.deleteString(idx, idx + PRIVATE.length());
@Override public PsiFile compute() throws IOException { file.setBinaryContent(originalContents); final PsiFile psi = ProjectUtil.getPsiFile(project, file); final DocumentEx doc = VimDocument.getInstance(psi); FileDocumentManager.getInstance().reloadFromDisk(doc); assertThat(doc.getText()).isEqualTo(originalString); // now, commit changes so the PsiFile is updated PsiDocumentManager.getInstance(project).commitDocument(doc); return psi; } });
public static RangeMarker createRangeMarker(EditorEx editor) { final int offset = editor.getCaretModel().getOffset(); return editor.getDocument().createRangeMarker(offset, offset); }
@Override public void updateView(@NotNull List<NamedTextAttr> namedTextAttrList) { UIUtil.invokeLaterIfNeeded(() -> { if (myEditor.isDisposed()) { return; } myEditor.getMarkupModel().removeAllHighlighters(); myEditor.getSelectionModel().removeSelection(); if (namedTextAttrList.isEmpty()) { ApplicationManager.getApplication().runWriteAction(() -> { myEditor.getDocument().setText(""); }); return; } StringBuilder sb = new StringBuilder(); for (NamedTextAttr namedTextAttr : namedTextAttrList) { sb.append(namedTextAttr.getName()).append("\n"); } ApplicationManager.getApplication().runWriteAction(() -> { myEditor.getDocument().setText(sb.toString()); }); int size = namedTextAttrList.size(); for (int i = 0; i < size; i++) { highlightLine(i, namedTextAttrList.get(i)); } }); }