Java源码示例:org.eclipse.lsp4j.RenameCapabilities
示例1
private void setAllCapabilities(boolean areAllDynamic) {
textDocument.setRangeFormatting(new RangeFormattingCapabilities(areAllDynamic));
textDocument.setFormatting(new FormattingCapabilities(areAllDynamic));
CompletionCapabilities completion = new CompletionCapabilities();
completion.setDynamicRegistration(areAllDynamic);
textDocument.setCompletion(completion);
textDocument.setDocumentSymbol(new DocumentSymbolCapabilities(areAllDynamic));
textDocument.setHover(new HoverCapabilities(areAllDynamic));
textDocument.setDocumentHighlight(new DocumentHighlightCapabilities(areAllDynamic));
textDocument.setRename(new RenameCapabilities(areAllDynamic));
FoldingRangeCapabilities folding = new FoldingRangeCapabilities();
folding.setDynamicRegistration(areAllDynamic);
textDocument.setFoldingRange(folding);
textDocument.setDocumentLink(new DocumentLinkCapabilities(areAllDynamic));
textDocument.setCodeAction(new CodeActionCapabilities(areAllDynamic));
workspace.setDidChangeWatchedFiles(new DidChangeWatchedFilesCapabilities(areAllDynamic));
}
示例2
private InitializeParams getInitParams() {
InitializeParams initParams = new InitializeParams();
initParams.setRootUri(FileUtils.pathToUri(projectRootPath));
//TODO update capabilities when implemented
WorkspaceClientCapabilities workspaceClientCapabilities = new WorkspaceClientCapabilities();
workspaceClientCapabilities.setApplyEdit(true);
workspaceClientCapabilities.setDidChangeWatchedFiles(new DidChangeWatchedFilesCapabilities());
workspaceClientCapabilities.setExecuteCommand(new ExecuteCommandCapabilities());
workspaceClientCapabilities.setWorkspaceEdit(new WorkspaceEditCapabilities());
workspaceClientCapabilities.setSymbol(new SymbolCapabilities());
workspaceClientCapabilities.setWorkspaceFolders(false);
workspaceClientCapabilities.setConfiguration(false);
TextDocumentClientCapabilities textDocumentClientCapabilities = new TextDocumentClientCapabilities();
textDocumentClientCapabilities.setCodeAction(new CodeActionCapabilities());
textDocumentClientCapabilities.setCompletion(new CompletionCapabilities(new CompletionItemCapabilities(true)));
textDocumentClientCapabilities.setDefinition(new DefinitionCapabilities());
textDocumentClientCapabilities.setDocumentHighlight(new DocumentHighlightCapabilities());
textDocumentClientCapabilities.setFormatting(new FormattingCapabilities());
textDocumentClientCapabilities.setHover(new HoverCapabilities());
textDocumentClientCapabilities.setOnTypeFormatting(new OnTypeFormattingCapabilities());
textDocumentClientCapabilities.setRangeFormatting(new RangeFormattingCapabilities());
textDocumentClientCapabilities.setReferences(new ReferencesCapabilities());
textDocumentClientCapabilities.setRename(new RenameCapabilities());
textDocumentClientCapabilities.setSemanticHighlightingCapabilities(new SemanticHighlightingCapabilities(false));
textDocumentClientCapabilities.setSignatureHelp(new SignatureHelpCapabilities());
textDocumentClientCapabilities.setSynchronization(new SynchronizationCapabilities(true, true, true));
initParams.setCapabilities(
new ClientCapabilities(workspaceClientCapabilities, textDocumentClientCapabilities, null));
initParams.setInitializationOptions(
serverDefinition.getInitializationOptions(URI.create(initParams.getRootUri())));
return initParams;
}
示例3
@Test
public void testIsRenameDynamicRegistrationSupported() throws Exception {
assertFalse(prefs.isRenameDynamicRegistrationSupported());
when(text.getRename()).thenReturn(new RenameCapabilities());
assertFalse(prefs.isRenameDynamicRegistrationSupported());
when(text.getRename()).thenReturn(new RenameCapabilities(true));
assertTrue(prefs.isRenameDynamicRegistrationSupported());
}
示例4
@Test
public void testBothCapabilityTypes() {
// Dynamic capabilities
textDocument.setRangeFormatting(new RangeFormattingCapabilities(true));
textDocument.setFormatting(new FormattingCapabilities(true));
CompletionCapabilities completion = new CompletionCapabilities();
completion.setDynamicRegistration(true);
textDocument.setCompletion(completion);
textDocument.setDocumentSymbol(new DocumentSymbolCapabilities(true));
workspace.setDidChangeWatchedFiles(new DidChangeWatchedFilesCapabilities(true));
// Non dynamic capabilities
textDocument.setHover(new HoverCapabilities(false));
textDocument.setDocumentHighlight(new DocumentHighlightCapabilities(false));
textDocument.setRename(new RenameCapabilities(false));
FoldingRangeCapabilities folding = new FoldingRangeCapabilities();
folding.setDynamicRegistration(false);
textDocument.setFoldingRange(folding);
textDocument.setDocumentLink(new DocumentLinkCapabilities(false));
textDocument.setCodeAction(new CodeActionCapabilities(false));
setAndInitializeCapabilities();
assertEquals(5, capabilityIDs.size());
assertEquals(true, capabilityIDs.contains(FORMATTING_ID));
assertEquals(true, capabilityIDs.contains(FORMATTING_RANGE_ID));
assertEquals(true, capabilityIDs.contains(COMPLETION_ID));
assertEquals(true, capabilityIDs.contains(DOCUMENT_SYMBOL_ID));
ServerCapabilities serverCapabilities = ServerCapabilitiesInitializer
.getNonDynamicServerCapabilities(manager.getClientCapabilities(), false);
assertEquals(false, serverCapabilities.getDocumentRangeFormattingProvider());
assertEquals(false, serverCapabilities.getDocumentFormattingProvider());
assertEquals(false, serverCapabilities.getDocumentSymbolProvider());
assertEquals(true, serverCapabilities.getHoverProvider());
assertEquals(true, serverCapabilities.getDocumentHighlightProvider());
assertEquals(true, serverCapabilities.getRenameProvider().getLeft());
assertEquals(true, serverCapabilities.getFoldingRangeProvider().getLeft());
assertEquals(true, serverCapabilities.getCodeActionProvider().getLeft());
assertEquals(null, serverCapabilities.getCompletionProvider());
assertEquals(DEFAULT_LINK_OPTIONS, serverCapabilities.getDocumentLinkProvider());
}
示例5
/**
* Configure the server capabilities for this instance.
*
* @param params
* the initialization parameters
* @return the server capabilities
*/
protected ServerCapabilities createServerCapabilities(InitializeParams params) {
ServerCapabilities serverCapabilities = new ServerCapabilities();
serverCapabilities.setHoverProvider(true);
serverCapabilities.setDefinitionProvider(true);
serverCapabilities.setReferencesProvider(true);
serverCapabilities.setDocumentSymbolProvider(true);
serverCapabilities.setWorkspaceSymbolProvider(true);
Set<? extends IResourceServiceProvider> allLanguages = getAllLanguages();
if (allLanguages.stream().anyMatch((serviceProvider) -> serviceProvider.get(ICodeLensService.class) != null)) {
CodeLensOptions codeLensOptions = new CodeLensOptions();
codeLensOptions.setResolveProvider(allLanguages.stream()
.anyMatch((serviceProvider) -> serviceProvider.get(ICodeLensResolver.class) != null));
serverCapabilities.setCodeLensProvider(codeLensOptions);
}
boolean supportsCodeActions = allLanguages.stream()
.anyMatch((serviceProvider) -> serviceProvider.get(ICodeActionService.class) != null
|| serviceProvider.get(ICodeActionService2.class) != null);
if (supportsCodeActions) {
Optional<List<String>> supportedKinds = getSupportedCodeActionKinds();
if (supportedKinds.isPresent()) {
serverCapabilities.setCodeActionProvider(new CodeActionOptions(supportedKinds.get()));
} else {
serverCapabilities.setCodeActionProvider(true);
}
} else {
serverCapabilities.setCodeActionProvider(false);
}
serverCapabilities.setSignatureHelpProvider(new SignatureHelpOptions(ImmutableList.of("(", ",")));
serverCapabilities.setTextDocumentSync(TextDocumentSyncKind.Incremental);
CompletionOptions completionOptions = new CompletionOptions();
completionOptions.setResolveProvider(false);
completionOptions.setTriggerCharacters(ImmutableList.of("."));
serverCapabilities.setCompletionProvider(completionOptions);
serverCapabilities.setDocumentFormattingProvider(true);
serverCapabilities.setDocumentRangeFormattingProvider(true);
serverCapabilities.setDocumentHighlightProvider(true);
ClientCapabilities clientCapabilities = null;
if (params != null) {
clientCapabilities = params.getCapabilities();
}
TextDocumentClientCapabilities textDocument = null;
if (clientCapabilities != null) {
textDocument = clientCapabilities.getTextDocument();
}
RenameCapabilities rename = null;
if (textDocument != null) {
rename = textDocument.getRename();
}
Boolean prepareSupport = null;
if (rename != null) {
prepareSupport = rename.getPrepareSupport();
}
boolean clientPrepareSupport = Objects.equal(Boolean.TRUE, prepareSupport);
if (clientPrepareSupport && allLanguages.stream()
.anyMatch(serviceProvider -> serviceProvider.get(IRenameService2.class) != null)) {
RenameOptions renameOptions = new RenameOptions();
renameOptions.setPrepareProvider(true);
serverCapabilities.setRenameProvider(Either.<Boolean, RenameOptions> forRight(renameOptions));
} else {
serverCapabilities.setRenameProvider(Either.forLeft(allLanguages.stream()
.anyMatch((serviceProvider) -> serviceProvider.get(IRenameService.class) != null
|| serviceProvider.get(IRenameService2.class) != null)));
}
WorkspaceClientCapabilities workspace = null;
if (clientCapabilities != null) {
workspace = clientCapabilities.getWorkspace();
}
ExecuteCommandCapabilities executeCommand = null;
if (workspace != null) {
executeCommand = workspace.getExecuteCommand();
}
if (executeCommand != null) {
commandRegistry.initialize(allLanguages, clientCapabilities, client);
ExecuteCommandOptions executeCommandOptions = new ExecuteCommandOptions();
executeCommandOptions.setCommands(commandRegistry.getCommands());
serverCapabilities.setExecuteCommandProvider(executeCommandOptions);
}
semanticHighlightingRegistry.initialize(allLanguages, clientCapabilities, client);
serverCapabilities.setSemanticHighlighting(new SemanticHighlightingServerCapabilities(
semanticHighlightingRegistry.getAllScopes()));
for (IResourceServiceProvider language : allLanguages) {
ICapabilitiesContributor capabilitiesContributor = language.get(ICapabilitiesContributor.class);
if (capabilitiesContributor != null) {
capabilitiesContributor.contribute(serverCapabilities, params);
}
}
return serverCapabilities;
}
示例6
@Override
public InitializeParams getInitParams() {
InitializeParams initParams = new InitializeParams();
if (this.rootPath != null) {
var root = rootPath.toURI().toString();
if (this.useInputForWorkspace) {
root = rootPath.toPath().relativize(inputFile.toPath()).toUri().toString();
}
initParams.setRootUri(root);
LOGGER.info("Workspace root is {}", root);
}
WorkspaceClientCapabilities workspaceClientCapabilities = new WorkspaceClientCapabilities();
workspaceClientCapabilities.setApplyEdit(true);
workspaceClientCapabilities.setDidChangeWatchedFiles(new DidChangeWatchedFilesCapabilities());
workspaceClientCapabilities.setExecuteCommand(new ExecuteCommandCapabilities());
workspaceClientCapabilities.setWorkspaceEdit(new WorkspaceEditCapabilities());
// workspaceClientCapabilities.setSymbol(new SymbolCapabilities());
workspaceClientCapabilities.setWorkspaceFolders(true);
workspaceClientCapabilities.setConfiguration(true);
TextDocumentClientCapabilities textDocumentClientCapabilities = new TextDocumentClientCapabilities();
textDocumentClientCapabilities.setCodeAction(new CodeActionCapabilities());
textDocumentClientCapabilities.setCompletion(new CompletionCapabilities(new CompletionItemCapabilities(false)));
textDocumentClientCapabilities.setDefinition(new DefinitionCapabilities());
// textDocumentClientCapabilities.setDocumentHighlight(new DocumentHighlightCapabilities());
textDocumentClientCapabilities.setFormatting(new FormattingCapabilities());
// textDocumentClientCapabilities.setHover(new HoverCapabilities());
// textDocumentClientCapabilities.setOnTypeFormatting(new OnTypeFormattingCapabilities());
// textDocumentClientCapabilities.setRangeFormatting(new RangeFormattingCapabilities());
textDocumentClientCapabilities.setReferences(new ReferencesCapabilities());
textDocumentClientCapabilities.setRename(new RenameCapabilities());
textDocumentClientCapabilities.setSemanticHighlightingCapabilities(new SemanticHighlightingCapabilities(false));
textDocumentClientCapabilities.setSignatureHelp(new SignatureHelpCapabilities());
textDocumentClientCapabilities.setSynchronization(new SynchronizationCapabilities(true, true, true));
initParams.setCapabilities(
new ClientCapabilities(workspaceClientCapabilities, textDocumentClientCapabilities, null));
// initParams.setInitializationOptions(null);
// initParams.setInitializationOptions(
// serverDefinition.getInitializationOptions(URI.create(initParams.getRootUri())));
return initParams;
}
示例7
/**
* Configure the server capabilities for this instance.
*
* @param params
* the initialization parametrs
* @return the server capabilities
* @since 2.20
*/
protected ServerCapabilities createServerCapabilities(InitializeParams params) {
ServerCapabilities serverCapabilities = new ServerCapabilities();
serverCapabilities.setHoverProvider(true);
serverCapabilities.setDefinitionProvider(true);
serverCapabilities.setReferencesProvider(true);
serverCapabilities.setDocumentSymbolProvider(true);
serverCapabilities.setWorkspaceSymbolProvider(true);
Set<? extends IResourceServiceProvider> allLanguages = getAllLanguages();
if (allLanguages.stream().anyMatch((serviceProvider) -> serviceProvider.get(ICodeLensService.class) != null)) {
CodeLensOptions codeLensOptions = new CodeLensOptions();
codeLensOptions.setResolveProvider(allLanguages.stream()
.anyMatch((serviceProvider) -> serviceProvider.get(ICodeLensResolver.class) != null));
serverCapabilities.setCodeLensProvider(codeLensOptions);
}
serverCapabilities.setCodeActionProvider(allLanguages.stream()
.anyMatch((serviceProvider) -> serviceProvider.get(ICodeActionService2.class) != null));
serverCapabilities.setSignatureHelpProvider(new SignatureHelpOptions(ImmutableList.of("(", ",")));
serverCapabilities.setTextDocumentSync(TextDocumentSyncKind.Incremental);
CompletionOptions completionOptions = new CompletionOptions();
completionOptions.setResolveProvider(false);
completionOptions.setTriggerCharacters(ImmutableList.of("."));
serverCapabilities.setCompletionProvider(completionOptions);
serverCapabilities.setDocumentFormattingProvider(true);
serverCapabilities.setDocumentRangeFormattingProvider(true);
serverCapabilities.setDocumentHighlightProvider(true);
ClientCapabilities clientCapabilities = null;
if (params != null) {
clientCapabilities = params.getCapabilities();
}
TextDocumentClientCapabilities textDocument = null;
if (clientCapabilities != null) {
textDocument = clientCapabilities.getTextDocument();
}
RenameCapabilities rename = null;
if (textDocument != null) {
rename = textDocument.getRename();
}
Boolean prepareSupport = null;
if (rename != null) {
prepareSupport = rename.getPrepareSupport();
}
boolean clientPrepareSupport = Objects.equal(Boolean.TRUE, prepareSupport);
if (clientPrepareSupport && allLanguages.stream()
.anyMatch(serviceProvider -> serviceProvider.get(IRenameService2.class) != null)) {
RenameOptions renameOptions = new RenameOptions();
renameOptions.setPrepareProvider(true);
serverCapabilities.setRenameProvider(Either.<Boolean, RenameOptions>forRight(renameOptions));
} else {
serverCapabilities.setRenameProvider(Either.forLeft(allLanguages.stream()
.anyMatch((serviceProvider) -> serviceProvider.get(IRenameService2.class) != null)));
}
WorkspaceClientCapabilities workspace = null;
if (clientCapabilities != null) {
workspace = clientCapabilities.getWorkspace();
}
ExecuteCommandCapabilities executeCommand = null;
if (workspace != null) {
executeCommand = workspace.getExecuteCommand();
if (workspace.getWorkspaceFolders() == Boolean.TRUE && workspaceManager.isSupportsWorkspaceFolders()) {
WorkspaceFoldersOptions workspaceFoldersOptions = new WorkspaceFoldersOptions();
workspaceFoldersOptions.setSupported(true);
workspaceFoldersOptions.setChangeNotifications(true);
serverCapabilities.setWorkspace(new WorkspaceServerCapabilities(workspaceFoldersOptions));
}
}
if (executeCommand != null) {
commandRegistry.initialize(allLanguages, clientCapabilities, client);
ExecuteCommandOptions executeCommandOptions = new ExecuteCommandOptions();
executeCommandOptions.setCommands(commandRegistry.getCommands());
serverCapabilities.setExecuteCommandProvider(executeCommandOptions);
}
semanticHighlightingRegistry.initialize(allLanguages, clientCapabilities, client);
serverCapabilities.setSemanticHighlighting(
new SemanticHighlightingServerCapabilities(semanticHighlightingRegistry.getAllScopes()));
for (IResourceServiceProvider language : allLanguages) {
ICapabilitiesContributor capabilitiesContributor = language.get(ICapabilitiesContributor.class);
if (capabilitiesContributor != null) {
capabilitiesContributor.contribute(serverCapabilities, params);
}
}
return serverCapabilities;
}
示例8
/**
* Capabilities specific to the `textDocument/rename`
*/
@Pure
public RenameCapabilities getRename() {
return this.rename;
}
示例9
/**
* Capabilities specific to the `textDocument/rename`
*/
public void setRename(final RenameCapabilities rename) {
this.rename = rename;
}