dsh-lsp-actions 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +79 -0
- package/LICENSE +201 -0
- package/README.es.md +177 -0
- package/README.hi.md +177 -0
- package/README.md +183 -0
- package/README.pt.md +177 -0
- package/README.zh-CN.md +181 -0
- package/cordis.patch.yml +17 -0
- package/lib/abort.d.ts +13 -0
- package/lib/abort.d.ts.map +1 -0
- package/lib/abort.js +31 -0
- package/lib/abort.js.map +1 -0
- package/lib/client.d.ts +173 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +926 -0
- package/lib/client.js.map +1 -0
- package/lib/connection.d.ts +103 -0
- package/lib/connection.d.ts.map +1 -0
- package/lib/connection.js +241 -0
- package/lib/connection.js.map +1 -0
- package/lib/edits.d.ts +17 -0
- package/lib/edits.d.ts.map +1 -0
- package/lib/edits.js +76 -0
- package/lib/edits.js.map +1 -0
- package/lib/extension.d.ts +9 -0
- package/lib/extension.d.ts.map +1 -0
- package/lib/extension.js +17 -0
- package/lib/extension.js.map +1 -0
- package/lib/extra-tools.d.ts +45 -0
- package/lib/extra-tools.d.ts.map +1 -0
- package/lib/extra-tools.js +406 -0
- package/lib/extra-tools.js.map +1 -0
- package/lib/framing.d.ts +33 -0
- package/lib/framing.d.ts.map +1 -0
- package/lib/framing.js +80 -0
- package/lib/framing.js.map +1 -0
- package/lib/host.d.ts +64 -0
- package/lib/host.d.ts.map +1 -0
- package/lib/host.js +152 -0
- package/lib/host.js.map +1 -0
- package/lib/index.d.ts +42 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +78 -0
- package/lib/index.js.map +1 -0
- package/lib/render.d.ts +364 -0
- package/lib/render.d.ts.map +1 -0
- package/lib/render.js +485 -0
- package/lib/render.js.map +1 -0
- package/lib/runner.d.ts +55 -0
- package/lib/runner.d.ts.map +1 -0
- package/lib/runner.js +149 -0
- package/lib/runner.js.map +1 -0
- package/lib/sandbox.d.ts +69 -0
- package/lib/sandbox.d.ts.map +1 -0
- package/lib/sandbox.js +98 -0
- package/lib/sandbox.js.map +1 -0
- package/lib/seam.d.ts +67 -0
- package/lib/seam.d.ts.map +1 -0
- package/lib/seam.js +62 -0
- package/lib/seam.js.map +1 -0
- package/lib/servers.d.ts +120 -0
- package/lib/servers.d.ts.map +1 -0
- package/lib/servers.js +216 -0
- package/lib/servers.js.map +1 -0
- package/lib/session-cwd.d.ts +15 -0
- package/lib/session-cwd.d.ts.map +1 -0
- package/lib/session-cwd.js +16 -0
- package/lib/session-cwd.js.map +1 -0
- package/lib/tools.d.ts +150 -0
- package/lib/tools.d.ts.map +1 -0
- package/lib/tools.js +543 -0
- package/lib/tools.js.map +1 -0
- package/lib/translate.d.ts +181 -0
- package/lib/translate.d.ts.map +1 -0
- package/lib/translate.js +715 -0
- package/lib/translate.js.map +1 -0
- package/lib/vocabulary.d.ts +167 -0
- package/lib/vocabulary.d.ts.map +1 -0
- package/lib/vocabulary.js +20 -0
- package/lib/vocabulary.js.map +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A JSON-RPC endpoint over one language server spawned through the subprocess capability. Owns id
|
|
3
|
+
* correlation, outbound requests/notifications, inbound server→client requests (answering
|
|
4
|
+
* `workspace/configuration` from static config and accepting lifecycle bookkeeping), notification
|
|
5
|
+
* observers (the diagnostics push path), and fail-fast framing errors. Terminates through the
|
|
6
|
+
* subprocess handle's tree-scoped escalation.
|
|
7
|
+
* @module dsh-lsp-actions/connection
|
|
8
|
+
*/
|
|
9
|
+
import type { SubprocessHandle, SubprocessSpawnSpec } from '@deepseek-ai/dsh-subprocess';
|
|
10
|
+
/** How to launch the server and answer its configuration requests. */
|
|
11
|
+
export interface ConnectionSpec {
|
|
12
|
+
/** The resolved absolute executable path (no shell). */
|
|
13
|
+
readonly command: string;
|
|
14
|
+
/** Arguments passed to the executable. */
|
|
15
|
+
readonly args: readonly string[];
|
|
16
|
+
/** The child's working directory (the canonical workspace). */
|
|
17
|
+
readonly cwd: string;
|
|
18
|
+
/** Explicit child environment overrides; the subprocess provider owns its ambient scrub. */
|
|
19
|
+
readonly env: Record<string, string>;
|
|
20
|
+
/** Largest single framed message accepted from the server. */
|
|
21
|
+
readonly maxMessageBytes: number;
|
|
22
|
+
/** Largest stderr tail retained for diagnostics. */
|
|
23
|
+
readonly maxStderrBytes: number;
|
|
24
|
+
/** The subprocess spec's `graceMs` for the terminate escalation. */
|
|
25
|
+
readonly killGraceMs: number;
|
|
26
|
+
/** Static answer to every `workspace/configuration` item. */
|
|
27
|
+
readonly configuration: unknown;
|
|
28
|
+
}
|
|
29
|
+
/** Spawn one subprocess for this connection (the client passes `ctx.subprocess.spawn`). */
|
|
30
|
+
export type ConnectionSpawner = (spec: SubprocessSpawnSpec) => SubprocessHandle;
|
|
31
|
+
/** A JSON-RPC error response from the language server, carrying the wire error code. */
|
|
32
|
+
export declare class LspRpcError extends Error {
|
|
33
|
+
readonly code: number;
|
|
34
|
+
constructor(message: string, code: number);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A live JSON-RPC endpoint bound to one child process. Requests reject immediately after the
|
|
38
|
+
* process closes or the protocol stream fails, so no caller can hang on a dead server.
|
|
39
|
+
*/
|
|
40
|
+
export declare class LspConnection {
|
|
41
|
+
private readonly onServerRequest;
|
|
42
|
+
private readonly handle;
|
|
43
|
+
private readonly stdin;
|
|
44
|
+
private readonly decoder;
|
|
45
|
+
private readonly pending;
|
|
46
|
+
private readonly notificationHandlers;
|
|
47
|
+
private nextId;
|
|
48
|
+
private closeReason;
|
|
49
|
+
/** Resolves once the process has fully exited and every pending request was rejected. */
|
|
50
|
+
readonly closed: Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* @param spec - how to launch the server and answer its configuration requests.
|
|
53
|
+
* @param spawner - the subprocess seam's spawn (the client passes `ctx.subprocess.spawn`).
|
|
54
|
+
* @param onServerRequest - answers a server→client request; rejects to send an error response.
|
|
55
|
+
*/
|
|
56
|
+
constructor(spec: ConnectionSpec, spawner: ConnectionSpawner, onServerRequest: (method: string, params: unknown) => Promise<unknown>);
|
|
57
|
+
/** The child's pid, or `-1` when the spawn produced no pid. */
|
|
58
|
+
get pid(): number;
|
|
59
|
+
/** The retained stderr tail, for diagnostics on a failed server. */
|
|
60
|
+
get stderrTail(): string;
|
|
61
|
+
/** Whether the transport has failed even if the close event has not arrived yet. */
|
|
62
|
+
get failed(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Observe an inbound server→client notification (e.g. `textDocument/publishDiagnostics`).
|
|
65
|
+
* @param handler - invoked synchronously per notification, in registration order.
|
|
66
|
+
*/
|
|
67
|
+
onNotification(handler: (method: string, params: unknown) => void): void;
|
|
68
|
+
/**
|
|
69
|
+
* Send a request and await its result.
|
|
70
|
+
* @param method - the JSON-RPC method.
|
|
71
|
+
* @param params - the request params.
|
|
72
|
+
* @returns the response result; rejects on an error response, write failure, or close.
|
|
73
|
+
*/
|
|
74
|
+
request(method: string, params: unknown): Promise<unknown>;
|
|
75
|
+
/**
|
|
76
|
+
* Send a notification (no id, no response).
|
|
77
|
+
* @param method - the JSON-RPC method.
|
|
78
|
+
* @param params - the notification params.
|
|
79
|
+
* @returns a promise that settles when the framed notification has been written.
|
|
80
|
+
*/
|
|
81
|
+
notify(method: string, params: unknown): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Send a `$/cancelRequest` for an in-flight request id (best-effort; ignores write failure).
|
|
84
|
+
* @param requestId - the numeric id of the request to cancel.
|
|
85
|
+
*/
|
|
86
|
+
cancel(requestId: number): void;
|
|
87
|
+
/** The id the NEXT `request()` will use, so the client can pre-arm a cancel. */
|
|
88
|
+
peekNextId(): number;
|
|
89
|
+
/** Terminate the server's process tree (the seam's SIGTERM→grace→SIGKILL escalation; idempotent). */
|
|
90
|
+
terminate(): void;
|
|
91
|
+
/** Wait until the owned process tree has exited. */
|
|
92
|
+
waitForProcessTreeExit(signal?: AbortSignal): Promise<boolean>;
|
|
93
|
+
private onStdout;
|
|
94
|
+
private dispatch;
|
|
95
|
+
private handleServerRequest;
|
|
96
|
+
private handleResponse;
|
|
97
|
+
private write;
|
|
98
|
+
/** The exit-close error message, appending the retained stderr tail when the server wrote any. */
|
|
99
|
+
private exitMessage;
|
|
100
|
+
private fail;
|
|
101
|
+
private failAll;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A JSON-RPC endpoint over one language server spawned through the subprocess capability. Owns id
|
|
3
|
+
* correlation, outbound requests/notifications, inbound server→client requests (answering
|
|
4
|
+
* `workspace/configuration` from static config and accepting lifecycle bookkeeping), notification
|
|
5
|
+
* observers (the diagnostics push path), and fail-fast framing errors. Terminates through the
|
|
6
|
+
* subprocess handle's tree-scoped escalation.
|
|
7
|
+
* @module dsh-lsp-actions/connection
|
|
8
|
+
*/
|
|
9
|
+
import { encodeMessage, MessageDecoder } from "./framing.js";
|
|
10
|
+
const writeConnectionMessage = (stdin, message, done) => {
|
|
11
|
+
stdin.write(encodeMessage(message), done);
|
|
12
|
+
};
|
|
13
|
+
/** A JSON-RPC error response from the language server, carrying the wire error code. */
|
|
14
|
+
export class LspRpcError extends Error {
|
|
15
|
+
code;
|
|
16
|
+
constructor(message, code) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.name = 'LspRpcError';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A live JSON-RPC endpoint bound to one child process. Requests reject immediately after the
|
|
24
|
+
* process closes or the protocol stream fails, so no caller can hang on a dead server.
|
|
25
|
+
*/
|
|
26
|
+
export class LspConnection {
|
|
27
|
+
onServerRequest;
|
|
28
|
+
handle;
|
|
29
|
+
stdin;
|
|
30
|
+
decoder;
|
|
31
|
+
pending = new Map();
|
|
32
|
+
notificationHandlers = new Set();
|
|
33
|
+
nextId = 1;
|
|
34
|
+
closeReason;
|
|
35
|
+
/** Resolves once the process has fully exited and every pending request was rejected. */
|
|
36
|
+
closed;
|
|
37
|
+
/**
|
|
38
|
+
* @param spec - how to launch the server and answer its configuration requests.
|
|
39
|
+
* @param spawner - the subprocess seam's spawn (the client passes `ctx.subprocess.spawn`).
|
|
40
|
+
* @param onServerRequest - answers a server→client request; rejects to send an error response.
|
|
41
|
+
*/
|
|
42
|
+
constructor(spec, spawner, onServerRequest) {
|
|
43
|
+
this.onServerRequest = onServerRequest;
|
|
44
|
+
this.decoder = new MessageDecoder(spec.maxMessageBytes);
|
|
45
|
+
this.handle = spawner({
|
|
46
|
+
argv: [spec.command, ...spec.args],
|
|
47
|
+
cwd: spec.cwd,
|
|
48
|
+
stdio: {
|
|
49
|
+
stdin: 'pipe',
|
|
50
|
+
stdout: 'pipe',
|
|
51
|
+
stderr: { maxBytes: spec.maxStderrBytes },
|
|
52
|
+
},
|
|
53
|
+
graceMs: spec.killGraceMs,
|
|
54
|
+
env: spec.env,
|
|
55
|
+
});
|
|
56
|
+
if (this.handle.stdin === undefined || this.handle.stdout === undefined) {
|
|
57
|
+
throw new Error('lsp-actions: subprocess implementation dropped a piped protocol stream');
|
|
58
|
+
}
|
|
59
|
+
this.stdin = this.handle.stdin;
|
|
60
|
+
this.closed = new Promise((resolve) => {
|
|
61
|
+
const close = () => {
|
|
62
|
+
const reason = this.closeReason ?? new Error(this.exitMessage());
|
|
63
|
+
this.closeReason = reason;
|
|
64
|
+
this.failAll(reason);
|
|
65
|
+
resolve();
|
|
66
|
+
};
|
|
67
|
+
this.handle.done.then(close, (error) => {
|
|
68
|
+
// A spawn-level failure never produces a close event; the rejection is the close boundary.
|
|
69
|
+
this.fail(asError(error));
|
|
70
|
+
close();
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
this.stdin.on('error', (error) => { this.fail(error); });
|
|
74
|
+
this.handle.stdout.on('data', (chunk) => { this.onStdout(chunk); });
|
|
75
|
+
}
|
|
76
|
+
/** The child's pid, or `-1` when the spawn produced no pid. */
|
|
77
|
+
get pid() {
|
|
78
|
+
return this.handle.pid;
|
|
79
|
+
}
|
|
80
|
+
/** The retained stderr tail, for diagnostics on a failed server. */
|
|
81
|
+
get stderrTail() {
|
|
82
|
+
return this.handle.collected.stderr?.readFrom(0).text ?? '';
|
|
83
|
+
}
|
|
84
|
+
/** Whether the transport has failed even if the close event has not arrived yet. */
|
|
85
|
+
get failed() {
|
|
86
|
+
return this.closeReason !== undefined;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Observe an inbound server→client notification (e.g. `textDocument/publishDiagnostics`).
|
|
90
|
+
* @param handler - invoked synchronously per notification, in registration order.
|
|
91
|
+
*/
|
|
92
|
+
onNotification(handler) {
|
|
93
|
+
this.notificationHandlers.add(handler);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Send a request and await its result.
|
|
97
|
+
* @param method - the JSON-RPC method.
|
|
98
|
+
* @param params - the request params.
|
|
99
|
+
* @returns the response result; rejects on an error response, write failure, or close.
|
|
100
|
+
*/
|
|
101
|
+
request(method, params) {
|
|
102
|
+
const id = this.nextId++;
|
|
103
|
+
const promise = new Promise((resolve, reject) => {
|
|
104
|
+
if (this.closeReason !== undefined) {
|
|
105
|
+
reject(this.closeReason);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.pending.set(id, { resolve, reject });
|
|
109
|
+
void this.write({ jsonrpc: '2.0', id, method, params }).catch(() => { });
|
|
110
|
+
});
|
|
111
|
+
// A caller that stops awaiting (e.g. an aborted query) leaves this promise to reject at close;
|
|
112
|
+
// this handler keeps that rejection from surfacing as an unhandled rejection.
|
|
113
|
+
promise.catch(() => { });
|
|
114
|
+
return promise;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Send a notification (no id, no response).
|
|
118
|
+
* @param method - the JSON-RPC method.
|
|
119
|
+
* @param params - the notification params.
|
|
120
|
+
* @returns a promise that settles when the framed notification has been written.
|
|
121
|
+
*/
|
|
122
|
+
notify(method, params) {
|
|
123
|
+
return this.write({ jsonrpc: '2.0', method, params });
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Send a `$/cancelRequest` for an in-flight request id (best-effort; ignores write failure).
|
|
127
|
+
* @param requestId - the numeric id of the request to cancel.
|
|
128
|
+
*/
|
|
129
|
+
cancel(requestId) {
|
|
130
|
+
void this.write({ jsonrpc: '2.0', method: '$/cancelRequest', params: { id: requestId } }).catch(() => { });
|
|
131
|
+
}
|
|
132
|
+
/** The id the NEXT `request()` will use, so the client can pre-arm a cancel. */
|
|
133
|
+
peekNextId() {
|
|
134
|
+
return this.nextId;
|
|
135
|
+
}
|
|
136
|
+
/** Terminate the server's process tree (the seam's SIGTERM→grace→SIGKILL escalation; idempotent). */
|
|
137
|
+
terminate() {
|
|
138
|
+
this.handle.terminate();
|
|
139
|
+
}
|
|
140
|
+
/** Wait until the owned process tree has exited. */
|
|
141
|
+
async waitForProcessTreeExit(signal) {
|
|
142
|
+
return await this.handle.waitForExit(signal);
|
|
143
|
+
}
|
|
144
|
+
onStdout(chunk) {
|
|
145
|
+
let messages;
|
|
146
|
+
try {
|
|
147
|
+
messages = this.decoder.push(chunk);
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
this.fail(asError(error));
|
|
151
|
+
this.handle.terminate();
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
for (const message of messages)
|
|
155
|
+
this.dispatch(message);
|
|
156
|
+
}
|
|
157
|
+
dispatch(message) {
|
|
158
|
+
if (message === null || typeof message !== 'object')
|
|
159
|
+
return;
|
|
160
|
+
const frame = message;
|
|
161
|
+
const id = frame.id;
|
|
162
|
+
const method = frame.method;
|
|
163
|
+
if (typeof method === 'string' && (typeof id === 'number' || typeof id === 'string')) {
|
|
164
|
+
void this.handleServerRequest(id, method, frame.params).catch(() => { });
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (typeof method === 'string') {
|
|
168
|
+
for (const handler of this.notificationHandlers)
|
|
169
|
+
handler(method, frame.params);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (typeof id === 'number')
|
|
173
|
+
this.handleResponse(id, frame);
|
|
174
|
+
}
|
|
175
|
+
async handleServerRequest(id, method, params) {
|
|
176
|
+
try {
|
|
177
|
+
const result = await this.onServerRequest(method, params);
|
|
178
|
+
await this.write({ jsonrpc: '2.0', id, result });
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
await this.write({ jsonrpc: '2.0', id, error: { code: -32601, message: asError(error).message } });
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
handleResponse(id, frame) {
|
|
185
|
+
const pending = this.pending.get(id);
|
|
186
|
+
if (!pending)
|
|
187
|
+
return;
|
|
188
|
+
this.pending.delete(id);
|
|
189
|
+
const error = frame.error;
|
|
190
|
+
if (error !== null && typeof error === 'object') {
|
|
191
|
+
const record = error;
|
|
192
|
+
const message = typeof record.message === 'string' ? record.message : 'LSP error response';
|
|
193
|
+
pending.reject(new LspRpcError(message, typeof record.code === 'number' ? record.code : -32603));
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
pending.resolve(frame.result);
|
|
197
|
+
}
|
|
198
|
+
write(message) {
|
|
199
|
+
if (this.closeReason !== undefined)
|
|
200
|
+
return Promise.reject(this.closeReason);
|
|
201
|
+
return new Promise((resolve, reject) => {
|
|
202
|
+
const done = (error) => {
|
|
203
|
+
if (error === undefined || error === null) {
|
|
204
|
+
resolve();
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
this.fail(error);
|
|
208
|
+
reject(error);
|
|
209
|
+
};
|
|
210
|
+
try {
|
|
211
|
+
writeConnectionMessage(this.stdin, message, done);
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
const failure = asError(error);
|
|
215
|
+
this.fail(failure);
|
|
216
|
+
reject(failure);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
/** The exit-close error message, appending the retained stderr tail when the server wrote any. */
|
|
221
|
+
exitMessage() {
|
|
222
|
+
const tail = this.stderrTail.trim();
|
|
223
|
+
return tail === '' ? 'language server exited' : `language server exited; stderr: ${tail}`;
|
|
224
|
+
}
|
|
225
|
+
fail(error) {
|
|
226
|
+
if (this.closeReason === undefined)
|
|
227
|
+
this.closeReason = error;
|
|
228
|
+
this.failAll(error);
|
|
229
|
+
}
|
|
230
|
+
failAll(error) {
|
|
231
|
+
const waiting = [...this.pending.values()];
|
|
232
|
+
this.pending.clear();
|
|
233
|
+
for (const pending of waiting)
|
|
234
|
+
pending.reject(error);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
/** Coerce an unknown thrown value to an `Error`. */
|
|
238
|
+
function asError(value) {
|
|
239
|
+
return value instanceof Error ? value : new Error(String(value));
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/lib/edits.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply a server's text edits to the document text the server saw: position→offset conversion on
|
|
3
|
+
* UTF-16 code units, overlap validation, and descending application so non-overlapping edits can
|
|
4
|
+
* never shift one another's offsets.
|
|
5
|
+
* @module dsh-lsp-actions/edits
|
|
6
|
+
*/
|
|
7
|
+
import type { LspTextEdit } from './vocabulary.ts';
|
|
8
|
+
/**
|
|
9
|
+
* Apply a server's non-overlapping edits to the exact text the server edited, in descending
|
|
10
|
+
* position order so earlier edits never invalidate later offsets.
|
|
11
|
+
* @param text - the document text the server saw.
|
|
12
|
+
* @param edits - the normalized edits.
|
|
13
|
+
* @returns the text with every edit applied.
|
|
14
|
+
* @throws LspActionError LSP_ACTION_CONFLICT for overlapping edits or edits outside the document.
|
|
15
|
+
*/
|
|
16
|
+
export declare function applyEdits(text: string, edits: readonly LspTextEdit[]): string;
|
|
17
|
+
//# sourceMappingURL=edits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edits.d.ts","sourceRoot":"","sources":["../src/edits.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAe,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAU/D;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAsB9E"}
|
package/lib/edits.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply a server's text edits to the document text the server saw: position→offset conversion on
|
|
3
|
+
* UTF-16 code units, overlap validation, and descending application so non-overlapping edits can
|
|
4
|
+
* never shift one another's offsets.
|
|
5
|
+
* @module dsh-lsp-actions/edits
|
|
6
|
+
*/
|
|
7
|
+
import { LspActionError } from "./vocabulary.js";
|
|
8
|
+
/**
|
|
9
|
+
* Apply a server's non-overlapping edits to the exact text the server edited, in descending
|
|
10
|
+
* position order so earlier edits never invalidate later offsets.
|
|
11
|
+
* @param text - the document text the server saw.
|
|
12
|
+
* @param edits - the normalized edits.
|
|
13
|
+
* @returns the text with every edit applied.
|
|
14
|
+
* @throws LspActionError LSP_ACTION_CONFLICT for overlapping edits or edits outside the document.
|
|
15
|
+
*/
|
|
16
|
+
export function applyEdits(text, edits) {
|
|
17
|
+
const lineStarts = computeLineStarts(text);
|
|
18
|
+
const located = edits.map(edit => ({
|
|
19
|
+
start: offsetAt(lineStarts, text, edit.range.start, 'start'),
|
|
20
|
+
end: offsetAt(lineStarts, text, edit.range.end, 'end'),
|
|
21
|
+
newText: edit.newText,
|
|
22
|
+
}));
|
|
23
|
+
located.sort((a, b) => a.start - b.start);
|
|
24
|
+
for (let i = 1; i < located.length; i++) {
|
|
25
|
+
if (located[i].start < located[i - 1].end) {
|
|
26
|
+
throw new LspActionError('the language server returned overlapping text edits; refusing to apply them', 'LSP_ACTION_CONFLICT');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
let result = text;
|
|
30
|
+
for (let i = located.length - 1; i >= 0; i--) {
|
|
31
|
+
const edit = located[i];
|
|
32
|
+
result = result.slice(0, edit.start) + edit.newText + result.slice(edit.end);
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
/** The UTF-16 offset where each line starts, plus a `text.length` sentinel. */
|
|
37
|
+
function computeLineStarts(text) {
|
|
38
|
+
const starts = [0];
|
|
39
|
+
for (let i = 0; i < text.length; i++) {
|
|
40
|
+
if (text[i] === '\n')
|
|
41
|
+
starts.push(i + 1);
|
|
42
|
+
}
|
|
43
|
+
starts.push(text.length);
|
|
44
|
+
return starts;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Convert a zero-based position to an absolute UTF-16 offset. The character may equal the line's
|
|
48
|
+
* length (a cursor or insertion point at the line end); beyond that the position is outside the
|
|
49
|
+
* document.
|
|
50
|
+
* @param lineStarts - the precomputed line start offsets.
|
|
51
|
+
* @param text - the document text.
|
|
52
|
+
* @param position - the position to convert.
|
|
53
|
+
* @param side - which range end is being converted, for the error message.
|
|
54
|
+
* @returns the absolute offset.
|
|
55
|
+
* @throws LspActionError LSP_ACTION_CONFLICT when the position lies outside the document.
|
|
56
|
+
*/
|
|
57
|
+
function offsetAt(lineStarts, text, position, side) {
|
|
58
|
+
const line = position.line;
|
|
59
|
+
if (!Number.isInteger(line) || line < 0 || line >= lineStarts.length - 1) {
|
|
60
|
+
throw outOfBounds(position, side);
|
|
61
|
+
}
|
|
62
|
+
const lineStart = lineStarts[line];
|
|
63
|
+
const nextStart = lineStarts[line + 1];
|
|
64
|
+
// The last line has no trailing newline; other lines end before their newline character.
|
|
65
|
+
const lineEnd = nextStart === text.length ? text.length : nextStart - 1;
|
|
66
|
+
const target = lineStart + position.character;
|
|
67
|
+
if (!Number.isInteger(position.character) || position.character < 0 || target > lineEnd) {
|
|
68
|
+
throw outOfBounds(position, side);
|
|
69
|
+
}
|
|
70
|
+
return target;
|
|
71
|
+
}
|
|
72
|
+
/** Create the out-of-bounds conflict error. */
|
|
73
|
+
function outOfBounds(position, side) {
|
|
74
|
+
return new LspActionError(`the language server returned a text edit with an out-of-bounds ${side} position ${position.line}:${position.character}`, 'LSP_ACTION_CONFLICT');
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=edits.js.map
|
package/lib/edits.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edits.js","sourceRoot":"","sources":["../src/edits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract a file's final extension as a normalized, lowercase, leading-dot key (e.g. `Foo.TS` →
|
|
3
|
+
* `.ts`, `foo.d.ts` → `.ts`). Returns `''` for a name with no extension or a leading-dot dotfile
|
|
4
|
+
* (`.bashrc`), which no route ever matches. Splits on both `/` and `\`.
|
|
5
|
+
* @param filePath - the source path to inspect.
|
|
6
|
+
* @returns the normalized extension, or `''` when there is none.
|
|
7
|
+
*/
|
|
8
|
+
export declare function finalExtension(filePath: string): string;
|
|
9
|
+
//# sourceMappingURL=extension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOvD"}
|
package/lib/extension.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extract a file's final extension as a normalized, lowercase, leading-dot key (e.g. `Foo.TS` →
|
|
3
|
+
* `.ts`, `foo.d.ts` → `.ts`). Returns `''` for a name with no extension or a leading-dot dotfile
|
|
4
|
+
* (`.bashrc`), which no route ever matches. Splits on both `/` and `\`.
|
|
5
|
+
* @param filePath - the source path to inspect.
|
|
6
|
+
* @returns the normalized extension, or `''` when there is none.
|
|
7
|
+
*/
|
|
8
|
+
export function finalExtension(filePath) {
|
|
9
|
+
const lastSlash = Math.max(filePath.lastIndexOf('/'), filePath.lastIndexOf('\\'));
|
|
10
|
+
const base = lastSlash >= 0 ? filePath.slice(lastSlash + 1) : filePath;
|
|
11
|
+
const dot = base.lastIndexOf('.');
|
|
12
|
+
// dot <= 0 covers both "no dot" (-1) and a leading-dot dotfile (0): neither has an extension.
|
|
13
|
+
if (dot <= 0)
|
|
14
|
+
return '';
|
|
15
|
+
return base.slice(dot).toLowerCase();
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IACjF,MAAM,IAAI,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACjC,8FAA8F;IAC9F,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;AACtC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The extended read-only LSP action tools: `lsp_code_action` (server-verified quickfixes, never
|
|
3
|
+
* applied), `lsp_symbols` (workspace-wide or per-document symbol search), `lsp_signature`
|
|
4
|
+
* (signature help at a cursor), and `lsp_inlay_hints` (server type/parameter hints). All four are
|
|
5
|
+
* read-only: results are reference material, and applying anything is the model's own write/edit
|
|
6
|
+
* decision. All declare `timeoutMs` for the official timeout policy and observe `exec.signal`.
|
|
7
|
+
* @module dsh-lsp-actions/extra-tools
|
|
8
|
+
*/
|
|
9
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
10
|
+
import type { ActionRunner } from './runner.ts';
|
|
11
|
+
import type { ResolvedConfig } from './servers.ts';
|
|
12
|
+
import { symbolKindLabel } from './render.ts';
|
|
13
|
+
/**
|
|
14
|
+
* Register the `lsp_code_action` tool: server-verified fixes for a range (or the first
|
|
15
|
+
* diagnostic's range) as reference-only items — the tool never applies edits or runs commands.
|
|
16
|
+
* @param ctx - the plugin context.
|
|
17
|
+
* @param runner - the seam-first action runner.
|
|
18
|
+
* @param config - the resolved plugin configuration.
|
|
19
|
+
*/
|
|
20
|
+
export declare function registerCodeActionTool(ctx: Context, runner: ActionRunner, config: ResolvedConfig): void;
|
|
21
|
+
/**
|
|
22
|
+
* Register the `lsp_symbols` tool: workspace-wide symbol search by name (`query`) or a per-file
|
|
23
|
+
* symbol outline (`file_path` without `query`). At least one of the two must be supplied.
|
|
24
|
+
* @param ctx - the plugin context.
|
|
25
|
+
* @param runner - the seam-first action runner.
|
|
26
|
+
* @param config - the resolved plugin configuration.
|
|
27
|
+
*/
|
|
28
|
+
export declare function registerSymbolsTool(ctx: Context, runner: ActionRunner, config: ResolvedConfig): void;
|
|
29
|
+
/**
|
|
30
|
+
* Register the `lsp_signature` tool: signature help at a cursor position.
|
|
31
|
+
* @param ctx - the plugin context.
|
|
32
|
+
* @param runner - the seam-first action runner.
|
|
33
|
+
* @param config - the resolved plugin configuration.
|
|
34
|
+
*/
|
|
35
|
+
export declare function registerSignatureTool(ctx: Context, runner: ActionRunner, config: ResolvedConfig): void;
|
|
36
|
+
/**
|
|
37
|
+
* Register the `lsp_inlay_hints` tool: server type/parameter inlay hints for a file or range.
|
|
38
|
+
* @param ctx - the plugin context.
|
|
39
|
+
* @param runner - the seam-first action runner.
|
|
40
|
+
* @param config - the resolved plugin configuration.
|
|
41
|
+
*/
|
|
42
|
+
export declare function registerInlayHintsTool(ctx: Context, runner: ActionRunner, config: ResolvedConfig): void;
|
|
43
|
+
/** The human-readable label for a numeric symbol kind, re-exported for tests. */
|
|
44
|
+
export { symbolKindLabel };
|
|
45
|
+
//# sourceMappingURL=extra-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extra-tools.d.ts","sourceRoot":"","sources":["../src/extra-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAGlD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAaL,eAAe,EAChB,MAAM,aAAa,CAAA;AAcpB;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAgIvG;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAqFpG;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAgFtG;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CA+DvG;AAED,iFAAiF;AACjF,OAAO,EAAE,eAAe,EAAE,CAAA"}
|