fun getSuitableProcess()

in src/main/kotlin/org/jetbrains/mcpserverplugin/terminal/ShTerminalRunner.kt [78:104]


    fun getSuitableProcess(
        project: Project,
        content: Content,
        workingDirectory: String
    ): Pair<Content, TerminalWidget>? {
        val widget = TerminalToolWindowManager.findWidgetByContent(content) ?: return null

        if (widget is JBTerminalWidget && widget !is ShellTerminalWidget) {
            return null
        }

        if (widget is ShellTerminalWidget && widget.typedShellCommand.isNotEmpty()) {
            return null
        }

        val processTtyConnector = ShellTerminalWidget.getProcessTtyConnector(widget.ttyConnector) ?: return null
        if (TerminalUtil.hasRunningCommands(processTtyConnector as TtyConnector)) {
            return null
        }

        val currentWorkingDirectory = TerminalWorkingDirectoryManager.getWorkingDirectory(widget)
        if (!FileUtil.pathsEqual(workingDirectory, currentWorkingDirectory)) {
            return null
        }

        return Pair(content, widget)
    }