Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
fabc6276
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
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,发现更多精彩内容 >>
提交
fabc6276
编写于
11月 19, 2018
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Move getSymbolRange out of class
上级
1f1618d2
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
30 addition
and
26 deletion
+30
-26
extensions/typescript-language-features/src/features/baseCodeLensProvider.ts
...pt-language-features/src/features/baseCodeLensProvider.ts
+24
-20
extensions/typescript-language-features/src/features/implementationsCodeLens.ts
...language-features/src/features/implementationsCodeLens.ts
+3
-3
extensions/typescript-language-features/src/features/referencesCodeLens.ts
...ript-language-features/src/features/referencesCodeLens.ts
+3
-3
未找到文件。
extensions/typescript-language-features/src/features/baseCodeLensProvider.ts
浏览文件 @
fabc6276
...
...
@@ -105,27 +105,31 @@ export abstract class TypeScriptBaseCodeLensProvider implements vscode.CodeLensP
(
item
.
childItems
||
[]).
forEach
(
child
=>
this
.
walkNavTree
(
document
,
child
,
item
,
results
));
}
protected
getSymbolRange
(
document
:
vscode
.
TextDocument
,
item
:
Proto
.
NavigationTree
):
vscode
.
Range
|
null
{
// TS 3.0+ provides a span for just the symbol
if
(
item
.
nameSpan
)
{
return
typeConverters
.
Range
.
fromTextSpan
(
item
.
nameSpan
);
}
// In older versions, we have to calculate this manually. See #23924
const
span
=
item
.
spans
&&
item
.
spans
[
0
];
if
(
!
span
)
{
return
null
;
}
}
const
range
=
typeConverters
.
Range
.
fromTextSpan
(
span
);
const
text
=
document
.
getText
(
range
);
export
function
getSymbolRange
(
document
:
vscode
.
TextDocument
,
item
:
Proto
.
NavigationTree
):
vscode
.
Range
|
null
{
// TS 3.0+ provides a span for just the symbol
if
(
item
.
nameSpan
)
{
return
typeConverters
.
Range
.
fromTextSpan
(
item
.
nameSpan
);
}
const
identifierMatch
=
new
RegExp
(
`^(.*?(\\b|\\W))
${
escapeRegExp
(
item
.
text
||
''
)}
(\\b|\\W)`
,
'
gm
'
);
const
match
=
identifierMatch
.
exec
(
text
);
const
prefixLength
=
match
?
match
.
index
+
match
[
1
].
length
:
0
;
const
startOffset
=
document
.
offsetAt
(
new
vscode
.
Position
(
range
.
start
.
line
,
range
.
start
.
character
))
+
prefixLength
;
return
new
vscode
.
Range
(
document
.
positionAt
(
startOffset
),
document
.
positionAt
(
startOffset
+
item
.
text
.
length
));
// In older versions, we have to calculate this manually. See #23924
const
span
=
item
.
spans
&&
item
.
spans
[
0
];
if
(
!
span
)
{
return
null
;
}
const
range
=
typeConverters
.
Range
.
fromTextSpan
(
span
);
const
text
=
document
.
getText
(
range
);
const
identifierMatch
=
new
RegExp
(
`^(.*?(\\b|\\W))
${
escapeRegExp
(
item
.
text
||
''
)}
(\\b|\\W)`
,
'
gm
'
);
const
match
=
identifierMatch
.
exec
(
text
);
const
prefixLength
=
match
?
match
.
index
+
match
[
1
].
length
:
0
;
const
startOffset
=
document
.
offsetAt
(
new
vscode
.
Position
(
range
.
start
.
line
,
range
.
start
.
character
))
+
prefixLength
;
return
new
vscode
.
Range
(
document
.
positionAt
(
startOffset
),
document
.
positionAt
(
startOffset
+
item
.
text
.
length
));
}
extensions/typescript-language-features/src/features/implementationsCodeLens.ts
浏览文件 @
fabc6276
...
...
@@ -10,7 +10,7 @@ import * as PConst from '../protocol.const';
import
{
ITypeScriptServiceClient
}
from
'
../typescriptService
'
;
import
API
from
'
../utils/api
'
;
import
{
ConfigurationDependentRegistration
,
VersionDependentRegistration
}
from
'
../utils/dependentRegistration
'
;
import
{
Cached
NavTreeResponse
,
ReferencesCodeLens
,
TypeScriptBaseCodeLensProvider
}
from
'
./baseCodeLensProvider
'
;
import
{
Cached
Response
,
ReferencesCodeLens
,
TypeScriptBaseCodeLensProvider
,
getSymbolRange
}
from
'
./baseCodeLensProvider
'
;
const
localize
=
nls
.
loadMessageBundle
();
export
default
class
TypeScriptImplementationsCodeLensProvider
extends
TypeScriptBaseCodeLensProvider
{
...
...
@@ -58,7 +58,7 @@ export default class TypeScriptImplementationsCodeLensProvider extends TypeScrip
):
vscode
.
Range
|
null
{
switch
(
item
.
kind
)
{
case
PConst
.
Kind
.
interface
:
return
super
.
getSymbolRange
(
document
,
item
);
return
getSymbolRange
(
document
,
item
);
case
PConst
.
Kind
.
class
:
case
PConst
.
Kind
.
memberFunction
:
...
...
@@ -66,7 +66,7 @@ export default class TypeScriptImplementationsCodeLensProvider extends TypeScrip
case
PConst
.
Kind
.
memberGetAccessor
:
case
PConst
.
Kind
.
memberSetAccessor
:
if
(
item
.
kindModifiers
.
match
(
/
\b
abstract
\b
/g
))
{
return
super
.
getSymbolRange
(
document
,
item
);
return
getSymbolRange
(
document
,
item
);
}
break
;
}
...
...
extensions/typescript-language-features/src/features/referencesCodeLens.ts
浏览文件 @
fabc6276
...
...
@@ -10,7 +10,7 @@ import * as PConst from '../protocol.const';
import
{
ITypeScriptServiceClient
}
from
'
../typescriptService
'
;
import
API
from
'
../utils/api
'
;
import
{
ConfigurationDependentRegistration
,
VersionDependentRegistration
}
from
'
../utils/dependentRegistration
'
;
import
{
Cached
NavTreeResponse
,
ReferencesCodeLens
,
TypeScriptBaseCodeLensProvider
}
from
'
./baseCodeLensProvider
'
;
import
{
Cached
Response
,
ReferencesCodeLens
,
TypeScriptBaseCodeLensProvider
,
getSymbolRange
}
from
'
./baseCodeLensProvider
'
;
const
localize
=
nls
.
loadMessageBundle
();
...
...
@@ -51,7 +51,7 @@ class TypeScriptReferencesCodeLensProvider extends TypeScriptBaseCodeLensProvide
parent
:
Proto
.
NavigationTree
|
null
):
vscode
.
Range
|
null
{
if
(
parent
&&
parent
.
kind
===
PConst
.
Kind
.
enum
)
{
return
super
.
getSymbolRange
(
document
,
item
);
return
getSymbolRange
(
document
,
item
);
}
switch
(
item
.
kind
)
{
...
...
@@ -79,7 +79,7 @@ class TypeScriptReferencesCodeLensProvider extends TypeScriptBaseCodeLensProvide
case
PConst
.
Kind
.
interface
:
case
PConst
.
Kind
.
type
:
case
PConst
.
Kind
.
enum
:
return
super
.
getSymbolRange
(
document
,
item
);
return
getSymbolRange
(
document
,
item
);
}
return
null
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录