Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
22878854
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,发现更多精彩内容 >>
提交
22878854
编写于
4月 22, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
env & log service
上级
b1df68a4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
75 addition
and
0 deletion
+75
-0
src/vs/workbench/electron-main/env.ts
src/vs/workbench/electron-main/env.ts
+25
-0
src/vs/workbench/electron-main/log.ts
src/vs/workbench/electron-main/log.ts
+33
-0
src/vs/workbench/electron-main/main.ts
src/vs/workbench/electron-main/main.ts
+17
-0
未找到文件。
src/vs/workbench/electron-main/env.ts
浏览文件 @
22878854
...
...
@@ -17,6 +17,31 @@ import paths = require('vs/base/common/paths');
import
platform
=
require
(
'
vs/base/common/platform
'
);
import
uri
from
'
vs/base/common/uri
'
;
import
types
=
require
(
'
vs/base/common/types
'
);
import
{
ServiceIdentifier
,
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
export
interface
IEnv
{
cliArgs
:
ICommandLineArguments
;
}
export
const
IEnvService
=
createDecorator
<
IEnvService
>
(
'
environmentService
'
);
export
interface
IEnvService
{
serviceId
:
ServiceIdentifier
<
any
>
;
getEnv
():
IEnv
;
}
export
class
EnvService
implements
IEnvService
{
serviceId
=
IEnvService
;
constructor
()
{
}
getEnv
():
IEnv
{
return
null
;
}
}
export
interface
IProductConfiguration
{
nameShort
:
string
;
...
...
src/vs/workbench/electron-main/log.ts
0 → 100644
浏览文件 @
22878854
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'
use strict
'
;
import
{
ServiceIdentifier
,
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IEnvService
}
from
'
./env
'
;
export
const
ILogService
=
createDecorator
<
ILogService
>
(
'
logService
'
);
export
interface
ILogService
{
serviceId
:
ServiceIdentifier
<
any
>
;
log
(...
args
:
any
[]):
void
;
}
export
class
MainLogService
implements
ILogService
{
serviceId
=
ILogService
;
constructor
(@
IEnvService
private
envService
:
IEnvService
)
{
}
log
(...
args
:
any
[]):
void
{
const
{
cliArgs
}
=
this
.
envService
.
getEnv
();
if
(
cliArgs
.
verboseLogging
)
{
console
.
log
.
call
(
null
,
`(
${
new
Date
().
toLocaleTimeString
()}
)`
,
...
args
);
}
}
}
\ No newline at end of file
src/vs/workbench/electron-main/main.ts
浏览文件 @
22878854
...
...
@@ -24,6 +24,10 @@ import {GitAskpassService} from 'vs/workbench/parts/git/electron-main/askpassSer
import
{
spawnSharedProcess
}
from
'
vs/workbench/electron-main/sharedProcess
'
;
import
{
Mutex
}
from
'
windows-mutex
'
;
import
{
LaunchService
,
ILaunchChannel
,
LaunchChannel
,
LaunchChannelClient
}
from
'
./launch
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
InstantiationService
}
from
'
vs/platform/instantiation/common/instantiationService
'
;
import
{
ServiceCollection
}
from
'
vs/platform/instantiation/common/serviceCollection
'
;
import
{
ILogService
,
MainLogService
}
from
'
./log
'
;
// We handle uncaught exceptions here to prevent electron from opening a dialog to the user
process
.
on
(
'
uncaughtException
'
,
(
err
:
any
)
=>
{
...
...
@@ -63,6 +67,16 @@ function quit(arg?: any) {
process
.
exit
(
exitCode
);
// in main, process.exit === app.exit
}
export
function
createServices
():
IInstantiationService
{
const
services
=
new
ServiceCollection
();
const
envService
=
new
env
.
EnvService
();
services
.
set
(
env
.
IEnvService
,
envService
);
services
.
set
(
ILogService
,
new
MainLogService
(
envService
));
return
new
InstantiationService
(
services
);
}
function
main
(
ipcServer
:
Server
,
userEnv
:
env
.
IProcessEnvironment
):
void
{
env
.
log
(
'
### VSCode main.js ###
'
);
env
.
log
(
env
.
appRoot
,
env
.
cliArgs
);
...
...
@@ -76,6 +90,9 @@ function main(ipcServer: Server, userEnv: env.IProcessEnvironment): void {
// noop
}
const
instantiationService
=
createServices
();
instantiationService
.
invokeFunction
(()
=>
{});
// Register IPC services
const
launchService
=
new
LaunchService
();
const
launchChannel
=
new
LaunchChannel
(
launchService
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录