Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
f96b38d5
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f96b38d5
编写于
6月 06, 2019
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Dynamically import SearchAddon
上级
29978216
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
26 addition
and
7 deletion
+26
-7
src/vs/workbench/contrib/terminal/browser/terminal.ts
src/vs/workbench/contrib/terminal/browser/terminal.ts
+2
-0
src/vs/workbench/contrib/terminal/browser/terminalInstance.ts
...vs/workbench/contrib/terminal/browser/terminalInstance.ts
+13
-5
src/vs/workbench/contrib/terminal/electron-browser/terminalInstanceService.ts
...trib/terminal/electron-browser/terminalInstanceService.ts
+11
-2
未找到文件。
src/vs/workbench/contrib/terminal/browser/terminal.ts
浏览文件 @
f96b38d5
...
...
@@ -5,6 +5,7 @@
import
{
Terminal
as
XTermTerminal
}
from
'
xterm
'
;
import
{
WebLinksAddon
as
XTermWebLinksAddon
}
from
'
xterm-addon-web-links
'
;
import
{
SearchAddon
as
XTermSearchAddon
}
from
'
xterm-addon-search
'
;
import
{
ITerminalInstance
,
IWindowsShellHelper
,
ITerminalConfigHelper
,
ITerminalChildProcess
,
IShellLaunchConfig
}
from
'
vs/workbench/contrib/terminal/common/terminal
'
;
import
{
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IProcessEnvironment
,
Platform
}
from
'
vs/base/common/platform
'
;
...
...
@@ -16,6 +17,7 @@ export interface ITerminalInstanceService {
getXtermConstructor
():
Promise
<
typeof
XTermTerminal
>
;
getXtermWebLinksConstructor
():
Promise
<
typeof
XTermWebLinksAddon
>
;
getXtermSearchConstructor
():
Promise
<
typeof
XTermSearchAddon
>
;
createWindowsShellHelper
(
shellProcessId
:
number
,
instance
:
ITerminalInstance
,
xterm
:
XTermTerminal
):
IWindowsShellHelper
;
createTerminalProcess
(
shellLaunchConfig
:
IShellLaunchConfig
,
cwd
:
string
,
cols
:
number
,
rows
:
number
,
env
:
IProcessEnvironment
,
windowsEnableConpty
:
boolean
):
ITerminalChildProcess
;
getDefaultShell
(
p
:
Platform
):
string
;
...
...
src/vs/workbench/contrib/terminal/browser/terminalInstance.ts
浏览文件 @
f96b38d5
...
...
@@ -32,11 +32,11 @@ import { TerminalConfigHelper } from 'vs/workbench/contrib/terminal/browser/term
import
{
TerminalLinkHandler
}
from
'
vs/workbench/contrib/terminal/browser/terminalLinkHandler
'
;
import
{
TerminalCommandTracker
}
from
'
vs/workbench/contrib/terminal/browser/terminalCommandTracker
'
;
import
{
IPanelService
}
from
'
vs/workbench/services/panel/common/panelService
'
;
import
{
Terminal
as
XTermTerminal
,
IBuffer
}
from
'
xterm
'
;
import
{
IAccessibilityService
,
AccessibilitySupport
}
from
'
vs/platform/accessibility/common/accessibility
'
;
import
{
ITerminalInstanceService
}
from
'
vs/workbench/contrib/terminal/browser/terminal
'
;
import
{
SearchAddon
,
ISearchOptions
}
from
'
xterm-addon-search
'
;
import
{
TerminalProcessManager
}
from
'
vs/workbench/contrib/terminal/browser/terminalProcessManager
'
;
import
{
Terminal
as
XTermTerminal
,
IBuffer
}
from
'
xterm
'
;
import
{
SearchAddon
,
ISearchOptions
}
from
'
xterm-addon-search
'
;
// How long in milliseconds should an average frame take to render for a notification to appear
// which suggests the fallback DOM-based renderer
...
...
@@ -169,7 +169,7 @@ export class TerminalInstance implements ITerminalInstance {
private
_title
:
string
;
private
_wrapperElement
:
HTMLDivElement
;
private
_xterm
:
XTermTerminal
;
private
_xtermSearch
:
SearchAddon
;
private
_xtermSearch
:
SearchAddon
|
undefined
;
private
_xtermElement
:
HTMLDivElement
;
private
_terminalHasTextContextKey
:
IContextKey
<
boolean
>
;
private
_cols
:
number
;
...
...
@@ -435,8 +435,10 @@ export class TerminalInstance implements ITerminalInstance {
// TODO: Guess whether to use canvas or dom better
rendererType
:
config
.
rendererType
===
'
auto
'
?
'
canvas
'
:
config
.
rendererType
});
this
.
_xtermSearch
=
new
SearchAddon
();
this
.
_xterm
.
loadAddon
(
this
.
_xtermSearch
);
this
.
_terminalInstanceService
.
getXtermSearchConstructor
().
then
(
Addon
=>
{
this
.
_xtermSearch
=
new
Addon
();
this
.
_xterm
.
loadAddon
(
this
.
_xtermSearch
);
});
if
(
this
.
_shellLaunchConfig
.
initialText
)
{
this
.
_xterm
.
writeln
(
this
.
_shellLaunchConfig
.
initialText
);
}
...
...
@@ -720,10 +722,16 @@ export class TerminalInstance implements ITerminalInstance {
}
public
findNext
(
term
:
string
,
searchOptions
:
ISearchOptions
):
boolean
{
if
(
!
this
.
_xtermSearch
)
{
return
false
;
}
return
this
.
_xtermSearch
.
findNext
(
term
,
searchOptions
);
}
public
findPrevious
(
term
:
string
,
searchOptions
:
ISearchOptions
):
boolean
{
if
(
!
this
.
_xtermSearch
)
{
return
false
;
}
return
this
.
_xtermSearch
.
findPrevious
(
term
,
searchOptions
);
}
...
...
src/vs/workbench/contrib/terminal/electron-browser/terminalInstanceService.ts
浏览文件 @
f96b38d5
...
...
@@ -4,17 +4,19 @@
*--------------------------------------------------------------------------------------------*/
import
{
ITerminalInstanceService
}
from
'
vs/workbench/contrib/terminal/browser/terminal
'
;
import
{
Terminal
as
XTermTerminal
}
from
'
xterm
'
;
import
{
WebLinksAddon
as
XTermWebLinksAddon
}
from
'
xterm-addon-web-links
'
;
import
{
ITerminalInstance
,
IWindowsShellHelper
,
IShellLaunchConfig
,
ITerminalChildProcess
}
from
'
vs/workbench/contrib/terminal/common/terminal
'
;
import
{
WindowsShellHelper
}
from
'
vs/workbench/contrib/terminal/node/windowsShellHelper
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IProcessEnvironment
,
Platform
}
from
'
vs/base/common/platform
'
;
import
{
TerminalProcess
}
from
'
vs/workbench/contrib/terminal/node/terminalProcess
'
;
import
{
getDefaultShell
}
from
'
vs/workbench/contrib/terminal/node/terminal
'
;
import
{
Terminal
as
XTermTerminal
}
from
'
xterm
'
;
import
{
WebLinksAddon
as
XTermWebLinksAddon
}
from
'
xterm-addon-web-links
'
;
import
{
SearchAddon
as
XTermSearchAddon
}
from
'
xterm-addon-search
'
;
let
Terminal
:
typeof
XTermTerminal
;
let
WebLinksAddon
:
typeof
XTermWebLinksAddon
;
let
SearchAddon
:
typeof
XTermSearchAddon
;
/**
* A service used by TerminalInstance (and components owned by it) that allows it to break its
...
...
@@ -43,6 +45,13 @@ export class TerminalInstanceService implements ITerminalInstanceService {
return
WebLinksAddon
;
}
public
async
getXtermSearchConstructor
():
Promise
<
typeof
XTermSearchAddon
>
{
if
(
!
SearchAddon
)
{
SearchAddon
=
(
await
import
(
'
xterm-addon-search
'
)).
SearchAddon
;
}
return
SearchAddon
;
}
public
createWindowsShellHelper
(
shellProcessId
:
number
,
instance
:
ITerminalInstance
,
xterm
:
XTermTerminal
):
IWindowsShellHelper
{
return
new
WindowsShellHelper
(
shellProcessId
,
instance
,
xterm
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录