mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
KTIJ-19876 [kotlin] Fixed source root condition check, added advanced setting
Signed-off-by: Vladimir Dolzhenko <vladimir.dolzhenko@jetbrains.com> IJ-CR-208625 GitOrigin-RevId: a74ef78743de476137bcad6f5aa43f191b049336
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c9f19033f4
commit
b8c17d996e
@@ -1214,6 +1214,8 @@
|
||||
|
||||
<advancedSetting id="java.show.irrelevant.templates.in.source.roots" default="false"
|
||||
groupKey="advanced.settings.group.java" bundle="messages.JavaBundle"/>
|
||||
<advancedSetting id="java.show.new.class.in.irrelevant.java.source.roots" default="false"
|
||||
groupKey="advanced.settings.group.java" bundle="messages.JavaBundle"/>
|
||||
<newFileActionCategoryHandler implementation="com.intellij.ide.actions.JavaNewFileCategoryHandler"/>
|
||||
|
||||
<inspection.basicVisitor class="com.intellij.psi.JavaElementVisitor"/>
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.intellij.ide.fileTemplates.JavaTemplateUtil;
|
||||
import com.intellij.ide.highlighter.JavaFileType;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.options.advanced.AdvancedSettings;
|
||||
import com.intellij.openapi.project.DumbAware;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.PackageIndex;
|
||||
@@ -32,6 +33,7 @@ import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.ui.IconManager;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.PlatformIcons;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
|
||||
@@ -62,13 +64,11 @@ public class CreateClassAction extends JavaCreateTemplateInPackageAction<PsiClas
|
||||
protected boolean isAvailable(@NotNull DataContext dataContext) {
|
||||
if (!super.isAvailable(dataContext)) return false;
|
||||
|
||||
List<JavaClassActionSuppressor> list = JavaClassActionSuppressor.EP_NAME.getExtensionList();
|
||||
for (JavaClassActionSuppressor suppressor : list) {
|
||||
if (suppressor.isSuppressed(dataContext)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
if (AdvancedSettings.getBoolean("java.show.new.class.in.irrelevant.java.source.roots")) return true;
|
||||
|
||||
List<JavaClassActionSuppressor> suppressors = JavaClassActionSuppressor.EP_NAME.getExtensionList();
|
||||
return !ContainerUtil.exists(suppressors,
|
||||
suppressor -> suppressor.isSuppressed(dataContext));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2003,6 +2003,7 @@ command.completion.generate.no.args.constructor.text=No-Args Constructor
|
||||
command.completion.generate.all.args.constructor.text=All-Args Constructor
|
||||
|
||||
advanced.setting.java.show.irrelevant.templates.in.source.roots=Show irrelevant New File templates in Java source roots
|
||||
advanced.setting.java.show.new.class.in.irrelevant.java.source.roots=Show New Class in irrelevant Java source roots
|
||||
java.test.use.wall.time=Use Wall Time
|
||||
java.test.overall.time=Overall time: {0}
|
||||
java.test.sum.time=Sum time: {0}
|
||||
|
||||
+3
-1
@@ -23,7 +23,9 @@ internal class KotlinJavaClassActionSuppressor: JavaClassActionSuppressor {
|
||||
val kotlinSourceFolders = kotlinFacet?.configuration?.settings?.pureKotlinSourceFolders
|
||||
val kotlinSourceRootOfType =
|
||||
projectFileIndex.isUnderSourceRootOfType(virtualFile, KOTLIN_SOURCE_ROOT_TYPES) ||
|
||||
(kotlinSourceFolders?.let { virtualFile.toNioPath().toString() in it } ?: false)
|
||||
(kotlinSourceFolders?.let {
|
||||
projectFileIndex.getSourceRootForFile(virtualFile)?.toNioPath()?.toString() in it
|
||||
} ?: false)
|
||||
kotlinSourceRootOfType
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user