提交 65b9a0de 编写于 作者: M Matt Bierner

Autoshow suggestions for jsdoc param

Fixes #34853
上级 5ff6747e
......@@ -190,13 +190,21 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP
}
if (context.triggerCharacter === '/') {
// make sure we are in something that looks line an import path
// make sure we are in something that looks like an import path
const line = document.lineAt(position.line).text.slice(0, position.character);
if (!line.match(/^import .+? from\s*["'][^'"]*$/) && !line.match(/\b(import|require)\(['"][^'"]*$/)) {
return Promise.resolve<CompletionItem[]>([]);
}
}
if (context.triggerCharacter === '@') {
// make sure we are in something that looks like the start of a jsdoc comment
const line = document.lineAt(position.line).text.slice(0, position.character);
if (!line.match(/^\s*\*[ ]?@/) && !line.match(/\/\*\*+[ ]?@/)) {
return Promise.resolve<CompletionItem[]>([]);
}
}
const args: CompletionsRequestArgs = vsPositionToTsFileLocation(file, position);
return this.client.execute('completions', args, token).then((msg) => {
// This info has to come from the tsserver. See https://github.com/Microsoft/TypeScript/issues/2831
......
......@@ -242,7 +242,7 @@ class LanguageProvider {
const completionItemProvider = new (await import('./features/completionItemProvider')).default(client, this.typingsStatus);
completionItemProvider.updateConfiguration();
this.toUpdateOnConfigurationChanged.push(completionItemProvider);
this.disposables.push(languages.registerCompletionItemProvider(selector, completionItemProvider, '.', '"', '\'', '/'));
this.disposables.push(languages.registerCompletionItemProvider(selector, completionItemProvider, '.', '"', '\'', '/', '@'));
this.disposables.push(languages.registerCompletionItemProvider(selector, new (await import('./features/directiveCommentCompletionProvider')).default(client), '@'));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册