Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
468dd75a
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,发现更多精彩内容 >>
提交
468dd75a
编写于
12月 15, 2017
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/master'
上级
938dc015
197b7a17
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
35 addition
and
101 deletion
+35
-101
build/lib/compilation.js
build/lib/compilation.js
+10
-41
build/lib/compilation.ts
build/lib/compilation.ts
+13
-49
extensions/git/src/commands.ts
extensions/git/src/commands.ts
+11
-10
extensions/git/src/git.ts
extensions/git/src/git.ts
+1
-1
未找到文件。
build/lib/compilation.js
浏览文件 @
468dd75a
...
...
@@ -58,9 +58,13 @@ function compileTask(out, build) {
return
function
()
{
var
compile
=
createCompile
(
build
,
true
);
var
src
=
es
.
merge
(
gulp
.
src
(
'
src/**
'
,
{
base
:
'
src
'
}),
gulp
.
src
(
'
node_modules/typescript/lib/lib.d.ts
'
));
// Do not write .d.ts files to disk, as they are not needed there.
var
dtsFilter
=
util
.
filter
(
function
(
data
)
{
return
!
/
\.
d
\.
ts$/
.
test
(
data
.
path
);
});
return
src
.
pipe
(
compile
())
.
pipe
(
dtsFilter
)
.
pipe
(
gulp
.
dest
(
out
))
.
pipe
(
dtsFilter
.
restore
)
.
pipe
(
monacodtsTask
(
out
,
false
));
};
}
...
...
@@ -70,54 +74,19 @@ function watchTask(out, build) {
var
compile
=
createCompile
(
build
);
var
src
=
es
.
merge
(
gulp
.
src
(
'
src/**
'
,
{
base
:
'
src
'
}),
gulp
.
src
(
'
node_modules/typescript/lib/lib.d.ts
'
));
var
watchSrc
=
watch
(
'
src/**
'
,
{
base
:
'
src
'
});
// Do not write .d.ts files to disk, as they are not needed there.
var
dtsFilter
=
util
.
filter
(
function
(
data
)
{
return
!
/
\.
d
\.
ts$/
.
test
(
data
.
path
);
});
return
watchSrc
.
pipe
(
util
.
incremental
(
compile
,
src
,
true
))
.
pipe
(
dtsFilter
)
.
pipe
(
gulp
.
dest
(
out
))
.
pipe
(
dtsFilter
.
restore
)
.
pipe
(
monacodtsTask
(
out
,
true
));
};
}
exports
.
watchTask
=
watchTask
;
function
reloadTypeScriptNodeModule
()
{
var
util
=
require
(
'
gulp-util
'
);
function
log
(
message
)
{
var
rest
=
[];
for
(
var
_i
=
1
;
_i
<
arguments
.
length
;
_i
++
)
{
rest
[
_i
-
1
]
=
arguments
[
_i
];
}
util
.
log
.
apply
(
util
,
[
util
.
colors
.
cyan
(
'
[memory watch dog]
'
),
message
].
concat
(
rest
));
}
function
heapUsed
()
{
return
(
process
.
memoryUsage
().
heapUsed
/
1024
/
1024
).
toFixed
(
2
)
+
'
MB
'
;
}
return
es
.
through
(
function
(
data
)
{
this
.
emit
(
'
data
'
,
data
);
},
function
()
{
log
(
'
memory usage after compilation finished:
'
+
heapUsed
());
// It appears we are running into some variant of
// https://bugs.chromium.org/p/v8/issues/detail?id=2073
//
// Even though all references are dropped, some
// optimized methods in the TS compiler end up holding references
// to the entire TypeScript language host (>600MB)
//
// The idea is to force v8 to drop references to these
// optimized methods, by "reloading" the typescript node module
log
(
'
Reloading typescript node module...
'
);
var
resolvedName
=
require
.
resolve
(
'
typescript
'
);
var
originalModule
=
require
.
cache
[
resolvedName
];
delete
require
.
cache
[
resolvedName
];
var
newExports
=
require
(
'
typescript
'
);
require
.
cache
[
resolvedName
]
=
originalModule
;
for
(
var
prop
in
newExports
)
{
if
(
newExports
.
hasOwnProperty
(
prop
))
{
originalModule
.
exports
[
prop
]
=
newExports
[
prop
];
}
}
log
(
'
typescript node module reloaded.
'
);
this
.
emit
(
'
end
'
);
});
}
function
monacodtsTask
(
out
,
isWatch
)
{
var
basePath
=
path
.
resolve
(
process
.
cwd
(),
out
);
var
neededFiles
=
{};
monacodts
.
getFilesToWatch
(
out
).
forEach
(
function
(
filePath
)
{
filePath
=
path
.
normalize
(
filePath
);
...
...
@@ -160,7 +129,7 @@ function monacodtsTask(out, isWatch) {
}));
}
resultStream
=
es
.
through
(
function
(
data
)
{
var
filePath
=
path
.
normalize
(
data
.
path
);
var
filePath
=
path
.
normalize
(
path
.
resolve
(
basePath
,
data
.
relative
)
);
if
(
neededFiles
[
filePath
])
{
setInputFile
(
filePath
,
data
.
contents
.
toString
());
}
...
...
build/lib/compilation.ts
浏览文件 @
468dd75a
...
...
@@ -49,7 +49,6 @@ function createCompile(build: boolean, emitError?: boolean): (token?: util.ICanc
.
pipe
(
tsFilter
)
.
pipe
(
util
.
loadSourcemaps
())
.
pipe
(
ts
(
token
))
// .pipe(build ? reloadTypeScriptNodeModule() : es.through())
.
pipe
(
noDeclarationsFilter
)
.
pipe
(
build
?
nls
()
:
es
.
through
())
.
pipe
(
noDeclarationsFilter
.
restore
)
...
...
@@ -75,9 +74,14 @@ export function compileTask(out: string, build: boolean): () => NodeJS.ReadWrite
gulp
.
src
(
'
node_modules/typescript/lib/lib.d.ts
'
),
);
// Do not write .d.ts files to disk, as they are not needed there.
const
dtsFilter
=
util
.
filter
(
data
=>
!
/
\.
d
\.
ts$/
.
test
(
data
.
path
));
return
src
.
pipe
(
compile
())
.
pipe
(
dtsFilter
)
.
pipe
(
gulp
.
dest
(
out
))
.
pipe
(
dtsFilter
.
restore
)
.
pipe
(
monacodtsTask
(
out
,
false
));
};
}
...
...
@@ -93,62 +97,22 @@ export function watchTask(out: string, build: boolean): () => NodeJS.ReadWriteSt
);
const
watchSrc
=
watch
(
'
src/**
'
,
{
base
:
'
src
'
});
// Do not write .d.ts files to disk, as they are not needed there.
const
dtsFilter
=
util
.
filter
(
data
=>
!
/
\.
d
\.
ts$/
.
test
(
data
.
path
));
return
watchSrc
.
pipe
(
util
.
incremental
(
compile
,
src
,
true
))
.
pipe
(
dtsFilter
)
.
pipe
(
gulp
.
dest
(
out
))
.
pipe
(
dtsFilter
.
restore
)
.
pipe
(
monacodtsTask
(
out
,
true
));
};
}
function
reloadTypeScriptNodeModule
():
NodeJS
.
ReadWriteStream
{
var
util
=
require
(
'
gulp-util
'
);
function
log
(
message
:
any
,
...
rest
:
any
[]):
void
{
util
.
log
(
util
.
colors
.
cyan
(
'
[memory watch dog]
'
),
message
,
...
rest
);
}
function
heapUsed
():
string
{
return
(
process
.
memoryUsage
().
heapUsed
/
1024
/
1024
).
toFixed
(
2
)
+
'
MB
'
;
}
return
es
.
through
(
function
(
data
)
{
this
.
emit
(
'
data
'
,
data
);
},
function
()
{
log
(
'
memory usage after compilation finished:
'
+
heapUsed
());
// It appears we are running into some variant of
// https://bugs.chromium.org/p/v8/issues/detail?id=2073
//
// Even though all references are dropped, some
// optimized methods in the TS compiler end up holding references
// to the entire TypeScript language host (>600MB)
//
// The idea is to force v8 to drop references to these
// optimized methods, by "reloading" the typescript node module
log
(
'
Reloading typescript node module...
'
);
var
resolvedName
=
require
.
resolve
(
'
typescript
'
);
var
originalModule
=
require
.
cache
[
resolvedName
];
delete
require
.
cache
[
resolvedName
];
var
newExports
=
require
(
'
typescript
'
);
require
.
cache
[
resolvedName
]
=
originalModule
;
for
(
var
prop
in
newExports
)
{
if
(
newExports
.
hasOwnProperty
(
prop
))
{
originalModule
.
exports
[
prop
]
=
newExports
[
prop
];
}
}
log
(
'
typescript node module reloaded.
'
);
this
.
emit
(
'
end
'
);
});
}
function
monacodtsTask
(
out
:
string
,
isWatch
:
boolean
):
NodeJS
.
ReadWriteStream
{
const
basePath
=
path
.
resolve
(
process
.
cwd
(),
out
);
const
neededFiles
:
{
[
file
:
string
]:
boolean
;
}
=
{};
monacodts
.
getFilesToWatch
(
out
).
forEach
(
function
(
filePath
)
{
filePath
=
path
.
normalize
(
filePath
);
...
...
@@ -196,7 +160,7 @@ function monacodtsTask(out: string, isWatch: boolean): NodeJS.ReadWriteStream {
}
resultStream
=
es
.
through
(
function
(
data
)
{
const
filePath
=
path
.
normalize
(
data
.
path
);
const
filePath
=
path
.
normalize
(
path
.
resolve
(
basePath
,
data
.
relative
)
);
if
(
neededFiles
[
filePath
])
{
setInputFile
(
filePath
,
data
.
contents
.
toString
());
}
...
...
extensions/git/src/commands.ts
浏览文件 @
468dd75a
...
...
@@ -1316,25 +1316,26 @@ export class CommandCenter {
return
;
}
const
p
icks
=
remotes
.
map
(
r
=>
({
label
:
r
.
name
,
description
:
r
.
url
}));
const
remoteP
icks
=
remotes
.
map
(
r
=>
({
label
:
r
.
name
,
description
:
r
.
url
}));
const
placeHolder
=
localize
(
'
pick remote pull repo
'
,
"
Pick a remote to pull the branch from
"
);
const
pick
=
await
window
.
showQuickPick
(
p
icks
,
{
placeHolder
});
const
remotePick
=
await
window
.
showQuickPick
(
remoteP
icks
,
{
placeHolder
});
if
(
!
p
ick
)
{
if
(
!
remoteP
ick
)
{
return
;
}
const
branchName
=
await
window
.
showInputBox
({
placeHolder
:
localize
(
'
branch name
'
,
"
Branch name
"
),
prompt
:
localize
(
'
provide branch name
'
,
"
Please provide a branch name
"
),
ignoreFocusOut
:
true
});
const
remoteRefs
=
repository
.
refs
;
const
remoteRefsFiltered
=
remoteRefs
.
filter
(
r
=>
(
r
.
remote
===
remotePick
.
label
));
const
branchPicks
=
remoteRefsFiltered
.
map
(
r
=>
({
label
:
r
.
name
}))
as
{
label
:
string
;
description
:
string
}[];
const
branchPick
=
await
window
.
showQuickPick
(
branchPicks
,
{
placeHolder
});
if
(
!
branch
Name
)
{
if
(
!
branch
Pick
)
{
return
;
}
repository
.
pull
(
false
,
pick
.
label
,
branchName
);
const
remoteCharCnt
=
remotePick
.
label
.
length
;
repository
.
pull
(
false
,
remotePick
.
label
,
branchPick
.
label
.
slice
(
remoteCharCnt
+
1
));
}
@
command
(
'
git.pull
'
,
{
repository
:
true
})
...
...
extensions/git/src/git.ts
浏览文件 @
468dd75a
...
...
@@ -1150,7 +1150,7 @@ export class Repository {
}
async
getRefs
():
Promise
<
Ref
[]
>
{
const
result
=
await
this
.
run
([
'
for-each-ref
'
,
'
--format
'
,
'
%(refname) %(objectname)
'
]);
const
result
=
await
this
.
run
([
'
for-each-ref
'
,
'
--format
'
,
'
%(refname) %(objectname)
'
,
'
--sort
'
,
'
-committerdate
'
]);
const
fn
=
(
line
:
string
):
Ref
|
null
=>
{
let
match
:
RegExpExecArray
|
null
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录