fun run()

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
    }