Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
f1bd5b63
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,发现更多精彩内容 >>
提交
f1bd5b63
编写于
10月 05, 2018
作者:
J
Johannes Rieken
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix #59939
上级
3dc960c0
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
49 deletion
+28
-49
src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts
...kbench/parts/snippets/electron-browser/snippetsService.ts
+28
-49
未找到文件。
src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts
浏览文件 @
f1bd5b63
...
...
@@ -6,7 +6,7 @@
import
{
basename
,
extname
,
join
}
from
'
path
'
;
import
{
MarkdownString
}
from
'
vs/base/common/htmlContent
'
;
import
{
IJSONSchema
}
from
'
vs/base/common/jsonSchema
'
;
import
{
dispose
,
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
dispose
,
IDisposable
,
combinedDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
values
}
from
'
vs/base/common/map
'
;
import
*
as
resources
from
'
vs/base/common/resources
'
;
import
{
compare
,
endsWith
,
isFalsyOrWhitespace
}
from
'
vs/base/common/strings
'
;
...
...
@@ -278,58 +278,37 @@ class SnippetsService implements ISnippetsService {
}
private
_initFolderSnippets
(
source
:
SnippetSource
,
folder
:
URI
,
bucket
:
IDisposable
[]):
Thenable
<
any
>
{
const
addUserSnippet
=
(
filepath
:
URI
)
=>
{
const
ext
=
extname
(
filepath
.
path
);
if
(
source
===
SnippetSource
.
User
&&
ext
===
'
.json
'
)
{
const
langName
=
basename
(
filepath
.
path
,
'
.json
'
);
this
.
_files
.
set
(
filepath
.
toString
(),
new
SnippetFile
(
source
,
filepath
,
[
langName
],
undefined
,
this
.
_fileService
));
}
else
if
(
ext
===
'
.code-snippets
'
)
{
this
.
_files
.
set
(
filepath
.
toString
(),
new
SnippetFile
(
source
,
filepath
,
undefined
,
undefined
,
this
.
_fileService
));
}
};
return
this
.
_fileService
.
resolveFile
(
folder
).
then
(
stat
=>
{
if
(
!
isFalsyOrEmpty
(
stat
.
children
))
{
for
(
const
entry
of
stat
.
children
)
{
addUserSnippet
(
entry
.
resource
);
}
}
}).
then
(()
=>
{
// watch
bucket
.
push
(
watch
(
this
.
_fileService
,
folder
,
(
_type
,
filename
)
=>
{
this
.
_fileService
.
existsFile
(
filename
).
then
(
value
=>
{
if
(
value
)
{
// file created or changed
if
(
this
.
_files
.
has
(
filename
.
toString
()))
{
this
.
_files
.
get
(
filename
.
toString
()).
reset
();
}
else
{
addUserSnippet
(
filename
);
}
}
else
{
// file not found
this
.
_files
.
delete
(
filename
.
toString
());
let
disposables
:
IDisposable
[]
=
[];
let
addFolderSnippets
=
()
=>
{
disposables
=
dispose
(
disposables
);
return
this
.
_fileService
.
resolveFile
(
folder
).
then
(
stat
=>
{
if
(
!
isFalsyOrEmpty
(
stat
.
children
))
{
for
(
const
entry
of
stat
.
children
)
{
disposables
.
push
(
this
.
_addSnippetFile
(
entry
.
resource
,
source
));
}
});
}));
bucket
.
push
({
dispose
:
()
=>
{
// add a disposable that removes all snippets
// from this folder. that ensures snippets disappear
// when the folder goes away
this
.
_files
.
forEach
((
value
,
index
)
=>
{
if
(
resources
.
isEqualOrParent
(
value
.
location
,
folder
))
{
this
.
_files
.
delete
(
index
);
}
});
}
},
err
=>
{
this
.
_logService
.
error
(
`Failed snippets from folder '
${
folder
.
toString
()}
'`
,
err
);
});
};
}).
then
(
undefined
,
err
=>
{
this
.
_logService
.
error
(
`Failed snippets from folder '
${
folder
.
toString
()}
'`
,
err
);
});
bucket
.
push
(
watch
(
this
.
_fileService
,
folder
,
addFolderSnippets
));
bucket
.
push
(
combinedDisposable
(
disposables
));
return
addFolderSnippets
();
}
private
_addSnippetFile
(
uri
:
URI
,
source
:
SnippetSource
):
IDisposable
{
const
ext
=
extname
(
uri
.
path
);
const
key
=
uri
.
toString
();
if
(
source
===
SnippetSource
.
User
&&
ext
===
'
.json
'
)
{
const
langName
=
basename
(
uri
.
path
,
'
.json
'
);
this
.
_files
.
set
(
key
,
new
SnippetFile
(
source
,
uri
,
[
langName
],
undefined
,
this
.
_fileService
));
}
else
if
(
ext
===
'
.code-snippets
'
)
{
this
.
_files
.
set
(
key
,
new
SnippetFile
(
source
,
uri
,
undefined
,
undefined
,
this
.
_fileService
));
}
return
{
dispose
:
()
=>
this
.
_files
.
delete
(
key
)
};
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录