public void initialize()

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);
        }
    }