Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
7d213a52
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 搜索 >>
提交
7d213a52
编写于
12月 21, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debt - add another resource input for side by side use
上级
2316aa0b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
52 addition
and
31 deletion
+52
-31
src/vs/platform/editor/common/editor.ts
src/vs/platform/editor/common/editor.ts
+26
-15
src/vs/workbench/common/editor.ts
src/vs/workbench/common/editor.ts
+2
-2
src/vs/workbench/services/editor/browser/editorService.ts
src/vs/workbench/services/editor/browser/editorService.ts
+17
-7
src/vs/workbench/services/editor/common/editorService.ts
src/vs/workbench/services/editor/common/editorService.ts
+7
-7
未找到文件。
src/vs/platform/editor/common/editor.ts
浏览文件 @
7d213a52
...
...
@@ -37,7 +37,25 @@ export interface IEditorModel {
dispose
():
void
;
}
export
interface
IResourceInput
{
export
interface
IBaseResourceInput
{
/**
* Optional options to use when opening the text input.
*/
options
?:
ITextEditorOptions
;
/**
* Label to show for the diff editor
*/
label
?:
string
;
/**
* Description to show for the diff editor
*/
description
?:
string
;
}
export
interface
IResourceInput
extends
IBaseResourceInput
{
/**
* The resource URL of the resource to open.
...
...
@@ -48,14 +66,9 @@ export interface IResourceInput {
* The encoding of the text input if known.
*/
encoding
?:
string
;
/**
* Optional options to use when opening the text input.
*/
options
?:
ITextEditorOptions
;
}
export
interface
IResourceDiffInput
{
export
interface
IResourceDiffInput
extends
IBaseResourceInput
{
/**
* The left hand side URI to open inside a diff editor.
...
...
@@ -66,21 +79,19 @@ export interface IResourceDiffInput {
* The right hand side URI to open inside a diff editor.
*/
rightResource
:
URI
;
}
/**
* Label to show for the diff editor
*/
label
?:
string
;
export
interface
IResourceSideBySideInput
extends
IBaseResourceInput
{
/**
*
Description to show for the diff editor
*
The right hand side URI to open inside a side by side editor.
*/
description
?:
string
;
masterResource
:
URI
;
/**
*
Optional options to use when opening the text diff input
.
*
The left hand side URI to open inside a side by side editor
.
*/
options
?:
ITextEditorOptions
;
detailResource
:
URI
;
}
export
interface
IEditorControl
{
...
...
src/vs/workbench/common/editor.ts
浏览文件 @
7d213a52
...
...
@@ -11,7 +11,7 @@ import types = require('vs/base/common/types');
import
URI
from
'
vs/base/common/uri
'
;
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
IEditor
,
ICommonCodeEditor
,
IEditorViewState
,
IEditorOptions
as
ICodeEditorOptions
,
IModel
}
from
'
vs/editor/common/editorCommon
'
;
import
{
IEditorInput
,
IEditorModel
,
IEditorOptions
,
ITextEditorOptions
,
I
ResourceInput
,
IResourceDiff
Input
,
Position
}
from
'
vs/platform/editor/common/editor
'
;
import
{
IEditorInput
,
IEditorModel
,
IEditorOptions
,
ITextEditorOptions
,
I
BaseResource
Input
,
Position
}
from
'
vs/platform/editor/common/editor
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IEditorGroupService
}
from
'
vs/workbench/services/group/common/groupService
'
;
import
{
SyncDescriptor
,
AsyncDescriptor
}
from
'
vs/platform/instantiation/common/descriptors
'
;
...
...
@@ -577,7 +577,7 @@ export class TextEditorOptions extends EditorOptions {
private
editorViewState
:
IEditorViewState
;
private
editorOptions
:
ICodeEditorOptions
;
public
static
from
(
input
:
I
ResourceInput
|
IResourceDiff
Input
):
TextEditorOptions
{
public
static
from
(
input
:
I
BaseResource
Input
):
TextEditorOptions
{
let
options
:
TextEditorOptions
=
null
;
if
(
input
&&
input
.
options
)
{
if
(
input
.
options
.
selection
||
input
.
options
.
forceOpen
||
input
.
options
.
revealIfVisible
||
input
.
options
.
preserveFocus
||
input
.
options
.
pinned
||
input
.
options
.
inactive
||
typeof
input
.
options
.
index
===
'
number
'
)
{
...
...
src/vs/workbench/services/editor/browser/editorService.ts
浏览文件 @
7d213a52
...
...
@@ -15,7 +15,7 @@ import { ResourceEditorInput } from 'vs/workbench/common/editor/resourceEditorIn
import
{
UntitledEditorInput
}
from
'
vs/workbench/common/editor/untitledEditorInput
'
;
import
{
IUntitledEditorService
}
from
'
vs/workbench/services/untitled/common/untitledEditorService
'
;
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
import
{
IEditorInput
,
IEditorOptions
,
ITextEditorOptions
,
Position
,
Direction
,
IEditor
,
IResourceInput
,
IResourceDiffInput
}
from
'
vs/platform/editor/common/editor
'
;
import
{
IEditorInput
,
IEditorOptions
,
ITextEditorOptions
,
Position
,
Direction
,
IEditor
,
IResourceInput
,
IResourceDiffInput
,
IResourceSideBySideInput
}
from
'
vs/platform/editor/common/editor
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
AsyncDescriptor0
}
from
'
vs/platform/instantiation/common/descriptors
'
;
import
{
DiffEditorInput
,
toDiffLabel
}
from
'
vs/workbench/common/editor/diffEditorInput
'
;
...
...
@@ -88,8 +88,8 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
public
openEditor
(
input
:
IEditorInput
,
options
?:
IEditorOptions
,
sideBySide
?:
boolean
):
TPromise
<
IEditor
>
;
public
openEditor
(
input
:
IEditorInput
,
options
?:
IEditorOptions
,
position
?:
Position
):
TPromise
<
IEditor
>
;
public
openEditor
(
input
:
IResourceInput
|
IResourceDiffInput
,
position
?:
Position
):
TPromise
<
IEditor
>
;
public
openEditor
(
input
:
IResourceInput
|
IResourceDiffInput
,
sideBySide
?:
boolean
):
TPromise
<
IEditor
>
;
public
openEditor
(
input
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
,
position
?:
Position
):
TPromise
<
IEditor
>
;
public
openEditor
(
input
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
,
sideBySide
?:
boolean
):
TPromise
<
IEditor
>
;
public
openEditor
(
input
:
any
,
arg2
?:
any
,
arg3
?:
any
):
TPromise
<
IEditor
>
{
if
(
!
input
)
{
return
TPromise
.
as
<
IEditor
>
(
null
);
...
...
@@ -112,7 +112,7 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
}
// Untyped Text Editor Support (required for code that uses this service below workbench level)
const
textInput
=
<
IResourceInput
|
IResourceDiffInput
>
input
;
const
textInput
=
<
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
>
input
;
return
this
.
createInput
(
textInput
).
then
(
typedInput
=>
{
if
(
typedInput
)
{
return
this
.
doOpenEditor
(
typedInput
,
TextEditorOptions
.
from
(
textInput
),
arg2
);
...
...
@@ -144,7 +144,7 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
return
this
.
editorPart
.
openEditor
(
input
,
options
,
arg3
);
}
public
openEditors
(
editors
:
{
input
:
IResourceInput
|
IResourceDiffInput
,
position
:
Position
}[]):
TPromise
<
IEditor
[]
>
;
public
openEditors
(
editors
:
{
input
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
,
position
:
Position
}[]):
TPromise
<
IEditor
[]
>
;
public
openEditors
(
editors
:
{
input
:
IEditorInput
,
position
:
Position
,
options
?:
IEditorOptions
}[]):
TPromise
<
IEditor
[]
>
;
public
openEditors
(
editors
:
any
[]):
TPromise
<
IEditor
[]
>
{
return
TPromise
.
join
(
editors
.
map
(
editor
=>
this
.
createInput
(
editor
.
input
))).
then
(
inputs
=>
{
...
...
@@ -162,7 +162,7 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
});
}
public
replaceEditors
(
editors
:
{
toReplace
:
IResourceInput
|
IResourceDiffInput
,
replaceWith
:
IResourceInput
|
IResourceDiff
Input
}[]):
TPromise
<
BaseEditor
[]
>
;
public
replaceEditors
(
editors
:
{
toReplace
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
,
replaceWith
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySide
Input
}[]):
TPromise
<
BaseEditor
[]
>
;
public
replaceEditors
(
editors
:
{
toReplace
:
IEditorInput
,
replaceWith
:
IEditorInput
,
options
?:
IEditorOptions
}[]):
TPromise
<
BaseEditor
[]
>
;
public
replaceEditors
(
editors
:
any
[]):
TPromise
<
BaseEditor
[]
>
{
return
TPromise
.
join
(
editors
.
map
(
editor
=>
this
.
createInput
(
editor
.
toReplace
))).
then
(
toReplaceInputs
=>
{
...
...
@@ -195,7 +195,7 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
}
public
createInput
(
input
:
IEditorInput
):
TPromise
<
EditorInput
>
;
public
createInput
(
input
:
IResourceInput
|
IResourceDiffInput
):
TPromise
<
EditorInput
>
;
public
createInput
(
input
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
):
TPromise
<
EditorInput
>
;
public
createInput
(
input
:
any
):
TPromise
<
IEditorInput
>
{
// Workbench Input Support
...
...
@@ -203,6 +203,16 @@ export class WorkbenchEditorService implements IWorkbenchEditorService {
return
TPromise
.
as
<
EditorInput
>
(
input
);
}
// Side by Side Support
const
resourceSideBySideInput
=
<
IResourceSideBySideInput
>
input
;
if
(
resourceSideBySideInput
.
masterResource
&&
resourceSideBySideInput
.
detailResource
)
{
return
this
.
createInput
({
resource
:
resourceSideBySideInput
.
masterResource
}).
then
(
masterInput
=>
{
return
this
.
createInput
({
resource
:
resourceSideBySideInput
.
detailResource
}).
then
(
detailInput
=>
{
return
new
SideBySideEditorInput
(
resourceSideBySideInput
.
label
||
masterInput
.
getName
(),
resourceSideBySideInput
.
description
||
masterInput
.
getDescription
(),
detailInput
,
masterInput
);
});
});
}
// Diff Editor Support
const
resourceDiffInput
=
<
IResourceDiffInput
>
input
;
if
(
resourceDiffInput
.
leftResource
&&
resourceDiffInput
.
rightResource
)
{
...
...
src/vs/workbench/services/editor/common/editorService.ts
浏览文件 @
7d213a52
...
...
@@ -7,7 +7,7 @@
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
createDecorator
,
ServiceIdentifier
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IEditorService
,
IEditor
,
IEditorInput
,
IEditorOptions
,
ITextEditorOptions
,
Position
,
Direction
,
IResourceInput
,
IResourceDiffInput
}
from
'
vs/platform/editor/common/editor
'
;
import
{
IEditorService
,
IEditor
,
IEditorInput
,
IEditorOptions
,
ITextEditorOptions
,
Position
,
Direction
,
IResourceInput
,
IResourceDiffInput
,
IResourceSideBySideInput
}
from
'
vs/platform/editor/common/editor
'
;
export
const
IWorkbenchEditorService
=
createDecorator
<
IWorkbenchEditorService
>
(
'
editorService
'
);
...
...
@@ -49,23 +49,23 @@ export interface IWorkbenchEditorService extends IEditorService {
openEditor
(
input
:
IEditorInput
,
options
?:
IEditorOptions
|
ITextEditorOptions
,
sideBySide
?:
boolean
):
TPromise
<
IEditor
>
;
/**
* Specific overload to open an instance of IResourceInput
and IResourceDiff
Input.
* Specific overload to open an instance of IResourceInput
, IResourceDiffInput or IResourceSideBySide
Input.
*/
openEditor
(
input
:
IResourceInput
|
IResourceDiffInput
,
position
?:
Position
):
TPromise
<
IEditor
>
;
openEditor
(
input
:
IResourceInput
|
IResourceDiffInput
,
sideBySide
?:
boolean
):
TPromise
<
IEditor
>
;
openEditor
(
input
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
,
position
?:
Position
):
TPromise
<
IEditor
>
;
openEditor
(
input
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
,
sideBySide
?:
boolean
):
TPromise
<
IEditor
>
;
/**
* Similar to #openEditor() but allows to open multiple editors for different positions at the same time. If there are
* more than one editor per position, only the first one will be active and the others stacked behind inactive.
*/
openEditors
(
editors
:
{
input
:
IResourceInput
|
IResourceDiffInput
,
position
:
Position
}[]):
TPromise
<
IEditor
[]
>
;
openEditors
(
editors
:
{
input
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
,
position
:
Position
}[]):
TPromise
<
IEditor
[]
>
;
openEditors
(
editors
:
{
input
:
IEditorInput
,
position
:
Position
,
options
?:
IEditorOptions
|
ITextEditorOptions
}[]):
TPromise
<
IEditor
[]
>
;
/**
* Given a list of editors to replace, will look across all groups where this editor is open (active or hidden)
* and replace it with the new editor and the provied options.
*/
replaceEditors
(
editors
:
{
toReplace
:
IResourceInput
|
IResourceDiffInput
,
replaceWith
:
IResourceInput
|
IResourceDiff
Input
}[]):
TPromise
<
IEditor
[]
>
;
replaceEditors
(
editors
:
{
toReplace
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
,
replaceWith
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySide
Input
}[]):
TPromise
<
IEditor
[]
>
;
replaceEditors
(
editors
:
{
toReplace
:
IEditorInput
,
replaceWith
:
IEditorInput
,
options
?:
IEditorOptions
|
ITextEditorOptions
}[]):
TPromise
<
IEditor
[]
>
;
/**
...
...
@@ -88,5 +88,5 @@ export interface IWorkbenchEditorService extends IEditorService {
/**
* Allows to resolve an untyped input to a workbench typed instanceof editor input
*/
createInput
(
input
:
IResourceInput
|
IResourceDiffInput
):
TPromise
<
IEditorInput
>
;
createInput
(
input
:
IResourceInput
|
IResourceDiffInput
|
IResourceSideBySideInput
):
TPromise
<
IEditorInput
>
;
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录