Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
2d79f9da
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,发现更多精彩内容 >>
提交
2d79f9da
编写于
1月 17, 2018
作者:
R
Ramya Achutha Rao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Show single prompt even if file matches multiple important recommendations
上级
a00d9092
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
70 addition
and
72 deletion
+70
-72
src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts
...parts/extensions/electron-browser/extensionTipsService.ts
+70
-72
未找到文件。
src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts
浏览文件 @
2d79f9da
...
...
@@ -283,90 +283,88 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe
const
config
=
this
.
configurationService
.
getValue
<
IExtensionsConfiguration
>
(
ConfigurationKey
);
const
importantRecommendationsIgnoreList
=
<
string
[]
>
JSON
.
parse
(
this
.
storageService
.
get
(
'
extensionsAssistant/importantRecommendationsIgnore
'
,
StorageScope
.
GLOBAL
,
'
[]
'
));
if
(
config
.
ignoreRecommendations
||
!
product
.
extensionImportantTips
)
{
let
recommendationsToSuggest
=
Object
.
keys
(
product
.
extensionImportantTips
||
[])
.
filter
(
id
=>
importantRecommendationsIgnoreList
.
indexOf
(
id
)
===
-
1
&&
match
(
product
.
extensionImportantTips
[
id
][
'
pattern
'
],
uri
.
fsPath
));
if
(
config
.
ignoreRecommendations
||
!
recommendationsToSuggest
.
length
)
{
return
;
}
this
.
extensionsService
.
getInstalled
(
LocalExtensionType
.
User
).
done
(
local
=>
{
Object
.
keys
(
product
.
extensionImportantTips
)
.
filter
(
id
=>
importantRecommendationsIgnoreList
.
indexOf
(
id
)
===
-
1
)
.
filter
(
id
=>
local
.
every
(
local
=>
`
${
local
.
manifest
.
publisher
}
.
${
local
.
manifest
.
name
}
`
!==
id
))
.
forEach
(
id
=>
{
const
{
pattern
,
name
}
=
product
.
extensionImportantTips
[
id
];
if
(
!
match
(
pattern
,
uri
.
fsPath
))
{
return
;
}
recommendationsToSuggest
=
recommendationsToSuggest
.
filter
(
id
=>
local
.
every
(
local
=>
`
${
local
.
manifest
.
publisher
}
.
${
local
.
manifest
.
name
}
`
!==
id
));
if
(
!
recommendationsToSuggest
.
length
)
{
return
;
}
const
id
=
recommendationsToSuggest
[
0
];
const
name
=
product
.
extensionImportantTips
[
id
][
'
name
'
];
let
message
=
localize
(
'
reallyRecommended2
'
,
"
The '{0}' extension is recommended for this file type.
"
,
name
);
// Temporary fix for the only extension pack we recommend. See https://github.com/Microsoft/vscode/issues/35364
if
(
id
===
'
vscjava.vscode-java-pack
'
)
{
message
=
localize
(
'
reallyRecommendedExtensionPack
'
,
"
The '{0}' extension pack is recommended for this file type.
"
,
name
);
}
let
message
=
localize
(
'
reallyRecommended2
'
,
"
The '{0}' extension is recommended for this file type.
"
,
name
);
// Temporary fix for the only extension pack we recommend. See https://github.com/Microsoft/vscode/issues/35364
if
(
id
===
'
vscjava.vscode-java-pack
'
)
{
message
=
localize
(
'
reallyRecommendedExtensionPack
'
,
"
The '{0}' extension pack is recommended for this file type.
"
,
name
);
}
const
recommendationsAction
=
this
.
instantiationService
.
createInstance
(
ShowRecommendedExtensionsAction
,
ShowRecommendedExtensionsAction
.
ID
,
localize
(
'
showRecommendations
'
,
"
Show Recommendations
"
));
const
installAction
=
this
.
instantiationService
.
createInstance
(
InstallRecommendedExtensionAction
,
id
);
const
options
=
[
localize
(
'
install
'
,
'
Install
'
),
recommendationsAction
.
label
,
localize
(
'
neverShowAgain
'
,
"
Don't Show Again
"
),
localize
(
'
close
'
,
"
Close
"
)
];
this
.
choiceService
.
choose
(
Severity
.
Info
,
message
,
options
,
3
).
done
(
choice
=>
{
switch
(
choice
)
{
case
0
:
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
install
'
,
extensionId
:
name
});
return
installAction
.
run
();
case
1
:
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
show
'
,
extensionId
:
name
});
return
recommendationsAction
.
run
();
case
2
:
importantRecommendationsIgnoreList
.
push
(
id
);
this
.
storageService
.
store
(
'
extensionsAssistant/importantRecommendationsIgnore
'
,
JSON
.
stringify
(
importantRecommendationsIgnoreList
),
StorageScope
.
GLOBAL
);
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
neverShowAgain
'
,
extensionId
:
name
});
return
this
.
ignoreExtensionRecommendations
();
case
3
:
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
close
'
,
extensionId
:
name
});
}
},
()
=>
{
const
recommendationsAction
=
this
.
instantiationService
.
createInstance
(
ShowRecommendedExtensionsAction
,
ShowRecommendedExtensionsAction
.
ID
,
localize
(
'
showRecommendations
'
,
"
Show Recommendations
"
));
const
installAction
=
this
.
instantiationService
.
createInstance
(
InstallRecommendedExtensionAction
,
id
);
const
options
=
[
localize
(
'
install
'
,
'
Install
'
),
recommendationsAction
.
label
,
localize
(
'
neverShowAgain
'
,
"
Don't Show Again
"
),
localize
(
'
close
'
,
"
Close
"
)
];
this
.
choiceService
.
choose
(
Severity
.
Info
,
message
,
options
,
3
).
done
(
choice
=>
{
switch
(
choice
)
{
case
0
:
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
cancelled
'
,
extensionId
:
name
});
});
});
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
install
'
,
extensionId
:
name
});
return
installAction
.
run
();
case
1
:
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
show
'
,
extensionId
:
name
});
return
recommendationsAction
.
run
();
case
2
:
importantRecommendationsIgnoreList
.
push
(
id
);
this
.
storageService
.
store
(
'
extensionsAssistant/importantRecommendationsIgnore
'
,
JSON
.
stringify
(
importantRecommendationsIgnoreList
),
StorageScope
.
GLOBAL
);
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
neverShowAgain
'
,
extensionId
:
name
});
return
this
.
ignoreExtensionRecommendations
();
case
3
:
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
close
'
,
extensionId
:
name
});
}
},
()
=>
{
/* __GDPR__
"extensionRecommendations:popup" : {
"userReaction" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"extensionId": { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" }
}
*/
this
.
telemetryService
.
publicLog
(
'
extensionRecommendations:popup
'
,
{
userReaction
:
'
cancelled
'
,
extensionId
:
name
});
});
});
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录