Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
9c2cc80f
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,体验更适合开发者的 AI 搜索 >>
提交
9c2cc80f
编写于
8月 14, 2019
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move getHashedRemotesFromUri to IWorkspaceStatsService
上级
994e1315
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
26 addition
and
19 deletion
+26
-19
src/vs/workbench/browser/web.simpleservices.ts
src/vs/workbench/browser/web.simpleservices.ts
+4
-0
src/vs/workbench/contrib/extensions/electron-browser/extensionTipsService.ts
...ntrib/extensions/electron-browser/extensionTipsService.ts
+3
-4
src/vs/workbench/contrib/stats/common/workspaceStats.ts
src/vs/workbench/contrib/stats/common/workspaceStats.ts
+3
-0
src/vs/workbench/contrib/stats/electron-browser/workspaceStats.ts
...orkbench/contrib/stats/electron-browser/workspaceStats.ts
+1
-15
src/vs/workbench/contrib/stats/electron-browser/workspaceStatsService.ts
...h/contrib/stats/electron-browser/workspaceStatsService.ts
+15
-0
未找到文件。
src/vs/workbench/browser/web.simpleservices.ts
浏览文件 @
9c2cc80f
...
...
@@ -859,6 +859,10 @@ class WorkspaceStatsService implements IWorkspaceStatsService {
return
undefined
;
}
getHashedRemotesFromUri
(
workspaceUri
:
URI
,
stripEndingDotGit
?:
boolean
):
Promise
<
string
[]
>
{
return
Promise
.
resolve
([]);
}
}
registerSingleton
(
IWorkspaceStatsService
,
WorkspaceStatsService
);
...
...
src/vs/workbench/contrib/extensions/electron-browser/extensionTipsService.ts
浏览文件 @
9c2cc80f
...
...
@@ -29,7 +29,6 @@ import { flatten, distinct, shuffle, coalesce } from 'vs/base/common/arrays';
import
{
IEnvironmentService
}
from
'
vs/platform/environment/common/environment
'
;
import
{
guessMimeTypes
,
MIME_UNKNOWN
}
from
'
vs/base/common/mime
'
;
import
{
IExtensionService
}
from
'
vs/workbench/services/extensions/common/extensions
'
;
import
{
getHashedRemotesFromUri
}
from
'
vs/workbench/contrib/stats/electron-browser/workspaceStats
'
;
import
{
IRequestService
,
asJson
}
from
'
vs/platform/request/common/request
'
;
import
{
isNumber
}
from
'
vs/base/common/types
'
;
import
{
IViewletService
}
from
'
vs/workbench/services/viewlet/browser/viewlet
'
;
...
...
@@ -42,9 +41,9 @@ import { IExperimentService, ExperimentActionType, ExperimentState } from 'vs/wo
import
{
CancellationToken
}
from
'
vs/base/common/cancellation
'
;
import
{
ExtensionType
}
from
'
vs/platform/extensions/common/extensions
'
;
import
{
extname
}
from
'
vs/base/common/resources
'
;
import
{
ITextFileService
}
from
'
vs/workbench/services/textfile/common/textfiles
'
;
import
{
IExeBasedExtensionTip
}
from
'
vs/platform/product/common/product
'
;
import
{
timeout
}
from
'
vs/base/common/async
'
;
import
{
IWorkspaceStatsService
}
from
'
vs/workbench/contrib/stats/common/workspaceStats
'
;
const
milliSecondsInADay
=
1000
*
60
*
60
*
24
;
const
choiceNever
=
localize
(
'
neverShowAgain
'
,
"
Don't Show Again
"
);
...
...
@@ -109,7 +108,7 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe
@
IExtensionManagementService
private
readonly
extensionManagementService
:
IExtensionManagementService
,
@
IExtensionsWorkbenchService
private
readonly
extensionWorkbenchService
:
IExtensionsWorkbenchService
,
@
IExperimentService
private
readonly
experimentService
:
IExperimentService
,
@
I
TextFileService
private
readonly
textFileService
:
ITextFile
Service
@
I
WorkspaceStatsService
private
readonly
workspaceStatsService
:
IWorkspaceStats
Service
)
{
super
();
...
...
@@ -1078,7 +1077,7 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe
const
storageKey
=
'
extensionsAssistant/dynamicWorkspaceRecommendations
'
;
const
workspaceUri
=
this
.
contextService
.
getWorkspace
().
folders
[
0
].
uri
;
return
Promise
.
all
([
getHashedRemotesFromUri
(
workspaceUri
,
this
.
fileService
,
this
.
textFileService
,
false
),
getHashedRemotesFromUri
(
workspaceUri
,
this
.
fileService
,
this
.
textFileService
,
true
)]).
then
(([
hashedRemotes1
,
hashedRemotes2
])
=>
{
return
Promise
.
all
([
this
.
workspaceStatsService
.
getHashedRemotesFromUri
(
workspaceUri
,
false
),
this
.
workspaceStatsService
.
getHashedRemotesFromUri
(
workspaceUri
,
true
)]).
then
(([
hashedRemotes1
,
hashedRemotes2
])
=>
{
const
hashedRemotes
=
(
hashedRemotes1
||
[]).
concat
(
hashedRemotes2
||
[]);
if
(
!
hashedRemotes
.
length
)
{
return
undefined
;
...
...
src/vs/workbench/contrib/stats/common/workspaceStats.ts
浏览文件 @
9c2cc80f
...
...
@@ -5,6 +5,7 @@
import
{
WorkbenchState
,
IWorkspace
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
export
type
Tags
=
{
[
index
:
string
]:
boolean
|
number
|
string
|
undefined
};
...
...
@@ -20,4 +21,6 @@ export interface IWorkspaceStatsService {
* on the folder uri or workspace configuration, not time-based, and undefined for empty workspaces.
*/
getTelemetryWorkspaceId
(
workspace
:
IWorkspace
,
state
:
WorkbenchState
):
string
|
undefined
;
getHashedRemotesFromUri
(
workspaceUri
:
URI
,
stripEndingDotGit
?:
boolean
):
Promise
<
string
[]
>
;
}
src/vs/workbench/contrib/stats/electron-browser/workspaceStats.ts
浏览文件 @
9c2cc80f
...
...
@@ -136,20 +136,6 @@ export function getHashedRemotesFromConfig(text: string, stripEndingDotGit: bool
});
}
export
function
getHashedRemotesFromUri
(
workspaceUri
:
URI
,
fileService
:
IFileService
,
textFileService
:
ITextFileService
,
stripEndingDotGit
:
boolean
=
false
):
Promise
<
string
[]
>
{
const
path
=
workspaceUri
.
path
;
const
uri
=
workspaceUri
.
with
({
path
:
`
${
path
!==
'
/
'
?
path
:
''
}
/.git/config`
});
return
fileService
.
exists
(
uri
).
then
(
exists
=>
{
if
(
!
exists
)
{
return
[];
}
return
textFileService
.
read
(
uri
,
{
acceptTextOnly
:
true
}).
then
(
content
=>
getHashedRemotesFromConfig
(
content
.
value
,
stripEndingDotGit
),
err
=>
[]
// ignore missing or binary file
);
});
}
export
class
WorkspaceStats
implements
IWorkbenchContribution
{
constructor
(
...
...
@@ -230,7 +216,7 @@ export class WorkspaceStats implements IWorkbenchContribution {
private
reportRemotes
(
workspaceUris
:
URI
[]):
void
{
Promise
.
all
<
string
[]
>
(
workspaceUris
.
map
(
workspaceUri
=>
{
return
getHashedRemotesFromUri
(
workspaceUri
,
this
.
fileService
,
this
.
textFileService
,
true
);
return
this
.
workspaceStatsService
.
getHashedRemotesFromUri
(
workspaceUri
,
true
);
})).
then
(
hashedRemotes
=>
{
/* __GDPR__
"workspace.hashedRemotes" : {
...
...
src/vs/workbench/contrib/stats/electron-browser/workspaceStatsService.ts
浏览文件 @
9c2cc80f
...
...
@@ -20,6 +20,7 @@ import Severity from 'vs/base/common/severity';
import
{
joinPath
}
from
'
vs/base/common/resources
'
;
import
{
registerSingleton
}
from
'
vs/platform/instantiation/common/extensions
'
;
import
{
IWorkspaceStatsService
,
Tags
}
from
'
vs/workbench/contrib/stats/common/workspaceStats
'
;
import
{
getHashedRemotesFromConfig
}
from
'
vs/workbench/contrib/stats/electron-browser/workspaceStats
'
;
const
DISABLE_WORKSPACE_PROMPT_KEY
=
'
workspaces.dontPromptToOpen
'
;
...
...
@@ -136,6 +137,20 @@ export class WorkspaceStatsService implements IWorkspaceStatsService {
return
workspaceId
;
}
getHashedRemotesFromUri
(
workspaceUri
:
URI
,
stripEndingDotGit
:
boolean
=
false
):
Promise
<
string
[]
>
{
const
path
=
workspaceUri
.
path
;
const
uri
=
workspaceUri
.
with
({
path
:
`
${
path
!==
'
/
'
?
path
:
''
}
/.git/config`
});
return
this
.
fileService
.
exists
(
uri
).
then
(
exists
=>
{
if
(
!
exists
)
{
return
[];
}
return
this
.
textFileService
.
read
(
uri
,
{
acceptTextOnly
:
true
}).
then
(
content
=>
getHashedRemotesFromConfig
(
content
.
value
,
stripEndingDotGit
),
err
=>
[]
// ignore missing or binary file
);
});
}
/* __GDPR__FRAGMENT__
"WorkspaceTags" : {
"workbench.filesToOpenOrCreate" : { "classification": "SystemMetaData", "purpose": "FeatureInsight", "isMeasurement": true },
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录