本文整理汇总了TypeScript中vscode.languages.registerDefinitionProvider方法的典型用法代码示例。如果您正苦于以下问题:TypeScript languages.registerDefinitionProvider方法的具体用法?TypeScript languages.registerDefinitionProvider怎么用?TypeScript languages.registerDefinitionProvider使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode.languages
的用法示例。
在下文中一共展示了languages.registerDefinitionProvider方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: CompositeDisposable
disposables.add(server.onServerStart(() => {
// register language feature provider on start
localDisposables = new CompositeDisposable();
const definitionMetadataDocumentProvider = new DefinitionMetadataDocumentProvider();
definitionMetadataDocumentProvider.register();
localDisposables.add(definitionMetadataDocumentProvider);
const definitionProvider = new DefinitionProvider(server, definitionMetadataDocumentProvider);
localDisposables.add(vscode.languages.registerDefinitionProvider(documentSelector, definitionProvider));
localDisposables.add(vscode.languages.registerDefinitionProvider({ scheme: definitionMetadataDocumentProvider.scheme }, definitionProvider));
localDisposables.add(vscode.languages.registerImplementationProvider(documentSelector, new ImplementationProvider(server)));
const testManager = new TestManager(server, eventStream);
localDisposables.add(testManager);
localDisposables.add(vscode.languages.registerCodeLensProvider(documentSelector, new CodeLensProvider(server, testManager, optionProvider)));
localDisposables.add(vscode.languages.registerDocumentHighlightProvider(documentSelector, new DocumentHighlightProvider(server)));
localDisposables.add(vscode.languages.registerDocumentSymbolProvider(documentSelector, new DocumentSymbolProvider(server)));
localDisposables.add(vscode.languages.registerReferenceProvider(documentSelector, new ReferenceProvider(server)));
localDisposables.add(vscode.languages.registerHoverProvider(documentSelector, new HoverProvider(server)));
localDisposables.add(vscode.languages.registerRenameProvider(documentSelector, new RenameProvider(server)));
if (options.useFormatting) {
localDisposables.add(vscode.languages.registerDocumentRangeFormattingEditProvider(documentSelector, new FormatProvider(server)));
localDisposables.add(vscode.languages.registerOnTypeFormattingEditProvider(documentSelector, new FormatProvider(server), '}', ';'));
}
localDisposables.add(vscode.languages.registerCompletionItemProvider(documentSelector, new CompletionItemProvider(server), '.', ' '));
localDisposables.add(vscode.languages.registerWorkspaceSymbolProvider(new WorkspaceSymbolProvider(server, optionProvider)));
localDisposables.add(vscode.languages.registerSignatureHelpProvider(documentSelector, new SignatureHelpProvider(server), '(', ','));
const codeActionProvider = new CodeActionProvider(server, optionProvider);
localDisposables.add(codeActionProvider);
localDisposables.add(vscode.languages.registerCodeActionsProvider(documentSelector, codeActionProvider));
localDisposables.add(reportDiagnostics(server, advisor));
localDisposables.add(forwardChanges(server));
localDisposables.add(trackVirtualDocuments(server, eventStream));
localDisposables.add(vscode.languages.registerFoldingRangeProvider(documentSelector, new StructureProvider(server)));
}));
示例2: activate
export function activate(context: vscode.ExtensionContext) {
cljConnection.setCljContext(context);
context.subscriptions.push(nreplController);
cljConnection.disconnect(false);
var config = vscode.workspace.getConfiguration('clojureVSCode');
if (config.autoStartNRepl) {
cljConnection.startNRepl();
}
maybeActivateFormatOnSave();
const testResultDataProvidier = buildTestProvider();
vscode.commands.registerCommand('clojureVSCode.manuallyConnectToNRepl', cljConnection.manuallyConnect);
vscode.commands.registerCommand('clojureVSCode.stopDisconnectNRepl', cljConnection.disconnect);
vscode.commands.registerCommand('clojureVSCode.startNRepl', cljConnection.startNRepl);
const evaluationResultChannel = vscode.window.createOutputChannel('Evaluation results');
vscode.commands.registerCommand('clojureVSCode.eval', () => clojureEval(evaluationResultChannel));
vscode.commands.registerCommand('clojureVSCode.evalAndShowResult', () => clojureEvalAndShowResult(evaluationResultChannel));
vscode.commands.registerCommand('clojureVSCode.testNamespace', () => testNamespace(evaluationResultChannel, testResultDataProvidier));
vscode.commands.registerCommand('clojureVSCode.runAllTests', () => runAllTests(evaluationResultChannel, testResultDataProvidier));
vscode.window.registerTreeDataProvider('clojure', testResultDataProvidier);
vscode.commands.registerTextEditorCommand('clojureVSCode.formatFile', formatFile);
context.subscriptions.push(vscode.languages.registerCompletionItemProvider(CLOJURE_MODE, new ClojureCompletionItemProvider(), '.', '/'));
context.subscriptions.push(vscode.languages.registerDefinitionProvider(CLOJURE_MODE, new ClojureDefinitionProvider()));
context.subscriptions.push(vscode.languages.registerHoverProvider(CLOJURE_MODE, new ClojureHoverProvider()));
context.subscriptions.push(vscode.languages.registerSignatureHelpProvider(CLOJURE_MODE, new ClojureSignatureProvider(), ' ', '\n'));
vscode.workspace.registerTextDocumentContentProvider('jar', new JarContentProvider());
vscode.languages.setLanguageConfiguration(CLOJURE_MODE.language, ClojureLanguageConfiguration);
}
示例3: startClient
startClient(dotEnsime, ensimeServerVersion, statusbarOutput(statusbarItem, typechecking)).then((connection) => {
vscode.window.showInformationMessage("Got a connection with ensime server!")
mainLog.debug('got a connection, creating instance')
const instance = ensimeClient.makeInstanceOf(dotEnsime, connection, null)
instanceManager.registerInstance(instance)
if (! activeInstance)
activeInstance = instance
vscode.window.showInformationMessage("Ensime connected!")
TypeCheck.register(instanceManager)
const hoverProvider = TypeHoverProvider.hoverProvider(instanceManager)
typeHover = vscode.languages.registerHoverProvider('scala', hoverProvider);
completionsDisposable = vscode.languages.registerCompletionItemProvider('scala', Completions.completionsProvider())
vscode.languages.registerDefinitionProvider('scala', Definitions.definitionsProvider(instanceManager))
instanceManager.registerInstance(instance)
if (!activeInstance) {
activeInstance = instance
}
connection.post({"typehint":"ConnectionInfoReq"}).then( (msg) => {})
switchToInstance(instance)
}, (failure) => {
示例4: register
export function register(
selector: vscode.DocumentSelector,
client: ITypeScriptServiceClient,
) {
return vscode.languages.registerDefinitionProvider(selector,
new TypeScriptDefinitionProvider(client));
}
示例5: activate
export function activate(context: vscode.ExtensionContext) {
var rootDir = context.asAbsolutePath(".");
var pythonSettings = new settings.PythonSettings();
unitTestOutChannel = vscode.window.createOutputChannel(pythonSettings.unitTest.outputWindow);
unitTestOutChannel.clear();
formatOutChannel = vscode.window.createOutputChannel(pythonSettings.formatting.outputWindow);
formatOutChannel.clear();
lintingOutChannel = vscode.window.createOutputChannel(pythonSettings.linting.outputWindow);
lintingOutChannel.clear();
sortImports.activate(context);
activateUnitTestProvider(context, pythonSettings, unitTestOutChannel);
activateFormatOnSaveProvider(PYTHON, context, pythonSettings, formatOutChannel);
//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 }
}
]
});
context.subscriptions.push(vscode.languages.registerRenameProvider(PYTHON, new PythonRenameProvider(context)));
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)));
// context.subscriptions.push(vscode.languages.registerSignatureHelpProvider(PYTHON, new PythonSignatureHelpProvider(context), '('));
context.subscriptions.push(vscode.languages.registerDocumentFormattingEditProvider(PYTHON, new PythonFormattingEditProvider(context, pythonSettings, formatOutChannel)));
context.subscriptions.push(new LintProvider(context, pythonSettings, lintingOutChannel));
}
示例6: activate
export function activate(ctx: vscode.ExtensionContext) {
this.elixirServer = new ElixirServer();
this.elixirServer.start();
ctx.subscriptions.push(vscode.languages.registerCompletionItemProvider(ELIXIR_MODE, new ElixirAutocomplete(this.elixirServer)));
ctx.subscriptions.push(vscode.languages.registerDefinitionProvider(ELIXIR_MODE, new ElixirDefinitionProvider(this.elixirServer)));
ctx.subscriptions.push(vscode.languages.setLanguageConfiguration('elixir', configuration));
}
示例7: DefinitionMetadataDocumentProvider
disposables.push(server.onServerStart(() => {
// register language feature provider on start
const definitionMetadataDocumentProvider = new DefinitionMetadataDocumentProvider();
definitionMetadataDocumentProvider.register();
localDisposables.push(definitionMetadataDocumentProvider);
localDisposables.push(vscode.languages.registerDefinitionProvider(documentSelector, new DefinitionProvider(server, definitionMetadataDocumentProvider)));
localDisposables.push(vscode.languages.registerImplementationProvider(documentSelector, new ImplementationProvider(server)));
localDisposables.push(vscode.languages.registerCodeLensProvider(documentSelector, new CodeLensProvider(server)));
localDisposables.push(vscode.languages.registerDocumentHighlightProvider(documentSelector, new DocumentHighlightProvider(server)));
localDisposables.push(vscode.languages.registerDocumentSymbolProvider(documentSelector, new DocumentSymbolProvider(server)));
localDisposables.push(vscode.languages.registerReferenceProvider(documentSelector, new ReferenceProvider(server)));
localDisposables.push(vscode.languages.registerHoverProvider(documentSelector, new HoverProvider(server)));
localDisposables.push(vscode.languages.registerRenameProvider(documentSelector, new RenameProvider(server)));
localDisposables.push(vscode.languages.registerDocumentRangeFormattingEditProvider(documentSelector, new FormatProvider(server)));
localDisposables.push(vscode.languages.registerOnTypeFormattingEditProvider(documentSelector, new FormatProvider(server), '}', ';'));
localDisposables.push(vscode.languages.registerCompletionItemProvider(documentSelector, new CompletionItemProvider(server), '.', '<'));
localDisposables.push(vscode.languages.registerWorkspaceSymbolProvider(new WorkspaceSymbolProvider(server)));
localDisposables.push(vscode.languages.registerSignatureHelpProvider(documentSelector, new SignatureHelpProvider(server), '(', ','));
const codeActionProvider = new CodeActionProvider(server);
localDisposables.push(codeActionProvider);
localDisposables.push(vscode.languages.registerCodeActionsProvider(documentSelector, codeActionProvider));
localDisposables.push(reportDiagnostics(server, advisor));
localDisposables.push(forwardChanges(server));
}));
示例8: registerIntellisenseProvider
export function registerIntellisenseProvider(ctx: ExtensionContext) {
// for locate: if it's a project, use the root, othewise, don't bother
if (vscode.workspace.getConfiguration('ruby').intellisense == 'rubyLocate') {
const refreshLocate = () => {
let progressOptions = { location: vscode.ProgressLocation.Window, title: 'Indexing Ruby source files' };
vscode.window.withProgress(progressOptions, () => locate.walk());
};
const settings: any = vscode.workspace.getConfiguration("ruby.locate") || {};
let locate = new Locate(vscode.workspace.rootPath, settings);
refreshLocate();
ctx.subscriptions.push(vscode.commands.registerCommand('ruby.reloadProject', refreshLocate));
const watch = vscode.workspace.createFileSystemWatcher(settings.include);
watch.onDidChange(uri => locate.parse(uri.fsPath));
watch.onDidCreate(uri => locate.parse(uri.fsPath));
watch.onDidDelete(uri => locate.rm(uri.fsPath));
const locationConverter = match => new vscode.Location(vscode.Uri.file(match.file), new vscode.Position(match.line, match.char));
const defProvider = {
provideDefinition: (doc, pos) => {
const txt = doc.getText(doc.getWordRangeAtPosition(pos));
return locate.find(txt).then(matches => matches.map(locationConverter));
}
};
ctx.subscriptions.push(vscode.languages.registerDefinitionProvider(['ruby', 'erb'], defProvider));
const symbolKindTable = {
class: () => SymbolKind.Class,
module: () => SymbolKind.Module,
method: symbolInfo => symbolInfo.name === 'initialize' ? SymbolKind.Constructor : SymbolKind.Method,
classMethod: () => SymbolKind.Method,
};
const defaultSymbolKind = symbolInfo => {
console.warn(`Unknown symbol type: ${symbolInfo.type}`);
return SymbolKind.Variable;
};
// NOTE: Workaround for high CPU usage on IPC (channel.onread) when too many symbols returned.
// For channel.onread see issue like this: https://github.com/Microsoft/vscode/issues/6026
const numOfSymbolLimit = 3000;
const symbolsConverter = matches => matches.slice(0, numOfSymbolLimit).map(match => {
const symbolKind = (symbolKindTable[match.type] || defaultSymbolKind)(match);
return new SymbolInformation(match.name, symbolKind, match.containerName, locationConverter(match));
});
const docSymbolProvider = {
provideDocumentSymbols: (document, token) => {
return locate.listInFile(document.fileName).then(symbolsConverter);
}
};
ctx.subscriptions.push(vscode.languages.registerDocumentSymbolProvider(['ruby', 'erb'], docSymbolProvider));
const workspaceSymbolProvider = {
provideWorkspaceSymbols: (query, token) => {
return locate.query(query).then(symbolsConverter);
}
};
ctx.subscriptions.push(vscode.languages.registerWorkspaceSymbolProvider(workspaceSymbolProvider));
} else {
var rubyLocateDisabled = () => {
vscode.window.showInformationMessage('The `ruby.intellisense` configuration is not set to use rubyLocate.')
};
ctx.subscriptions.push(vscode.commands.registerCommand('ruby.reloadProject', rubyLocateDisabled));
}
}
示例9: activate
export async function activate(context: ExtensionContext) {
const logger = new Logger();
let requestController = new RequestController(context, logger);
let historyController = new HistoryController(logger);
let responseController = new ResponseController();
let codeSnippetController = new CodeSnippetController();
let environmentController = new EnvironmentController(await EnvironmentController.getCurrentEnvironment());
context.subscriptions.push(requestController);
context.subscriptions.push(historyController);
context.subscriptions.push(responseController);
context.subscriptions.push(codeSnippetController);
context.subscriptions.push(environmentController);
context.subscriptions.push(commands.registerCommand('rest-client.request', ((document: TextDocument, range: Range) => requestController.run(range))));
context.subscriptions.push(commands.registerCommand('rest-client.rerun-last-request', () => requestController.rerun()));
context.subscriptions.push(commands.registerCommand('rest-client.cancel-request', () => requestController.cancel()));
context.subscriptions.push(commands.registerCommand('rest-client.history', () => historyController.save()));
context.subscriptions.push(commands.registerCommand('rest-client.clear-history', () => historyController.clear()));
context.subscriptions.push(commands.registerCommand('rest-client.save-response', () => responseController.save()));
context.subscriptions.push(commands.registerCommand('rest-client.save-response-body', () => responseController.saveBody()));
context.subscriptions.push(commands.registerCommand('rest-client.copy-response-body', () => responseController.copyBody()));
context.subscriptions.push(commands.registerCommand('rest-client.generate-codesnippet', () => codeSnippetController.run()));
context.subscriptions.push(commands.registerCommand('rest-client.copy-codesnippet', () => codeSnippetController.copy()));
context.subscriptions.push(commands.registerCommand('rest-client.copy-request-as-curl', () => codeSnippetController.copyAsCurl()));
context.subscriptions.push(commands.registerCommand('rest-client.switch-environment', () => environmentController.switchEnvironment()));
context.subscriptions.push(commands.registerCommand('rest-client.clear-aad-token-cache', () => AadTokenCache.clear()));
context.subscriptions.push(commands.registerCommand('rest-client._openDocumentLink', args => {
workspace.openTextDocument(Uri.parse(args.path)).then(window.showTextDocument, error => {
window.showErrorMessage(error.message);
});
}));
const documentSelector = [
{ language: 'http', scheme: 'file' },
{ language: 'http', scheme: 'untitled' },
];
context.subscriptions.push(languages.registerCompletionItemProvider(documentSelector, new HttpCompletionItemProvider()));
context.subscriptions.push(languages.registerCompletionItemProvider(documentSelector, new RequestVariableCompletionItemProvider(), '.'));
context.subscriptions.push(languages.registerHoverProvider(documentSelector, new CustomVariableHoverProvider()));
context.subscriptions.push(languages.registerHoverProvider(documentSelector, new RequestVariableHoverProvider()));
context.subscriptions.push(
new ConfigurationDependentRegistration(
() => languages.registerCodeLensProvider(documentSelector, new HttpCodeLensProvider()),
s => s.enableSendRequestCodeLens));
context.subscriptions.push(
new ConfigurationDependentRegistration(
() => languages.registerCodeLensProvider(documentSelector, new CustomVariableReferencesCodeLensProvider()),
s => s.enableCustomVariableReferencesCodeLens));
context.subscriptions.push(languages.registerDocumentLinkProvider(documentSelector, new RequestBodyDocumentLinkProvider()));
context.subscriptions.push(languages.registerDefinitionProvider(documentSelector, new CustomVariableDefinitionProvider()));
context.subscriptions.push(languages.registerReferenceProvider(documentSelector, new CustomVariableReferenceProvider()));
context.subscriptions.push(languages.registerDocumentSymbolProvider(documentSelector, new HttpDocumentSymbolProvider()));
const diagnosticsProviders = new VariableDiagnosticsProvider();
workspace.onDidOpenTextDocument(diagnosticsProviders.checkVariables, diagnosticsProviders, context.subscriptions);
workspace.onDidCloseTextDocument(diagnosticsProviders.deleteDocumentFromDiagnosticCollection, diagnosticsProviders, context.subscriptions);
workspace.onDidSaveTextDocument(diagnosticsProviders.checkVariables, diagnosticsProviders, context.subscriptions);
}
示例10: 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'
});
lintingOutChannel = vscode.window.createOutputChannel(pythonSettings.linting.outputWindow);
formatOutChannel = lintingOutChannel;
if (pythonSettings.linting.outputWindow !== pythonSettings.formatting.outputWindow) {
formatOutChannel = vscode.window.createOutputChannel(pythonSettings.formatting.outputWindow);
formatOutChannel.clear();
}
if (pythonSettings.linting.outputWindow !== pythonSettings.unitTest.outputWindow) {
unitTestOutChannel = vscode.window.createOutputChannel(pythonSettings.unitTest.outputWindow);
unitTestOutChannel.clear();
}
sortImports.activate(context, formatOutChannel);
activateSetInterpreterProvider();
activateExecInTerminalProvider();
activateSimplePythonRefactorProvider(context, formatOutChannel);
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|except|async).*?:\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), '(', ','));
}
const formatProvider = new PythonFormattingEditProvider(context, formatOutChannel, pythonSettings, vscode.workspace.rootPath);
context.subscriptions.push(vscode.languages.registerDocumentFormattingEditProvider(PYTHON, formatProvider));
context.subscriptions.push(vscode.languages.registerDocumentRangeFormattingEditProvider(PYTHON, formatProvider));
context.subscriptions.push(new LintProvider(context, lintingOutChannel, vscode.workspace.rootPath));
context.subscriptions.push(vscode.languages.registerCodeActionsProvider(PYTHON, new PythonCodeActionsProvider(context)));
tests.activate(context, unitTestOutChannel);
// Possible this extension loads before the others, so lets wait for 5 seconds
setTimeout(disableOtherDocumentSymbolsProvider, 5000);
}