Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
07d13825
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,发现更多精彩内容 >>
提交
07d13825
编写于
12月 11, 2015
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add cache for scorer to speed up things
上级
3fe08d6a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
25 addition
and
5 deletion
+25
-5
src/vs/base/common/scorer.ts
src/vs/base/common/scorer.ts
+10
-1
src/vs/base/test/common/scorer.test.ts
src/vs/base/test/common/scorer.test.ts
+8
-0
src/vs/workbench/parts/search/browser/openAnythingHandler.ts
src/vs/workbench/parts/search/browser/openAnythingHandler.ts
+7
-4
未找到文件。
src/vs/base/common/scorer.ts
浏览文件 @
07d13825
...
...
@@ -31,13 +31,18 @@
* Start of word/path bonus: 7
* Start of string bonus: 8
*/
export
function
score
(
target
:
string
,
query
:
string
):
number
{
export
function
score
(
target
:
string
,
query
:
string
,
cache
?:
{[
id
:
string
]:
number
}
):
number
{
let
score
=
0
;
if
(
!
target
||
!
query
)
{
return
score
;
// return early if target or query are undefined
}
const
cached
=
cache
&&
cache
[
target
+
query
];
if
(
typeof
cached
===
'
number
'
)
{
return
cached
;
}
const
queryLen
=
query
.
length
;
const
targetLower
=
target
.
toLowerCase
();
const
queryLower
=
query
.
toLowerCase
();
...
...
@@ -77,6 +82,10 @@ export function score(target: string, query: string): number {
index
++
;
}
if
(
cache
)
{
cache
[
target
+
query
]
=
score
;
}
return
score
;
}
...
...
src/vs/base/test/common/scorer.test.ts
浏览文件 @
07d13825
...
...
@@ -32,4 +32,12 @@ suite('Scorer', () => {
let
sortedScores
=
scores
.
sort
();
assert
.
deepEqual
(
scores
.
reverse
(),
sortedScores
);
});
test
(
"
cache
"
,
function
()
{
const
cache
=
Object
.
create
(
null
);
scorer
.
score
(
'
target
'
,
'
query
'
,
cache
);
assert
.
ok
(
Object
.
getOwnPropertyNames
(
cache
).
length
>
0
);
});
});
\ No newline at end of file
src/vs/workbench/parts/search/browser/openAnythingHandler.ts
浏览文件 @
07d13825
...
...
@@ -45,6 +45,7 @@ export class OpenAnythingHandler extends QuickOpenHandler {
private
delayer
:
ThrottledDelayer
<
QuickOpenModel
>
;
private
pendingSearch
:
TPromise
<
QuickOpenModel
>
;
private
isClosed
:
boolean
;
private
scorerCache
:
{[
key
:
string
]:
number
};
private
fuzzyMatchingEnabled
:
boolean
;
private
configurationListenerUnbind
:
ListenerUnbind
;
...
...
@@ -64,6 +65,7 @@ export class OpenAnythingHandler extends QuickOpenHandler {
this
.
openFileHandler
.
setStandalone
(
false
);
this
.
resultsToSearchCache
=
Object
.
create
(
null
);
this
.
scorerCache
=
Object
.
create
(
null
);
this
.
delayer
=
new
ThrottledDelayer
<
QuickOpenModel
>
(
OpenAnythingHandler
.
SEARCH_DELAY
);
this
.
updateFuzzyMatching
(
contextService
.
getOptions
().
globalSettings
.
settings
);
...
...
@@ -293,15 +295,15 @@ export class OpenAnythingHandler extends QuickOpenHandler {
// Fuzzy scoring is special
if
(
enableFuzzyScoring
)
{
const
labelAScore
=
scorer
.
score
(
elementA
.
getLabel
(),
lookFor
);
const
labelBScore
=
scorer
.
score
(
elementB
.
getLabel
(),
lookFor
);
const
labelAScore
=
scorer
.
score
(
elementA
.
getLabel
(),
lookFor
,
this
.
scorerCache
);
const
labelBScore
=
scorer
.
score
(
elementB
.
getLabel
(),
lookFor
,
this
.
scorerCache
);
if
(
labelAScore
!==
labelBScore
)
{
return
labelAScore
>
labelBScore
?
-
1
:
1
;
}
const
descriptionAScore
=
scorer
.
score
(
elementA
.
getDescription
(),
lookFor
);
const
descriptionBScore
=
scorer
.
score
(
elementB
.
getDescription
(),
lookFor
);
const
descriptionAScore
=
scorer
.
score
(
elementA
.
getDescription
(),
lookFor
,
this
.
scorerCache
);
const
descriptionBScore
=
scorer
.
score
(
elementB
.
getDescription
(),
lookFor
,
this
.
scorerCache
);
if
(
descriptionAScore
!==
descriptionBScore
)
{
return
descriptionAScore
>
descriptionBScore
?
-
1
:
1
;
...
...
@@ -329,6 +331,7 @@ export class OpenAnythingHandler extends QuickOpenHandler {
// Clear Cache
this
.
resultsToSearchCache
=
Object
.
create
(
null
);
this
.
scorerCache
=
Object
.
create
(
null
);
// Propagate
this
.
openSymbolHandler
.
onClose
(
canceled
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录