本文整理汇总了TypeScript中vscode.languages.registerCompletionItemProvider方法的典型用法代码示例。如果您正苦于以下问题:TypeScript languages.registerCompletionItemProvider方法的具体用法?TypeScript languages.registerCompletionItemProvider怎么用?TypeScript languages.registerCompletionItemProvider使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode.languages
的用法示例。
在下文中一共展示了languages.registerCompletionItemProvider方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: activate
export function activate(context: vscode.ExtensionContext): any {
let validator = new PHPValidationProvider(context.workspaceState);
validator.activate(context.subscriptions);
// add providers
context.subscriptions.push(vscode.languages.registerCompletionItemProvider('php', new PHPCompletionItemProvider(), '.', '$'));
context.subscriptions.push(vscode.languages.registerHoverProvider('php', new PHPHoverProvider()));
context.subscriptions.push(vscode.languages.registerSignatureHelpProvider('php', new PHPSignatureHelpProvider(), '(', ','));
// need to set in the extension host as well as the completion provider uses it.
vscode.languages.setLanguageConfiguration('php', {
wordPattern: /(-?\d*\.\d\w*)|([^\-\`\~\!\@\#\%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g
});
}
示例2: activate
export function activate(context: ExtensionContext) {
const disposables: Disposable[] = [];
console.log("--STARTING CM EXTENSION--");
// console.log(cmConfig.currentWorkspace());
diagnosticCollection = languages.createDiagnosticCollection( "cm" );
// setup compiler Adapter
compilerAdapter = new cmCompilerAdapter( diagnosticCollection, cmConfig.cmOutputFilePath() );
// setup watcher
var cmWatcher = createCmWatcher();
var rsWatcher = createRsWatcher();
window.onDidChangeActiveTextEditor( (editor) => {
foldCopyright( editor );
} );
// createFileOpenWatcher();
createRsSaveWatcher();
// subscriptions
disposables.push(languages.registerDefinitionProvider(CM_MODE, new CMDefinitionProvider()));
if ( cmConfig.cmAutoComplete80Enabled() ) {
disposables.push(languages.registerCompletionItemProvider(CM_MODE, new CM80CompletionItemProvider(), '.' ) );
}
disposables.push( languages.registerDocumentSymbolProvider(CM_MODE, new CMFileSymbolProvider() ));
// disposables.push ( languages.registerWorkspaceSymbolProvider( new CMWorkspaceSymbolProvider() ));
// disposables.push( languages.registerCodeActionsProvider( CM_MODE, new CmCodeActionProvider() ));
disposables.push(languages.registerDocumentFormattingEditProvider(CM_MODE, new ClangDocumentFormattingEditProvider() ));
disposables.push(languages.registerHoverProvider( CM_MODE, new CMHoverProvider() ) );
disposables.push( window.registerTreeDataProvider( 'cmExplorer', new CmTreeDataProvider() ) );
if ( cmConfig.isDebug() ) {
// put experimental features here
// disposables.push( languages.registerSignatureHelpProvider( CM_MODE, new SignatureHelpProvider(), '(', ',' ) );
}
disposables.push(diagnosticCollection);
disposables.push( registerCommands( compilerAdapter ) );
context.subscriptions.push(...disposables);
}
示例3: activate
export function activate(context: ExtensionContext) {
// The server is implemented in node
let serverModule = context.asAbsolutePath( path.join('server', 'server.js') )
// The debug options for the server
let debugOptions = { execArgv: ["--nolazy", "--debug=6004"] };
// If the extension is launch in debug mode the debug server options are use
// Otherwise the run options are used
let serverOptions: ServerOptions = {
run : { module: serverModule, transport: TransportKind.ipc },
debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions }
}
// Options to control the language client
let clientOptions: LanguageClientOptions = {
documentSelector: ['pgsql'],
synchronize: {
// Synchronize the setting section 'languageServerExample' to the server
configurationSection: 'languageServerExample',
// Notify the server about file changes to '.clientrc files contain in the workspace
fileEvents: workspace.createFileSystemWatcher('**/.clientrc')
}
}
// Create the language client and start the client.
let disposable = new LanguageClient('Language Server Example', serverOptions, clientOptions).start();
// Push the disposable to the context's subscriptions so that the
// client can be deactivated on extension deactivation
let pgsqlcp = new pgsqlCommandProvider()
pgsqlcp.activate( context.subscriptions )
context.subscriptions.push( vscode.commands.registerCommand( 'pgsql.run', () => {
pgsqlcp.run()
}))
context.subscriptions.push(vscode.languages.registerCompletionItemProvider(['pgsql'], new PostgresqlCompletionItemProvider(), '.', ' '));
context.subscriptions.push(vscode.languages.registerSignatureHelpProvider('pgsql', new PostgresqlSignatureHelpProvider(), '(', ','));
context.subscriptions.push(disposable);
}
示例4: activate
export function activate(context: vscode.ExtensionContext) {
let rootDir = context.asAbsolutePath(".");
let pythonSettings = settings.PythonSettings.getInstance();
telemetryHelper.sendTelemetryEvent(telemetryContracts.EVENT_LOAD, {
CodeComplete_Has_ExtraPaths: pythonSettings.autoComplete.extraPaths.length > 0 ? "true" : "false",
Format_Has_Custom_Python_Path: pythonSettings.pythonPath.length !== "python".length ? "true" : "false"
});
unitTestOutChannel = vscode.window.createOutputChannel(pythonSettings.unitTest.outputWindow);
unitTestOutChannel.clear();
formatOutChannel = unitTestOutChannel;
lintingOutChannel = unitTestOutChannel;
if (pythonSettings.unitTest.outputWindow !== pythonSettings.formatting.outputWindow) {
formatOutChannel = vscode.window.createOutputChannel(pythonSettings.formatting.outputWindow);
formatOutChannel.clear();
}
if (pythonSettings.unitTest.outputWindow !== pythonSettings.linting.outputWindow) {
lintingOutChannel = vscode.window.createOutputChannel(pythonSettings.linting.outputWindow);
lintingOutChannel.clear();
}
sortImports.activate(context, formatOutChannel);
activateUnitTestProvider(context, pythonSettings, unitTestOutChannel);
context.subscriptions.push(activateFormatOnSaveProvider(PYTHON, pythonSettings, formatOutChannel, vscode.workspace.rootPath));
// Enable indentAction
vscode.languages.setLanguageConfiguration(PYTHON.language, {
onEnterRules: [
{
beforeText: /^\s*(?:def|class|for|if|elif|else|while|try|with|finally).*?:\s*$/,
action: { indentAction: vscode.IndentAction.Indent }
}
]
});
let renameProvider = new PythonRenameProvider(context);
context.subscriptions.push(vscode.languages.registerRenameProvider(PYTHON, renameProvider));
context.subscriptions.push(vscode.languages.registerHoverProvider(PYTHON, new PythonHoverProvider(context)));
context.subscriptions.push(vscode.languages.registerDefinitionProvider(PYTHON, new PythonDefinitionProvider(context)));
context.subscriptions.push(vscode.languages.registerReferenceProvider(PYTHON, new PythonReferenceProvider(context)));
context.subscriptions.push(vscode.languages.registerCompletionItemProvider(PYTHON, new PythonCompletionItemProvider(context), "."));
context.subscriptions.push(vscode.languages.registerDocumentSymbolProvider(PYTHON, new PythonSymbolProvider(context, renameProvider.JediProxy)));
if (pythonSettings.devOptions.indexOf("DISABLE_SIGNATURE") === -1) {
context.subscriptions.push(vscode.languages.registerSignatureHelpProvider(PYTHON, new PythonSignatureProvider(context, renameProvider.JediProxy), "(", ","));
}
context.subscriptions.push(vscode.languages.registerDocumentFormattingEditProvider(PYTHON, new PythonFormattingEditProvider(context, formatOutChannel, pythonSettings, vscode.workspace.rootPath)));
context.subscriptions.push(new LintProvider(context, lintingOutChannel, vscode.workspace.rootPath));
}
示例5: Promise
return new Promise(resolve =>
disposables.push(vscode.languages.registerCompletionItemProvider('typescript', new class implements vscode.CompletionItemProvider {
provideCompletionItems(doc: vscode.TextDocument, position: vscode.Position): vscode.ProviderResult<vscode.CompletionItem[] | vscode.CompletionList> {
// Return a fake item that will come first
const range = new vscode.Range(new vscode.Position(position.line, 0), position);
return [{
label: doc.getText(range),
sortText: '\0',
range: range
}];
}
async resolveCompletionItem(item: vscode.CompletionItem) {
await vscode.commands.executeCommand('selectNextSuggestion')
resolve();
return item;
}
})));
示例6: activate
export function activate(context) {
const commands = vscode.commands.getCommands(true);
//keybindings.json command-suggestions
const disposable = vscode.languages.registerCompletionItemProvider({ pattern: '**/keybindings.json' }, {
provideCompletionItems(document, position, token) {
const location = getLocation(document.getText(), document.offsetAt(position));
if (location.path[1] === 'command') {
return commands.then(ids => ids.map(id => new vscode.CompletionItem(id, vscode.CompletionItemKind.Value)));
}
}
});
context.subscriptions.push(disposable);
}
示例7: Server
.then(() => {
Server.path = Client.path = dub.packages.get('dcd').path;
let server = new Server(dub.paths);
let completionProvider = vsc.languages.registerCompletionItemProvider(D_MODE, provider, '.');
let signatureProvider = vsc.languages.registerSignatureHelpProvider(D_MODE, provider, '(', ',');
let definitionProvider = vsc.languages.registerDefinitionProvider(D_MODE, provider);
provider.on('restart', () => {
server.start(dub.paths);
});
context.subscriptions.push(server);
context.subscriptions.push(completionProvider);
context.subscriptions.push(signatureProvider);
context.subscriptions.push(definitionProvider);
}).then(dub.build.bind(dub, 'dcd', 'client'))
示例8: activate
export function activate(context: ExtensionContext): void {
// We can't use a pattern here since it disables the normal json code complete
// which we don't want. Do the filtering in the actual suggest
let selector: DocumentFilter = { language: 'json' };
let taskFileName = workspace.rootPath ? path.join(workspace.rootPath, '.vscode/tasks.json') : null;
let items = taskFileName ? createCompletionItems() : [];
languages.registerCompletionItemProvider(selector, {
provideCompletionItems: (document: TextDocument, position: Position, token: CancellationToken): CompletionItem[] => {
if (document.fileName === taskFileName) {
return items;
} else {
return [];
}
}
});
}
示例9:
Object.keys(includedLanguages).forEach(language => {
if (languageMappingForCompletionProviders.has(language) && languageMappingForCompletionProviders.get(language) === includedLanguages[language]) {
return;
}
if (languageMappingForCompletionProviders.has(language)) {
completionProvidersMapping.get(language).dispose();
languageMappingForCompletionProviders.delete(language);
completionProvidersMapping.delete(language);
}
const provider = vscode.languages.registerCompletionItemProvider(language, completionProvider, ...LANGUAGE_MODES[includedLanguages[language]]);
context.subscriptions.push(provider);
languageMappingForCompletionProviders.set(language, includedLanguages[language]);
completionProvidersMapping.set(language, provider);
});
示例10: activate
export function activate(ctx: vscode.ExtensionContext) {
ctx.subscriptions.push(vscode.workspace.onDidSaveTextDocument((document: vscode.TextDocument) => {
runLinter(document);
}));
activateRepl().forEach((d: vscode.Disposable) => ctx.subscriptions.push(d));
activateReactor().forEach((d: vscode.Disposable) => ctx.subscriptions.push(d));
activateMake().forEach((d: vscode.Disposable) => ctx.subscriptions.push(d));
activatePackage().forEach((d: vscode.Disposable) => ctx.subscriptions.push(d));
ctx.subscriptions.push(vscode.languages.setLanguageConfiguration('elm', configuration))
ctx.subscriptions.push(vscode.languages.registerHoverProvider(ELM_MODE, new ElmHoverProvider()));
ctx.subscriptions.push(vscode.languages.registerCompletionItemProvider(ELM_MODE, new ElmCompletionProvider(), '.'));
ctx.subscriptions.push(vscode.languages.registerDocumentSymbolProvider(ELM_MODE, new ElmSymbolProvider()));
ctx.subscriptions.push(vscode.languages.registerDocumentFormattingEditProvider(ELM_MODE, new ElmFormatProvider()))
// ctx.subscriptions.push(vscode.languages.registerDefinitionProvider(ELM_MODE, new ElmDefinitionProvider()));
}