@lsproxy/polyfill 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.
@@ -0,0 +1,3 @@
1
+ import type { CodeActionPolyfill } from './types.js';
2
+ export declare const fixAll: CodeActionPolyfill;
3
+ //# sourceMappingURL=fix-all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-all.d.ts","sourceRoot":"","sources":["../src/fix-all.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoDrD,eAAO,MAAM,MAAM,EAAE,kBA8DpB,CAAC"}
@@ -0,0 +1,91 @@
1
+ function hasDiagnosticProvider(capabilities) {
2
+ return Boolean(capabilities.diagnosticProvider);
3
+ }
4
+ function alreadyAdvertisesFixAll(capabilities) {
5
+ const provider = capabilities.codeActionProvider;
6
+ return (typeof provider === 'object' &&
7
+ Array.isArray(provider.codeActionKinds) &&
8
+ provider.codeActionKinds.includes('source.fixAll'));
9
+ }
10
+ function requestsFixAll(params) {
11
+ const only = params.context.only;
12
+ if (!only)
13
+ return false;
14
+ return only.some((kind) => kind === 'source.fixAll' || kind === 'source');
15
+ }
16
+ function isCodeAction(item) {
17
+ return typeof item.command !== 'string';
18
+ }
19
+ function pickFix(candidates) {
20
+ const actions = candidates.filter(isCodeAction);
21
+ return actions.find((a) => a.isPreferred) ?? actions[0];
22
+ }
23
+ function supportsResolve(capabilities) {
24
+ const provider = capabilities.codeActionProvider;
25
+ return typeof provider === 'object' && provider.resolveProvider === true;
26
+ }
27
+ function comparePositions(a, b) {
28
+ return a.line !== b.line ? a.line - b.line : a.character - b.character;
29
+ }
30
+ function rangesOverlap(a, b) {
31
+ return comparePositions(a.start, b.end) < 0 && comparePositions(b.start, a.end) < 0;
32
+ }
33
+ function mergeEdits(existing, incoming) {
34
+ const merged = [...existing];
35
+ for (const edit of incoming) {
36
+ if (merged.some((m) => rangesOverlap(m.range, edit.range)))
37
+ continue;
38
+ merged.push(edit);
39
+ }
40
+ return merged;
41
+ }
42
+ export const fixAll = {
43
+ id: 'fix-all',
44
+ appliesTo(capabilities) {
45
+ return (Boolean(capabilities.codeActionProvider) &&
46
+ hasDiagnosticProvider(capabilities) &&
47
+ !alreadyAdvertisesFixAll(capabilities));
48
+ },
49
+ async augmentCodeActions(actions, params, backend) {
50
+ if (!requestsFixAll(params))
51
+ return actions;
52
+ const report = (await backend.sendRequest('textDocument/diagnostic', { textDocument: params.textDocument }));
53
+ const diagnostics = report.kind === 'full' ? (report.items ?? []) : [];
54
+ const capabilities = backend.getServerCapabilities() ?? {};
55
+ const changes = {};
56
+ let mergedCount = 0;
57
+ for (const diagnostic of diagnostics) {
58
+ const candidates = (await backend.sendRequest('textDocument/codeAction', {
59
+ textDocument: params.textDocument,
60
+ range: diagnostic.range,
61
+ context: { diagnostics: [diagnostic], only: ['quickfix'] }
62
+ }));
63
+ let fix = candidates ? pickFix(candidates) : undefined;
64
+ if (fix && !fix.edit?.changes && fix.command && supportsResolve(capabilities)) {
65
+ fix = (await backend.sendRequest('codeAction/resolve', fix));
66
+ }
67
+ if (!fix?.edit?.changes)
68
+ continue;
69
+ let mergedAny = false;
70
+ for (const [uri, edits] of Object.entries(fix.edit.changes)) {
71
+ if (edits.length === 0)
72
+ continue;
73
+ changes[uri] = mergeEdits(changes[uri] ?? [], edits);
74
+ mergedAny = true;
75
+ }
76
+ if (mergedAny)
77
+ mergedCount += 1;
78
+ }
79
+ if (mergedCount === 0)
80
+ return actions;
81
+ return [
82
+ ...actions,
83
+ {
84
+ title: 'Fix all auto-fixable problems',
85
+ kind: 'source.fixAll',
86
+ edit: { changes }
87
+ }
88
+ ];
89
+ }
90
+ };
91
+ //# sourceMappingURL=fix-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-all.js","sourceRoot":"","sources":["../src/fix-all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type { CodeActionPolyfill } from './types.js';
2
+ export { resolveBackfill } from './resolve-backfill.js';
3
+ export { fixAll } from './fix-all.js';
4
+ export { BUILTIN_POLYFILLS, applicablePolyfills } from './registry.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { resolveBackfill } from './resolve-backfill.js';
2
+ export { fixAll } from './fix-all.js';
3
+ export { BUILTIN_POLYFILLS, applicablePolyfills } from './registry.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ServerCapabilities } from '@lspeasy/core';
2
+ import type { CodeActionPolyfill } from './types.js';
3
+ export declare const BUILTIN_POLYFILLS: readonly CodeActionPolyfill[];
4
+ export declare function applicablePolyfills(capabilities: ServerCapabilities): CodeActionPolyfill[];
5
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAIrD,eAAO,MAAM,iBAAiB,EAAE,SAAS,kBAAkB,EAA8B,CAAC;AAE1F,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,CAE1F"}
@@ -0,0 +1,7 @@
1
+ import { resolveBackfill } from './resolve-backfill.js';
2
+ import { fixAll } from './fix-all.js';
3
+ export const BUILTIN_POLYFILLS = [resolveBackfill, fixAll];
4
+ export function applicablePolyfills(capabilities) {
5
+ return BUILTIN_POLYFILLS.filter((p) => p.appliesTo(capabilities));
6
+ }
7
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAkC,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAE1F,MAAM,UAAU,mBAAmB,CAAC,YAAgC;IAClE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CodeActionPolyfill } from './types.js';
2
+ export declare const resolveBackfill: CodeActionPolyfill;
3
+ //# sourceMappingURL=resolve-backfill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-backfill.d.ts","sourceRoot":"","sources":["../src/resolve-backfill.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQrD,eAAO,MAAM,eAAe,EAAE,kBAkB7B,CAAC"}
@@ -0,0 +1,23 @@
1
+ function hasNativeResolve(capabilities) {
2
+ const provider = capabilities.codeActionProvider;
3
+ if (!provider)
4
+ return false;
5
+ return typeof provider === 'object' && provider.resolveProvider === true;
6
+ }
7
+ export const resolveBackfill = {
8
+ id: 'resolve-backfill',
9
+ appliesTo(capabilities) {
10
+ return Boolean(capabilities.codeActionProvider) && !hasNativeResolve(capabilities);
11
+ },
12
+ patchCapabilities(capabilities) {
13
+ const provider = capabilities.codeActionProvider;
14
+ const base = typeof provider === 'object' ? provider : {};
15
+ return { ...capabilities, codeActionProvider: { ...base, resolveProvider: true } };
16
+ },
17
+ async resolveCodeAction(action) {
18
+ // Per the LSP spec, a server without resolveProvider must return fully
19
+ // resolved actions from textDocument/codeAction already — echo unchanged.
20
+ return action;
21
+ }
22
+ };
23
+ //# sourceMappingURL=resolve-backfill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-backfill.js","sourceRoot":"","sources":["../src/resolve-backfill.ts"],"names":[],"mappings":"AAIA,SAAS,gBAAgB,CAAC,YAAgC;IACxD,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,CAAC;IACjD,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAuB;IACjD,EAAE,EAAE,kBAAkB;IAEtB,SAAS,CAAC,YAAY;QACpB,OAAO,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACrF,CAAC;IAED,iBAAiB,CAAC,YAAY;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,CAAC;QACjD,MAAM,IAAI,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,GAAG,YAAY,EAAE,kBAAkB,EAAE,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAM;QAC5B,uEAAuE;QACvE,0EAA0E;QAC1E,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { CodeAction, CodeActionParams, ServerCapabilities } from '@lspeasy/core';
2
+ import type { LSPClient } from '@lspeasy/client';
3
+ export interface CodeActionPolyfill {
4
+ readonly id: string;
5
+ /** Does this backend have the gap this polyfill fills? Checked once per
6
+ * backend, from its real (unpatched) capabilities. */
7
+ appliesTo(capabilities: ServerCapabilities): boolean;
8
+ /** Patch the capabilities lsproxy advertises to its own client so it knows
9
+ * the polyfilled feature is available. */
10
+ patchCapabilities?(capabilities: ServerCapabilities): ServerCapabilities;
11
+ /** Augment textDocument/codeAction's real result with synthesized actions. */
12
+ augmentCodeActions?(actions: CodeAction[], params: CodeActionParams, backend: LSPClient): Promise<CodeAction[]>;
13
+ /** Answer codeAction/resolve when the backend doesn't natively support it. */
14
+ resolveCodeAction?(action: CodeAction, backend: LSPClient): Promise<CodeAction>;
15
+ }
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;2DACuD;IACvD,SAAS,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC;IAErD;+CAC2C;IAC3C,iBAAiB,CAAC,CAAC,YAAY,EAAE,kBAAkB,GAAG,kBAAkB,CAAC;IAEzE,8EAA8E;IAC9E,kBAAkB,CAAC,CACjB,OAAO,EAAE,UAAU,EAAE,EACrB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEzB,8EAA8E;IAC9E,iBAAiB,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACjF"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@lsproxy/polyfill",
3
+ "version": "0.2.0",
4
+ "description": "CodeAction capability polyfills for lsproxy backends that don't natively support them",
5
+ "private": false,
6
+ "keywords": [
7
+ "lsp",
8
+ "language-server-protocol",
9
+ "lsp-proxy",
10
+ "code-action"
11
+ ],
12
+ "homepage": "https://github.com/pradeepmouli/lspeasy#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/pradeepmouli/lspeasy/issues"
15
+ },
16
+ "license": "MIT",
17
+ "author": "Pradeep Mouli <pmouli@mac.com> (https://github.com/pradeepmouli)",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/pradeepmouli/lspeasy.git",
21
+ "directory": "apps/polyfill"
22
+ },
23
+ "type": "module",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/index.js"
28
+ }
29
+ },
30
+ "main": "./dist/index.js",
31
+ "types": "./dist/index.d.ts",
32
+ "files": [
33
+ "dist",
34
+ "README.md"
35
+ ],
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "scripts": {
40
+ "build": "tsgo --build",
41
+ "clean": "rm -rf dist tsconfig.tsbuildinfo",
42
+ "type-check": "tsgo --noEmit"
43
+ },
44
+ "dependencies": {
45
+ "@lspeasy/client": "workspace:*",
46
+ "@lspeasy/core": "workspace:*"
47
+ },
48
+ "devDependencies": {
49
+ "typescript": "^6.0.3"
50
+ },
51
+ "engines": {
52
+ "node": ">=22.0.0"
53
+ }
54
+ }