@Override public void doCollectInformation(@NotNull ProgressIndicator progress) { if (ApplicationManager.getApplication().isUnitTestMode()) { return; } if (!WebEditorOptions.getInstance().isTagTreeHighlightingEnabled()) { return; } final PsiElement[] elements = BreadcrumbsXmlWrapper.getLinePsiElements( myEditor.getCaretModel().getOffset(), myFile.getVirtualFile(), myProject, myInfoProvider); if (elements == null || elements.length == 0) { return; } if (!XmlTagTreeHighlightingUtil.containsTagsWithSameName(elements)) { return; } for (int i = elements.length - 1; i >= 0; i--) { if (elements[i] instanceof XmlTag) { myPairsToHighlight.add(getTagRanges((XmlTag) elements[i])); } } }
private void scrollHistoryToEnd() { final int lineCount = myHistoryViewer.getDocument().getLineCount(); if (lineCount == 0) return; myHistoryViewer .getCaretModel() .moveToOffset(myHistoryViewer.getDocument().getLineStartOffset(lineCount - 1), false); myHistoryViewer.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); }
@Override public void beforeDocumentChangeAtCaret() { CaretModel caretModel = myEditor.getCaretModel(); VisualPosition visualCaretPosition = caretModel.getVisualPosition(); if (!isInsideSoftWrap(visualCaretPosition)) { return; } SoftWrap softWrap = myStorage.getSoftWrap(caretModel.getOffset()); if (softWrap == null) { return; } myEditor .getDocument() .replaceString(softWrap.getStart(), softWrap.getEnd(), softWrap.getText()); caretModel.moveToVisualPosition(visualCaretPosition); }
@Override public void doCollectInformation(@NotNull ProgressIndicator progress) { if (ApplicationManager.getApplication().isUnitTestMode()) { return; } if (!WebEditorOptions.getInstance().isTagTreeHighlightingEnabled()) { return; } final int offset = myEditor.getCaretModel().getOffset(); PsiElement[] elements = BreadcrumbsXmlWrapper.getLinePsiElements( offset, myFile.getVirtualFile(), myProject, myInfoProvider); if (elements == null || elements.length == 0 || !XmlTagTreeHighlightingUtil.containsTagsWithSameName(elements)) { elements = PsiElement.EMPTY_ARRAY; final FileViewProvider provider = myFile.getViewProvider(); for (Language language : provider.getLanguages()) { PsiElement element = provider.findElementAt(offset, language); if (!isTagStartOrEnd(element)) { element = null; } if (element == null && offset > 0) { element = provider.findElementAt(offset - 1, language); if (!isTagStartOrEnd(element)) element = null; } final XmlTag tag = PsiTreeUtil.getParentOfType(element, XmlTag.class); if (tag != null) { elements = new PsiElement[] {tag}; } } } for (int i = elements.length - 1; i >= 0; i--) { if (elements[i] instanceof XmlTag) { myPairsToHighlight.add(getTagRanges((XmlTag) elements[i])); } } }