mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
drools: parsed java statement, resolve, references...
This commit is contained in:
@@ -837,13 +837,15 @@ public final class PsiUtil extends PsiUtilCore {
|
||||
if (element instanceof PsiDirectory) return JavaDirectoryService.getInstance().getLanguageLevel((PsiDirectory)element);
|
||||
final PsiFile file = element.getContainingFile();
|
||||
if (file == null) {
|
||||
return LanguageLevelProjectExtension.getInstance(element.getProject()).getLanguageLevel();
|
||||
final LanguageLevelProjectExtension instance = LanguageLevelProjectExtension.getInstance(element.getProject());
|
||||
return instance != null ? instance.getLanguageLevel() : LanguageLevel.HIGHEST;
|
||||
}
|
||||
|
||||
if (!(file instanceof PsiJavaFile)) {
|
||||
final PsiElement context = file.getContext();
|
||||
if (context != null) return getLanguageLevel(context);
|
||||
return LanguageLevelProjectExtension.getInstance(file.getProject()).getLanguageLevel();
|
||||
final LanguageLevelProjectExtension instance = LanguageLevelProjectExtension.getInstance(file.getProject());
|
||||
return instance != null ? instance.getLanguageLevel() : LanguageLevel.HIGHEST;
|
||||
}
|
||||
|
||||
return ((PsiJavaFile)file).getLanguageLevel();
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.intellij.lang.java.parser;
|
||||
import com.intellij.codeInsight.daemon.JavaErrorMessages;
|
||||
import com.intellij.lang.*;
|
||||
import com.intellij.lang.impl.PsiBuilderAdapter;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.lang.java.JavaParserDefinition;
|
||||
import com.intellij.lexer.JavaDocLexer;
|
||||
import com.intellij.lexer.Lexer;
|
||||
@@ -169,7 +170,9 @@ public class JavaParserUtil {
|
||||
final PsiBuilderFactory factory = PsiBuilderFactory.getInstance();
|
||||
final LanguageLevel level = PsiUtil.getLanguageLevel(psi);
|
||||
final Lexer lexer = JavaParserDefinition.createLexer(level);
|
||||
final PsiBuilder builder = factory.createBuilder(project, chameleon, lexer, psi.getLanguage(), text);
|
||||
Language language = psi.getLanguage();
|
||||
if (!language.isKindOf(JavaLanguage.INSTANCE)) language = JavaLanguage.INSTANCE;
|
||||
final PsiBuilder builder = factory.createBuilder(project, chameleon, lexer, language, text);
|
||||
setLanguageLevel(builder, level);
|
||||
|
||||
return builder;
|
||||
|
||||
Reference in New Issue
Block a user