下面列出了怎么用org.eclipse.lsp4j.CompletionItemCapabilities的API类实例代码及写法,或者点击链接到github查看源代码。
public void setClientCapabilities(ClientCapabilities value)
{
completionSupportsSnippets = false;
clientCapabilities = value;
TextDocumentClientCapabilities textDocument = clientCapabilities.getTextDocument();
if(textDocument != null)
{
CompletionCapabilities completion = textDocument.getCompletion();
if(completion != null)
{
CompletionItemCapabilities completionItem = completion.getCompletionItem();
if(completionItem != null)
{
completionSupportsSnippets = completionItem.getSnippetSupport();
}
}
}
}
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;
}
private SharedSettings createSharedSettings(boolean autoCloseTags, boolean isSnippetsSupported) {
SharedSettings sharedSettings = new SharedSettings();
CompletionCapabilities capabilities = new CompletionCapabilities();
CompletionItemCapabilities itemCapabilities = new CompletionItemCapabilities(isSnippetsSupported);
capabilities.setCompletionItem(itemCapabilities);
sharedSettings.getCompletionSettings().setCapabilities(capabilities);
sharedSettings.getCompletionSettings().setAutoCloseTags(autoCloseTags);
return sharedSettings;
}
private static void testCompletionFor(String xml, boolean isSnippetsSupported, Integer expectedCount,
CompletionItem... expectedItems) throws BadLocationException {
CompletionCapabilities completionCapabilities = new CompletionCapabilities();
CompletionItemCapabilities completionItem = new CompletionItemCapabilities(isSnippetsSupported); // activate
// snippets
completionCapabilities.setCompletionItem(completionItem);
SharedSettings sharedSettings = new SharedSettings();
sharedSettings.getCompletionSettings().setCapabilities(completionCapabilities);
XMLAssert.testCompletionFor(new XMLLanguageService(), xml, "src/test/resources/catalogs/catalog.xml", null,
null, expectedCount, sharedSettings, expectedItems);
}
private void testCompletionFor(String xml, boolean isSnippetsSupported, Integer expectedCount,
CompletionItem... expectedItems) throws BadLocationException {
CompletionCapabilities completionCapabilities = new CompletionCapabilities();
CompletionItemCapabilities completionItem = new CompletionItemCapabilities(isSnippetsSupported); // activate
// snippets
completionCapabilities.setCompletionItem(completionItem);
SharedSettings sharedSettings = new SharedSettings();
sharedSettings.getCompletionSettings().setCapabilities(completionCapabilities);
XMLAssert.testCompletionFor(new XMLLanguageService(), xml, "src/test/resources/catalogs/catalog.xml", null,
null, expectedCount, sharedSettings, expectedItems);
}
private void testCompletionMarkdownSupportFor(String xml, CompletionItem... expectedItems)
throws BadLocationException {
CompletionCapabilities completionCapabilities = new CompletionCapabilities();
CompletionItemCapabilities completionItem = new CompletionItemCapabilities(false);
completionItem.setDocumentationFormat(Arrays.asList(MarkupKind.MARKDOWN));
completionCapabilities.setCompletionItem(completionItem);
SharedSettings sharedSettings = new SharedSettings();
sharedSettings.getCompletionSettings().setCapabilities(completionCapabilities);
XMLAssert.testCompletionFor(new XMLLanguageService(), xml, "src/test/resources/catalogs/catalog.xml", null,
null, null, sharedSettings, expectedItems);
}
private void testCompletionSnippetSupportFor(String xml, String fileURI, Integer expectedCount,
CompletionItem... expectedItems) throws BadLocationException {
CompletionCapabilities completionCapabilities = new CompletionCapabilities();
CompletionItemCapabilities completionItem = new CompletionItemCapabilities(true);
completionItem.setDocumentationFormat(Arrays.asList(MarkupKind.MARKDOWN));
completionCapabilities.setCompletionItem(completionItem);
SharedSettings sharedSettings = new SharedSettings();
sharedSettings.getCompletionSettings().setCapabilities(completionCapabilities);
XMLAssert.testCompletionFor(new XMLLanguageService(), xml, null, null, fileURI, null, sharedSettings,
expectedItems);
}
@Test
public void testIsCompletionSnippetsSupported() throws Exception {
assertFalse(prefs.isCompletionSnippetsSupported());
when(text.getCompletion()).thenReturn(new CompletionCapabilities());
assertFalse(prefs.isCompletionSnippetsSupported());
when(text.getCompletion()).thenReturn(new CompletionCapabilities(new CompletionItemCapabilities(true)));
assertTrue(prefs.isCompletionSnippetsSupported());
}
@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;
}
public CompletionCapabilities(final CompletionItemCapabilities completionItem) {
this.completionItem = completionItem;
}
/**
* The client supports the following `CompletionItem` specific
* capabilities.
*/
@Pure
public CompletionItemCapabilities getCompletionItem() {
return this.completionItem;
}
/**
* The client supports the following `CompletionItem` specific
* capabilities.
*/
public void setCompletionItem(final CompletionItemCapabilities completionItem) {
this.completionItem = completionItem;
}