Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
7af36eb6
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,发现更多精彩内容 >>
未验证
提交
7af36eb6
编写于
11月 01, 2019
作者:
J
Johannes Rieken
提交者:
GitHub
11月 01, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' into joh/willRename
上级
2d71cb4c
4fcd3127
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
11 addition
and
118 deletion
+11
-118
package.json
package.json
+1
-1
src/bootstrap.js
src/bootstrap.js
+2
-22
src/vs/base/node/languagePacks.js
src/vs/base/node/languagePacks.js
+2
-20
src/vs/base/node/pfs.ts
src/vs/base/node/pfs.ts
+3
-54
src/vs/base/node/zip.ts
src/vs/base/node/zip.ts
+2
-2
src/vs/base/test/node/pfs/pfs.test.ts
src/vs/base/test/node/pfs/pfs.test.ts
+0
-18
src/vs/workbench/services/keybinding/common/keybindingEditing.ts
...workbench/services/keybinding/common/keybindingEditing.ts
+1
-1
未找到文件。
package.json
浏览文件 @
7af36eb6
{
"name"
:
"code-oss-dev"
,
"version"
:
"1.4
0
.0"
,
"version"
:
"1.4
1
.0"
,
"distro"
:
"d17c0d0353511f30b7f251bcb29f400b294bec36"
,
"author"
:
{
"name"
:
"Microsoft Corporation"
...
...
src/bootstrap.js
浏览文件 @
7af36eb6
...
...
@@ -153,34 +153,14 @@ exports.writeFile = function (file, content) {
});
};
/**
* @param {string} dir
* @returns {Promise<string>}
*/
function
mkdir
(
dir
)
{
const
fs
=
require
(
'
fs
'
);
return
new
Promise
((
c
,
e
)
=>
fs
.
mkdir
(
dir
,
err
=>
(
err
&&
err
.
code
!==
'
EEXIST
'
)
?
e
(
err
)
:
c
(
dir
)));
}
/**
* @param {string} dir
* @returns {Promise<string>}
*/
exports
.
mkdirp
=
function
mkdirp
(
dir
)
{
const
path
=
require
(
'
path
'
);
return
mkdir
(
dir
).
then
(
null
,
err
=>
{
if
(
err
&&
err
.
code
===
'
ENOENT
'
)
{
const
parent
=
path
.
dirname
(
dir
);
if
(
parent
!==
dir
)
{
// if not arrived at root
return
mkdirp
(
parent
).
then
(()
=>
mkdir
(
dir
));
}
}
const
fs
=
require
(
'
fs
'
);
throw
err
;
});
return
new
Promise
((
c
,
e
)
=>
fs
.
mkdir
(
dir
,
{
recursive
:
true
},
err
=>
(
err
&&
err
.
code
!==
'
EEXIST
'
)
?
e
(
err
)
:
c
(
dir
)));
};
//#endregion
...
...
src/vs/base/node/languagePacks.js
浏览文件 @
7af36eb6
...
...
@@ -50,8 +50,8 @@ function factory(nodeRequire, path, fs, perf) {
* @param {string} dir
* @returns {Promise<string>}
*/
function
mkdir
(
dir
)
{
return
new
Promise
((
c
,
e
)
=>
fs
.
mkdir
(
dir
,
err
=>
(
err
&&
err
.
code
!==
'
EEXIST
'
)
?
e
(
err
)
:
c
(
dir
)));
function
mkdir
p
(
dir
)
{
return
new
Promise
((
c
,
e
)
=>
fs
.
mkdir
(
dir
,
{
recursive
:
true
},
err
=>
(
err
&&
err
.
code
!==
'
EEXIST
'
)
?
e
(
err
)
:
c
(
dir
)));
}
/**
...
...
@@ -91,24 +91,6 @@ function factory(nodeRequire, path, fs, perf) {
});
}
/**
* @param {string} dir
* @returns {Promise<string>}
*/
function
mkdirp
(
dir
)
{
return
mkdir
(
dir
).
then
(
null
,
err
=>
{
if
(
err
&&
err
.
code
===
'
ENOENT
'
)
{
const
parent
=
path
.
dirname
(
dir
);
if
(
parent
!==
dir
)
{
// if not arrived at root
return
mkdirp
(
parent
).
then
(()
=>
mkdir
(
dir
));
}
}
throw
err
;
});
}
function
readFile
(
file
)
{
return
new
Promise
(
function
(
resolve
,
reject
)
{
fs
.
readFile
(
file
,
'
utf8
'
,
function
(
err
,
data
)
{
...
...
src/vs/base/node/pfs.ts
浏览文件 @
7af36eb6
...
...
@@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
{
join
,
dirname
}
from
'
vs/base/common/path
'
;
import
{
join
}
from
'
vs/base/common/path
'
;
import
{
Queue
}
from
'
vs/base/common/async
'
;
import
*
as
fs
from
'
fs
'
;
import
*
as
os
from
'
os
'
;
...
...
@@ -11,7 +11,6 @@ import * as platform from 'vs/base/common/platform';
import
{
Event
}
from
'
vs/base/common/event
'
;
import
{
endsWith
}
from
'
vs/base/common/strings
'
;
import
{
promisify
}
from
'
util
'
;
import
{
CancellationToken
}
from
'
vs/base/common/cancellation
'
;
import
{
isRootOrDriveLetter
}
from
'
vs/base/common/extpath
'
;
import
{
generateUuid
}
from
'
vs/base/common/uuid
'
;
import
{
normalizeNFC
}
from
'
vs/base/common/normalization
'
;
...
...
@@ -633,58 +632,8 @@ async function doCopyFile(source: string, target: string, mode: number): Promise
});
}
export
async
function
mkdirp
(
path
:
string
,
mode
?:
number
,
token
?:
CancellationToken
):
Promise
<
void
>
{
const
mkdir
=
async
()
=>
{
try
{
await
promisify
(
fs
.
mkdir
)(
path
,
mode
);
}
catch
(
error
)
{
// ENOENT: a parent folder does not exist yet
if
(
error
.
code
===
'
ENOENT
'
)
{
throw
error
;
}
// Any other error: check if folder exists and
// return normally in that case if its a folder
let
targetIsFile
=
false
;
try
{
const
fileStat
=
await
stat
(
path
);
targetIsFile
=
!
fileStat
.
isDirectory
();
}
catch
(
statError
)
{
throw
error
;
// rethrow original error if stat fails
}
if
(
targetIsFile
)
{
throw
new
Error
(
`'
${
path
}
' exists and is not a directory.`
);
}
}
};
// stop at root
if
(
path
===
dirname
(
path
))
{
return
;
}
try
{
await
mkdir
();
}
catch
(
error
)
{
// Respect cancellation
if
(
token
&&
token
.
isCancellationRequested
)
{
return
Promise
.
resolve
();
}
// ENOENT: a parent folder does not exist yet, continue
// to create the parent folder and then try again.
if
(
error
.
code
===
'
ENOENT
'
)
{
await
mkdirp
(
dirname
(
path
),
mode
);
return
mkdir
();
}
// Any other error
throw
error
;
}
export
async
function
mkdirp
(
path
:
string
,
mode
?:
number
):
Promise
<
void
>
{
return
promisify
(
fs
.
mkdir
)(
path
,
{
mode
,
recursive
:
true
});
}
// See https://github.com/Microsoft/vscode/issues/30180
...
...
src/vs/base/node/zip.ts
浏览文件 @
7af36eb6
...
...
@@ -86,7 +86,7 @@ function extractEntry(stream: Readable, fileName: string, mode: number, targetPa
}
});
return
Promise
.
resolve
(
mkdirp
(
targetDirName
,
undefined
,
token
)).
then
(()
=>
new
Promise
<
void
>
((
c
,
e
)
=>
{
return
Promise
.
resolve
(
mkdirp
(
targetDirName
)).
then
(()
=>
new
Promise
<
void
>
((
c
,
e
)
=>
{
if
(
token
.
isCancellationRequested
)
{
return
;
}
...
...
@@ -149,7 +149,7 @@ function extractZip(zipfile: ZipFile, targetPath: string, options: IOptions, tok
// directory file names end with '/'
if
(
/
\/
$/
.
test
(
fileName
))
{
const
targetFileName
=
path
.
join
(
targetPath
,
fileName
);
last
=
createCancelablePromise
(
token
=>
mkdirp
(
targetFileName
,
undefined
,
token
).
then
(()
=>
readNextEntry
(
token
)).
then
(
undefined
,
e
));
last
=
createCancelablePromise
(
token
=>
mkdirp
(
targetFileName
).
then
(()
=>
readNextEntry
(
token
)).
then
(
undefined
,
e
));
return
;
}
...
...
src/vs/base/test/node/pfs/pfs.test.ts
浏览文件 @
7af36eb6
...
...
@@ -12,7 +12,6 @@ import * as uuid from 'vs/base/common/uuid';
import
*
as
pfs
from
'
vs/base/node/pfs
'
;
import
{
timeout
}
from
'
vs/base/common/async
'
;
import
{
getPathFromAmdModule
}
from
'
vs/base/common/amd
'
;
import
{
CancellationTokenSource
}
from
'
vs/base/common/cancellation
'
;
import
{
isWindows
,
isLinux
}
from
'
vs/base/common/platform
'
;
import
{
canNormalize
}
from
'
vs/base/common/normalization
'
;
import
{
VSBuffer
}
from
'
vs/base/common/buffer
'
;
...
...
@@ -306,23 +305,6 @@ suite('PFS', () => {
return
pfs
.
rimraf
(
parentDir
,
pfs
.
RimRafMode
.
MOVE
);
});
test
(
'
mkdirp cancellation
'
,
async
()
=>
{
const
id
=
uuid
.
generateUuid
();
const
parentDir
=
path
.
join
(
os
.
tmpdir
(),
'
vsctests
'
,
id
);
const
newDir
=
path
.
join
(
parentDir
,
'
pfs
'
,
id
);
const
source
=
new
CancellationTokenSource
();
const
mkdirpPromise
=
pfs
.
mkdirp
(
newDir
,
493
,
source
.
token
);
source
.
cancel
();
await
mkdirpPromise
;
assert
.
ok
(
!
fs
.
existsSync
(
newDir
));
return
pfs
.
rimraf
(
parentDir
,
pfs
.
RimRafMode
.
MOVE
);
});
test
(
'
readDirsInDir
'
,
async
()
=>
{
const
id
=
uuid
.
generateUuid
();
const
parentDir
=
path
.
join
(
os
.
tmpdir
(),
'
vsctests
'
,
id
);
...
...
src/vs/workbench/services/keybinding/common/keybindingEditing.ts
浏览文件 @
7af36eb6
...
...
@@ -250,7 +250,7 @@ export class KeybindingsEditingService extends Disposable implements IKeybinding
private
parse
(
model
:
ITextModel
):
{
result
:
IUserFriendlyKeybinding
[],
parseErrors
:
json
.
ParseError
[]
}
{
const
parseErrors
:
json
.
ParseError
[]
=
[];
const
result
=
json
.
parse
(
model
.
getValue
(),
parseErrors
);
const
result
=
json
.
parse
(
model
.
getValue
(),
parseErrors
,
{
allowEmptyContent
:
true
}
);
return
{
result
,
parseErrors
};
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录