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)
}