initial push
This commit is contained in:
48
README.md
48
README.md
@@ -1,3 +1,47 @@
|
||||
# Newtan-LSP
|
||||
# Newton LSP Server Bridge
|
||||
|
||||
Newtan LSP service
|
||||
## Overview
|
||||
This script provides a WebSocket bridge to interface with multiple Language Servers through clients via a single WebSocket connection.
|
||||
It supports various language servers concurrently and handles language-specific file extensions and initialization parameters.
|
||||
|
||||
## Features
|
||||
- Utilizes `vscode-jsonrpc` for LSP message handling.
|
||||
- Supports multiple language servers concurrently.
|
||||
- Support for IPC and stdio communication with language servers.
|
||||
- Easy language server configuration and initialization parameter modification.
|
||||
- Error handling and logging for language server processes.
|
||||
- Automatic file URI translation between server and client paths.
|
||||
- Temporary file creation for `textDocument/didOpen` events.
|
||||
|
||||
## Usage
|
||||
|
||||
1. Install Node.js.
|
||||
2. Run 'npm install'.
|
||||
3. Configure the desired language servers in `defaultServers.js`.
|
||||
4. Run the script: `npm run start || start-verbose`.
|
||||
5. Connect to the WebSocket server on `ws://localhost:9999/<language_endpoint>`.
|
||||
6. Transmit LSP messages via the WebSocket connection.
|
||||
|
||||
## Configuration
|
||||
|
||||
Add or modify language server configurations in `languageServers.js`:
|
||||
|
||||
```javascript
|
||||
exports.servers = [
|
||||
{
|
||||
endpointName: "language_endpoint", // WebSocket endpoint name
|
||||
args: ['executable_path', ['arg1', 'arg2', ...]],
|
||||
connectionType: "ipc" | "stdio", // Communication type
|
||||
relativePath: true | false, // Whether to use relative paths
|
||||
serverFileNameReplacePattern: { // Server file name regex replacements
|
||||
from: /pattern/,
|
||||
to: "replacement"
|
||||
},
|
||||
clientFileNameReplacePattern: { // Client file name regex replacements
|
||||
from: /pattern/,
|
||||
to: "replacement"
|
||||
}
|
||||
},
|
||||
...
|
||||
];
|
||||
```
|
||||
Reference in New Issue
Block a user