Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
34c6e0a7
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,体验更适合开发者的 AI 搜索 >>
提交
34c6e0a7
编写于
8月 20, 2017
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Integrate official xterm.js types
上级
0e000d78
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
452 addition
and
192 deletion
+452
-192
src/typings/xterm.d.ts
src/typings/xterm.d.ts
+451
-191
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
...bench/parts/terminal/electron-browser/terminalInstance.ts
+1
-1
未找到文件。
src/typings/xterm.d.ts
浏览文件 @
34c6e0a7
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
/**
* @license MIT
*
* This contains the type declarations for the xterm.js library. Note that
* some interfaces differ between this file and the actual implementation in
* src/, that's because this file declares the *public* API which is intended
* to be stable and consumed by external programs.
*/
declare
module
'
xterm
'
{
type
LinkMatcherHandler
=
(
event
:
MouseEvent
,
uri
:
string
)
=>
boolean
|
void
;
/**
* An object containing start up options for the terminal.
*/
interface
ITerminalOptions
{
/**
* A data uri of the sound to use for the bell (needs bellStyle = 'sound').
*/
bellSound
?:
string
;
/**
* The type of the bell notification the terminal will use.
*/
bellStyle
?:
'
none
'
|
'
visual
'
|
'
sound
'
|
'
both
'
;
/**
* The number of columns in the terminal.
*/
cols
?:
number
;
/**
* Whether the cursor blinks.
*/
cursorBlink
?:
boolean
;
/**
* The style of the cursor.
*/
cursorStyle
?:
'
block
'
|
'
underline
'
|
'
bar
'
;
/**
* Whether input should be disabled.
*/
disableStdin
?:
boolean
;
/**
* The number of rows in the terminal.
*/
rows
?:
number
;
/**
* The amount of scrollback in the terminal. Scrollback is the amount of rows
* that are retained when lines are scrolled beyond the initial viewport.
*/
scrollback
?:
number
;
/**
* The size of tab stops in the terminal.
*/
tabStopWidth
?:
number
;
}
/**
* An object containing options for a link matcher.
*/
interface
ILinkMatcherOptions
{
/**
* The index of the link from the regex.match(text) call. This defaults to 0
* (for regular expressions without capture groups).
*/
matchIndex
?:
number
;
/**
* A callback that validates an individual link, returning true if valid and
* false if invalid.
*/
validationCallback
?:
(
uri
:
string
,
element
:
HTMLElement
,
callback
:
(
isValid
:
boolean
)
=>
void
)
=>
void
;
/**
* The priority of the link matcher, this defines the order in which the link
* matcher is evaluated relative to others, from highest to lowest. The
* default value is 0.
*/
priority
?:
number
;
}
declare
module
'
xterm
'
{
/**
* The class that represents an xterm.js terminal.
*/
export
class
Terminal
{
cols
:
number
;
rows
:
number
;
ydisp
:
number
;
element
:
HTMLElement
;
textarea
:
HTMLTextAreaElement
;
/**
* Creates a new `Terminal` object.
*
* @param {object} options An object containing a set of options.
*/
constructor
(
options
?:
any
);
/**
* Registers an event listener.
* @param eventName The name of the event.
* @param callback The callback.
*/
on
(
eventName
:
string
,
callback
:
(
data
:
any
)
=>
void
):
void
;
/**
* Resizes the terminal.
*
* @param x The number of columns to resize to.
* @param y The number of rows to resize to.
*/
resize
(
columns
:
number
,
rows
:
number
):
void
;
/**
* Emits an event.
* @param eventName The name of the event.
* @param data The data attached to the event.
*/
emit
(
eventName
:
string
,
data
:
any
):
void
;
/**
* Writes text to the terminal, followed by a break line character (\n).
* @param data The text to write to the terminal.
*/
writeln
(
data
:
string
):
void
;
/**
* Opens the terminal within an element.
* @param parent The element to create the terminal within.
* @param focus Focus the terminal, after it gets instantiated in the
* DOM.
*/
open
(
parent
:
HTMLElement
,
focus
:
boolean
):
void
;
/**
* Attaches a custom key event handler which is run before keys are
* processed, giving consumers of xterm.js ultimate control as to what
* keys should be processed by the terminal and what keys should not.
* @param customKeyEventHandler The custom KeyboardEvent handler to
* attach. This is a function that takes a KeyboardEvent, allowing
* consumers to stop propogation and/or prevent the default action. The
* function returns whether the event should be processed by xterm.js.
*/
attachCustomKeyEventHandler
(
customKeyEventHandler
:
(...
any
)
=>
boolean
);
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
getOption
(
key
:
string
):
any
;
/**
* Registers a link matcher, allowing custom link patterns to be matched and
* handled.
* @param {RegExp} regex The regular expression to search for, specifically
* this searches the textContent of the rows. You will want to use \s to match
* a space ' ' character for example.
* @param {LinkMatcherHandler} handler The callback when the link is called.
* @param {LinkMatcherOptions} [options] Options for the link matcher.
* @return {number} The ID of the new matcher, this can be used to deregister.
*/
registerLinkMatcher
(
regex
:
RegExp
,
handler
:
LinkMatcherHandler
,
options
?:
any
);
/**
* Deregisters a link matcher if it has been registered.
* @param matcherId The link matcher's ID (returned after register)
*/
deregisterLinkMatcher
(
matcherId
:
number
):
void
;
/**
* Gets whether the terminal has an active selection.
*/
hasSelection
():
boolean
;
/**
* Gets the terminal's current selection, this is useful for implementing copy
* behavior outside of xterm.js.
*/
getSelection
():
string
;
/**
* Clears the current terminal selection.
*/
clearSelection
():
void
;
/**
* Selects all text within the terminal.
*/
selectAll
():
void
;
/**
* Focus the terminal. Delegates focus handling to the terminal's DOM element.
*/
focus
():
void
;
/**
* Find the next instance of the term, then scroll to and select it. If it
* doesn't exist, do nothing.
* @param term Tne search term.
* @return Whether a result was found.
*/
findNext
(
term
:
string
):
boolean
;
/**
* Find the previous instance of the term, then scroll to and select it. If it
* doesn't exist, do nothing.
* @param term Tne search term.
* @return Whether a result was found.
*/
findPrevious
(
term
:
string
):
boolean
;
/**
* Destroys the terminal.
*/
destroy
():
void
;
/**
* Scroll the display of the terminal
* @param disp The number of lines to scroll down (negatives scroll up).
*/
scrollDisp
(
disp
:
number
):
void
;
/**
* Scroll the display of the terminal by a number of pages.
* @param {number} pageCount The number of pages to scroll (negative scrolls up).
*/
scrollPages
(
pageCount
:
number
):
void
;
/**
* Scrolls the display of the terminal to the top.
*/
scrollToTop
():
void
;
/**
* Scrolls the display of the terminal to the bottom.
*/
scrollToBottom
():
void
;
/**
* Clears the entire buffer, making the prompt line the new first line.
*/
clear
():
void
;
/**
* Writes text to the terminal.
* @param data The text to write to the terminal.
*/
write
(
data
:
string
):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
string
,
value
:
any
):
void
;
/**
* Tells the renderer to refresh terminal content between two rows (inclusive) at the next
* opportunity.
* @param start The row to start from (between 0 and this.rows - 1).
* @param end The row to end at (between start and this.rows - 1).
*/
refresh
(
start
:
number
,
end
:
number
):
void
;
/**
* Loads an addon, attaching it to the Terminal prototype.
* @param addon The addon to load.
*/
static
loadAddon
(
addon
:
string
):
void
;
/**
* The element containing the terminal.
*/
element
:
HTMLElement
;
/**
* The textarea that accepts input for the terminal.
*/
textarea
:
HTMLTextAreaElement
;
/**
* The number of rows in the terminal's viewport.
*/
rows
:
number
;
/**
* The number of columns in the terminal's viewport.
*/
cols
:
number
;
/**
* Creates a new `Terminal` object.
*
* @param options An object containing a set of options.
*/
constructor
(
options
?:
ITerminalOptions
);
/**
* Unfocus the terminal.
*/
blur
():
void
;
/**
* Focus the terminal.
*/
focus
():
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
'
blur
'
|
'
focus
'
|
'
lineFeed
'
,
listener
:
()
=>
void
):
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
'
data
'
,
listener
:
(
data
?:
string
)
=>
void
):
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
'
key
'
,
listener
:
(
key
?:
string
,
event
?:
KeyboardEvent
)
=>
void
):
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
'
keypress
'
|
'
keydown
'
,
listener
:
(
event
?:
KeyboardEvent
)
=>
void
):
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
'
refresh
'
,
listener
:
(
data
?:
{
start
:
number
,
end
:
number
})
=>
void
):
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
'
resize
'
,
listener
:
(
data
?:
{
cols
:
number
,
rows
:
number
})
=>
void
):
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
'
scroll
'
,
listener
:
(
ydisp
?:
number
)
=>
void
):
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
'
title
'
,
listener
:
(
title
?:
string
)
=>
void
):
void
;
/**
* Registers an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
on
(
type
:
string
,
listener
:
(...
args
:
any
[])
=>
void
):
void
;
/**
* Deregisters an event listener.
* @param type The type of the event.
* @param listener The listener.
*/
off
(
type
:
'
blur
'
|
'
focus
'
|
'
lineFeed
'
|
'
data
'
|
'
key
'
|
'
keypress
'
|
'
keydown
'
|
'
refresh
'
|
'
resize
'
|
'
scroll
'
|
'
title
'
|
string
,
listener
:
(...
args
:
any
[])
=>
void
):
void
;
/**
* Resizes the terminal.
* @param x The number of columns to resize to.
* @param y The number of rows to resize to.
*/
resize
(
columns
:
number
,
rows
:
number
):
void
;
/**
* Writes text to the terminal, followed by a break line character (\n).
* @param data The text to write to the terminal.
*/
writeln
(
data
:
string
):
void
;
/**
* Opens the terminal within an element.
* @param parent The element to create the terminal within.
*/
open
(
parent
:
HTMLElement
):
void
;
/**
* Attaches a custom key event handler which is run before keys are
* processed, giving consumers of xterm.js ultimate control as to what keys
* should be processed by the terminal and what keys should not.
* @param customKeyEventHandler The custom KeyboardEvent handler to attach.
* This is a function that takes a KeyboardEvent, allowing consumers to stop
* propogation and/or prevent the default action. The function returns
* whether the event should be processed by xterm.js.
*/
attachCustomKeyEventHandler
(
customKeyEventHandler
:
(
event
:
KeyboardEvent
)
=>
boolean
):
void
;
/**
* (EXPERIMENTAL) Registers a link matcher, allowing custom link patterns to
* be matched and handled.
* @param regex The regular expression to search for, specifically this
* searches the textContent of the rows. You will want to use \s to match a
* space ' ' character for example.
* @param handler The callback when the link is called.
* @param options Options for the link matcher.
* @return The ID of the new matcher, this can be used to deregister.
*/
registerLinkMatcher
(
regex
:
RegExp
,
handler
:
(
event
:
MouseEvent
,
uri
:
string
)
=>
boolean
|
void
,
options
?:
ILinkMatcherOptions
):
number
;
/**
* (EXPERIMENTAL) Deregisters a link matcher if it has been registered.
* @param matcherId The link matcher's ID (returned after register)
*/
deregisterLinkMatcher
(
matcherId
:
number
):
void
;
/**
* Gets whether the terminal has an active selection.
*/
hasSelection
():
boolean
;
/**
* Gets the terminal's current selection, this is useful for implementing
* copy behavior outside of xterm.js.
*/
getSelection
():
string
;
/**
* Clears the current terminal selection.
*/
clearSelection
():
void
;
/**
* Selects all text within the terminal.
*/
selectAll
():
void
;
// /**
// * Find the next instance of the term, then scroll to and select it. If it
// * doesn't exist, do nothing.
// * @param term Tne search term.
// * @return Whether a result was found.
// */
// findNext(term: string): boolean;
// /**
// * Find the previous instance of the term, then scroll to and select it. If it
// * doesn't exist, do nothing.
// * @param term Tne search term.
// * @return Whether a result was found.
// */
// findPrevious(term: string): boolean;
/**
* Destroys the terminal and detaches it from the DOM.
*/
destroy
():
void
;
/**
* Scroll the display of the terminal
* @param amount The number of lines to scroll down (negative scroll up).
*/
scrollDisp
(
amount
:
number
):
void
;
/**
* Scroll the display of the terminal by a number of pages.
* @param pageCount The number of pages to scroll (negative scrolls up).
*/
scrollPages
(
pageCount
:
number
):
void
;
/**
* Scrolls the display of the terminal to the top.
*/
scrollToTop
():
void
;
/**
* Scrolls the display of the terminal to the bottom.
*/
scrollToBottom
():
void
;
/**
* Clear the entire buffer, making the prompt line the new first line.
*/
clear
():
void
;
/**
* Writes text to the terminal.
* @param data The text to write to the terminal.
*/
write
(
data
:
string
):
void
;
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
getOption
(
key
:
'
bellSound
'
|
'
bellStyle
'
|
'
cursorStyle
'
|
'
termName
'
):
string
;
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
getOption
(
key
:
'
cancelEvents
'
|
'
convertEol
'
|
'
cursorBlink
'
|
'
debug
'
|
'
disableStdin
'
|
'
popOnBell
'
|
'
screenKeys
'
|
'
useFlowControl
'
|
'
visualBell
'
):
boolean
;
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
getOption
(
key
:
'
colors
'
):
string
[];
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
getOption
(
key
:
'
cols
'
|
'
rows
'
|
'
tabStopWidth
'
|
'
scrollback
'
):
number
;
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
getOption
(
key
:
'
geometry
'
):
[
number
,
number
];
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
getOption
(
key
:
'
handler
'
):
(
data
:
string
)
=>
void
;
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
getOption
(
key
:
string
):
any
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
'
termName
'
|
'
bellSound
'
,
value
:
string
):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
'
bellStyle
'
,
value
:
null
|
'
none
'
|
'
visual
'
|
'
sound
'
|
'
both
'
):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
'
cursorStyle
'
,
value
:
null
|
'
block
'
|
'
underline
'
|
'
bar
'
):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
'
cancelEvents
'
|
'
convertEol
'
|
'
cursorBlink
'
|
'
debug
'
|
'
disableStdin
'
|
'
popOnBell
'
|
'
screenKeys
'
|
'
useFlowControl
'
|
'
visualBell
'
,
value
:
boolean
):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
'
colors
'
,
value
:
string
[]):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
'
cols
'
|
'
rows
'
|
'
tabStopWidth
'
|
'
scrollback
'
,
value
:
number
):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
'
geometry
'
,
value
:
[
number
,
number
]):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
'
handler
'
,
value
:
(
data
:
string
)
=>
void
):
void
;
/**
* Sets an option on the terminal.
* @param key The option key.
* @param value The option value.
*/
setOption
(
key
:
string
,
value
:
any
):
void
;
/**
* Tells the renderer to refresh terminal content between two rows
* (inclusive) at the next opportunity.
* @param start The row to start from (between 0 and this.rows - 1).
* @param end The row to end at (between start and this.rows - 1).
*/
refresh
(
start
:
number
,
end
:
number
):
void
;
/**
* Perform a full reset (RIS, aka '\x1bc').
*/
reset
():
void
/**
* Loads an addon, attaching it to the Terminal prototype and making it
* available to all newly created Terminals.
* @param addon The addon to load.
*/
static
loadAddon
(
addon
:
'
attach
'
|
'
fit
'
|
'
fullscreen
'
|
'
search
'
|
'
terminado
'
):
void
;
// Moficiations to official .d.ts below
/**
* The viewport position.
*/
ydisp
:
number
;
/**
* Emit an event on the terminal.
*/
emit
(
type
:
string
,
data
:
any
):
void
;
/**
* Find the next instance of the term, then scroll to and select it. If it
* doesn't exist, do nothing.
* @param term Tne search term.
* @return Whether a result was found.
*/
findNext
(
term
:
string
):
boolean
;
/**
* Find the previous instance of the term, then scroll to and select it. If it
* doesn't exist, do nothing.
* @param term Tne search term.
* @return Whether a result was found.
*/
findPrevious
(
term
:
string
):
boolean
;
}
}
\ No newline at end of file
}
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
浏览文件 @
34c6e0a7
...
...
@@ -280,7 +280,7 @@ export class TerminalInstance implements ITerminalInstance {
dom
.
addClass
(
this
.
_wrapperElement
,
'
terminal-wrapper
'
);
this
.
_xtermElement
=
document
.
createElement
(
'
div
'
);
this
.
_xterm
.
open
(
this
.
_xtermElement
,
false
);
this
.
_xterm
.
open
(
this
.
_xtermElement
);
this
.
_xterm
.
attachCustomKeyEventHandler
((
event
:
KeyboardEvent
)
=>
{
// Disable all input if the terminal is exiting
if
(
this
.
_isExiting
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录