@spences10/pi-lsp 0.0.11 → 0.0.12
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/README.md +3 -1
- package/dist/commands.d.ts +4 -0
- package/dist/commands.js +172 -0
- package/dist/commands.js.map +1 -0
- package/dist/index.d.ts +5 -18
- package/dist/index.js +10 -626
- package/dist/index.js.map +1 -1
- package/dist/prompt.d.ts +5 -0
- package/dist/prompt.js +31 -0
- package/dist/prompt.js.map +1 -0
- package/dist/server-manager.d.ts +49 -0
- package/dist/server-manager.js +205 -0
- package/dist/server-manager.js.map +1 -0
- package/dist/tools.d.ts +3 -0
- package/dist/tools.js +236 -0
- package/dist/tools.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -75,7 +75,9 @@ diagnostics without guessing from text search alone.
|
|
|
75
75
|
When LSP tools are active, the extension injects a small system prompt
|
|
76
76
|
reminder telling the model to use LSP for focused diagnostics, type
|
|
77
77
|
and symbol questions, definitions, references, and validation before
|
|
78
|
-
reporting completion.
|
|
78
|
+
reporting completion. It also reminds the model to run diagnostics on
|
|
79
|
+
changed language-server-supported files before completion or commit,
|
|
80
|
+
preferring `lsp_diagnostics_many` for batches.
|
|
79
81
|
|
|
80
82
|
## Commands
|
|
81
83
|
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ExtensionAPI, type ExtensionCommandContext } from '@mariozechner/pi-coding-agent';
|
|
2
|
+
import { LspServerManager } from './server-manager.js';
|
|
3
|
+
export declare function register_lsp_command(pi: ExtensionAPI, manager: LspServerManager): void;
|
|
4
|
+
export declare function handle_lsp_command(args: string, ctx: ExtensionCommandContext, manager: LspServerManager): Promise<void>;
|
package/dist/commands.js
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { show_picker_modal, show_text_modal, } from '@spences10/pi-tui-modal';
|
|
2
|
+
import { format_lsp_view, format_status_lines } from './format.js';
|
|
3
|
+
import { list_supported_languages } from './servers.js';
|
|
4
|
+
export function register_lsp_command(pi, manager) {
|
|
5
|
+
pi.registerCommand('lsp', {
|
|
6
|
+
description: 'Show or manage language server state',
|
|
7
|
+
getArgumentCompletions: (prefix) => {
|
|
8
|
+
const parts = prefix.trim().split(/\s+/);
|
|
9
|
+
const subcommands = ['status', 'list', 'restart'];
|
|
10
|
+
if (!prefix.trim()) {
|
|
11
|
+
return subcommands.map((value) => ({
|
|
12
|
+
value,
|
|
13
|
+
label: value,
|
|
14
|
+
}));
|
|
15
|
+
}
|
|
16
|
+
if (parts.length <= 1) {
|
|
17
|
+
return subcommands
|
|
18
|
+
.filter((value) => value.startsWith(parts[0]))
|
|
19
|
+
.map((value) => ({ value, label: value }));
|
|
20
|
+
}
|
|
21
|
+
if (parts[0] === 'restart') {
|
|
22
|
+
const candidate = parts[1] ?? '';
|
|
23
|
+
return ['all', ...list_supported_languages()]
|
|
24
|
+
.filter((value) => value.startsWith(candidate))
|
|
25
|
+
.map((value) => ({
|
|
26
|
+
value: `restart ${value}`,
|
|
27
|
+
label: value,
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
},
|
|
32
|
+
handler: async (args, ctx) => {
|
|
33
|
+
await handle_lsp_command(args, ctx, manager);
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export async function handle_lsp_command(args, ctx, manager) {
|
|
38
|
+
const parts = args.trim() ? args.trim().split(/\s+/, 2) : [];
|
|
39
|
+
if (parts.length === 0 && has_modal_ui(ctx)) {
|
|
40
|
+
while (true) {
|
|
41
|
+
const selected = await show_lsp_home_modal(ctx, manager);
|
|
42
|
+
if (!selected)
|
|
43
|
+
return;
|
|
44
|
+
if (selected === 'restart') {
|
|
45
|
+
await handle_lsp_restart_modal(ctx, manager);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
if (selected === 'restart-all') {
|
|
49
|
+
await restart_all_lsp_servers(ctx, manager);
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
await show_lsp_text_modal(ctx, selected === 'running'
|
|
53
|
+
? 'Running LSP servers'
|
|
54
|
+
: selected === 'failed'
|
|
55
|
+
? 'Failed LSP servers'
|
|
56
|
+
: 'LSP status', format_lsp_view(selected, manager.cwd, manager.clients_by_server, manager.failed_servers));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const [subcommand = 'status', target] = parts;
|
|
60
|
+
switch (subcommand) {
|
|
61
|
+
case 'status':
|
|
62
|
+
case 'list':
|
|
63
|
+
await present_lsp_text(ctx, 'LSP status', format_status_lines(manager.cwd, manager.clients_by_server, manager.failed_servers).join('\n'));
|
|
64
|
+
return;
|
|
65
|
+
case 'restart': {
|
|
66
|
+
if (!target && has_modal_ui(ctx)) {
|
|
67
|
+
await handle_lsp_restart_modal(ctx, manager);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (!target || target === 'all') {
|
|
71
|
+
await manager.clear_language_state();
|
|
72
|
+
ctx.ui.notify('Restarted all language server state.');
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (!list_supported_languages().includes(target)) {
|
|
76
|
+
ctx.ui.notify(`Unknown language: ${target}. Use one of: ${list_supported_languages().join(', ')}`, 'warning');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
await manager.clear_language_state(target);
|
|
80
|
+
ctx.ui.notify(`Restarted ${target} language server state.`);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
default:
|
|
84
|
+
ctx.ui.notify(`Unknown subcommand: ${subcommand}. Use: status, list, restart`, 'warning');
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function has_modal_ui(ctx) {
|
|
88
|
+
return ctx.hasUI && typeof ctx.ui.custom === 'function';
|
|
89
|
+
}
|
|
90
|
+
async function present_lsp_text(ctx, title, text) {
|
|
91
|
+
if (has_modal_ui(ctx)) {
|
|
92
|
+
await show_lsp_text_modal(ctx, title, text);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
ctx.ui.notify(text);
|
|
96
|
+
}
|
|
97
|
+
async function show_lsp_home_modal(ctx, manager) {
|
|
98
|
+
const running_count = manager.clients_by_server.size;
|
|
99
|
+
const failed_count = manager.failed_servers.size;
|
|
100
|
+
return await show_picker_modal(ctx, {
|
|
101
|
+
title: 'Language servers',
|
|
102
|
+
subtitle: `${running_count} running • ${failed_count} failed • ${list_supported_languages().length} supported`,
|
|
103
|
+
items: [
|
|
104
|
+
{
|
|
105
|
+
value: 'status',
|
|
106
|
+
label: 'Status',
|
|
107
|
+
description: `All configured language servers for ${manager.cwd}`,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
value: 'running',
|
|
111
|
+
label: 'Running servers',
|
|
112
|
+
description: `${running_count} active workspace server(s)`,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
value: 'failed',
|
|
116
|
+
label: 'Failed servers',
|
|
117
|
+
description: `${failed_count} failed server(s)`,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
value: 'restart',
|
|
121
|
+
label: 'Restart server',
|
|
122
|
+
description: 'Pick a supported language to restart',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
value: 'restart-all',
|
|
126
|
+
label: 'Restart all',
|
|
127
|
+
description: 'Stop every running language server',
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
footer: 'enter opens • esc close/back',
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
async function show_lsp_text_modal(ctx, title, text) {
|
|
134
|
+
await show_text_modal(ctx, {
|
|
135
|
+
title,
|
|
136
|
+
text,
|
|
137
|
+
max_visible_lines: 20,
|
|
138
|
+
overlay_options: { width: '90%', minWidth: 72 },
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
async function handle_lsp_restart_modal(ctx, manager) {
|
|
142
|
+
const selected = await show_picker_modal(ctx, {
|
|
143
|
+
title: 'Restart LSP server',
|
|
144
|
+
subtitle: 'Clear cached language server state',
|
|
145
|
+
items: [
|
|
146
|
+
{
|
|
147
|
+
value: 'all',
|
|
148
|
+
label: 'All servers',
|
|
149
|
+
description: 'Stop every running language server',
|
|
150
|
+
},
|
|
151
|
+
...list_supported_languages().map((language) => ({
|
|
152
|
+
value: language,
|
|
153
|
+
label: language,
|
|
154
|
+
description: `Restart ${language} language server state`,
|
|
155
|
+
})),
|
|
156
|
+
],
|
|
157
|
+
footer: 'enter restarts • esc back',
|
|
158
|
+
});
|
|
159
|
+
if (!selected)
|
|
160
|
+
return;
|
|
161
|
+
if (selected === 'all') {
|
|
162
|
+
await restart_all_lsp_servers(ctx, manager);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
await manager.clear_language_state(selected);
|
|
166
|
+
ctx.ui.notify(`Restarted ${selected} language server state.`);
|
|
167
|
+
}
|
|
168
|
+
async function restart_all_lsp_servers(ctx, manager) {
|
|
169
|
+
await manager.clear_language_state();
|
|
170
|
+
ctx.ui.notify('Restarted all language server state.');
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,21 +1,8 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { type
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
stop(): Promise<void>;
|
|
7
|
-
is_ready(): boolean;
|
|
8
|
-
ensure_document_open(uri: string, text: string): Promise<void>;
|
|
9
|
-
hover(uri: string, position: LspPosition): Promise<LspHover | null>;
|
|
10
|
-
definition(uri: string, position: LspPosition): Promise<LspLocation[]>;
|
|
11
|
-
references(uri: string, position: LspPosition, include_declaration: boolean): Promise<LspLocation[]>;
|
|
12
|
-
document_symbols(uri: string): Promise<LspDocumentSymbol[]>;
|
|
13
|
-
wait_for_diagnostics(uri: string, timeout_ms?: number): Promise<LspDiagnostic[]>;
|
|
14
|
-
}
|
|
15
|
-
export interface CreateLspExtensionOptions {
|
|
16
|
-
create_client?: (options: LspClientOptions) => LspClientLike;
|
|
17
|
-
read_file?: (path: string) => Promise<string>;
|
|
18
|
-
cwd?: () => string;
|
|
1
|
+
import { type ExtensionAPI } from '@mariozechner/pi-coding-agent';
|
|
2
|
+
import { type CreateLspServerManagerOptions } from './server-manager.js';
|
|
3
|
+
export { should_inject_lsp_prompt } from './prompt.js';
|
|
4
|
+
export type { LspClientLike } from './server-manager.js';
|
|
5
|
+
export interface CreateLspExtensionOptions extends CreateLspServerManagerOptions {
|
|
19
6
|
}
|
|
20
7
|
export declare function create_lsp_extension(options?: CreateLspExtensionOptions): (pi: ExtensionAPI) => Promise<void>;
|
|
21
8
|
declare const _default: (pi: ExtensionAPI) => Promise<void>;
|