@mrclrchtr/supi-lsp 11.1.0 → 11.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/README.md +42 -5
- package/node_modules/@mrclrchtr/supi-code-runtime/package.json +1 -1
- package/node_modules/@mrclrchtr/supi-core/package.json +1 -1
- package/node_modules/semver/LICENSE +15 -0
- package/node_modules/semver/README.md +680 -0
- package/node_modules/semver/bin/semver.js +195 -0
- package/node_modules/semver/classes/comparator.js +143 -0
- package/node_modules/semver/classes/index.js +7 -0
- package/node_modules/semver/classes/range.js +577 -0
- package/node_modules/semver/classes/semver.js +350 -0
- package/node_modules/semver/functions/clean.js +8 -0
- package/node_modules/semver/functions/cmp.js +54 -0
- package/node_modules/semver/functions/coerce.js +62 -0
- package/node_modules/semver/functions/compare-build.js +9 -0
- package/node_modules/semver/functions/compare-loose.js +5 -0
- package/node_modules/semver/functions/compare.js +7 -0
- package/node_modules/semver/functions/diff.js +60 -0
- package/node_modules/semver/functions/eq.js +5 -0
- package/node_modules/semver/functions/gt.js +5 -0
- package/node_modules/semver/functions/gte.js +5 -0
- package/node_modules/semver/functions/inc.js +21 -0
- package/node_modules/semver/functions/lt.js +5 -0
- package/node_modules/semver/functions/lte.js +5 -0
- package/node_modules/semver/functions/major.js +5 -0
- package/node_modules/semver/functions/minor.js +5 -0
- package/node_modules/semver/functions/neq.js +5 -0
- package/node_modules/semver/functions/parse.js +18 -0
- package/node_modules/semver/functions/patch.js +5 -0
- package/node_modules/semver/functions/prerelease.js +8 -0
- package/node_modules/semver/functions/rcompare.js +5 -0
- package/node_modules/semver/functions/rsort.js +5 -0
- package/node_modules/semver/functions/satisfies.js +12 -0
- package/node_modules/semver/functions/sort.js +5 -0
- package/node_modules/semver/functions/truncate.js +48 -0
- package/node_modules/semver/functions/valid.js +8 -0
- package/node_modules/semver/index.js +93 -0
- package/node_modules/semver/internal/constants.js +37 -0
- package/node_modules/semver/internal/debug.js +11 -0
- package/node_modules/semver/internal/identifiers.js +29 -0
- package/node_modules/semver/internal/lrucache.js +42 -0
- package/node_modules/semver/internal/parse-options.js +17 -0
- package/node_modules/semver/internal/re.js +223 -0
- package/node_modules/semver/package.json +78 -0
- package/node_modules/semver/preload.js +4 -0
- package/node_modules/semver/range.bnf +17 -0
- package/node_modules/semver/ranges/gtr.js +6 -0
- package/node_modules/semver/ranges/intersects.js +9 -0
- package/node_modules/semver/ranges/ltr.js +6 -0
- package/node_modules/semver/ranges/max-satisfying.js +27 -0
- package/node_modules/semver/ranges/min-satisfying.js +26 -0
- package/node_modules/semver/ranges/min-version.js +63 -0
- package/node_modules/semver/ranges/outside.js +82 -0
- package/node_modules/semver/ranges/simplify.js +49 -0
- package/node_modules/semver/ranges/subset.js +249 -0
- package/node_modules/semver/ranges/to-comparators.js +10 -0
- package/node_modules/semver/ranges/valid.js +13 -0
- package/package.json +5 -3
- package/src/client/client.ts +23 -5
- package/src/config/config.ts +53 -2
- package/src/config/operation-support.ts +19 -4
- package/src/config/server-config.ts +22 -0
- package/src/config/typescript-launch.ts +276 -0
- package/src/manager/manager-project-info.ts +22 -10
- package/src/manager/manager.ts +52 -19
- package/src/provider/refactor-planning.ts +4 -3
- package/src/session/runtime-controller.ts +2 -2
- package/src/session/scanner.ts +27 -15
package/src/session/scanner.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
MissingServer,
|
|
8
8
|
ServerConfig,
|
|
9
9
|
} from "../config/types.ts";
|
|
10
|
+
import { inspectTypeScriptLaunch } from "../config/typescript-launch.ts";
|
|
10
11
|
import type { LspManager } from "../manager/manager.ts";
|
|
11
12
|
import { commandExists } from "../utils.ts";
|
|
12
13
|
import {
|
|
@@ -32,20 +33,16 @@ export function scanProjectCapabilities(
|
|
|
32
33
|
|
|
33
34
|
return Object.entries(config.servers)
|
|
34
35
|
.flatMap(([serverName, server]) => {
|
|
35
|
-
if (!commandExists(server.command)) return [];
|
|
36
36
|
const allRoots = new Set(markerMatches.get(serverName) ?? []);
|
|
37
37
|
if (extensionBasedServers.has(serverName)) {
|
|
38
38
|
allRoots.add(cwd);
|
|
39
39
|
}
|
|
40
40
|
const roots = dedupeTopmostRoots(Array.from(allRoots));
|
|
41
|
-
return roots.
|
|
42
|
-
(root)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
fileTypes: [...server.fileTypes],
|
|
47
|
-
}) satisfies DetectedProjectServer,
|
|
48
|
-
);
|
|
41
|
+
return roots.flatMap((root) => {
|
|
42
|
+
const { command, ...selection } = inspectTypeScriptLaunch(serverName, server, root);
|
|
43
|
+
if (!selection.failureMessage && !commandExists(command)) return [];
|
|
44
|
+
return [{ name: serverName, root, fileTypes: [...server.fileTypes], ...selection }];
|
|
45
|
+
});
|
|
49
46
|
})
|
|
50
47
|
.sort((a, b) => a.root.localeCompare(b.root) || a.name.localeCompare(b.name));
|
|
51
48
|
}
|
|
@@ -79,8 +76,6 @@ function inspectDirectory(
|
|
|
79
76
|
ctx: HintContext,
|
|
80
77
|
): void {
|
|
81
78
|
for (const [serverName, server] of Object.entries(servers)) {
|
|
82
|
-
if (!commandExists(server.command)) continue;
|
|
83
|
-
|
|
84
79
|
if (server.rootMarkers.length === 0) {
|
|
85
80
|
if (hasMatchingFile(directory, entryNames, server.fileTypes)) {
|
|
86
81
|
ctx.extensionBasedServers.add(serverName);
|
|
@@ -122,7 +117,7 @@ export async function startDetectedServers(
|
|
|
122
117
|
|
|
123
118
|
/**
|
|
124
119
|
* Scan the project for languages whose source files exist but whose LSP server
|
|
125
|
-
*
|
|
120
|
+
* executable or selected compiler is unavailable. Walks the project tree collecting
|
|
126
121
|
* file extensions, then checks each configured server.
|
|
127
122
|
*/
|
|
128
123
|
export function scanMissingServers(
|
|
@@ -142,14 +137,31 @@ export function scanMissingServers(
|
|
|
142
137
|
});
|
|
143
138
|
|
|
144
139
|
const missing: MissingServer[] = [];
|
|
140
|
+
const { markerMatches } = collectServerHints(config, cwd, maxDepth, policy);
|
|
145
141
|
|
|
146
142
|
for (const [name, server] of Object.entries(config.servers)) {
|
|
147
|
-
if (commandExists(server.command)) continue;
|
|
148
|
-
|
|
149
143
|
const matching = server.fileTypes.filter((ft) => foundExtensions.has(ft));
|
|
150
144
|
if (matching.length === 0) continue;
|
|
151
145
|
|
|
152
|
-
|
|
146
|
+
const roots = dedupeTopmostRoots(Array.from(markerMatches.get(name) ?? []));
|
|
147
|
+
for (const root of roots.length ? roots : [cwd]) {
|
|
148
|
+
const selection = inspectTypeScriptLaunch(name, server, root);
|
|
149
|
+
const command = selection.command;
|
|
150
|
+
if (selection.failureMessage) {
|
|
151
|
+
missing.push({
|
|
152
|
+
name,
|
|
153
|
+
command,
|
|
154
|
+
foundExtensions: matching,
|
|
155
|
+
root,
|
|
156
|
+
failureMessage: selection.failureMessage,
|
|
157
|
+
});
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
if (!commandExists(command)) {
|
|
161
|
+
missing.push({ name, command, foundExtensions: matching });
|
|
162
|
+
break;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
153
165
|
}
|
|
154
166
|
|
|
155
167
|
return missing;
|