Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
1f123343
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,发现更多精彩内容 >>
提交
1f123343
编写于
11月 02, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
windows ipc: adopt openFile/FolderPicker
上级
21e5a940
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
49 addition
and
64 deletion
+49
-64
src/vs/code/electron-main/windows.ts
src/vs/code/electron-main/windows.ts
+1
-19
src/vs/platform/windows/common/windows.ts
src/vs/platform/windows/common/windows.ts
+2
-2
src/vs/platform/windows/common/windowsIpc.ts
src/vs/platform/windows/common/windowsIpc.ts
+4
-4
src/vs/platform/windows/electron-browser/windowService.ts
src/vs/platform/windows/electron-browser/windowService.ts
+2
-2
src/vs/platform/windows/electron-main/windowsService.ts
src/vs/platform/windows/electron-main/windowsService.ts
+2
-2
src/vs/workbench/parts/files/electron-browser/electronFileActions.ts
...bench/parts/files/electron-browser/electronFileActions.ts
+38
-35
未找到文件。
src/vs/code/electron-main/windows.ts
浏览文件 @
1f123343
...
...
@@ -105,7 +105,7 @@ export interface IWindowsMainService {
open
(
openConfig
:
IOpenConfiguration
):
VSCodeWindow
[];
openPluginDevelopmentHostWindow
(
openConfig
:
IOpenConfiguration
):
void
;
openFileFolderPicker
(
forceNewWindow
?:
boolean
):
void
;
openFilePicker
(
forceNewWindow
?:
boolean
):
void
;
openFilePicker
(
forceNewWindow
?:
boolean
,
path
?:
string
):
void
;
openFolderPicker
(
forceNewWindow
?:
boolean
):
void
;
openAccessibilityOptions
():
void
;
focusLastActive
(
cli
:
ParsedArgs
):
VSCodeWindow
;
...
...
@@ -239,24 +239,6 @@ export class WindowsManager implements IWindowsMainService, IWindowEventService
}
});
ipc
.
on
(
'
vscode:openFilePicker
'
,
(
event
,
forceNewWindow
?:
boolean
,
path
?:
string
)
=>
{
this
.
logService
.
log
(
'
IPC#vscode-openFilePicker
'
);
this
.
openFilePicker
(
forceNewWindow
,
path
);
});
ipc
.
on
(
'
vscode:openFolderPicker
'
,
(
event
,
forceNewWindow
?:
boolean
)
=>
{
this
.
logService
.
log
(
'
IPC#vscode-openFolderPicker
'
);
this
.
openFolderPicker
(
forceNewWindow
);
});
ipc
.
on
(
'
vscode:openFileFolderPicker
'
,
(
event
,
forceNewWindow
?:
boolean
)
=>
{
this
.
logService
.
log
(
'
IPC#vscode-openFileFolderPicker
'
);
this
.
openFileFolderPicker
(
forceNewWindow
);
});
ipc
.
on
(
'
vscode:closeFolder
'
,
(
event
,
windowId
:
number
)
=>
{
this
.
logService
.
log
(
'
IPC#vscode-closeFolder
'
);
...
...
src/vs/platform/windows/common/windows.ts
浏览文件 @
1f123343
...
...
@@ -15,7 +15,7 @@ export interface IWindowsService {
_serviceBrand
:
any
;
openFileFolderPicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
):
TPromise
<
void
>
;
openFilePicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
):
TPromise
<
void
>
;
openFilePicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
,
path
?:
string
):
TPromise
<
void
>
;
openFolderPicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
):
TPromise
<
void
>
;
}
...
...
@@ -26,6 +26,6 @@ export interface IWindowService {
_serviceBrand
:
any
;
openFileFolderPicker
(
forceNewWindow
?:
boolean
):
TPromise
<
void
>
;
openFilePicker
(
forceNewWindow
?:
boolean
):
TPromise
<
void
>
;
openFilePicker
(
forceNewWindow
?:
boolean
,
path
?:
string
):
TPromise
<
void
>
;
openFolderPicker
(
forceNewWindow
?:
boolean
):
TPromise
<
void
>
;
}
\ No newline at end of file
src/vs/platform/windows/common/windowsIpc.ts
浏览文件 @
1f123343
...
...
@@ -11,7 +11,7 @@ import { IWindowsService } from './windows';
export
interface
IWindowsChannel
extends
IChannel
{
call
(
command
:
'
openFileFolderPicker
'
,
args
:
[
number
,
boolean
]):
TPromise
<
void
>
;
call
(
command
:
'
openFilePicker
'
,
args
:
[
number
,
boolean
]):
TPromise
<
void
>
;
call
(
command
:
'
openFilePicker
'
,
args
:
[
number
,
boolean
,
string
]):
TPromise
<
void
>
;
call
(
command
:
'
openFolderPicker
'
,
args
:
[
number
,
boolean
]):
TPromise
<
void
>
;
call
(
command
:
string
,
arg
?:
any
):
TPromise
<
any
>
;
}
...
...
@@ -23,7 +23,7 @@ export class WindowsChannel implements IWindowsChannel {
call
(
command
:
string
,
arg
?:
any
):
TPromise
<
any
>
{
switch
(
command
)
{
case
'
openFileFolderPicker
'
:
return
this
.
service
.
openFileFolderPicker
(
arg
[
0
],
arg
[
1
]);
case
'
openFilePicker
'
:
return
this
.
service
.
openFilePicker
(
arg
[
0
],
arg
[
1
]);
case
'
openFilePicker
'
:
return
this
.
service
.
openFilePicker
(
arg
[
0
],
arg
[
1
]
,
arg
[
2
]
);
case
'
openFolderPicker
'
:
return
this
.
service
.
openFolderPicker
(
arg
[
0
],
arg
[
1
]);
}
}
...
...
@@ -39,8 +39,8 @@ export class WindowsChannelClient implements IWindowsService {
return
this
.
channel
.
call
(
'
openFileFolderPicker
'
,
[
windowId
,
forceNewWindow
]);
}
openFilePicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
):
TPromise
<
void
>
{
return
this
.
channel
.
call
(
'
openFilePicker
'
,
[
windowId
,
forceNewWindow
]);
openFilePicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
,
path
?:
string
):
TPromise
<
void
>
{
return
this
.
channel
.
call
(
'
openFilePicker
'
,
[
windowId
,
forceNewWindow
,
path
]);
}
openFolderPicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
):
TPromise
<
void
>
{
...
...
src/vs/platform/windows/electron-browser/windowService.ts
浏览文件 @
1f123343
...
...
@@ -21,8 +21,8 @@ export class WindowService implements IWindowService {
return
this
.
windowsService
.
openFileFolderPicker
(
this
.
windowId
,
forceNewWindow
);
}
openFilePicker
(
forceNewWindow
?:
boolean
):
TPromise
<
void
>
{
return
this
.
windowsService
.
openFilePicker
(
this
.
windowId
,
forceNewWindow
);
openFilePicker
(
forceNewWindow
?:
boolean
,
path
?:
string
):
TPromise
<
void
>
{
return
this
.
windowsService
.
openFilePicker
(
this
.
windowId
,
forceNewWindow
,
path
);
}
openFolderPicker
(
forceNewWindow
?:
boolean
):
TPromise
<
void
>
{
...
...
src/vs/platform/windows/electron-main/windowsService.ts
浏览文件 @
1f123343
...
...
@@ -24,8 +24,8 @@ export class WindowsService implements IWindowsService {
return
TPromise
.
as
(
null
);
}
openFilePicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
):
TPromise
<
void
>
{
this
.
windowsMainService
.
openFilePicker
(
forceNewWindow
);
openFilePicker
(
windowId
:
number
,
forceNewWindow
?:
boolean
,
path
?:
string
):
TPromise
<
void
>
{
this
.
windowsMainService
.
openFilePicker
(
forceNewWindow
,
path
);
return
TPromise
.
as
(
null
);
}
...
...
src/vs/workbench/parts/files/electron-browser/electronFileActions.ts
浏览文件 @
1f123343
...
...
@@ -18,6 +18,7 @@ import { asFileEditorInput } from 'vs/workbench/common/editor';
import
{
IMessageService
}
from
'
vs/platform/message/common/message
'
;
import
{
IEditorGroupService
}
from
'
vs/workbench/services/group/common/groupService
'
;
import
{
IWindowIPCService
}
from
'
vs/workbench/services/window/electron-browser/windowService
'
;
import
{
IWindowService
}
from
'
vs/platform/windows/common/windows
'
;
import
{
ipcRenderer
as
ipc
,
clipboard
}
from
'
electron
'
;
...
...
@@ -116,63 +117,65 @@ export class GlobalCopyPathAction extends Action {
}
}
export
class
BaseOpenAction
extends
Action
{
private
ipcMsg
:
string
;
constructor
(
id
:
string
,
label
:
string
,
ipcMsg
:
string
)
{
super
(
id
,
label
);
this
.
ipcMsg
=
ipcMsg
;
}
public
run
():
TPromise
<
any
>
{
ipc
.
send
(
this
.
ipcMsg
);
// Handle in browser process
return
TPromise
.
as
(
true
);
}
}
export
class
OpenFileAction
extends
Action
{
public
static
ID
=
'
workbench.action.files.openFile
'
;
public
static
LABEL
=
nls
.
localize
(
'
openFile
'
,
"
Open File...
"
);
static
ID
=
'
workbench.action.files.openFile
'
;
static
LABEL
=
nls
.
localize
(
'
openFile
'
,
"
Open File...
"
);
constructor
(
id
:
string
,
label
:
string
,
@
IWorkbenchEditorService
private
editorService
:
IWorkbenchEditorService
)
{
constructor
(
id
:
string
,
label
:
string
,
@
IWorkbenchEditorService
private
editorService
:
IWorkbenchEditorService
,
@
IWindowService
private
windowService
:
IWindowService
)
{
super
(
id
,
label
);
}
public
run
():
TPromise
<
any
>
{
run
():
TPromise
<
any
>
{
const
fileInput
=
asFileEditorInput
(
this
.
editorService
.
getActiveEditorInput
(),
true
);
// Handle in browser process
if
(
fileInput
)
{
ipc
.
send
(
'
vscode:openFilePicker
'
,
false
,
paths
.
dirname
(
fileInput
.
getResource
().
fsPath
));
}
else
{
ipc
.
send
(
'
vscode:openFilePicker
'
);
return
this
.
windowService
.
openFilePicker
(
false
,
paths
.
dirname
(
fileInput
.
getResource
().
fsPath
));
}
return
TPromise
.
as
(
true
);
return
this
.
windowService
.
openFilePicker
(
);
}
}
export
class
OpenFolderAction
extends
BaseOpen
Action
{
export
class
OpenFolderAction
extends
Action
{
public
static
ID
=
'
workbench.action.files.openFolder
'
;
public
static
LABEL
=
nls
.
localize
(
'
openFolder
'
,
"
Open Folder...
"
);
static
ID
=
'
workbench.action.files.openFolder
'
;
static
LABEL
=
nls
.
localize
(
'
openFolder
'
,
"
Open Folder...
"
);
constructor
(
id
:
string
,
label
:
string
)
{
super
(
id
,
label
,
'
vscode:openFolderPicker
'
);
constructor
(
id
:
string
,
label
:
string
,
@
IWindowService
private
windowService
:
IWindowService
)
{
super
(
id
,
label
);
}
run
():
TPromise
<
any
>
{
return
this
.
windowService
.
openFolderPicker
();
}
}
export
class
OpenFileFolderAction
extends
BaseOpenAction
{
export
class
OpenFileFolderAction
extends
Action
{
static
ID
=
'
workbench.action.files.openFileFolder
'
;
static
LABEL
=
nls
.
localize
(
'
openFileFolder
'
,
"
Open...
"
);
public
static
ID
=
'
workbench.action.files.openFileFolder
'
;
public
static
LABEL
=
nls
.
localize
(
'
openFileFolder
'
,
"
Open...
"
);
constructor
(
id
:
string
,
label
:
string
,
@
IWindowService
private
windowService
:
IWindowService
)
{
super
(
id
,
label
);
}
constructor
(
id
:
string
,
label
:
string
)
{
super
(
id
,
label
,
'
vscode:openFileFolderPicker
'
);
run
():
TPromise
<
any
>
{
return
this
.
windowService
.
openFileFolderPicker
(
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录