Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
0999c132
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,发现更多精彩内容 >>
提交
0999c132
编写于
3月 27, 2017
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
stable-ish scm api!
fixes #2824
上级
ae55e8fa
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
205 addition
and
210 deletion
+205
-210
src/vs/vscode.d.ts
src/vs/vscode.d.ts
+205
-0
src/vs/vscode.proposed.d.ts
src/vs/vscode.proposed.d.ts
+0
-205
src/vs/workbench/api/node/extHost.api.impl.ts
src/vs/workbench/api/node/extHost.api.impl.ts
+0
-5
未找到文件。
src/vs/vscode.d.ts
浏览文件 @
0999c132
...
...
@@ -4515,6 +4515,211 @@ declare module 'vscode' {
export
function
setLanguageConfiguration
(
language
:
string
,
configuration
:
LanguageConfiguration
):
Disposable
;
}
/**
* The theme-aware decorations for a [SCM resource](#SCMResource).
*/
export
interface
SCMResourceThemableDecorations
{
/**
* The icon path for a specific [SCM resource](#SCMResource).
*/
readonly
iconPath
?:
string
|
Uri
;
}
/**
* The decorations for a [SCM resource](#SCMResource). Can be specified
* for light and dark themes, independently.
*/
export
interface
SCMResourceDecorations
extends
SCMResourceThemableDecorations
{
/**
* Whether the [SCM resource](#SCMResource) should be striked-through
* in the UI.
*/
readonly
strikeThrough
?:
boolean
;
/**
* The light theme decorations.
*/
readonly
light
?:
SCMResourceThemableDecorations
;
/**
* The dark theme decorations.
*/
readonly
dark
?:
SCMResourceThemableDecorations
;
}
/**
* An SCM resource represents the state of an underlying workspace
* resource within a certain SCM provider state.
*/
export
interface
SCMResource
{
/**
* The [uri](#Uri) of this SCM resource. This uri should uniquely
* identify this SCM resource. Its value should be semantically
* related to your [SCM provider](#SCMProvider).
*
* For example, consider file `/foo/bar` to be modified. An SCM
* resource which would represent such state could have the
* following properties:
*
* - `uri = 'git:workingtree/A'`
* - `sourceUri = 'file:///foo/bar'`
*/
readonly
uri
:
Uri
;
/**
* The [uri](#Uri) of the underlying resource inside the workspace.
*/
readonly
sourceUri
:
Uri
;
/**
* The [decorations](#SCMResourceDecorations) for this SCM resource.
*/
readonly
decorations
?:
SCMResourceDecorations
;
}
/**
* An SCM resource group is a collection of [SCM resources](#SCMResource).
*/
export
interface
SCMResourceGroup
{
/**
* The [uri](#Uri) of this SCM resource group. This uri should
* uniquely identify this SCM resource group. Its value should be
* semantically related to your [SCM provider](#SCMProvider).
*
* For example, consider a Working Tree resource group. An SCM
* resource group which would represent such state could have the
* following properties:
*
* - `uri = 'git:workingtree'`
* - `label = 'Working Tree'`
*/
readonly
uri
:
Uri
;
/**
* The UI label of the SCM resource group.
*/
readonly
label
:
string
;
/**
* The context key of the SCM resource group, which will be used to populate
* the value of the `scmResourceGroup` context key.
*/
readonly
contextKey
?:
string
;
/**
* The collection of [SCM resources](#SCMResource) within the SCM resource group.
*/
readonly
resources
:
SCMResource
[];
}
/**
* An SCM provider is able to provide [SCM resources](#SCMResource) to the editor,
* notify of changes in them and interact with the editor in several SCM related ways.
*/
export
interface
SCMProvider
{
/**
* A human-readable label for the name of the SCM Provider.
*/
readonly
label
:
string
;
/**
* The context key of the SCM provider, which will be used to populate
* the value of the `scmProvider` context key.
*/
readonly
contextKey
?:
string
;
/**
* The list of SCM resource groups.
*/
readonly
resources
:
SCMResourceGroup
[];
/**
* A count of resources, used in the UI as the label for the SCM changes count.
*/
readonly
count
?:
number
;
/**
* A state identifier, which will be used to populate the value of the
* `scmProviderState` context key.
*/
readonly
stateContextKey
?:
string
;
/**
* An [event](#Event) which should fire when any of the following attributes
* have changed:
* - [resources](#SCMProvider.resources)
* - [count](#SCMProvider.count)
* - [state](#SCMProvider.state)
*/
readonly
onDidChange
?:
Event
<
SCMProvider
>
;
/**
* Provide a [uri](#Uri) to the original resource of any given resource uri.
*
* @param uri The uri of the resource open in a text editor.
* @param token A cancellation token.
* @return A thenable that resolves to uri of the matching original resource.
*/
provideOriginalResource
?(
uri
:
Uri
,
token
:
CancellationToken
):
ProviderResult
<
Uri
>
;
/**
* Open a specific [SCM resource](#SCMResource). Called when SCM resources
* are clicked in the UI, for example.
*
* @param resource The [SCM resource](#SCMResource) which should be open.
* @param token A cancellation token.
* @return A thenable which resolves when the resource is open.
*/
open
?(
resource
:
SCMResource
):
void
;
}
/**
* Represents the input box in the SCM view.
*/
export
interface
SCMInputBox
{
/**
* Setter and getter for the contents of the input box.
*/
value
:
string
;
}
export
namespace
scm
{
/**
* The currently active [SCM provider](#SCMProvider).
*/
export
let
activeProvider
:
SCMProvider
|
undefined
;
/**
* An [event](#Event) which fires when the active [SCM provider](#SCMProvider)
* has changed.
*/
export
const
onDidChangeActiveProvider
:
Event
<
SCMProvider
>
;
/**
* The [input box](#SCMInputBox) in the SCM view.
*/
export
const
inputBox
:
SCMInputBox
;
/**
* An [event](#Event) which fires when the user has accepted the changes.
*/
export
const
onDidAcceptInputValue
:
Event
<
SCMInputBox
>
;
/**
* Registers an [SCM provider](#SCMProvider).
*
* @return A disposable which unregisters the provider.
*/
export
function
registerSCMProvider
(
provider
:
SCMProvider
):
Disposable
;
}
/**
* Namespace for dealing with installed extensions. Extensions are represented
* by an [extension](#Extension)-interface which allows to reflect on them.
...
...
src/vs/vscode.proposed.d.ts
浏览文件 @
0999c132
...
...
@@ -584,211 +584,6 @@ declare module 'vscode' {
getClickCommand
?(
node
:
T
):
string
;
}
/**
* The theme-aware decorations for a [SCM resource](#SCMResource).
*/
export
interface
SCMResourceThemableDecorations
{
/**
* The icon path for a specific [SCM resource](#SCMResource).
*/
readonly
iconPath
?:
string
|
Uri
;
}
/**
* The decorations for a [SCM resource](#SCMResource). Can be specified
* for light and dark themes, independently.
*/
export
interface
SCMResourceDecorations
extends
SCMResourceThemableDecorations
{
/**
* Whether the [SCM resource](#SCMResource) should be striked-through
* in the UI.
*/
readonly
strikeThrough
?:
boolean
;
/**
* The light theme decorations.
*/
readonly
light
?:
SCMResourceThemableDecorations
;
/**
* The dark theme decorations.
*/
readonly
dark
?:
SCMResourceThemableDecorations
;
}
/**
* An SCM resource represents the state of an underlying workspace
* resource within a certain SCM provider state.
*/
export
interface
SCMResource
{
/**
* The [uri](#Uri) of this SCM resource. This uri should uniquely
* identify this SCM resource. Its value should be semantically
* related to your [SCM provider](#SCMProvider).
*
* For example, consider file `/foo/bar` to be modified. An SCM
* resource which would represent such state could have the
* following properties:
*
* - `uri = 'git:workingtree/A'`
* - `sourceUri = 'file:///foo/bar'`
*/
readonly
uri
:
Uri
;
/**
* The [uri](#Uri) of the underlying resource inside the workspace.
*/
readonly
sourceUri
:
Uri
;
/**
* The [decorations](#SCMResourceDecorations) for this SCM resource.
*/
readonly
decorations
?:
SCMResourceDecorations
;
}
/**
* An SCM resource group is a collection of [SCM resources](#SCMResource).
*/
export
interface
SCMResourceGroup
{
/**
* The [uri](#Uri) of this SCM resource group. This uri should
* uniquely identify this SCM resource group. Its value should be
* semantically related to your [SCM provider](#SCMProvider).
*
* For example, consider a Working Tree resource group. An SCM
* resource group which would represent such state could have the
* following properties:
*
* - `uri = 'git:workingtree'`
* - `label = 'Working Tree'`
*/
readonly
uri
:
Uri
;
/**
* The UI label of the SCM resource group.
*/
readonly
label
:
string
;
/**
* The context key of the SCM resource group, which will be used to populate
* the value of the `scmResourceGroup` context key.
*/
readonly
contextKey
?:
string
;
/**
* The collection of [SCM resources](#SCMResource) within the SCM resource group.
*/
readonly
resources
:
SCMResource
[];
}
/**
* An SCM provider is able to provide [SCM resources](#SCMResource) to the editor,
* notify of changes in them and interact with the editor in several SCM related ways.
*/
export
interface
SCMProvider
{
/**
* A human-readable label for the name of the SCM Provider.
*/
readonly
label
:
string
;
/**
* The context key of the SCM provider, which will be used to populate
* the value of the `scmProvider` context key.
*/
readonly
contextKey
?:
string
;
/**
* The list of SCM resource groups.
*/
readonly
resources
:
SCMResourceGroup
[];
/**
* A count of resources, used in the UI as the label for the SCM changes count.
*/
readonly
count
?:
number
;
/**
* A state identifier, which will be used to populate the value of the
* `scmProviderState` context key.
*/
readonly
stateContextKey
?:
string
;
/**
* An [event](#Event) which should fire when any of the following attributes
* have changed:
* - [resources](#SCMProvider.resources)
* - [count](#SCMProvider.count)
* - [state](#SCMProvider.state)
*/
readonly
onDidChange
?:
Event
<
SCMProvider
>
;
/**
* Provide a [uri](#Uri) to the original resource of any given resource uri.
*
* @param uri The uri of the resource open in a text editor.
* @param token A cancellation token.
* @return A thenable that resolves to uri of the matching original resource.
*/
provideOriginalResource
?(
uri
:
Uri
,
token
:
CancellationToken
):
ProviderResult
<
Uri
>
;
/**
* Open a specific [SCM resource](#SCMResource). Called when SCM resources
* are clicked in the UI, for example.
*
* @param resource The [SCM resource](#SCMResource) which should be open.
* @param token A cancellation token.
* @return A thenable which resolves when the resource is open.
*/
open
?(
resource
:
SCMResource
):
void
;
}
/**
* Represents the input box in the SCM view.
*/
export
interface
SCMInputBox
{
/**
* Setter and getter for the contents of the input box.
*/
value
:
string
;
}
export
namespace
scm
{
/**
* The currently active [SCM provider](#SCMProvider).
*/
export
let
activeProvider
:
SCMProvider
|
undefined
;
/**
* An [event](#Event) which fires when the active [SCM provider](#SCMProvider)
* has changed.
*/
export
const
onDidChangeActiveProvider
:
Event
<
SCMProvider
>
;
/**
* The [input box](#SCMInputBox) in the SCM view.
*/
export
const
inputBox
:
SCMInputBox
;
/**
* An [event](#Event) which fires when the user has accepted the changes.
*/
export
const
onDidAcceptInputValue
:
Event
<
SCMInputBox
>
;
/**
* Registers an [SCM provider](#SCMProvider).
*
* @return A disposable which unregisters the provider.
*/
export
function
registerSCMProvider
(
provider
:
SCMProvider
):
Disposable
;
}
/**
* The contiguous set of modified lines in a diff.
*/
...
...
src/vs/workbench/api/node/extHost.api.impl.ts
浏览文件 @
0999c132
...
...
@@ -448,27 +448,22 @@ export function createApiFactory(
class
SCM
{
@
proposed
(
extension
)
get
activeProvider
()
{
return
extHostSCM
.
activeProvider
;
}
@
proposed
(
extension
)
get
onDidChangeActiveProvider
()
{
return
extHostSCM
.
onDidChangeActiveProvider
;
}
@
proposed
(
extension
)
get
onDidAcceptInputValue
()
{
return
mapEvent
(
extHostSCM
.
inputBox
.
onDidAccept
,
()
=>
extHostSCM
.
inputBox
);
}
@
proposed
(
extension
)
get
inputBox
()
{
return
extHostSCM
.
inputBox
;
}
@
proposed
(
extension
)
registerSCMProvider
(
provider
:
vscode
.
SCMProvider
)
{
telemetryService
.
publicLog
(
'
registerSCMProvider
'
,
{
extensionId
:
extension
.
id
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录