private void applyReference()

in src/main/java/idea/plugin/psiviewer/view/EditorPsiElementHighlighter.java [78:96]


    private void applyReference(PsiReference reference) {
        _editor = FileEditorManager.getInstance(_project).getSelectedTextEditor();
        if (_editor == null) {
            debug("no editor => no need to highlight");
            return;
        }

        if (isHighlightOn() && isElementInEditor(_editor, reference.getElement())) {
            TextRange textRange = reference.getElement().getTextRange().cutOut(reference.getRangeInElement());

            debug("Adding reference highlighting for " + textRange);
            final int docTextLength = _editor.getDocument().getTextLength();
            _referenceHighlighter = _editor.getMarkupModel().addRangeHighlighter(textRange.getStartOffset(),
                    Math.min(textRange.getEndOffset(), docTextLength),
                    PsiViewerConstants.PSIVIEWER_REFERENCE_HIGHLIGHT_LAYER,
                    _referenceTextAttributes,
                    HighlighterTargetArea.EXACT_RANGE);
        }
    }