@Override public void visitImportSpec(@NotNull GoImportSpec o) { if (o.isCImport()) return; GoImportString string = o.getImportString(); if (string.getTextLength() < 2) return; PsiReference[] references = string.getReferences(); for (PsiReference reference : references) { if (reference instanceof FileReference) { ResolveResult[] resolveResults = ((FileReference)reference).multiResolve(false); if (resolveResults.length == 0) { ProblemHighlightType type = reference.getRangeInElement().isEmpty() ? GENERIC_ERROR_OR_WARNING : LIKE_UNKNOWN_SYMBOL; holder.registerProblem(reference, ProblemsHolder.unresolvedReferenceMessage(reference), type); } } } }
if (HintManager.getInstance().hasShownHintsThatWillHideByOtherHint(true)) return false; if (!GoCodeInsightSettings.getInstance().isShowImportPopup()) return false; TextRange referenceRange = reference.getRangeInElement().shiftRight(element.getTextRange().getStartOffset()); HintManager.getInstance().showQuestionHint( editor,
final PsiReference ref = javaFile.findReferenceAt(r.getStartOffset()); if (ref != null) { TextRange rr = ref.getRangeInElement(); TextRange er = ref.getElement().getTextRange(); list.add(new PsiReferenceBase<PsiElement>(o, rr.shiftRight(javaOffset + er.getStartOffset() - start)) {
if (reference.getRangeInElement().contains(offsetInElement)) { if (reference instanceof PsiPolyVariantReference) { for (ResolveResult resolveResult : ((PsiPolyVariantReference)reference).multiResolve(false)) {
@Override public void computeUsages(List<PsiElement> targets) { if (targets == null) { return; } for (PsiElement target : targets) { if (myFile.equals(target.getContainingFile()) && target instanceof PsiNameIdentifierOwner) { PsiElement nameIdentifier = ((PsiNameIdentifierOwner)target).getNameIdentifier(); if (nameIdentifier != null) { TextRange rangeInIdentifier = target instanceof PerlIdentifierRangeProvider ? ((PerlIdentifierRangeProvider)target).getRangeInIdentifier() : ElementManipulators.getValueTextRange(nameIdentifier); myWriteUsages.add(rangeInIdentifier.shiftRight(nameIdentifier.getNode().getStartOffset())); } } for (PsiReference reference : ReferencesSearch.search(target, new LocalSearchScope(myFile)).findAll()) { myReadUsages.add(reference.getRangeInElement().shiftRight(reference.getElement().getNode().getStartOffset())); } } } }
TextRange referenceRange = reference.getRangeInElement(); String sourceElementText = sourceElement.getText(); int sourceElementOffset = sourceElement.getNode().getStartOffset();
for (PsiReference reference : o.getReferences()) { if (reference.isSoft()) continue; boolean atEnd = valueRange.getEndOffset() == reference.getRangeInElement().getEndOffset(); PsiElement resolve = reference.resolve(); if (resolve != null) { if (reference.getRangeInElement().getLength() == 1 && "?".equals(reference.getCanonicalText()) && !(reference instanceof BnfReferenceImpl)) continue; if (reportAtEnd != ThreeState.NO) reportAtEnd = ThreeState.YES; if (refAtEnd == null || refAtEnd.getRangeInElement().getLength() > reference.getRangeInElement().getLength()) { refAtEnd = reference;
PsiReference[] references = psiPodFormatLink.getReferences(); for (PsiReference reference : references) { TextRange referenceRange = reference.getRangeInElement(); if (referenceRange.contains(elementRange)) { if (reference instanceof PodLinkToFileReference) {
private List<PsiReference> collectFileReferences() { final List<PsiReference> references = new ArrayList<>(); PsiFile file = getFile(); file.accept(new PsiElementVisitor() { @Override public void visitElement(PsiElement element) { Collections.addAll(references, element.getReferences()); element.acceptChildren(this); } }); references.sort((o1, o2) -> o1.getElement().getTextRange().getStartOffset() + o1.getRangeInElement().getStartOffset() - o2.getElement().getTextRange().getStartOffset() + o2.getRangeInElement().getStartOffset()); return references; }
PsiReference[] references = parent.getReferences(); for (PsiReference reference : references) { TextRange refRange = reference.getRangeInElement(); if (refRange.contains(position.getStartOffsetInParent())) { Project project = position.getProject();
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); } }