PsiReference (final PsiElement dtdUrlElement) { return new URLReference(XmlDoctypeImpl.this) { @Override public @NotNull String getCanonicalText() { return extractValue(dtdUrlElement); } @Override public @NotNull TextRange getRangeInElement() { return TextRange.from(dtdUrlElement.getTextRange().getStartOffset() - getTextRange().getStartOffset() + 1, Math.max(dtdUrlElement.getTextRange().getLength() - 2, 0)); } }; }