Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d631cb80
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,发现更多精彩内容 >>
提交
d631cb80
编写于
6月 13, 2018
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
main.js cleanup
上级
d901821f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
33 addition
and
98 deletion
+33
-98
src/main.js
src/main.js
+33
-98
未找到文件。
src/main.js
浏览文件 @
d631cb80
...
...
@@ -45,11 +45,18 @@ let fs = require('fs');
let
path
=
require
(
'
path
'
);
let
minimist
=
require
(
'
minimist
'
);
let
paths
=
require
(
'
./paths
'
);
let
product
=
require
(
'
../product.json
'
);
let
args
=
minimist
(
process
.
argv
,
{
string
:
[
'
user-data-dir
'
,
'
locale
'
]
string
:
[
'
user-data-dir
'
,
'
locale
'
,
'
js-flags
'
,
'
max-memory
'
]
});
//#region NLS
function
stripComments
(
content
)
{
let
regexp
=
/
(
"
(?:[^\\\"]
*
(?:\\
.
)?)
*"
)
|
(
'
(?:[^\\\']
*
(?:\\
.
)?)
*'
)
|
(\/\*(?:\r?\n
|.
)
*
?\*\/)
|
(\/{2,}
.*
?(?:(?:\r?\n)
|$
))
/g
;
let
result
=
content
.
replace
(
regexp
,
function
(
match
,
m1
,
m2
,
m3
,
m4
)
{
...
...
@@ -74,113 +81,38 @@ function stripComments(content) {
return
result
;
}
let
_commit
;
function
getCommit
()
{
if
(
_commit
)
{
return
_commit
;
}
if
(
_commit
===
null
)
{
return
undefined
;
}
try
{
let
productJson
=
require
(
path
.
join
(
__dirname
,
'
../product.json
'
));
if
(
productJson
.
commit
)
{
_commit
=
productJson
.
commit
;
}
else
{
_commit
=
null
;
}
}
catch
(
exp
)
{
_commit
=
null
;
}
return
_commit
||
undefined
;
}
const
mkdir
=
dir
=>
new
Promise
((
c
,
e
)
=>
fs
.
mkdir
(
dir
,
err
=>
(
err
&&
err
.
code
!==
'
EEXIST
'
)
?
e
(
err
)
:
c
()));
const
exists
=
file
=>
new
Promise
(
c
=>
fs
.
exists
(
file
,
c
));
const
readFile
=
file
=>
new
Promise
((
c
,
e
)
=>
fs
.
readFile
(
file
,
'
utf8
'
,
(
err
,
data
)
=>
err
?
e
(
err
)
:
c
(
data
)));
const
writeFile
=
(
file
,
content
)
=>
new
Promise
((
c
,
e
)
=>
fs
.
writeFile
(
file
,
content
,
'
utf8
'
,
err
=>
err
?
e
(
err
)
:
c
()));
const
touch
=
file
=>
new
Promise
((
c
,
e
)
=>
{
const
d
=
new
Date
();
fs
.
utimes
(
file
,
d
,
d
,
err
=>
err
?
e
(
err
)
:
c
());
});
function
mkdirp
(
dir
)
{
return
mkdir
(
dir
)
.
then
(
null
,
(
err
)
=>
{
if
(
err
&&
err
.
code
===
'
ENOENT
'
)
{
let
parent
=
path
.
dirname
(
dir
);
if
(
parent
!==
dir
)
{
// if not arrived at root
return
mkdirp
(
parent
)
.
then
(()
=>
{
return
mkdir
(
dir
);
});
}
}
throw
err
;
});
}
function
mkdir
(
dir
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
fs
.
mkdir
(
dir
,
(
err
)
=>
{
if
(
err
&&
err
.
code
!==
'
EEXIST
'
)
{
reject
(
err
);
}
else
{
resolve
(
dir
);
}
});
});
}
function
exists
(
file
)
{
return
new
Promise
((
resolve
)
=>
{
fs
.
exists
(
file
,
(
result
)
=>
{
resolve
(
result
);
});
});
}
function
readFile
(
file
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
fs
.
readFile
(
file
,
'
utf8
'
,
(
err
,
data
)
=>
{
if
(
err
)
{
reject
(
err
);
return
;
}
resolve
(
data
);
});
});
}
return
mkdir
(
dir
).
then
(
null
,
err
=>
{
if
(
err
&&
err
.
code
===
'
ENOENT
'
)
{
const
parent
=
path
.
dirname
(
dir
);
function
writeFile
(
file
,
content
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
fs
.
writeFile
(
file
,
content
,
'
utf8
'
,
(
err
)
=>
{
if
(
err
)
{
reject
(
err
);
return
;
if
(
parent
!==
dir
)
{
// if not arrived at root
return
mkdirp
(
parent
).
then
(()
=>
mkdir
(
dir
));
}
resolve
(
undefined
);
});
});
}
}
function
touch
(
file
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
let
d
=
new
Date
();
fs
.
utimes
(
file
,
d
,
d
,
(
err
)
=>
{
if
(
err
)
{
reject
(
err
);
return
;
}
resolve
(
undefined
);
});
throw
err
;
});
}
function
resolveJSFlags
()
{
let
jsFlags
=
[];
const
jsFlags
=
[];
if
(
args
[
'
js-flags
'
])
{
jsFlags
.
push
(
args
[
'
js-flags
'
]);
}
if
(
args
[
'
max-memory
'
]
&&
!
/max_old_space_size=
(\d
+
)
/g
.
exec
(
args
[
'
js-flags
'
]))
{
jsFlags
.
push
(
`--max_old_space_size=
${
args
[
'
max-memory
'
]}
`
);
}
if
(
jsFlags
.
length
>
0
)
{
return
jsFlags
.
join
(
'
'
);
}
else
{
return
null
;
}
return
jsFlags
.
length
>
0
?
jsFlags
.
join
(
'
'
)
:
null
;
}
// Language tags are case insensitve however an amd loader is case sensitive
...
...
@@ -285,7 +217,7 @@ function getNLSConfiguration(locale) {
}
perf
.
mark
(
'
nlsGeneration:start
'
);
let
defaultResult
=
function
(
locale
)
{
let
defaultResult
=
function
(
locale
)
{
let
isCoreLanguage
=
true
;
if
(
locale
)
{
isCoreLanguage
=
[
'
de
'
,
'
es
'
,
'
fr
'
,
'
it
'
,
'
ja
'
,
'
ko
'
,
'
ru
'
,
'
zh-cn
'
,
'
zh-tw
'
].
some
((
language
)
=>
{
...
...
@@ -296,13 +228,13 @@ function getNLSConfiguration(locale) {
let
result
=
resolveLocale
(
locale
);
perf
.
mark
(
'
nlsGeneration:end
'
);
return
Promise
.
resolve
(
result
);
}
else
{
}
else
{
perf
.
mark
(
'
nlsGeneration:end
'
);
return
Promise
.
resolve
({
locale
:
locale
,
availableLanguages
:
{}
});
}
};
try
{
let
commit
=
getCommit
()
;
let
commit
=
product
.
commit
;
if
(
!
commit
)
{
return
defaultResult
(
locale
);
}
...
...
@@ -339,7 +271,7 @@ function getNLSConfiguration(locale) {
return
exists
(
coreLocation
).
then
((
fileExists
)
=>
{
if
(
fileExists
)
{
// We don't wait for this. No big harm if we can't touch
touch
(
coreLocation
).
catch
(()
=>
{});
touch
(
coreLocation
).
catch
(()
=>
{
});
perf
.
mark
(
'
nlsGeneration:end
'
);
return
result
;
}
...
...
@@ -392,7 +324,9 @@ function getNLSConfiguration(locale) {
return
defaultResult
(
locale
);
}
}
//#endregion
//#region Cached Data Dir
function
getNodeCachedDataDir
()
{
// flag to disable cached data support
if
(
process
.
argv
.
indexOf
(
'
--no-cached-data
'
)
>
0
)
{
...
...
@@ -405,7 +339,7 @@ function getNodeCachedDataDir() {
}
// find commit id
let
commit
=
getCommit
()
;
let
commit
=
product
.
commit
;
if
(
!
commit
)
{
return
Promise
.
resolve
(
undefined
);
}
...
...
@@ -414,6 +348,7 @@ function getNodeCachedDataDir() {
return
mkdirp
(
dir
).
then
(
undefined
,
function
()
{
/*ignore*/
});
}
//#endregion
// Set userData path before app 'ready' event and call to process.chdir
let
userData
=
path
.
resolve
(
args
[
'
user-data-dir
'
]
||
paths
.
getDefaultUserDataPath
(
process
.
platform
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录