Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
e51ef85b
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,发现更多精彩内容 >>
提交
e51ef85b
编写于
11月 15, 2019
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert "allow $openUri to accept a URI and string, adopt consumer but keep the API as is"
This reverts commit
544b0abf
.
上级
544b0abf
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
21 addition
and
29 deletion
+21
-29
src/vs/workbench/api/browser/mainThreadWindow.ts
src/vs/workbench/api/browser/mainThreadWindow.ts
+3
-21
src/vs/workbench/api/common/extHost.protocol.ts
src/vs/workbench/api/common/extHost.protocol.ts
+1
-1
src/vs/workbench/api/common/extHostRequireInterceptor.ts
src/vs/workbench/api/common/extHostRequireInterceptor.ts
+5
-7
src/vs/workbench/api/common/extHostWindow.ts
src/vs/workbench/api/common/extHostWindow.ts
+12
-0
未找到文件。
src/vs/workbench/api/browser/mainThreadWindow.ts
浏览文件 @
e51ef85b
...
...
@@ -10,8 +10,6 @@ import { IOpenerService } from 'vs/platform/opener/common/opener';
import
{
extHostNamedCustomer
}
from
'
vs/workbench/api/common/extHostCustomers
'
;
import
{
ExtHostContext
,
ExtHostWindowShape
,
IExtHostContext
,
IOpenUriOptions
,
MainContext
,
MainThreadWindowShape
}
from
'
../common/extHost.protocol
'
;
import
{
IHostService
}
from
'
vs/workbench/services/host/browser/host
'
;
import
{
Schemas
}
from
'
vs/base/common/network
'
;
import
{
isFalsyOrWhitespace
}
from
'
vs/base/common/strings
'
;
@
extHostNamedCustomer
(
MainContext
.
MainThreadWindow
)
export
class
MainThreadWindow
implements
MainThreadWindowShape
{
...
...
@@ -44,25 +42,9 @@ export class MainThreadWindow implements MainThreadWindowShape {
return
Promise
.
resolve
(
this
.
hostService
.
hasFocus
);
}
async
$openUri
(
stringOrComp
:
UriComponents
|
string
,
options
:
IOpenUriOptions
):
Promise
<
boolean
>
{
const
uri
=
typeof
stringOrComp
===
'
string
'
?
URI
.
parse
(
stringOrComp
)
:
URI
.
revive
(
stringOrComp
);
// validate
if
(
isFalsyOrWhitespace
(
uri
.
scheme
))
{
return
Promise
.
reject
(
'
Invalid scheme - cannot be empty
'
);
}
else
if
(
uri
.
scheme
===
Schemas
.
command
)
{
return
Promise
.
reject
(
`Invalid scheme '
${
uri
.
scheme
}
'`
);
}
// open AS-IS, keep string alive
if
(
typeof
stringOrComp
===
'
string
'
)
{
return
this
.
openerService
.
open
(
stringOrComp
,
{
openExternal
:
true
,
allowTunneling
:
options
.
allowTunneling
});
}
else
{
return
this
.
openerService
.
open
(
uri
,
{
openExternal
:
true
,
allowTunneling
:
options
.
allowTunneling
});
}
async
$openUri
(
uriComponents
:
UriComponents
,
options
:
IOpenUriOptions
):
Promise
<
boolean
>
{
const
uri
=
URI
.
from
(
uriComponents
);
return
this
.
openerService
.
open
(
uri
,
{
openExternal
:
true
,
allowTunneling
:
options
.
allowTunneling
});
}
async
$asExternalUri
(
uriComponents
:
UriComponents
,
options
:
IOpenUriOptions
):
Promise
<
UriComponents
>
{
...
...
src/vs/workbench/api/common/extHost.protocol.ts
浏览文件 @
e51ef85b
...
...
@@ -759,7 +759,7 @@ export interface IOpenUriOptions {
export
interface
MainThreadWindowShape
extends
IDisposable
{
$getWindowVisibility
():
Promise
<
boolean
>
;
$openUri
(
uri
:
UriComponents
|
string
,
options
:
IOpenUriOptions
):
Promise
<
boolean
>
;
$openUri
(
uri
:
UriComponents
,
options
:
IOpenUriOptions
):
Promise
<
boolean
>
;
$asExternalUri
(
uri
:
UriComponents
,
options
:
IOpenUriOptions
):
Promise
<
UriComponents
>
;
}
...
...
src/vs/workbench/api/common/extHostRequireInterceptor.ts
浏览文件 @
e51ef85b
...
...
@@ -19,8 +19,6 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
import
{
IExtHostExtensionService
}
from
'
vs/workbench/api/common/extHostExtensionService
'
;
import
{
platform
}
from
'
vs/base/common/process
'
;
import
{
ILogService
}
from
'
vs/platform/log/common/log
'
;
import
{
matchesScheme
}
from
'
vs/platform/opener/common/opener
'
;
import
{
Schemas
}
from
'
vs/base/common/network
'
;
interface
LoadFunction
{
...
...
@@ -241,15 +239,15 @@ class OpenNodeModuleFactory implements INodeModuleFactory {
const
mainThreadWindow
=
rpcService
.
getProxy
(
MainContext
.
MainThreadWindow
);
this
.
_impl
=
(
target
,
options
)
=>
{
const
uri
:
URI
=
URI
.
parse
(
target
);
// If we have options use the original method.
if
(
options
)
{
return
this
.
callOriginal
(
target
,
options
);
}
if
(
matchesScheme
(
target
,
Schemas
.
http
)
||
matchesScheme
(
target
,
Schemas
.
https
))
{
return
mainThreadWindow
.
$openUri
(
target
,
{
allowTunneling
:
true
});
}
else
if
(
matchesScheme
(
target
,
Schemas
.
mailto
)
||
matchesScheme
(
target
,
this
.
_appUriScheme
))
{
return
mainThreadWindow
.
$openUri
(
target
,
{});
if
(
uri
.
scheme
===
'
http
'
||
uri
.
scheme
===
'
https
'
)
{
return
mainThreadWindow
.
$openUri
(
uri
,
{
allowTunneling
:
true
});
}
else
if
(
uri
.
scheme
===
'
mailto
'
||
uri
.
scheme
===
this
.
_appUriScheme
)
{
return
mainThreadWindow
.
$openUri
(
uri
,
{});
}
return
this
.
callOriginal
(
target
,
options
);
};
...
...
src/vs/workbench/api/common/extHostWindow.ts
浏览文件 @
e51ef85b
...
...
@@ -39,6 +39,18 @@ export class ExtHostWindow implements ExtHostWindowShape {
}
openUri
(
stringOrUri
:
string
|
URI
,
options
:
IOpenUriOptions
):
Promise
<
boolean
>
{
if
(
typeof
stringOrUri
===
'
string
'
)
{
try
{
stringOrUri
=
URI
.
parse
(
stringOrUri
);
}
catch
(
e
)
{
return
Promise
.
reject
(
`Invalid uri - '
${
stringOrUri
}
'`
);
}
}
if
(
isFalsyOrWhitespace
(
stringOrUri
.
scheme
))
{
return
Promise
.
reject
(
'
Invalid scheme - cannot be empty
'
);
}
else
if
(
stringOrUri
.
scheme
===
Schemas
.
command
)
{
return
Promise
.
reject
(
`Invalid scheme '
${
stringOrUri
.
scheme
}
'`
);
}
return
this
.
_proxy
.
$openUri
(
stringOrUri
,
options
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录