IDEA-80266 SQL: NPE in quick doc for lookup

This commit is contained in:
Gregory.Shrago
2012-03-07 04:15:52 +04:00
parent c5d6bdded1
commit dcbcab5113
2 changed files with 8 additions and 5 deletions
@@ -191,16 +191,16 @@ public class PsiFileFactoryImpl extends PsiFileFactory {
public PsiElement createElementFromText(@Nullable final String text,
@NotNull final Language language,
@NotNull final IElementType type,
@NotNull final PsiElement context) {
@Nullable final PsiElement context) {
if (text == null) return null;
final DummyHolder result = DummyHolderFactory.createHolder(context.getManager(), language, context);
final DummyHolder result = DummyHolderFactory.createHolder(myManager, language, context);
final FileElement holder = result.getTreeElement();
final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(language);
if (parserDefinition == null) {
throw new AssertionError("No parser definition for " + language);
}
final Project project = context.getProject();
final Project project = myManager.getProject();
final Lexer lexer = parserDefinition.createLexer(project);
final PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder(project, holder, lexer, language, text);
final ASTNode node = parserDefinition.createParser(project).parse(type, builder);
@@ -564,8 +564,11 @@ public class DocumentationManager {
LookupElement item = activeLookup.getCurrentItem();
if (item != null) {
final PsiElement contextElement = file != null ? file.findElementAt(editor.getCaretModel().getOffset()) : null;
final PsiReference ref = TargetElementUtilBase.findReference(editor, editor.getCaretModel().getOffset());
int offset = editor.getCaretModel().getOffset();
if (offset > 0 && offset == editor.getDocument().getTextLength()) offset--;
final PsiElement contextElement = file == null? null : file.findElementAt(offset);
final PsiReference ref = TargetElementUtilBase.findReference(editor, offset);
final DocumentationProvider documentationProvider = getProviderFromElement(file);