Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
24bf68e3
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,发现更多精彩内容 >>
提交
24bf68e3
编写于
6月 04, 2018
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use vscode namespace
上级
047b88c3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
37 addition
and
37 deletion
+37
-37
extensions/typescript-language-features/src/languageProvider.ts
...ions/typescript-language-features/src/languageProvider.ts
+37
-37
未找到文件。
extensions/typescript-language-features/src/languageProvider.ts
浏览文件 @
24bf68e3
...
...
@@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import
{
languages
,
workspace
,
Diagnostic
,
Disposable
,
Uri
,
TextDocument
,
DocumentFilter
,
DiagnosticSeverity
}
from
'
vscode
'
;
import
*
as
vscode
from
'
vscode
'
;
import
{
basename
}
from
'
path
'
;
import
TypeScriptServiceClient
from
'
./typescriptServiceClient
'
;
...
...
@@ -36,10 +36,10 @@ export default class LanguageProvider {
private
_validate
:
boolean
=
true
;
private
_enableSuggestionDiagnostics
:
boolean
=
true
;
private
readonly
disposables
:
Disposable
[]
=
[];
private
readonly
versionDependentDisposables
:
Disposable
[]
=
[];
private
readonly
disposables
:
vscode
.
Disposable
[]
=
[];
private
readonly
versionDependentDisposables
:
vscode
.
Disposable
[]
=
[];
private
foldingProviderRegistration
:
Disposable
|
undefined
=
void
0
;
private
foldingProviderRegistration
:
vscode
.
Disposable
|
undefined
=
void
0
;
private
readonly
renameHandler
:
UpdateImportsOnFileRenameHandler
;
constructor
(
...
...
@@ -58,7 +58,7 @@ export default class LanguageProvider {
this
.
diagnosticsManager
=
new
DiagnosticsManager
(
description
.
diagnosticOwner
);
workspace
.
onDidChangeConfiguration
(
this
.
configurationChanged
,
this
,
this
.
disposables
);
vscode
.
workspace
.
onDidChangeConfiguration
(
this
.
configurationChanged
,
this
,
this
.
disposables
);
this
.
configurationChanged
();
client
.
onReady
(
async
()
=>
{
...
...
@@ -68,7 +68,7 @@ export default class LanguageProvider {
this
.
renameHandler
=
new
UpdateImportsOnFileRenameHandler
(
this
.
client
,
this
.
bufferSyncSupport
,
this
.
fileConfigurationManager
,
async
uri
=>
{
try
{
const
doc
=
await
workspace
.
openTextDocument
(
uri
);
const
doc
=
await
vscode
.
workspace
.
openTextDocument
(
uri
);
return
this
.
handles
(
uri
,
doc
);
}
catch
{
return
false
;
...
...
@@ -87,7 +87,7 @@ export default class LanguageProvider {
}
@
memoize
private
get
documentSelector
():
DocumentFilter
[]
{
private
get
documentSelector
():
vscode
.
DocumentFilter
[]
{
const
documentSelector
=
[];
for
(
const
language
of
this
.
description
.
modeIds
)
{
for
(
const
scheme
of
fileSchemes
.
supportedSchemes
)
{
...
...
@@ -103,19 +103,19 @@ export default class LanguageProvider {
typingsStatus
:
TypingsStatus
):
Promise
<
void
>
{
const
selector
=
this
.
documentSelector
;
const
config
=
workspace
.
getConfiguration
(
this
.
id
);
const
config
=
vscode
.
workspace
.
getConfiguration
(
this
.
id
);
const
TypeScriptCompletionItemProvider
=
(
await
import
(
'
./features/completionItemProvider
'
)).
default
;
this
.
disposables
.
push
(
languages
.
registerCompletionItemProvider
(
selector
,
this
.
disposables
.
push
(
vscode
.
languages
.
registerCompletionItemProvider
(
selector
,
new
TypeScriptCompletionItemProvider
(
client
,
typingsStatus
,
this
.
fileConfigurationManager
,
commandManager
),
...
TypeScriptCompletionItemProvider
.
triggerCharacters
));
this
.
disposables
.
push
(
languages
.
registerCompletionItemProvider
(
selector
,
new
(
await
import
(
'
./features/directiveCommentCompletionProvider
'
)).
default
(
client
),
'
@
'
));
this
.
disposables
.
push
(
vscode
.
languages
.
registerCompletionItemProvider
(
selector
,
new
(
await
import
(
'
./features/directiveCommentCompletionProvider
'
)).
default
(
client
),
'
@
'
));
const
{
TypeScriptFormattingProvider
,
FormattingProviderManager
}
=
await
import
(
'
./features/formattingProvider
'
);
const
formattingProvider
=
new
TypeScriptFormattingProvider
(
client
,
this
.
fileConfigurationManager
);
formattingProvider
.
updateConfiguration
(
config
);
this
.
disposables
.
push
(
languages
.
registerOnTypeFormattingEditProvider
(
selector
,
formattingProvider
,
'
;
'
,
'
}
'
,
'
\n
'
));
this
.
disposables
.
push
(
vscode
.
languages
.
registerOnTypeFormattingEditProvider
(
selector
,
formattingProvider
,
'
;
'
,
'
}
'
,
'
\n
'
));
const
formattingProviderManager
=
new
FormattingProviderManager
(
this
.
description
.
id
,
formattingProvider
,
selector
);
formattingProviderManager
.
updateConfiguration
();
...
...
@@ -124,24 +124,24 @@ export default class LanguageProvider {
const
cachedResponse
=
new
CachedNavTreeResponse
();
this
.
disposables
.
push
(
languages
.
registerCompletionItemProvider
(
selector
,
new
(
await
import
(
'
./features/jsDocCompletionProvider
'
)).
default
(
client
,
commandManager
),
'
*
'
));
this
.
disposables
.
push
(
languages
.
registerHoverProvider
(
selector
,
new
(
await
import
(
'
./features/hoverProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
languages
.
registerDefinitionProvider
(
selector
,
new
(
await
import
(
'
./features/definitionProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
languages
.
registerDocumentHighlightProvider
(
selector
,
new
(
await
import
(
'
./features/documentHighlightProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
languages
.
registerReferenceProvider
(
selector
,
new
(
await
import
(
'
./features/referenceProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
languages
.
registerDocumentSymbolProvider
(
selector
,
new
(
await
import
(
'
./features/documentSymbolProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
vscode
.
languages
.
registerCompletionItemProvider
(
selector
,
new
(
await
import
(
'
./features/jsDocCompletionProvider
'
)).
default
(
client
,
commandManager
),
'
*
'
));
this
.
disposables
.
push
(
vscode
.
languages
.
registerHoverProvider
(
selector
,
new
(
await
import
(
'
./features/hoverProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
vscode
.
languages
.
registerDefinitionProvider
(
selector
,
new
(
await
import
(
'
./features/definitionProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
vscode
.
languages
.
registerDocumentHighlightProvider
(
selector
,
new
(
await
import
(
'
./features/documentHighlightProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
vscode
.
languages
.
registerReferenceProvider
(
selector
,
new
(
await
import
(
'
./features/referenceProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
vscode
.
languages
.
registerDocumentSymbolProvider
(
selector
,
new
(
await
import
(
'
./features/documentSymbolProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
languages
.
registerRenameProvider
(
selector
,
new
(
await
import
(
'
./features/renameProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
languages
.
registerCodeActionsProvider
(
selector
,
new
(
await
import
(
'
./features/quickFixProvider
'
)).
default
(
client
,
this
.
fileConfigurationManager
,
commandManager
,
this
.
diagnosticsManager
,
this
.
bufferSyncSupport
,
this
.
telemetryReporter
)));
this
.
disposables
.
push
(
vscode
.
languages
.
registerRenameProvider
(
selector
,
new
(
await
import
(
'
./features/renameProvider
'
)).
default
(
client
)));
this
.
disposables
.
push
(
vscode
.
languages
.
registerCodeActionsProvider
(
selector
,
new
(
await
import
(
'
./features/quickFixProvider
'
)).
default
(
client
,
this
.
fileConfigurationManager
,
commandManager
,
this
.
diagnosticsManager
,
this
.
bufferSyncSupport
,
this
.
telemetryReporter
)));
const
TypescriptSignatureHelpProvider
=
(
await
import
(
'
./features/signatureHelpProvider
'
)).
default
;
this
.
disposables
.
push
(
languages
.
registerSignatureHelpProvider
(
selector
,
new
TypescriptSignatureHelpProvider
(
client
),
...
TypescriptSignatureHelpProvider
.
triggerCharacters
));
this
.
disposables
.
push
(
vscode
.
languages
.
registerSignatureHelpProvider
(
selector
,
new
TypescriptSignatureHelpProvider
(
client
),
...
TypescriptSignatureHelpProvider
.
triggerCharacters
));
const
refactorProvider
=
new
(
await
import
(
'
./features/refactorProvider
'
)).
default
(
client
,
this
.
fileConfigurationManager
,
commandManager
);
this
.
disposables
.
push
(
languages
.
registerCodeActionsProvider
(
selector
,
refactorProvider
,
refactorProvider
.
metadata
));
this
.
disposables
.
push
(
vscode
.
languages
.
registerCodeActionsProvider
(
selector
,
refactorProvider
,
refactorProvider
.
metadata
));
await
this
.
initFoldingProvider
();
this
.
disposables
.
push
(
workspace
.
onDidChangeConfiguration
(
c
=>
{
this
.
disposables
.
push
(
vscode
.
workspace
.
onDidChangeConfiguration
(
c
=>
{
if
(
c
.
affectsConfiguration
(
foldingSetting
))
{
this
.
initFoldingProvider
();
}
...
...
@@ -153,21 +153,21 @@ export default class LanguageProvider {
const
referenceCodeLensProvider
=
new
(
await
import
(
'
./features/referencesCodeLensProvider
'
)).
default
(
client
,
this
.
description
.
id
,
cachedResponse
);
referenceCodeLensProvider
.
updateConfiguration
();
this
.
toUpdateOnConfigurationChanged
.
push
(
referenceCodeLensProvider
);
this
.
disposables
.
push
(
languages
.
registerCodeLensProvider
(
selector
,
referenceCodeLensProvider
));
this
.
disposables
.
push
(
vscode
.
languages
.
registerCodeLensProvider
(
selector
,
referenceCodeLensProvider
));
const
implementationCodeLensProvider
=
new
(
await
import
(
'
./features/implementationsCodeLensProvider
'
)).
default
(
client
,
this
.
description
.
id
,
cachedResponse
);
implementationCodeLensProvider
.
updateConfiguration
();
this
.
toUpdateOnConfigurationChanged
.
push
(
implementationCodeLensProvider
);
this
.
disposables
.
push
(
languages
.
registerCodeLensProvider
(
selector
,
implementationCodeLensProvider
));
this
.
disposables
.
push
(
vscode
.
languages
.
registerCodeLensProvider
(
selector
,
implementationCodeLensProvider
));
this
.
disposables
.
push
(
languages
.
registerWorkspaceSymbolProvider
(
new
(
await
import
(
'
./features/workspaceSymbolProvider
'
)).
default
(
client
,
this
.
description
.
modeIds
)));
this
.
disposables
.
push
(
vscode
.
languages
.
registerWorkspaceSymbolProvider
(
new
(
await
import
(
'
./features/workspaceSymbolProvider
'
)).
default
(
client
,
this
.
description
.
modeIds
)));
}
private
async
initFoldingProvider
():
Promise
<
void
>
{
let
enable
=
workspace
.
getConfiguration
().
get
(
foldingSetting
,
false
);
let
enable
=
vscode
.
workspace
.
getConfiguration
().
get
(
foldingSetting
,
false
);
if
(
enable
&&
this
.
client
.
apiVersion
.
has280Features
())
{
if
(
!
this
.
foldingProviderRegistration
)
{
this
.
foldingProviderRegistration
=
languages
.
registerFoldingRangeProvider
(
this
.
documentSelector
,
new
(
await
import
(
'
./features/foldingProvider
'
)).
default
(
this
.
client
));
this
.
foldingProviderRegistration
=
vscode
.
languages
.
registerFoldingRangeProvider
(
this
.
documentSelector
,
new
(
await
import
(
'
./features/foldingProvider
'
)).
default
(
this
.
client
));
}
}
else
{
if
(
this
.
foldingProviderRegistration
)
{
...
...
@@ -178,7 +178,7 @@ export default class LanguageProvider {
}
private
configurationChanged
():
void
{
const
config
=
workspace
.
getConfiguration
(
this
.
id
,
null
);
const
config
=
vscode
.
workspace
.
getConfiguration
(
this
.
id
,
null
);
this
.
updateValidate
(
config
.
get
(
validateSetting
,
true
));
this
.
updateSuggestionDiagnostics
(
config
.
get
(
suggestionSetting
,
true
));
...
...
@@ -187,7 +187,7 @@ export default class LanguageProvider {
}
}
public
handles
(
resource
:
Uri
,
doc
:
TextDocument
):
boolean
{
public
handles
(
resource
:
vscode
.
Uri
,
doc
:
vscode
.
TextDocument
):
boolean
{
if
(
doc
&&
this
.
description
.
modeIds
.
indexOf
(
doc
.
languageId
)
>=
0
)
{
return
true
;
}
...
...
@@ -240,7 +240,7 @@ export default class LanguageProvider {
this
.
registerVersionDependentProviders
();
}
public
getErr
(
resources
:
Uri
[])
{
public
getErr
(
resources
:
vscode
.
Uri
[])
{
this
.
bufferSyncSupport
.
getErr
(
resources
);
}
...
...
@@ -253,16 +253,16 @@ export default class LanguageProvider {
const
selector
=
this
.
documentSelector
;
if
(
this
.
client
.
apiVersion
.
has220Features
())
{
this
.
versionDependentDisposables
.
push
(
languages
.
registerImplementationProvider
(
selector
,
new
(
await
import
(
'
./features/implementationProvider
'
)).
default
(
this
.
client
)));
this
.
versionDependentDisposables
.
push
(
vscode
.
languages
.
registerImplementationProvider
(
selector
,
new
(
await
import
(
'
./features/implementationProvider
'
)).
default
(
this
.
client
)));
}
if
(
this
.
client
.
apiVersion
.
has213Features
())
{
this
.
versionDependentDisposables
.
push
(
languages
.
registerTypeDefinitionProvider
(
selector
,
new
(
await
import
(
'
./features/typeDefinitionProvider
'
)).
default
(
this
.
client
)));
this
.
versionDependentDisposables
.
push
(
vscode
.
languages
.
registerTypeDefinitionProvider
(
selector
,
new
(
await
import
(
'
./features/typeDefinitionProvider
'
)).
default
(
this
.
client
)));
}
if
(
this
.
client
.
apiVersion
.
has280Features
())
{
const
organizeImportsProvider
=
new
(
await
import
(
'
./features/organizeImports
'
)).
OrganizeImportsCodeActionProvider
(
this
.
client
,
this
.
commandManager
,
this
.
fileConfigurationManager
);
this
.
versionDependentDisposables
.
push
(
languages
.
registerCodeActionsProvider
(
selector
,
organizeImportsProvider
,
organizeImportsProvider
.
metadata
));
this
.
versionDependentDisposables
.
push
(
vscode
.
languages
.
registerCodeActionsProvider
(
selector
,
organizeImportsProvider
,
organizeImportsProvider
.
metadata
));
}
}
...
...
@@ -270,13 +270,13 @@ export default class LanguageProvider {
this
.
bufferSyncSupport
.
requestAllDiagnostics
();
}
public
diagnosticsReceived
(
diagnosticsKind
:
DiagnosticKind
,
file
:
Uri
,
diagnostics
:
(
Diagnostic
&
{
reportUnnecessary
:
any
})[]):
void
{
const
config
=
workspace
.
getConfiguration
(
this
.
id
,
file
);
public
diagnosticsReceived
(
diagnosticsKind
:
DiagnosticKind
,
file
:
vscode
.
Uri
,
diagnostics
:
(
vscode
.
Diagnostic
&
{
reportUnnecessary
:
any
})[]):
void
{
const
config
=
vscode
.
workspace
.
getConfiguration
(
this
.
id
,
file
);
const
reportUnnecessary
=
config
.
get
<
boolean
>
(
'
showUnused
'
,
true
);
this
.
diagnosticsManager
.
diagnosticsReceived
(
diagnosticsKind
,
file
,
diagnostics
.
filter
(
diag
=>
{
if
(
!
reportUnnecessary
)
{
diag
.
customTags
=
undefined
;
if
(
diag
.
reportUnnecessary
&&
diag
.
severity
===
DiagnosticSeverity
.
Hint
)
{
if
(
diag
.
reportUnnecessary
&&
diag
.
severity
===
vscode
.
DiagnosticSeverity
.
Hint
)
{
return
false
;
}
}
...
...
@@ -284,7 +284,7 @@ export default class LanguageProvider {
}));
}
public
configFileDiagnosticsReceived
(
file
:
Uri
,
diagnostics
:
Diagnostic
[]):
void
{
public
configFileDiagnosticsReceived
(
file
:
vscode
.
Uri
,
diagnostics
:
vscode
.
Diagnostic
[]):
void
{
this
.
diagnosticsManager
.
configFileDiagnosticsReceived
(
file
,
diagnostics
);
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录