Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
b565c422
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,发现更多精彩内容 >>
提交
b565c422
编写于
1月 04, 2021
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add find all references command for JS/TS
Fixes #66150
上级
0f9ee988
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
163 addition
and
1 deletion
+163
-1
extensions/typescript-language-features/package.json
extensions/typescript-language-features/package.json
+46
-0
extensions/typescript-language-features/package.nls.json
extensions/typescript-language-features/package.nls.json
+2
-1
extensions/typescript-language-features/src/languageFeatures/fileReferences.ts
...-language-features/src/languageFeatures/fileReferences.ts
+94
-0
extensions/typescript-language-features/src/languageProvider.ts
...ions/typescript-language-features/src/languageProvider.ts
+1
-0
extensions/typescript-language-features/src/protocol.d.ts
extensions/typescript-language-features/src/protocol.d.ts
+18
-0
extensions/typescript-language-features/src/typescriptService.ts
...ons/typescript-language-features/src/typescriptService.ts
+1
-0
extensions/typescript-language-features/src/utils/api.ts
extensions/typescript-language-features/src/utils/api.ts
+1
-0
未找到文件。
extensions/typescript-language-features/package.json
浏览文件 @
b565c422
...
...
@@ -49,6 +49,7 @@
"onCommand:workbench.action.tasks.runTask"
,
"onCommand:_typescript.configurePlugin"
,
"onCommand:_typescript.learnMoreAboutRefactorings"
,
"onCommand:typescript.fileReferences"
,
"onLanguage:jsonc"
],
"main"
:
"./out/extension"
,
...
...
@@ -961,6 +962,11 @@
"command"
:
"typescript.restartTsServer"
,
"title"
:
"%typescript.restartTsServer%"
,
"category"
:
"TypeScript"
},
{
"command"
:
"typescript.findAllFileReferences"
,
"title"
:
"%typescript.findAllFileReferences%"
,
"category"
:
"TypeScript"
}
],
"menus"
:
{
...
...
@@ -1008,6 +1014,46 @@
{
"command"
:
"typescript.restartTsServer"
,
"when"
:
"typescript.isManagedFile"
},
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && typescript.isManagedFile"
}
],
"explorer/context"
:
[
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && resourceLangId == javascript"
},
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && resourceLangId == javascriptreact"
},
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && resourceLangId == typescript"
},
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && resourceLangId == typescriptreact"
}
],
"editor/title/context"
:
[
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && resourceLangId == javascript"
},
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && resourceLangId == javascriptreact"
},
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && resourceLangId == typescript"
},
{
"command"
:
"typescript.findAllFileReferences"
,
"when"
:
"tsSupportsFileReferences && resourceLangId == typescriptreact"
}
]
},
...
...
extensions/typescript-language-features/package.nls.json
浏览文件 @
b565c422
...
...
@@ -135,5 +135,6 @@
"codeActions.refactor.rewrite.parameters.toDestructured.title"
:
"Convert parameters to destructured object"
,
"codeActions.refactor.rewrite.property.generateAccessors.title"
:
"Generate accessors"
,
"codeActions.refactor.rewrite.property.generateAccessors.description"
:
"Generate 'get' and 'set' accessors"
,
"codeActions.source.organizeImports.title"
:
"Organize imports"
"codeActions.source.organizeImports.title"
:
"Organize imports"
,
"typescript.findAllFileReferences"
:
"Find File References"
}
extensions/typescript-language-features/src/languageFeatures/fileReferences.ts
0 → 100644
浏览文件 @
b565c422
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
*
as
vscode
from
'
vscode
'
;
import
*
as
nls
from
'
vscode-nls
'
;
import
{
Command
,
CommandManager
}
from
'
../commands/commandManager
'
;
import
{
ITypeScriptServiceClient
}
from
'
../typescriptService
'
;
import
API
from
'
../utils/api
'
;
import
{
isSupportedLanguageMode
}
from
'
../utils/languageModeIds
'
;
import
*
as
typeConverters
from
'
../utils/typeConverters
'
;
const
localize
=
nls
.
loadMessageBundle
();
class
FileReferencesCommand
implements
Command
{
public
static
readonly
context
=
'
tsSupportsFileReferences
'
;
public
static
readonly
minVersion
=
API
.
v420
;
public
readonly
id
=
'
typescript.findAllFileReferences
'
;
public
constructor
(
private
readonly
client
:
ITypeScriptServiceClient
)
{
}
public
async
execute
(
resource
?:
vscode
.
Uri
)
{
if
(
this
.
client
.
apiVersion
.
lt
(
FileReferencesCommand
.
minVersion
))
{
vscode
.
window
.
showErrorMessage
(
localize
(
'
error.unsupportedVersion
'
,
"
Find file references failed. Requires TypeScript 4.2+.
"
));
return
;
}
if
(
!
resource
)
{
resource
=
vscode
.
window
.
activeTextEditor
?.
document
.
uri
;
}
if
(
!
resource
)
{
vscode
.
window
.
showErrorMessage
(
localize
(
'
error.noResource
'
,
"
Find file references failed. No resource provided.
"
));
return
;
}
const
document
=
await
vscode
.
workspace
.
openTextDocument
(
resource
);
if
(
!
isSupportedLanguageMode
(
document
))
{
vscode
.
window
.
showErrorMessage
(
localize
(
'
error.unsupportedLanguage
'
,
"
Find file references failed. Unsupported file type.
"
));
return
;
}
const
openedFiledPath
=
this
.
client
.
toOpenedFilePath
(
document
);
if
(
!
openedFiledPath
)
{
vscode
.
window
.
showErrorMessage
(
localize
(
'
error.unknownFile
'
,
"
Find file references failed. Unknown file type.
"
));
return
;
}
await
vscode
.
window
.
withProgress
({
location
:
vscode
.
ProgressLocation
.
Window
,
title
:
localize
(
'
progress.title
'
,
"
Finding file references
"
)
},
async
(
_progress
,
token
)
=>
{
const
response
=
await
this
.
client
.
execute
(
'
fileReferences
'
,
{
file
:
openedFiledPath
},
token
);
if
(
response
.
type
!==
'
response
'
||
!
response
.
body
)
{
return
;
}
const
locations
:
vscode
.
Location
[]
=
response
.
body
.
refs
.
map
(
reference
=>
typeConverters
.
Location
.
fromTextSpan
(
this
.
client
.
toResource
(
reference
.
file
),
reference
));
const
config
=
vscode
.
workspace
.
getConfiguration
(
'
references
'
);
const
existingSetting
=
config
.
get
(
'
preferredLocation
'
,
undefined
);
await
config
.
update
(
'
preferredLocation
'
,
'
view
'
);
try
{
await
vscode
.
commands
.
executeCommand
(
'
editor.action.showReferences
'
,
resource
,
new
vscode
.
Position
(
0
,
0
),
locations
);
}
finally
{
await
config
.
update
(
'
preferredLocation
'
,
existingSetting
);
}
});
}
}
export
function
register
(
client
:
ITypeScriptServiceClient
,
commandManager
:
CommandManager
)
{
function
updateContext
()
{
vscode
.
commands
.
executeCommand
(
'
setContext
'
,
FileReferencesCommand
.
context
,
client
.
apiVersion
.
gte
(
FileReferencesCommand
.
minVersion
));
}
updateContext
();
commandManager
.
register
(
new
FileReferencesCommand
(
client
));
return
client
.
onTsServerStarted
(()
=>
updateContext
());
}
extensions/typescript-language-features/src/languageProvider.ts
浏览文件 @
b565c422
...
...
@@ -63,6 +63,7 @@ export default class LanguageProvider extends Disposable {
import
(
'
./languageFeatures/directiveCommentCompletions
'
).
then
(
provider
=>
this
.
_register
(
provider
.
register
(
selector
,
this
.
client
))),
import
(
'
./languageFeatures/documentHighlight
'
).
then
(
provider
=>
this
.
_register
(
provider
.
register
(
selector
,
this
.
client
))),
import
(
'
./languageFeatures/documentSymbol
'
).
then
(
provider
=>
this
.
_register
(
provider
.
register
(
selector
,
this
.
client
,
cachedResponse
))),
import
(
'
./languageFeatures/fileReferences
'
).
then
(
provider
=>
this
.
_register
(
provider
.
register
(
this
.
client
,
this
.
commandManager
))),
import
(
'
./languageFeatures/folding
'
).
then
(
provider
=>
this
.
_register
(
provider
.
register
(
selector
,
this
.
client
))),
import
(
'
./languageFeatures/formatting
'
).
then
(
provider
=>
this
.
_register
(
provider
.
register
(
selector
,
this
.
description
.
id
,
this
.
client
,
this
.
fileConfigurationManager
))),
import
(
'
./languageFeatures/hover
'
).
then
(
provider
=>
this
.
_register
(
provider
.
register
(
selector
,
this
.
client
))),
...
...
extensions/typescript-language-features/src/protocol.d.ts
浏览文件 @
b565c422
...
...
@@ -9,4 +9,22 @@ declare module 'typescript/lib/protocol' {
interface
Response
{
readonly
_serverType
?:
ServerType
;
}
interface
FileReferencesRequest
extends
FileRequest
{
command
:
CommandTypes
.
FileReferences
;
}
interface
FileReferencesResponseBody
{
/**
* The file locations referencing the symbol.
*/
refs
:
readonly
ReferencesResponseItem
[];
/**
* The name of the symbol.
*/
symbolName
:
string
;
}
interface
FileReferencesResponse
extends
Response
{
body
?:
FileReferencesResponseBody
;
}
}
extensions/typescript-language-features/src/typescriptService.ts
浏览文件 @
b565c422
...
...
@@ -68,6 +68,7 @@ interface StandardTsServerRequests {
'
prepareCallHierarchy
'
:
[
Proto
.
FileLocationRequestArgs
,
Proto
.
PrepareCallHierarchyResponse
];
'
provideCallHierarchyIncomingCalls
'
:
[
Proto
.
FileLocationRequestArgs
,
Proto
.
ProvideCallHierarchyIncomingCallsResponse
];
'
provideCallHierarchyOutgoingCalls
'
:
[
Proto
.
FileLocationRequestArgs
,
Proto
.
ProvideCallHierarchyOutgoingCallsResponse
];
'
fileReferences
'
:
[
Proto
.
FileRequestArgs
,
Proto
.
FileReferencesResponse
];
}
interface
NoResponseTsServerRequests
{
...
...
extensions/typescript-language-features/src/utils/api.ts
浏览文件 @
b565c422
...
...
@@ -34,6 +34,7 @@ export default class API {
public
static
readonly
v390
=
API
.
fromSimpleString
(
'
3.9.0
'
);
public
static
readonly
v400
=
API
.
fromSimpleString
(
'
4.0.0
'
);
public
static
readonly
v401
=
API
.
fromSimpleString
(
'
4.0.1
'
);
public
static
readonly
v420
=
API
.
fromSimpleString
(
'
4.2.0
'
);
public
static
fromVersionString
(
versionString
:
string
):
API
{
let
version
=
semver
.
valid
(
versionString
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录