Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徽霖
Vscode
提交
4edf8767
V
Vscode
项目概览
徽霖
/
Vscode
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
Vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4edf8767
编写于
10月 07, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
loosen all caps camel case filters
fixes #13300
上级
428d4768
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
6 deletion
+29
-6
src/vs/base/common/filters.ts
src/vs/base/common/filters.ts
+29
-6
未找到文件。
src/vs/base/common/filters.ts
浏览文件 @
4edf8767
...
...
@@ -179,13 +179,16 @@ function _matchesCamelCase(word: string, camelCaseWord: string, i: number, j: nu
}
}
interface
ICamelCaseAnalysis
{
upperPercent
:
number
;
lowerPercent
:
number
;
alphaPercent
:
number
;
numericPercent
:
number
;
}
// Heuristic to avoid computing camel case matcher for words that don't
// look like camelCaseWords.
function
isCamelCaseWord
(
word
:
string
):
boolean
{
if
(
word
.
length
>
60
)
{
return
false
;
}
function
analyzeCamelCaseWord
(
word
:
string
):
ICamelCaseAnalysis
{
let
upper
=
0
,
lower
=
0
,
alpha
=
0
,
numeric
=
0
,
code
=
0
;
for
(
let
i
=
0
;
i
<
word
.
length
;
i
++
)
{
...
...
@@ -202,6 +205,16 @@ function isCamelCaseWord(word: string): boolean {
let
alphaPercent
=
alpha
/
word
.
length
;
let
numericPercent
=
numeric
/
word
.
length
;
return
{
upperPercent
,
lowerPercent
,
alphaPercent
,
numericPercent
};
}
function
isUpperCaseWord
(
analysis
:
ICamelCaseAnalysis
):
boolean
{
const
{
upperPercent
,
lowerPercent
,
alphaPercent
,
numericPercent
}
=
analysis
;
return
lowerPercent
===
0
&&
upperPercent
>
0.6
;
}
function
isCamelCaseWord
(
analysis
:
ICamelCaseAnalysis
):
boolean
{
const
{
upperPercent
,
lowerPercent
,
alphaPercent
,
numericPercent
}
=
analysis
;
return
lowerPercent
>
0.2
&&
upperPercent
<
0.8
&&
alphaPercent
>
0.6
&&
numericPercent
<
0.2
;
}
...
...
@@ -234,10 +247,20 @@ export function matchesCamelCase(word: string, camelCaseWord: string): IMatch[]
return
null
;
}
if
(
!
isCamelCaseWord
(
camelCaseWord
)
)
{
if
(
camelCaseWord
.
length
>
60
)
{
return
null
;
}
const
analysis
=
analyzeCamelCaseWord
(
camelCaseWord
);
if
(
!
isCamelCaseWord
(
analysis
))
{
if
(
!
isUpperCaseWord
(
analysis
))
{
return
null
;
}
camelCaseWord
=
camelCaseWord
.
toLowerCase
();
}
let
result
:
IMatch
[]
=
null
;
let
i
=
0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录