in customization-base/src/main/java/com/azure/autorest/customization/implementation/ls/EclipseLanguageClient.java [79:125]
public void initialize() {
int pid = (int) ProcessHandle.current().pid();
InitializeParams initializeParams = new InitializeParams();
initializeParams.setProcessId(pid);
initializeParams.setRootUri(workspaceDir);
initializeParams.setWorkspaceFolders(new ArrayList<>());
WorkspaceFolder workspaceFolder = new WorkspaceFolder();
workspaceFolder.setName("root");
workspaceFolder.setUri(workspaceDir);
initializeParams.getWorkspaceFolders().add(workspaceFolder);
initializeParams.setTrace("message");
initializeParams.setCapabilities(new ClientCapabilities());
// Configure window capabilities to disable everything as the server is run in headless mode.
WindowClientCapabilities windowClientCapabilities = new WindowClientCapabilities();
windowClientCapabilities.setWorkDoneProgress(false);
windowClientCapabilities.setShowDocument(new ShowDocumentCapabilities(false));
windowClientCapabilities.setShowMessage(new WindowShowMessageRequestCapabilities());
windowClientCapabilities.getShowMessage().setMessageActionItem(new WindowShowMessageRequestActionItemCapabilities(false));
initializeParams.getCapabilities().setWindow(windowClientCapabilities);
// Configure workspace capabilities to support workspace folders and all symbol kinds.
WorkspaceClientCapabilities workspaceClientCapabilities = new WorkspaceClientCapabilities();
workspaceClientCapabilities.setWorkspaceFolders(true);
workspaceClientCapabilities.setSymbol(new SymbolCapabilities(
new SymbolKindCapabilities(Arrays.asList(SymbolKind.values())), false));
// Configure text document capabilities to support code actions and all code action kinds.
List<String> supportedCodeActions = new ArrayList<>(Arrays.asList(CodeActionKind.QuickFix,
CodeActionKind.Refactor, CodeActionKind.RefactorExtract, CodeActionKind.RefactorInline,
CodeActionKind.RefactorRewrite, CodeActionKind.Source, CodeActionKind.SourceOrganizeImports));
EnumSet.allOf(JavaCodeActionKind.class)
.forEach(javaCodeActionKind -> supportedCodeActions.add(javaCodeActionKind.toString()));
TextDocumentClientCapabilities textDocumentClientCapabilities = new TextDocumentClientCapabilities();
textDocumentClientCapabilities.setCodeAction(new CodeActionCapabilities(
new CodeActionLiteralSupportCapabilities(new CodeActionKindCapabilities(supportedCodeActions)), false));
initializeParams.getCapabilities().setTextDocument(textDocumentClientCapabilities);
sendRequest(connection, "initialize", initializeParams, InitializeResult.class);
connection.notifyWithSerializedObject("initialized", "null");
try {
Thread.sleep(2500);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}