Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
de63daf3
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,发现更多精彩内容 >>
提交
de63daf3
编写于
12月 10, 2018
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remove TPromise.wrapError
related to #63897
上级
a901902c
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
53 addition
and
56 deletion
+53
-56
src/vs/code/node/cliProcessMain.ts
src/vs/code/node/cliProcessMain.ts
+53
-56
未找到文件。
src/vs/code/node/cliProcessMain.ts
浏览文件 @
de63daf3
...
...
@@ -9,7 +9,6 @@ import pkg from 'vs/platform/node/package';
import
*
as
path
from
'
path
'
;
import
*
as
semver
from
'
semver
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
sequence
}
from
'
vs/base/common/async
'
;
import
{
ServiceCollection
}
from
'
vs/platform/instantiation/common/serviceCollection
'
;
import
{
SyncDescriptor
}
from
'
vs/platform/instantiation/common/descriptors
'
;
...
...
@@ -63,7 +62,7 @@ export function getIdAndVersion(id: string): [string, string] {
}
type
Task
=
{
():
T
Promis
e
<
void
>
};
type
Task
=
{
():
T
henabl
e
<
void
>
};
class
Main
{
...
...
@@ -73,41 +72,40 @@ class Main {
@
IExtensionGalleryService
private
extensionGalleryService
:
IExtensionGalleryService
)
{
}
run
(
argv
:
ParsedArgs
):
TPromise
<
any
>
{
// TODO@joao - make this contributable
let
returnPromise
:
TPromise
<
any
>
;
async
run
(
argv
:
ParsedArgs
):
Promise
<
any
>
{
if
(
argv
[
'
install-source
'
])
{
returnPromise
=
this
.
setInstallSource
(
argv
[
'
install-source
'
]);
await
this
.
setInstallSource
(
argv
[
'
install-source
'
]);
}
else
if
(
argv
[
'
list-extensions
'
])
{
returnPromise
=
this
.
listExtensions
(
argv
[
'
show-versions
'
]);
await
this
.
listExtensions
(
argv
[
'
show-versions
'
]);
}
else
if
(
argv
[
'
install-extension
'
])
{
const
arg
=
argv
[
'
install-extension
'
];
const
args
:
string
[]
=
typeof
arg
===
'
string
'
?
[
arg
]
:
arg
;
returnPromise
=
this
.
installExtension
(
args
,
argv
[
'
force
'
]);
await
this
.
installExtension
(
args
,
argv
[
'
force
'
]);
}
else
if
(
argv
[
'
uninstall-extension
'
])
{
const
arg
=
argv
[
'
uninstall-extension
'
];
const
ids
:
string
[]
=
typeof
arg
===
'
string
'
?
[
arg
]
:
arg
;
returnPromise
=
this
.
uninstallExtension
(
ids
);
await
this
.
uninstallExtension
(
ids
);
}
return
returnPromise
||
TPromise
.
as
(
null
);
}
private
setInstallSource
(
installSource
:
string
):
T
Promise
<
any
>
{
private
setInstallSource
(
installSource
:
string
):
Promise
<
any
>
{
return
writeFile
(
this
.
environmentService
.
installSourcePath
,
installSource
.
slice
(
0
,
30
));
}
private
listExtensions
(
showVersions
:
boolean
):
T
Promise
<
any
>
{
return
this
.
extensionManagementService
.
getInstalled
(
LocalExtensionType
.
User
).
then
(
extensions
=>
{
private
async
listExtensions
(
showVersions
:
boolean
):
Promise
<
any
>
{
const
extensions
=
await
this
.
extensionManagementService
.
getInstalled
(
LocalExtensionType
.
User
);
extensions
.
forEach
(
e
=>
console
.
log
(
getId
(
e
.
manifest
,
showVersions
)));
});
}
private
installExtension
(
extensions
:
string
[],
force
:
boolean
):
T
Promise
<
any
>
{
private
installExtension
(
extensions
:
string
[],
force
:
boolean
):
Promise
<
any
>
{
const
vsixTasks
:
Task
[]
=
extensions
.
filter
(
e
=>
/
\.
vsix$/i
.
test
(
e
))
.
map
(
id
=>
()
=>
{
const
extension
=
path
.
isAbsolute
(
id
)
?
id
:
path
.
join
(
process
.
cwd
(),
id
);
return
this
.
validate
(
extension
,
force
)
.
then
(
valid
=>
{
if
(
valid
)
{
...
...
@@ -118,7 +116,7 @@ class Main {
console
.
log
(
localize
(
'
cancelVsixInstall
'
,
"
Cancelled installing Extension '{0}'.
"
,
getBaseLabel
(
extension
)));
return
null
;
}
else
{
return
TPromise
.
wrapError
(
error
);
return
Promise
.
reject
(
error
);
}
});
}
...
...
@@ -136,16 +134,16 @@ class Main {
if
(
err
.
responseText
)
{
try
{
const
response
=
JSON
.
parse
(
err
.
responseText
);
return
TPromise
.
wrapError
(
response
.
message
);
return
Promise
.
reject
(
response
.
message
);
}
catch
(
e
)
{
// noop
}
}
return
TPromise
.
wrapError
(
err
);
return
Promise
.
reject
(
err
);
})
.
then
(
extension
=>
{
if
(
!
extension
)
{
return
TPromise
.
wrapError
(
new
Error
(
`
${
notFound
(
version
?
`
${
id
}
@
${
version
}
`
:
id
)}
\n
${
useId
}
`
));
return
Promise
.
reject
(
new
Error
(
`
${
notFound
(
version
?
`
${
id
}
@
${
version
}
`
:
id
)}
\n
${
useId
}
`
));
}
const
[
installedExtension
]
=
installed
.
filter
(
e
=>
areSameExtensions
({
id
:
getGalleryExtensionIdFromLocal
(
e
)
},
{
id
}));
...
...
@@ -160,7 +158,7 @@ class Main {
}
}
else
{
console
.
log
(
localize
(
'
alreadyInstalled
'
,
"
Extension '{0}' is already installed.
"
,
version
?
`
${
id
}
@
${
version
}
`
:
id
));
return
TPromise
.
as
(
null
);
return
Promise
.
resolve
(
null
);
}
}
else
{
console
.
log
(
localize
(
'
foundExtension
'
,
"
Found '{0}' in the marketplace.
"
,
id
));
...
...
@@ -173,42 +171,41 @@ class Main {
return
sequence
([...
vsixTasks
,
...
galleryTasks
]);
}
private
validate
(
vsix
:
string
,
force
:
boolean
):
Thenable
<
boolean
>
{
return
getManifest
(
vsix
)
.
then
(
manifest
=>
{
if
(
manifest
)
{
private
async
validate
(
vsix
:
string
,
force
:
boolean
):
Promise
<
boolean
>
{
const
manifest
=
await
getManifest
(
vsix
);
if
(
!
manifest
)
{
throw
new
Error
(
'
Invalid vsix
'
);
}
const
extensionIdentifier
=
{
id
:
getGalleryExtensionId
(
manifest
.
publisher
,
manifest
.
name
)
};
return
this
.
extensionManagementService
.
getInstalled
(
LocalExtensionType
.
User
)
.
then
(
installedExtensions
=>
{
const
installedExtensions
=
await
this
.
extensionManagementService
.
getInstalled
(
LocalExtensionType
.
User
);
const
newer
=
installedExtensions
.
filter
(
local
=>
areSameExtensions
(
extensionIdentifier
,
{
id
:
getGalleryExtensionIdFromLocal
(
local
)
})
&&
semver
.
gt
(
local
.
manifest
.
version
,
manifest
.
version
))[
0
];
if
(
newer
&&
!
force
)
{
console
.
log
(
localize
(
'
forceDowngrade
'
,
"
A newer version of this extension '{0}' v{1} is already installed. Use '--force' option to downgrade to older version.
"
,
newer
.
galleryIdentifier
.
id
,
newer
.
manifest
.
version
,
manifest
.
version
));
return
false
;
}
return
true
;
});
}
else
{
return
Promise
.
reject
(
new
Error
(
'
Invalid vsix
'
));
}
});
}
private
installFromGallery
(
id
:
string
,
extension
:
IGalleryExtension
):
T
Promise
<
void
>
{
private
async
installFromGallery
(
id
:
string
,
extension
:
IGalleryExtension
):
Promise
<
void
>
{
console
.
log
(
localize
(
'
installing
'
,
"
Installing...
"
));
return
this
.
extensionManagementService
.
installFromGallery
(
extension
)
.
then
(
()
=>
console
.
log
(
localize
(
'
successInstall
'
,
"
Extension '{0}' v{1} was successfully installed!
"
,
id
,
extension
.
version
)),
error
=>
{
try
{
await
this
.
extensionManagementService
.
installFromGallery
(
extension
);
console
.
log
(
localize
(
'
successInstall
'
,
"
Extension '{0}' v{1} was successfully installed!
"
,
id
,
extension
.
version
));
}
catch
(
error
)
{
if
(
isPromiseCanceledError
(
error
))
{
console
.
log
(
localize
(
'
cancelVsixInstall
'
,
"
Cancelled installing Extension '{0}'.
"
,
id
));
return
null
;
}
else
{
return
TPromise
.
wrapError
(
error
);
throw
error
;
}
}
});
}
private
uninstallExtension
(
extensions
:
string
[]):
T
Promis
e
<
any
>
{
private
uninstallExtension
(
extensions
:
string
[]):
T
henabl
e
<
any
>
{
async
function
getExtensionId
(
extensionDescription
:
string
):
Promise
<
string
>
{
if
(
!
/
\.
vsix$/i
.
test
(
extensionDescription
))
{
return
extensionDescription
;
...
...
@@ -225,7 +222,7 @@ class Main {
const
[
extension
]
=
installed
.
filter
(
e
=>
areSameExtensions
({
id
:
getGalleryExtensionIdFromLocal
(
e
)
},
{
id
}));
if
(
!
extension
)
{
return
TPromise
.
wrapError
(
new
Error
(
`
${
notInstalled
(
id
)}
\n
${
useId
}
`
));
return
Promise
.
reject
(
new
Error
(
`
${
notInstalled
(
id
)}
\n
${
useId
}
`
));
}
console
.
log
(
localize
(
'
uninstalling
'
,
"
Uninstalling {0}...
"
,
id
));
...
...
@@ -240,7 +237,7 @@ class Main {
const
eventPrefix
=
'
monacoworkbench
'
;
export
function
main
(
argv
:
ParsedArgs
):
T
Promise
<
void
>
{
export
function
main
(
argv
:
ParsedArgs
):
Promise
<
void
>
{
const
services
=
new
ServiceCollection
();
const
environmentService
=
new
EnvironmentService
(
argv
,
process
.
execPath
);
...
...
@@ -259,7 +256,7 @@ export function main(argv: ParsedArgs): TPromise<void> {
const
envService
=
accessor
.
get
(
IEnvironmentService
);
const
stateService
=
accessor
.
get
(
IStateService
);
return
TPromise
.
join
([
envService
.
appSettingsHome
,
envService
.
extensionsPath
].
map
(
p
=>
mkdirp
(
p
))).
then
(()
=>
{
return
Promise
.
all
([
envService
.
appSettingsHome
,
envService
.
extensionsPath
].
map
(
p
=>
mkdirp
(
p
))).
then
(()
=>
{
const
{
appRoot
,
extensionsPath
,
extensionDevelopmentLocationURI
,
isBuilt
,
installSourcePath
}
=
envService
;
const
services
=
new
ServiceCollection
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录