KT-816 Add std namespace in to default imports
This commit is contained in:
@@ -12,6 +12,8 @@ import com.intellij.psi.util.CachedValuesManager;
|
||||
import com.intellij.psi.util.PsiModificationTracker;
|
||||
import com.intellij.util.Function;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.JetSemanticServices;
|
||||
import org.jetbrains.jet.lang.StandardConfiguration;
|
||||
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
|
||||
import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils;
|
||||
import org.jetbrains.jet.lang.diagnostics.Errors;
|
||||
@@ -80,12 +82,15 @@ public class AnalyzerFacade {
|
||||
|
||||
public static BindingContext analyzeNamespacesWithJavaIntegration(Project project, Collection<? extends JetDeclaration> declarations, Predicate<PsiFile> filesToAnalyzeCompletely, JetControlFlowDataTraceFactory flowDataTraceFactory) {
|
||||
BindingTraceContext bindingTraceContext = new BindingTraceContext();
|
||||
return AnalyzingUtils.getInstance().analyzeNamespacesWithGivenTrace(
|
||||
JetSemanticServices semanticServices = JetSemanticServices.createSemanticServices(project);
|
||||
return AnalyzingUtils.analyzeNamespacesWithGivenTrace(
|
||||
project,
|
||||
JavaBridgeConfiguration.createJavaBridgeConfiguration(project, bindingTraceContext),
|
||||
JavaBridgeConfiguration.createJavaBridgeConfiguration(project, bindingTraceContext, StandardConfiguration.createStandardConfiguration(project, semanticServices)),
|
||||
declarations,
|
||||
filesToAnalyzeCompletely,
|
||||
flowDataTraceFactory, bindingTraceContext);
|
||||
flowDataTraceFactory,
|
||||
bindingTraceContext,
|
||||
semanticServices);
|
||||
}
|
||||
|
||||
public static BindingContext shallowAnalyzeFiles(Collection<PsiFile> files) {
|
||||
|
||||
+9
-5
@@ -14,24 +14,28 @@ import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||
*/
|
||||
public class JavaBridgeConfiguration implements Configuration {
|
||||
|
||||
public static Configuration createJavaBridgeConfiguration(@NotNull Project project, @NotNull BindingTrace trace) {
|
||||
return new JavaBridgeConfiguration(project, trace);
|
||||
public static Configuration createJavaBridgeConfiguration(@NotNull Project project, @NotNull BindingTrace trace, Configuration delegateConfiguration) {
|
||||
return new JavaBridgeConfiguration(project, trace, delegateConfiguration);
|
||||
}
|
||||
|
||||
private final JavaSemanticServices javaSemanticServices;
|
||||
private final Configuration delegateConfiguration;
|
||||
|
||||
private JavaBridgeConfiguration(Project project, BindingTrace trace) {
|
||||
private JavaBridgeConfiguration(Project project, BindingTrace trace, Configuration delegateConfiguration) {
|
||||
this.javaSemanticServices = new JavaSemanticServices(project, JetSemanticServices.createSemanticServices(project), trace);
|
||||
this.delegateConfiguration = delegateConfiguration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addDefaultImports(BindingTrace trace, WritableScope rootScope) {
|
||||
public void addDefaultImports(@NotNull BindingTrace trace, @NotNull WritableScope rootScope) {
|
||||
rootScope.importScope(new JavaPackageScope("", null, javaSemanticServices));
|
||||
rootScope.importScope(new JavaPackageScope("java.lang", null, javaSemanticServices));
|
||||
delegateConfiguration.addDefaultImports(trace, rootScope);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void extendNamespaceScope(BindingTrace trace, @NotNull NamespaceDescriptor namespaceDescriptor, @NotNull WritableScope namespaceMemberScope) {
|
||||
public void extendNamespaceScope(@NotNull BindingTrace trace, @NotNull NamespaceDescriptor namespaceDescriptor, @NotNull WritableScope namespaceMemberScope) {
|
||||
namespaceMemberScope.importScope(new JavaPackageScope(DescriptorUtils.getFQName(namespaceDescriptor), namespaceDescriptor, javaSemanticServices));
|
||||
delegateConfiguration.extendNamespaceScope(trace, namespaceDescriptor, namespaceMemberScope);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user