下面列出了怎么用org.eclipse.lsp4j.SymbolKindCapabilities的API类实例代码及写法,或者点击链接到github查看源代码。
private static InitializeResult initServer(Process p, LanguageServer server, FileObject root) throws InterruptedException, ExecutionException {
InitializeParams initParams = new InitializeParams();
initParams.setRootUri(Utils.toURI(root));
initParams.setRootPath(FileUtil.toFile(root).getAbsolutePath()); //some servers still expect root path
initParams.setProcessId(0);
TextDocumentClientCapabilities tdcc = new TextDocumentClientCapabilities();
DocumentSymbolCapabilities dsc = new DocumentSymbolCapabilities();
dsc.setHierarchicalDocumentSymbolSupport(true);
dsc.setSymbolKind(new SymbolKindCapabilities(Arrays.asList(SymbolKind.values())));
tdcc.setDocumentSymbol(dsc);
WorkspaceClientCapabilities wcc = new WorkspaceClientCapabilities();
wcc.setWorkspaceEdit(new WorkspaceEditCapabilities());
wcc.getWorkspaceEdit().setDocumentChanges(true);
wcc.getWorkspaceEdit().setResourceOperations(Arrays.asList(ResourceOperationKind.Create, ResourceOperationKind.Delete, ResourceOperationKind.Rename));
initParams.setCapabilities(new ClientCapabilities(wcc, tdcc, null));
CompletableFuture<InitializeResult> initResult = server.initialize(initParams);
while (true) {
try {
return initResult.get(100, TimeUnit.MILLISECONDS);
} catch (TimeoutException ex) {
if (p != null && !p.isAlive()) {
InitializeResult emptyResult = new InitializeResult();
emptyResult.setCapabilities(new ServerCapabilities());
return emptyResult;
}
}
}
}
public SymbolCapabilities(final SymbolKindCapabilities symbolKind) {
this.symbolKind = symbolKind;
}
public SymbolCapabilities(final SymbolKindCapabilities symbolKind, final Boolean dynamicRegistration) {
super(dynamicRegistration);
this.symbolKind = symbolKind;
}
/**
* Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
*/
@Pure
public SymbolKindCapabilities getSymbolKind() {
return this.symbolKind;
}
/**
* Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
*/
public void setSymbolKind(final SymbolKindCapabilities symbolKind) {
this.symbolKind = symbolKind;
}
public DocumentSymbolCapabilities(final SymbolKindCapabilities symbolKind) {
this.symbolKind = symbolKind;
}
public DocumentSymbolCapabilities(final SymbolKindCapabilities symbolKind, final Boolean dynamicRegistration) {
super(dynamicRegistration);
this.symbolKind = symbolKind;
}
public DocumentSymbolCapabilities(final SymbolKindCapabilities symbolKind, final Boolean dynamicRegistration, final Boolean hierarchicalDocumentSymbolSupport) {
super(dynamicRegistration);
this.symbolKind = symbolKind;
this.hierarchicalDocumentSymbolSupport = hierarchicalDocumentSymbolSupport;
}
/**
* Specific capabilities for the `SymbolKind`.
*/
@Pure
public SymbolKindCapabilities getSymbolKind() {
return this.symbolKind;
}
/**
* Specific capabilities for the `SymbolKind`.
*/
public void setSymbolKind(final SymbolKindCapabilities symbolKind) {
this.symbolKind = symbolKind;
}