Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
00eee140
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
00eee140
编写于
6月 26, 2019
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Don't send available shells request to both ext hosts
Part of #76049
上级
327d49e3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
7 deletion
+23
-7
src/vs/workbench/api/browser/mainThreadTerminalService.ts
src/vs/workbench/api/browser/mainThreadTerminalService.ts
+9
-2
src/vs/workbench/contrib/terminal/common/terminal.ts
src/vs/workbench/contrib/terminal/common/terminal.ts
+6
-1
src/vs/workbench/contrib/terminal/common/terminalService.ts
src/vs/workbench/contrib/terminal/common/terminalService.ts
+8
-4
未找到文件。
src/vs/workbench/api/browser/mainThreadTerminalService.ts
浏览文件 @
00eee140
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
ITerminalService
,
ITerminalInstance
,
IShellLaunchConfig
,
ITerminalProcessExtHostProxy
,
ITerminalProcessExtHostRequest
,
ITerminalDimensions
,
EXT_HOST_CREATION_DELAY
}
from
'
vs/workbench/contrib/terminal/common/terminal
'
;
import
{
ITerminalService
,
ITerminalInstance
,
IShellLaunchConfig
,
ITerminalProcessExtHostProxy
,
ITerminalProcessExtHostRequest
,
ITerminalDimensions
,
EXT_HOST_CREATION_DELAY
,
IAvailableShellsRequest
}
from
'
vs/workbench/contrib/terminal/common/terminal
'
;
import
{
ExtHostContext
,
ExtHostTerminalServiceShape
,
MainThreadTerminalServiceShape
,
MainContext
,
IExtHostContext
,
ShellLaunchConfigDto
}
from
'
vs/workbench/api/common/extHost.protocol
'
;
import
{
extHostNamedCustomer
}
from
'
vs/workbench/api/common/extHostCustomers
'
;
import
{
UriComponents
,
URI
}
from
'
vs/base/common/uri
'
;
...
...
@@ -47,7 +47,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
this
.
_toDispose
.
push
(
_terminalService
.
onActiveInstanceChanged
(
instance
=>
this
.
_onActiveTerminalChanged
(
instance
?
instance
.
id
:
null
)));
this
.
_toDispose
.
push
(
_terminalService
.
onInstanceTitleChanged
(
instance
=>
this
.
_onTitleChanged
(
instance
.
id
,
instance
.
title
)));
this
.
_toDispose
.
push
(
_terminalService
.
configHelper
.
onWorkspacePermissionsChanged
(
isAllowed
=>
this
.
_onWorkspacePermissionsChanged
(
isAllowed
)));
this
.
_toDispose
.
push
(
_terminalService
.
onRequestAvailableShells
(
r
=>
this
.
_proxy
.
$requestAvailableShells
().
then
(
e
=>
r
(
e
)
)));
this
.
_toDispose
.
push
(
_terminalService
.
onRequestAvailableShells
(
e
=>
this
.
_onRequestAvailableShells
(
e
)));
// ITerminalInstanceService listeners
if
(
terminalInstanceService
.
onRequestDefaultShellAndArgs
)
{
...
...
@@ -290,4 +290,11 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
}
this
.
_terminalProcesses
[
terminalId
].
emitLatency
(
sum
/
COUNT
);
}
private
_onRequestAvailableShells
(
request
:
IAvailableShellsRequest
):
void
{
if
(
request
.
remoteAuthority
!==
this
.
_remoteAuthority
)
{
return
;
}
this
.
_proxy
.
$requestAvailableShells
().
then
(
e
=>
request
.
callback
(
e
));
}
}
src/vs/workbench/contrib/terminal/common/terminal.ts
浏览文件 @
00eee140
...
...
@@ -226,7 +226,7 @@ export interface ITerminalService {
onInstancesChanged
:
Event
<
void
>
;
onInstanceTitleChanged
:
Event
<
ITerminalInstance
>
;
onActiveInstanceChanged
:
Event
<
ITerminalInstance
|
undefined
>
;
onRequestAvailableShells
:
Event
<
(
shells
:
IShellDefinition
[])
=>
void
>
;
onRequestAvailableShells
:
Event
<
IAvailableShellsRequest
>
;
/**
* Creates a terminal.
...
...
@@ -757,6 +757,11 @@ export interface ITerminalProcessExtHostRequest {
isWorkspaceShellAllowed
:
boolean
;
}
export
interface
IAvailableShellsRequest
{
remoteAuthority
:
string
|
null
;
callback
:
(
shells
:
IShellDefinition
[])
=>
void
;
}
export
enum
LinuxDistro
{
Fedora
,
Ubuntu
,
...
...
src/vs/workbench/contrib/terminal/common/terminalService.ts
浏览文件 @
00eee140
...
...
@@ -8,7 +8,7 @@ import { Event, Emitter } from 'vs/base/common/event';
import
{
IContextKeyService
,
IContextKey
}
from
'
vs/platform/contextkey/common/contextkey
'
;
import
{
ILifecycleService
}
from
'
vs/platform/lifecycle/common/lifecycle
'
;
import
{
IPanelService
}
from
'
vs/workbench/services/panel/common/panelService
'
;
import
{
ITerminalService
,
ITerminalInstance
,
IShellLaunchConfig
,
ITerminalConfigHelper
,
KEYBINDING_CONTEXT_TERMINAL_FOCUS
,
KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE
,
TERMINAL_PANEL_ID
,
ITerminalTab
,
ITerminalProcessExtHostProxy
,
ITerminalProcessExtHostRequest
,
KEYBINDING_CONTEXT_TERMINAL_IS_OPEN
,
ITerminalNativeService
,
IShellDefinition
}
from
'
vs/workbench/contrib/terminal/common/terminal
'
;
import
{
ITerminalService
,
ITerminalInstance
,
IShellLaunchConfig
,
ITerminalConfigHelper
,
KEYBINDING_CONTEXT_TERMINAL_FOCUS
,
KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE
,
TERMINAL_PANEL_ID
,
ITerminalTab
,
ITerminalProcessExtHostProxy
,
ITerminalProcessExtHostRequest
,
KEYBINDING_CONTEXT_TERMINAL_IS_OPEN
,
ITerminalNativeService
,
IShellDefinition
,
IAvailableShellsRequest
}
from
'
vs/workbench/contrib/terminal/common/terminal
'
;
import
{
IStorageService
}
from
'
vs/platform/storage/common/storage
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
FindReplaceState
}
from
'
vs/editor/contrib/find/findState
'
;
...
...
@@ -67,8 +67,8 @@ export abstract class TerminalService implements ITerminalService {
public
get
onActiveInstanceChanged
():
Event
<
ITerminalInstance
|
undefined
>
{
return
this
.
_onActiveInstanceChanged
.
event
;
}
protected
readonly
_onTabDisposed
=
new
Emitter
<
ITerminalTab
>
();
public
get
onTabDisposed
():
Event
<
ITerminalTab
>
{
return
this
.
_onTabDisposed
.
event
;
}
protected
readonly
_onRequestAvailableShells
=
new
Emitter
<
(
shells
:
IShellDefinition
[])
=>
void
>
();
public
get
onRequestAvailableShells
():
Event
<
(
shells
:
IShellDefinition
[])
=>
void
>
{
return
this
.
_onRequestAvailableShells
.
event
;
}
protected
readonly
_onRequestAvailableShells
=
new
Emitter
<
IAvailableShellsRequest
>
();
public
get
onRequestAvailableShells
():
Event
<
IAvailableShellsRequest
>
{
return
this
.
_onRequestAvailableShells
.
event
;
}
public
abstract
get
configHelper
():
ITerminalConfigHelper
;
...
...
@@ -563,6 +563,10 @@ export abstract class TerminalService implements ITerminalService {
}
private
_detectWindowsShells
():
Promise
<
IShellDefinition
[]
>
{
return
new
Promise
(
r
=>
this
.
_onRequestAvailableShells
.
fire
(
r
));
const
conn
=
this
.
_remoteAgentService
.
getConnection
();
return
new
Promise
(
r
=>
this
.
_onRequestAvailableShells
.
fire
({
remoteAuthority
:
conn
?
conn
.
remoteAuthority
:
null
,
callback
:
r
}));
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录