PY-84031: Open only .ipynb files in Welcome Screen for PyCharm

Space-RevId: 6e05b377754700604f6e91db966ee2337cb0f745

GitOrigin-RevId: 2b025887769e5081ca62c4c217628c3adf016410
This commit is contained in:
Ilia Zakoulov
2026-02-03 23:35:47 +00:00
committed by intellij-monorepo-bot
parent f88bfc7039
commit df03c2a2ed
3 changed files with 7 additions and 7 deletions
@@ -45,7 +45,7 @@ private abstract class DummyProjectOpenProcessor(override val name: String) : Pr
private class WelcomeScreenCommandLineProjectOpenProcessor : DummyProjectOpenProcessor("WelcomeScreenCommandLineProjectOpenProcessor") {
override suspend fun openProjectAndFile(file: Path, tempProject: Boolean, options: OpenProjectTask): Project? {
val provider = getWelcomeScreenProjectProvider() ?: return null
if (provider.canOpenFilesFromSystemFileManager()) {
if (provider.canOpenFilesFromSystemFileManager(file)) {
return openWelcomeScreenProject(file)
}
return null
@@ -72,8 +72,8 @@ abstract class WelcomeScreenProjectProvider {
return getWelcomeScreenProjectProvider()?.getWelcomeScreenProjectPath()
}
fun canOpenFilesFromSystemFileManager(): Boolean {
return getWelcomeScreenProjectProvider()?.canOpenFilesFromSystemFileManager() ?: false
fun canOpenFilesFromSystemFileManager(filePath: Path): Boolean {
return getWelcomeScreenProjectProvider()?.canOpenFilesFromSystemFileManager(filePath) ?: false
}
suspend fun createOrOpenWelcomeScreenProject(extension: WelcomeScreenProjectProvider): Project {
@@ -98,9 +98,9 @@ abstract class WelcomeScreenProjectProvider {
}
/**
* Return true if the welcome screen project can open non-project files from the file manager (Explorer, Finder).
* Return true if the welcome screen project can open [filePath] from the file manager (Explorer, Finder) or command line.
*/
abstract fun canOpenFilesFromSystemFileManager(): Boolean
abstract fun canOpenFilesFromSystemFileManager(filePath: Path): Boolean
protected open fun getWelcomeScreenProjectPath(): Path {
return ProjectUtil.getProjectPath(getWelcomeScreenProjectName()).absolute()
@@ -35,8 +35,8 @@ internal class PyCharmWelcomeScreenProjectProvider : WelcomeScreenProjectProvide
override fun doGetCreateNewFileProjectPrefix(): String = "awesomeProject"
override fun canOpenFilesFromSystemFileManager(): Boolean {
return Registry.`is`("welcome.screen.open.files", false)
override fun canOpenFilesFromSystemFileManager(filePath: Path): Boolean {
return Registry.`is`("welcome.screen.open.files", false) && filePath.endsWith(".ipynb")
}
override suspend fun doCreateOrOpenWelcomeScreenProject(path: Path): Project {