in src/main/kotlin/org/jetbrains/mcpserverplugin/terminal/ShTerminalRunner.kt [21:55]
fun run(
project: Project,
command: String,
workingDirectory: String,
@NlsContexts.TabTitle title: String,
activateToolWindow: Boolean
): TerminalWidget? {
val terminalToolWindowManager = TerminalToolWindowManager.getInstance(project)
val window = ToolWindowManager.getInstance(project).getToolWindow(TerminalToolWindowFactory.TOOL_WINDOW_ID)
?: return null
val contentManager = window.contentManager
val pair = getSuitableProcess(project, contentManager, workingDirectory)
if (pair == null) {
val widget = terminalToolWindowManager.createShellWidget(
workingDirectory,
title,
activateToolWindow,
activateToolWindow
)
widget.sendCommandToExecute(command)
return widget
}
if (activateToolWindow) {
window.activate(null)
}
pair.first.displayName = title
contentManager.setSelectedContent(pair.first)
pair.second.sendCommandToExecute(command)
return pair.second
}