boolean (final @NotNull Editor editor) { XmlToken token = null; if (myToken != null) { token = (XmlToken)myToken.retrieve(); if (token == null) return false; } if (!XmlSettings.getInstance().SHOW_XML_ADD_IMPORT_HINTS || myNamespacePrefix.isEmpty()) { return false; } final PsiElement element = myElement.retrieve(); if (element == null) return false; final List<String> namespaces = getNamespaces(element, getFile()); if (!namespaces.isEmpty()) { final String message = ShowAutoImportPass.getMessage(namespaces.size() > 1, XmlPsiBundle.message("xml.terms.namespace.alias"), namespaces.iterator().next()); final String title = getSelectNSActionTitle(); final ImportNSAction action = new ImportNSAction(namespaces, getFile(), element, editor, title); if (element instanceof XmlTag && token != null) { if (editor.calculateVisibleRange().contains(token.getTextRange())) { HintManager.getInstance().showQuestionHint(editor, message, token.getTextOffset(), token.getTextOffset() + myNamespacePrefix.length(), action); return true; } } else { HintManager.getInstance().showQuestionHint(editor, message, element.getTextOffset(), element.getTextRange().getEndOffset(), action); return true; } } return false; }