# mi-language-server **Repository Path**: mirrors_wso2/mi-language-server ## Basic Information - **Project Name**: mi-language-server - **Description**: XML language specific implementation of the Language Server Protocol and can be used with any editor that supports the protocol, to offer good support for the XML Language. - **Primary Language**: Unknown - **License**: EPL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-29 - **Last Updated**: 2026-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Micro Integrator Language Server ================================ This repository is a fork of [Eclipse LemMinX](https://github.com/eclipse/lemminx). **MI Language Server** is a language specific implementation of the [Language Server Protocol](https://github.com/Microsoft/language-server-protocol) and can be used with any editor that supports the protocol, to offer good support for the **MI (Synapse) Language**. The server is based on: * [Eclipse LSP4J](https://github.com/eclipse/lsp4j), the Java binding for the Language Server Protocol. * Xerces to manage XML Schema validation, completion and hover Get started -------------- * Clone this repository * Open the folder in your terminal / command line * Run `./mvnw clean verify` (OSX, Linux) or `mvnw.cmd clean verify` (Windows) * After successful compilation you can find the resulting `org.eclipse.lemminx-uber.jar` in the folder `org.eclipse.lemminx/target` Developer -------------- To debug the XML LS you can use XMLServerSocketLauncher: 1. Run the XMLServerSocketLauncher in debug mode (e.g. in eclipse) 2. Connect your client via socket port. Default port is 5008, but you can change it with start argument `--port` in step 1 Client connection example using Theia and TypeScript: ```js let socketPort = '5008' console.log(`Connecting via port ${socketPort}`) const socket = new net.Socket() const serverConnection = createSocketConnection(socket, socket, () => { socket.destroy() }); this.forward(clientConnection, serverConnection) socket.connect(socketPort) ```