Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
60e70cbf
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,发现更多精彩内容 >>
提交
60e70cbf
编写于
10月 12, 2016
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ExtensionHost: get storage path from storage service
上级
d85ee136
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
5 addition
and
59 deletion
+5
-59
src/vs/workbench/electron-browser/extensionHost.ts
src/vs/workbench/electron-browser/extensionHost.ts
+5
-59
未找到文件。
src/vs/workbench/electron-browser/extensionHost.ts
浏览文件 @
60e70cbf
...
...
@@ -6,7 +6,6 @@
'
use strict
'
;
import
*
as
fs
from
'
fs
'
;
import
*
as
crypto
from
'
crypto
'
;
import
*
as
nls
from
'
vs/nls
'
;
import
*
as
json
from
'
vs/base/common/json
'
;
import
pkg
from
'
vs/platform/package
'
;
...
...
@@ -32,6 +31,7 @@ import { IExtensionsStorageData, ExtensionsStorageFile } from 'vs/platform/exten
import
{
ExtensionScanner
,
MessagesCollector
}
from
'
vs/workbench/node/extensionPoints
'
;
import
{
IMessagePassingProtocol
}
from
'
vs/base/parts/ipc/common/ipc
'
;
import
Event
,
{
Emitter
}
from
'
vs/base/common/event
'
;
import
{
IStorageService
}
from
'
vs/platform/storage/common/storage
'
;
export
const
EXTENSION_LOG_BROADCAST_CHANNEL
=
'
vscode:extensionLog
'
;
export
const
EXTENSION_ATTACH_BROADCAST_CHANNEL
=
'
vscode:extensionAttach
'
;
...
...
@@ -61,8 +61,6 @@ export class ExtensionHostProcessWorker {
private
isExtensionDevelopmentTestFromCli
:
boolean
;
private
isExtensionDevelopmentDebugging
:
boolean
;
private
workspaceStoragePath
:
string
;
private
_onMessage
=
new
Emitter
<
any
>
();
public
get
onMessage
():
Event
<
any
>
{
return
this
.
_onMessage
.
event
;
...
...
@@ -74,7 +72,8 @@ export class ExtensionHostProcessWorker {
@
IWindowService
private
windowService
:
IWindowService
,
@
ILifecycleService
lifecycleService
:
ILifecycleService
,
@
IInstantiationService
private
instantiationService
:
IInstantiationService
,
@
IEnvironmentService
private
environmentService
:
IEnvironmentService
@
IEnvironmentService
private
environmentService
:
IEnvironmentService
,
@
IStorageService
private
storageService
:
IStorageService
)
{
// handle extension host lifecycle a bit special when we know we are developing an extension that runs inside
this
.
isExtensionDevelopmentHost
=
!!
environmentService
.
extensionDevelopmentPath
;
...
...
@@ -221,7 +220,7 @@ export class ExtensionHostProcessWorker {
contextService
:
{
workspace
:
this
.
contextService
.
getWorkspace
()
},
workspaceStoragePath
:
this
.
getOrCreate
WorkspaceStoragePath
(),
workspaceStoragePath
:
this
.
storageService
.
get
WorkspaceStoragePath
(),
extensions
:
extensionDescriptors
});
this
.
extensionHostProcessHandle
.
send
(
initPayload
);
...
...
@@ -280,7 +279,7 @@ export class ExtensionHostProcessWorker {
}
private
getWorkspaceDisabledExtensions
():
TPromise
<
string
[]
>
{
const
workspaceStoragePath
=
this
.
getOrCreate
WorkspaceStoragePath
();
const
workspaceStoragePath
=
this
.
storageService
.
get
WorkspaceStoragePath
();
if
(
!
workspaceStoragePath
)
{
return
TPromise
.
wrap
([]);
}
...
...
@@ -432,57 +431,4 @@ export class ExtensionHostProcessWorker {
}
}
}
private
getOrCreateWorkspaceStoragePath
():
string
{
const
workspace
=
this
.
contextService
.
getWorkspace
();
if
(
!
workspace
)
{
return
void
0
;
}
if
(
this
.
workspaceStoragePath
)
{
return
this
.
workspaceStoragePath
;
}
function
rmkDir
(
directory
:
string
):
boolean
{
try
{
fs
.
mkdirSync
(
directory
);
return
true
;
}
catch
(
err
)
{
if
(
err
.
code
===
'
ENOENT
'
)
{
if
(
rmkDir
(
paths
.
dirname
(
directory
)))
{
fs
.
mkdirSync
(
directory
);
return
true
;
}
}
else
{
return
fs
.
statSync
(
directory
).
isDirectory
();
}
}
}
if
(
workspace
)
{
const
hash
=
crypto
.
createHash
(
'
md5
'
);
hash
.
update
(
workspace
.
resource
.
fsPath
);
if
(
workspace
.
uid
)
{
hash
.
update
(
workspace
.
uid
.
toString
());
}
this
.
workspaceStoragePath
=
paths
.
join
(
this
.
environmentService
.
appSettingsHome
,
'
workspaceStorage
'
,
hash
.
digest
(
'
hex
'
));
if
(
!
fs
.
existsSync
(
this
.
workspaceStoragePath
))
{
try
{
if
(
rmkDir
(
this
.
workspaceStoragePath
))
{
fs
.
writeFileSync
(
paths
.
join
(
this
.
workspaceStoragePath
,
'
meta.json
'
),
JSON
.
stringify
({
workspacePath
:
workspace
.
resource
.
fsPath
,
uid
:
workspace
.
uid
?
workspace
.
uid
:
null
},
null
,
4
));
}
else
{
this
.
workspaceStoragePath
=
void
0
;
}
}
catch
(
err
)
{
this
.
workspaceStoragePath
=
void
0
;
}
}
}
return
this
.
workspaceStoragePath
;
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录