Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
994ffd68
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,发现更多精彩内容 >>
提交
994ffd68
编写于
11月 13, 2017
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Startup: delay spawning file watcher until workbench is running (fixes #38230)
上级
27e9d4c1
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
37 addition
and
28 deletion
+37
-28
src/vs/workbench/services/backup/test/node/backupFileService.test.ts
...bench/services/backup/test/node/backupFileService.test.ts
+2
-2
src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts
...nfiguration/test/node/configurationEditingService.test.ts
+2
-2
src/vs/workbench/services/configuration/test/node/configurationService.test.ts
...ices/configuration/test/node/configurationService.test.ts
+4
-4
src/vs/workbench/services/files/electron-browser/fileService.ts
.../workbench/services/files/electron-browser/fileService.ts
+1
-1
src/vs/workbench/services/files/node/fileService.ts
src/vs/workbench/services/files/node/fileService.ts
+20
-12
src/vs/workbench/services/files/test/node/fileService.test.ts
...vs/workbench/services/files/test/node/fileService.test.ts
+4
-4
src/vs/workbench/services/keybinding/test/node/keybindingEditing.test.ts
...h/services/keybinding/test/node/keybindingEditing.test.ts
+3
-2
src/vs/workbench/test/workbenchTestServices.ts
src/vs/workbench/test/workbenchTestServices.ts
+1
-1
未找到文件。
src/vs/workbench/services/backup/test/node/backupFileService.test.ts
浏览文件 @
994ffd68
...
...
@@ -17,7 +17,7 @@ import Uri from 'vs/base/common/uri';
import
{
BackupFileService
,
BackupFilesModel
}
from
'
vs/workbench/services/backup/node/backupFileService
'
;
import
{
FileService
}
from
'
vs/workbench/services/files/node/fileService
'
;
import
{
RawTextSource
}
from
'
vs/editor/common/model/textSource
'
;
import
{
TestContextService
,
TestTextResourceConfigurationService
,
getRandomTestPath
}
from
'
vs/workbench/test/workbenchTestServices
'
;
import
{
TestContextService
,
TestTextResourceConfigurationService
,
getRandomTestPath
,
TestLifecycleService
}
from
'
vs/workbench/test/workbenchTestServices
'
;
import
{
Workspace
,
toWorkspaceFolders
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
TestConfigurationService
}
from
'
vs/platform/configuration/test/common/testConfigurationService
'
;
...
...
@@ -36,7 +36,7 @@ const untitledBackupPath = path.join(workspaceBackupPath, 'untitled', crypto.cre
class
TestBackupFileService
extends
BackupFileService
{
constructor
(
workspace
:
Uri
,
backupHome
:
string
,
workspacesJsonPath
:
string
)
{
const
fileService
=
new
FileService
(
new
TestContextService
(
new
Workspace
(
workspace
.
fsPath
,
workspace
.
fsPath
,
toWorkspaceFolders
([{
path
:
workspace
.
fsPath
}]))),
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
{
disableWatcher
:
true
});
const
fileService
=
new
FileService
(
new
TestContextService
(
new
Workspace
(
workspace
.
fsPath
,
workspace
.
fsPath
,
toWorkspaceFolders
([{
path
:
workspace
.
fsPath
}]))),
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
new
TestLifecycleService
(),
{
disableWatcher
:
true
});
super
(
workspaceBackupPath
,
fileService
);
}
...
...
src/vs/workbench/services/configuration/test/node/configurationEditingService.test.ts
浏览文件 @
994ffd68
...
...
@@ -18,7 +18,7 @@ import { parseArgs } from 'vs/platform/environment/node/argv';
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
EnvironmentService
}
from
'
vs/platform/environment/node/environmentService
'
;
import
extfs
=
require
(
'
vs/base/node/extfs
'
);
import
{
TestTextFileService
,
TestTextResourceConfigurationService
,
workbenchInstantiationService
}
from
'
vs/workbench/test/workbenchTestServices
'
;
import
{
TestTextFileService
,
TestTextResourceConfigurationService
,
workbenchInstantiationService
,
TestLifecycleService
}
from
'
vs/workbench/test/workbenchTestServices
'
;
import
uuid
=
require
(
'
vs/base/common/uuid
'
);
import
{
IConfigurationRegistry
,
Extensions
as
ConfigurationExtensions
}
from
'
vs/platform/configuration/common/configurationRegistry
'
;
import
{
WorkspaceService
}
from
'
vs/workbench/services/configuration/node/configurationService
'
;
...
...
@@ -108,7 +108,7 @@ suite('ConfigurationEditingService', () => {
instantiationService
.
stub
(
IWorkspaceContextService
,
workspaceService
);
return
workspaceService
.
initialize
(
noWorkspace
?
{}
as
IWindowConfiguration
:
workspaceDir
).
then
(()
=>
{
instantiationService
.
stub
(
IConfigurationService
,
workspaceService
);
instantiationService
.
stub
(
IFileService
,
new
FileService
(
workspaceService
,
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
IFileService
,
new
FileService
(
workspaceService
,
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
new
TestLifecycleService
(),
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
ITextFileService
,
instantiationService
.
createInstance
(
TestTextFileService
));
instantiationService
.
stub
(
ITextModelService
,
<
ITextModelService
>
instantiationService
.
createInstance
(
TextModelResolverService
));
testObject
=
instantiationService
.
createInstance
(
ConfigurationEditingService
);
...
...
src/vs/workbench/services/configuration/test/node/configurationService.test.ts
浏览文件 @
994ffd68
...
...
@@ -24,7 +24,7 @@ import { ConfigurationEditingErrorCode } from 'vs/workbench/services/configurati
import
{
FileChangeType
,
FileChangesEvent
,
IFileService
}
from
'
vs/platform/files/common/files
'
;
import
{
IWorkspaceContextService
,
WorkbenchState
,
IWorkspaceFoldersChangeEvent
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
ConfigurationTarget
,
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
workbenchInstantiationService
,
TestTextResourceConfigurationService
,
TestTextFileService
}
from
'
vs/workbench/test/workbenchTestServices
'
;
import
{
workbenchInstantiationService
,
TestTextResourceConfigurationService
,
TestTextFileService
,
TestLifecycleService
}
from
'
vs/workbench/test/workbenchTestServices
'
;
import
{
FileService
}
from
'
vs/workbench/services/files/node/fileService
'
;
import
{
TestInstantiationService
}
from
'
vs/platform/instantiation/test/common/instantiationServiceMock
'
;
import
{
ITextFileService
}
from
'
vs/workbench/services/textfile/common/textfiles
'
;
...
...
@@ -168,7 +168,7 @@ suite('WorkspaceContextService - Workspace', () => {
return
workspaceService
.
initialize
({
id
:
configPath
,
configPath
}).
then
(()
=>
{
instantiationService
.
stub
(
IFileService
,
new
FileService
(
<
IWorkspaceContextService
>
workspaceService
,
new
TestTextResourceConfigurationService
(),
workspaceService
,
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
IFileService
,
new
FileService
(
<
IWorkspaceContextService
>
workspaceService
,
new
TestTextResourceConfigurationService
(),
workspaceService
,
new
TestLifecycleService
(),
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
ITextFileService
,
instantiationService
.
createInstance
(
TestTextFileService
));
instantiationService
.
stub
(
ITextModelService
,
<
ITextModelService
>
instantiationService
.
createInstance
(
TextModelResolverService
));
workspaceService
.
setInstantiationService
(
instantiationService
);
...
...
@@ -334,7 +334,7 @@ suite('WorkspaceConfigurationService - Folder', () => {
instantiationService
.
stub
(
IEnvironmentService
,
environmentService
);
return
workspaceService
.
initialize
(
folderDir
).
then
(()
=>
{
instantiationService
.
stub
(
IFileService
,
new
FileService
(
<
IWorkspaceContextService
>
workspaceService
,
new
TestTextResourceConfigurationService
(),
workspaceService
,
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
IFileService
,
new
FileService
(
<
IWorkspaceContextService
>
workspaceService
,
new
TestTextResourceConfigurationService
(),
workspaceService
,
new
TestLifecycleService
(),
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
ITextFileService
,
instantiationService
.
createInstance
(
TestTextFileService
));
instantiationService
.
stub
(
ITextModelService
,
<
ITextModelService
>
instantiationService
.
createInstance
(
TextModelResolverService
));
workspaceService
.
setInstantiationService
(
instantiationService
);
...
...
@@ -659,7 +659,7 @@ suite('WorkspaceConfigurationService - Multiroot', () => {
return
workspaceService
.
initialize
({
id
:
configPath
,
configPath
}).
then
(()
=>
{
instantiationService
.
stub
(
IFileService
,
new
FileService
(
<
IWorkspaceContextService
>
workspaceService
,
new
TestTextResourceConfigurationService
(),
workspaceService
,
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
IFileService
,
new
FileService
(
<
IWorkspaceContextService
>
workspaceService
,
new
TestTextResourceConfigurationService
(),
workspaceService
,
new
TestLifecycleService
(),
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
ITextFileService
,
instantiationService
.
createInstance
(
TestTextFileService
));
instantiationService
.
stub
(
ITextModelService
,
<
ITextModelService
>
instantiationService
.
createInstance
(
TextModelResolverService
));
workspaceService
.
setInstantiationService
(
instantiationService
);
...
...
src/vs/workbench/services/files/electron-browser/fileService.ts
浏览文件 @
994ffd68
...
...
@@ -74,7 +74,7 @@ export class FileService implements IFileService {
};
// create service
this
.
raw
=
new
NodeFileService
(
contextService
,
textResourceConfigurationService
,
configurationService
,
fileServiceConfig
);
this
.
raw
=
new
NodeFileService
(
contextService
,
textResourceConfigurationService
,
configurationService
,
lifecycleService
,
fileServiceConfig
);
// Listeners
this
.
registerListeners
();
...
...
src/vs/workbench/services/files/node/fileService.ts
浏览文件 @
994ffd68
...
...
@@ -38,6 +38,7 @@ import Event, { Emitter } from 'vs/base/common/event';
import
{
FileWatcher
as
NsfwWatcherService
}
from
'
vs/workbench/services/files/node/watcher/nsfw/watcherService
'
;
import
{
ITextResourceConfigurationService
}
from
'
vs/editor/common/services/resourceConfiguration
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
ILifecycleService
,
LifecyclePhase
}
from
'
vs/platform/lifecycle/common/lifecycle
'
;
export
interface
IEncodingOverride
{
resource
:
uri
;
...
...
@@ -89,12 +90,13 @@ export class FileService implements IFileService {
private
fileChangesWatchDelayer
:
ThrottledDelayer
<
void
>
;
private
undeliveredRawFileChangesEvents
:
IRawFileChange
[];
private
activeWorkspaceChangeWatcher
:
IDisposable
;
private
activeWorkspace
File
ChangeWatcher
:
IDisposable
;
constructor
(
private
contextService
:
IWorkspaceContextService
,
private
textResourceConfigurationService
:
ITextResourceConfigurationService
,
private
configurationService
:
IConfigurationService
,
private
lifecycleService
:
ILifecycleService
,
options
:
IFileServiceOptions
)
{
this
.
toDispose
=
[];
...
...
@@ -115,13 +117,19 @@ export class FileService implements IFileService {
this
.
fileChangesWatchDelayer
=
new
ThrottledDelayer
<
void
>
(
FileService
.
FS_EVENT_DELAY
);
this
.
undeliveredRawFileChangesEvents
=
[];
this
.
setupWorkspaceWatching
();
lifecycleService
.
when
(
LifecyclePhase
.
Running
).
then
(()
=>
{
this
.
setupFileWatching
();
// wait until we are fully running before starting file watchers
});
this
.
registerListeners
();
}
private
registerListeners
():
void
{
this
.
toDispose
.
push
(
this
.
contextService
.
onDidChangeWorkbenchState
(()
=>
this
.
setupWorkspaceWatching
()));
this
.
toDispose
.
push
(
this
.
contextService
.
onDidChangeWorkbenchState
(()
=>
{
if
(
this
.
lifecycleService
.
phase
===
LifecyclePhase
.
Running
)
{
this
.
setupFileWatching
();
}
}));
}
public
get
onFileChanges
():
Event
<
FileChangesEvent
>
{
...
...
@@ -138,11 +146,11 @@ export class FileService implements IFileService {
}
}
private
setup
Workspac
eWatching
():
void
{
private
setup
Fil
eWatching
():
void
{
// dispose old if any
if
(
this
.
activeWorkspaceChangeWatcher
)
{
this
.
activeWorkspaceChangeWatcher
.
dispose
();
if
(
this
.
activeWorkspace
File
ChangeWatcher
)
{
this
.
activeWorkspace
File
ChangeWatcher
.
dispose
();
}
// Return if not aplicable
...
...
@@ -153,15 +161,15 @@ export class FileService implements IFileService {
// new watcher: use it if setting tells us so or we run in multi-root environment
if
(
this
.
options
.
useExperimentalFileWatcher
||
workbenchState
===
WorkbenchState
.
WORKSPACE
)
{
this
.
activeWorkspaceChangeWatcher
=
toDisposable
(
this
.
setupNsfwWorkspaceWatching
().
startWatching
());
this
.
activeWorkspace
File
ChangeWatcher
=
toDisposable
(
this
.
setupNsfwWorkspaceWatching
().
startWatching
());
}
// old watcher
else
{
if
(
isWindows
)
{
this
.
activeWorkspaceChangeWatcher
=
toDisposable
(
this
.
setupWin32WorkspaceWatching
().
startWatching
());
this
.
activeWorkspace
File
ChangeWatcher
=
toDisposable
(
this
.
setupWin32WorkspaceWatching
().
startWatching
());
}
else
{
this
.
activeWorkspaceChangeWatcher
=
toDisposable
(
this
.
setupUnixWorkspaceWatching
().
startWatching
());
this
.
activeWorkspace
File
ChangeWatcher
=
toDisposable
(
this
.
setupUnixWorkspaceWatching
().
startWatching
());
}
}
}
...
...
@@ -814,9 +822,9 @@ export class FileService implements IFileService {
public
dispose
():
void
{
this
.
toDispose
=
dispose
(
this
.
toDispose
);
if
(
this
.
activeWorkspaceChangeWatcher
)
{
this
.
activeWorkspaceChangeWatcher
.
dispose
();
this
.
activeWorkspaceChangeWatcher
=
null
;
if
(
this
.
activeWorkspace
File
ChangeWatcher
)
{
this
.
activeWorkspace
File
ChangeWatcher
.
dispose
();
this
.
activeWorkspace
File
ChangeWatcher
=
null
;
}
this
.
activeFileChangesWatchers
.
forEach
(
watcher
=>
watcher
.
close
());
...
...
src/vs/workbench/services/files/test/node/fileService.test.ts
浏览文件 @
994ffd68
...
...
@@ -19,7 +19,7 @@ import extfs = require('vs/base/node/extfs');
import
encodingLib
=
require
(
'
vs/base/node/encoding
'
);
import
utils
=
require
(
'
vs/workbench/services/files/test/node/utils
'
);
import
{
onError
}
from
'
vs/base/test/common/utils
'
;
import
{
TestContextService
,
TestTextResourceConfigurationService
,
getRandomTestPath
}
from
'
vs/workbench/test/workbenchTestServices
'
;
import
{
TestContextService
,
TestTextResourceConfigurationService
,
getRandomTestPath
,
TestLifecycleService
}
from
'
vs/workbench/test/workbenchTestServices
'
;
import
{
Workspace
,
toWorkspaceFolders
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
TestConfigurationService
}
from
'
vs/platform/configuration/test/common/testConfigurationService
'
;
...
...
@@ -38,7 +38,7 @@ suite('FileService', () => {
return
onError
(
error
,
done
);
}
service
=
new
FileService
(
new
TestContextService
(
new
Workspace
(
testDir
,
testDir
,
toWorkspaceFolders
([{
path
:
testDir
}]))),
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
{
disableWatcher
:
true
});
service
=
new
FileService
(
new
TestContextService
(
new
Workspace
(
testDir
,
testDir
,
toWorkspaceFolders
([{
path
:
testDir
}]))),
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
new
TestLifecycleService
(),
{
disableWatcher
:
true
});
done
();
});
});
...
...
@@ -784,7 +784,7 @@ suite('FileService', () => {
const
textResourceConfigurationService
=
new
TestTextResourceConfigurationService
(
configurationService
);
const
_service
=
new
FileService
(
new
TestContextService
(
new
Workspace
(
_testDir
,
_testDir
,
toWorkspaceFolders
([{
path
:
_testDir
}]))),
textResourceConfigurationService
,
configurationService
,
{
const
_service
=
new
FileService
(
new
TestContextService
(
new
Workspace
(
_testDir
,
_testDir
,
toWorkspaceFolders
([{
path
:
_testDir
}]))),
textResourceConfigurationService
,
configurationService
,
new
TestLifecycleService
(),
{
encodingOverride
,
disableWatcher
:
true
});
...
...
@@ -811,7 +811,7 @@ suite('FileService', () => {
const
_sourceDir
=
require
.
toUrl
(
'
./fixtures/service
'
);
const
resource
=
uri
.
file
(
path
.
join
(
testDir
,
'
index.html
'
));
const
_service
=
new
FileService
(
new
TestContextService
(
new
Workspace
(
_testDir
,
_testDir
,
toWorkspaceFolders
([{
path
:
_testDir
}]))),
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
{
const
_service
=
new
FileService
(
new
TestContextService
(
new
Workspace
(
_testDir
,
_testDir
,
toWorkspaceFolders
([{
path
:
_testDir
}]))),
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
new
TestLifecycleService
(),
{
disableWatcher
:
true
});
...
...
src/vs/workbench/services/keybinding/test/node/keybindingEditing.test.ts
浏览文件 @
994ffd68
...
...
@@ -70,13 +70,14 @@ suite('Keybindings Editing', () => {
instantiationService
.
stub
(
IConfigurationService
,
'
onDidUpdateConfiguration
'
,
()
=>
{
});
instantiationService
.
stub
(
IConfigurationService
,
'
onDidChangeConfiguration
'
,
()
=>
{
});
instantiationService
.
stub
(
IWorkspaceContextService
,
new
TestContextService
());
instantiationService
.
stub
(
ILifecycleService
,
new
TestLifecycleService
());
const
lifecycleService
=
new
TestLifecycleService
();
instantiationService
.
stub
(
ILifecycleService
,
lifecycleService
);
instantiationService
.
stub
(
IHashService
,
new
TestHashService
());
instantiationService
.
stub
(
IEditorGroupService
,
new
TestEditorGroupService
());
instantiationService
.
stub
(
ITelemetryService
,
NullTelemetryService
);
instantiationService
.
stub
(
IModeService
,
ModeServiceImpl
);
instantiationService
.
stub
(
IModelService
,
instantiationService
.
createInstance
(
ModelServiceImpl
));
instantiationService
.
stub
(
IFileService
,
new
FileService
(
new
TestContextService
(
new
Workspace
(
testDir
,
testDir
,
toWorkspaceFolders
([{
path
:
testDir
}]))),
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
IFileService
,
new
FileService
(
new
TestContextService
(
new
Workspace
(
testDir
,
testDir
,
toWorkspaceFolders
([{
path
:
testDir
}]))),
new
TestTextResourceConfigurationService
(),
new
TestConfigurationService
(),
lifecycleService
,
{
disableWatcher
:
true
}));
instantiationService
.
stub
(
IUntitledEditorService
,
instantiationService
.
createInstance
(
UntitledEditorService
));
instantiationService
.
stub
(
ITextFileService
,
instantiationService
.
createInstance
(
TestTextFileService
));
instantiationService
.
stub
(
ITextModelService
,
<
ITextModelService
>
instantiationService
.
createInstance
(
TextModelResolverService
));
...
...
src/vs/workbench/test/workbenchTestServices.ts
浏览文件 @
994ffd68
...
...
@@ -1011,7 +1011,7 @@ export class TestLifecycleService implements ILifecycleService {
private
_onShutdown
=
new
Emitter
<
ShutdownReason
>
();
when
():
Thenable
<
void
>
{
throw
notImplemented
(
);
return
TPromise
.
as
(
void
0
);
}
public
fireShutdown
(
reason
=
ShutdownReason
.
QUIT
):
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录