Skip to content

终端

VSCode 提供了一个强大的终端系统,允许你在集成终端中运行 shell 命令。reactive-vscode 提供了一组组合式函数,以响应式的方式创建和管理终端。

创建终端

useTerminal 通过 window.createTerminal 创建终端。参数与 window.createTerminal 相同。
ts
import { 
defineExtension
,
useTerminal
} from 'reactive-vscode'
export =
defineExtension
(() => {
const {
terminal
,
name
,
processId
,
creationOptions
,
exitStatus
,
sendText
,
show
,
hide
,
state
,
} =
useTerminal
('My Terminal', '/bin/bash')
})

创建受控终端

useControlledTerminal 创建一个允许你控制其生命周期的终端。参数与 window.createTerminal 相同。
ts
import { 
defineExtension
,
useControlledTerminal
} from 'reactive-vscode'
export =
defineExtension
(() => {
const {
terminal
,
getIsActive
,
show
,
sendText
,
close
,
state
,
} =
useControlledTerminal
('My Terminal', '/bin/bash')
})

活动终端

你可以使用 useActiveTerminal 来获取当前活动的终端。

ts
import { 
defineExtension
,
useActiveTerminal
} from 'reactive-vscode'
export =
defineExtension
(() => {
const
activeTerminal
=
useActiveTerminal
()
})

所有打开的终端

你可以使用 useOpenedTerminals 来获取所有打开的终端。

ts
import { 
defineExtension
,
useOpenedTerminals
} from 'reactive-vscode'
export =
defineExtension
(() => {
const
terminals
=
useOpenedTerminals
()
})

获取终端状态

你可以使用 useTerminalState 来获取现有终端的状态。

ts
import { 
defineExtension
,
useActiveTerminal
,
useOpenedTerminals
,
useTerminalState
} from 'reactive-vscode'
export =
defineExtension
(() => {
const
activeTerminal
=
useActiveTerminal
()
const
activeTerminalState
=
useTerminalState
(
activeTerminal
)
const
allTerminals
=
useOpenedTerminals
()
const
firstTerminalState
=
useTerminalState
(() =>
allTerminals
.
value
[0])
})

Released under the MIT License.