@platformos/platformos-language-server-common 0.0.5 → 0.0.7
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 +20 -0
- package/dist/ClientCapabilities.js +1 -1
- package/dist/ClientCapabilities.js.map +1 -1
- package/dist/PropertyShapeInference.d.ts +0 -18
- package/dist/PropertyShapeInference.js +1 -59
- package/dist/PropertyShapeInference.js.map +1 -1
- package/dist/TypeSystem.js +26 -225
- package/dist/TypeSystem.js.map +1 -1
- package/dist/completions/params/LiquidCompletionParams.js +0 -3
- package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
- package/dist/completions/providers/FilterCompletionProvider.js.map +1 -1
- package/dist/completions/providers/TranslationCompletionProvider.js +1 -1
- package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -1
- package/dist/diagnostics/runChecks.d.ts +2 -1
- package/dist/diagnostics/runChecks.js +2 -2
- package/dist/diagnostics/runChecks.js.map +1 -1
- package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +1 -1
- package/dist/formatting/OnTypeFormattingProvider.d.ts +1 -1
- package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -1
- package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/server/Configuration.d.ts +7 -5
- package/dist/server/Configuration.js +10 -7
- package/dist/server/Configuration.js.map +1 -1
- package/dist/server/startServer.js +3 -2
- package/dist/server/startServer.js.map +1 -1
- package/dist/test/MockConnection.d.ts +15 -15
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
- package/src/ClientCapabilities.ts +1 -1
- package/src/TypeSystem.spec.ts +6 -9
- package/src/TypeSystem.ts +2 -2
- package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/ContentForCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +2 -2
- package/src/completions/providers/FilterCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/FilterCompletionProvider.ts +6 -6
- package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/PartialCompletionProvider.spec.ts +4 -4
- package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -1
- package/src/completions/providers/TranslationCompletionProvider.ts +1 -1
- package/src/css/CSSLanguageService.spec.ts +8 -10
- package/src/diagnostics/runChecks.ts +7 -2
- package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.spec.ts +3 -2
- package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +1 -3
- package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +1 -1
- package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +1 -1
- package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -1
- package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -1
- package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -1
- package/src/hover/providers/LiquidTagHoverProvider.spec.ts +1 -1
- package/src/hover/providers/RenderPartialHoverProvider.spec.ts +1 -1
- package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +1 -1
- package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -1
- package/src/progress.ts +4 -1
- package/src/server/Configuration.ts +14 -5
- package/src/server/startServer.spec.ts +6 -6
- package/src/server/startServer.ts +4 -3
- package/src/test/CompletionItemsAssertion.spec.ts +1 -1
- package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +0 -10
- package/dist/codeActions/providers/GenerateDocBlockProvider.js +0 -39
- package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +0 -1
- package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +0 -19
- package/dist/commands/providers/GenerateDocBlockCommandProvider.js +0 -64
- package/dist/commands/providers/GenerateDocBlockCommandProvider.js.map +0 -1
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
import { debounce } from '../utils';
|
|
55
55
|
import { VERSION } from '../version';
|
|
56
56
|
import { CachedFileSystem } from './CachedFileSystem';
|
|
57
|
-
import { Configuration } from './Configuration';
|
|
57
|
+
import { Configuration, INCLUDE_FILES_FROM_DISK } from './Configuration';
|
|
58
58
|
import { safe } from './safe';
|
|
59
59
|
import { ThemeGraphManager } from './ThemeGraphManager';
|
|
60
60
|
import { DocumentsLocator } from '@platformos/platformos-common';
|
|
@@ -194,6 +194,7 @@ export function startServer(
|
|
|
194
194
|
getMetafieldDefinitions,
|
|
195
195
|
cssLanguageService,
|
|
196
196
|
themeGraphManager,
|
|
197
|
+
includeFilesFromDisk: () => configuration[INCLUDE_FILES_FROM_DISK],
|
|
197
198
|
}),
|
|
198
199
|
100,
|
|
199
200
|
);
|
|
@@ -202,7 +203,7 @@ export function startServer(
|
|
|
202
203
|
const rootURI = await findThemeRootURI(uri);
|
|
203
204
|
if (!rootURI) return {};
|
|
204
205
|
|
|
205
|
-
const theme = documentManager.theme(rootURI);
|
|
206
|
+
const theme = documentManager.theme(rootURI, configuration[INCLUDE_FILES_FROM_DISK]);
|
|
206
207
|
const getDefaultTranslations = makeGetDefaultTranslations(fs, theme, rootURI);
|
|
207
208
|
const [defaultTranslations, shopifyTranslations] = await Promise.all([
|
|
208
209
|
getDefaultTranslations(),
|
|
@@ -216,7 +217,7 @@ export function startServer(
|
|
|
216
217
|
const rootURI = await findThemeRootURI(uri);
|
|
217
218
|
if (!rootURI) return {};
|
|
218
219
|
|
|
219
|
-
const theme = documentManager.theme(rootURI);
|
|
220
|
+
const theme = documentManager.theme(rootURI, configuration[INCLUDE_FILES_FROM_DISK]);
|
|
220
221
|
const getDefaultSchemaTranslations = makeGetDefaultSchemaTranslations(fs, theme, rootURI);
|
|
221
222
|
return getDefaultSchemaTranslations();
|
|
222
223
|
};
|
|
@@ -19,7 +19,7 @@ describe('Module: CompletionItemsAssertion', () => {
|
|
|
19
19
|
tags: async () => [{ name: 'render' }],
|
|
20
20
|
systemTranslations: async () => ({}),
|
|
21
21
|
},
|
|
22
|
-
getMetafieldDefinitions: async (_rootUri: string) => ({} as MetafieldDefinitionMap
|
|
22
|
+
getMetafieldDefinitions: async (_rootUri: string) => ({}) as MetafieldDefinitionMap,
|
|
23
23
|
});
|
|
24
24
|
});
|
|
25
25
|
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { CodeAction, CodeActionParams, Command } from 'vscode-languageserver';
|
|
2
|
-
import { BaseCodeActionsProvider } from '../BaseCodeActionsProvider';
|
|
3
|
-
/**
|
|
4
|
-
* GenerateDocBlockProvider provides a source action to generate {% doc %} blocks
|
|
5
|
-
* for partials and blocks based on detected parameters.
|
|
6
|
-
*/
|
|
7
|
-
export declare class GenerateDocBlockProvider extends BaseCodeActionsProvider {
|
|
8
|
-
static kind: "source";
|
|
9
|
-
codeActions(params: CodeActionParams): (Command | CodeAction)[];
|
|
10
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GenerateDocBlockProvider = void 0;
|
|
4
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
5
|
-
const platformos_check_common_1 = require("@platformos/platformos-check-common");
|
|
6
|
-
const BaseCodeActionsProvider_1 = require("../BaseCodeActionsProvider");
|
|
7
|
-
/**
|
|
8
|
-
* GenerateDocBlockProvider provides a source action to generate {% doc %} blocks
|
|
9
|
-
* for partials and blocks based on detected parameters.
|
|
10
|
-
*/
|
|
11
|
-
class GenerateDocBlockProvider extends BaseCodeActionsProvider_1.BaseCodeActionsProvider {
|
|
12
|
-
codeActions(params) {
|
|
13
|
-
const { uri } = params.textDocument;
|
|
14
|
-
const document = this.documentManager.get(uri);
|
|
15
|
-
if (!document)
|
|
16
|
-
return [];
|
|
17
|
-
// Only provide for liquid files that support doc blocks (partials/blocks)
|
|
18
|
-
if (!(0, platformos_check_common_1.filePathSupportsLiquidDoc)(uri))
|
|
19
|
-
return [];
|
|
20
|
-
// Check if file already has a doc block
|
|
21
|
-
const ast = document.ast;
|
|
22
|
-
if ((0, platformos_check_common_1.isError)(ast))
|
|
23
|
-
return [];
|
|
24
|
-
// Return a code action that will trigger the command
|
|
25
|
-
const codeAction = {
|
|
26
|
-
title: 'Generate doc block from parameters',
|
|
27
|
-
kind: GenerateDocBlockProvider.kind,
|
|
28
|
-
command: {
|
|
29
|
-
title: 'Generate Doc Block',
|
|
30
|
-
command: 'platformOS.generateDocBlock',
|
|
31
|
-
arguments: [uri, document.version],
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
return [codeAction];
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.GenerateDocBlockProvider = GenerateDocBlockProvider;
|
|
38
|
-
GenerateDocBlockProvider.kind = vscode_languageserver_1.CodeActionKind.Source;
|
|
39
|
-
//# sourceMappingURL=GenerateDocBlockProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateDocBlockProvider.js","sourceRoot":"","sources":["../../../src/codeActions/providers/GenerateDocBlockProvider.ts"],"names":[],"mappings":";;;AAAA,iEAK+B;AAC/B,iFAAyF;AACzF,wEAAqE;AAGrE;;;GAGG;AACH,MAAa,wBAAyB,SAAQ,iDAAuB;IAGnE,WAAW,CAAC,MAAwB;QAClC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,0EAA0E;QAC1E,IAAI,CAAC,IAAA,mDAAyB,EAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAE/C,wCAAwC;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACzB,IAAI,IAAA,iCAAO,EAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAE5B,qDAAqD;QACrD,MAAM,UAAU,GAAe;YAC7B,KAAK,EAAE,oCAAoC;YAC3C,IAAI,EAAE,wBAAwB,CAAC,IAAI;YACnC,OAAO,EAAE;gBACP,KAAK,EAAE,oBAAoB;gBAC3B,OAAO,EAAE,6BAA6B;gBACtC,SAAS,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC;aACnC;SACF,CAAC;QAEF,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;;AA5BH,4DA6BC;AA5BQ,6BAAI,GAAG,sCAAc,CAAC,MAAM,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ThemeDocset } from '@platformos/platformos-check-common';
|
|
2
|
-
import { Command } from 'vscode-languageserver';
|
|
3
|
-
import { BaseExecuteCommandProvider } from '../BaseExecuteCommandProvider';
|
|
4
|
-
/**
|
|
5
|
-
* GenerateDocBlockCommandProvider handles the `platformOS.generateDocBlock` command.
|
|
6
|
-
*
|
|
7
|
-
* It generates a {% doc %} block based on detected parameters in a partial/block file
|
|
8
|
-
* and inserts it at the beginning of the file.
|
|
9
|
-
*/
|
|
10
|
-
export declare class GenerateDocBlockCommandProvider extends BaseExecuteCommandProvider {
|
|
11
|
-
static command: "platformOS.generateDocBlock";
|
|
12
|
-
private themeDocset;
|
|
13
|
-
setThemeDocset(themeDocset: ThemeDocset): void;
|
|
14
|
-
execute(uri: string, version: number | undefined): Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Creates a command to generate a doc block for the given URI.
|
|
18
|
-
*/
|
|
19
|
-
export declare function generateDocBlockCommand(uri: string, version: number | undefined): Command;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GenerateDocBlockCommandProvider = void 0;
|
|
4
|
-
exports.generateDocBlockCommand = generateDocBlockCommand;
|
|
5
|
-
const platformos_check_common_1 = require("@platformos/platformos-check-common");
|
|
6
|
-
const vscode_languageserver_1 = require("vscode-languageserver");
|
|
7
|
-
const BaseExecuteCommandProvider_1 = require("../BaseExecuteCommandProvider");
|
|
8
|
-
/**
|
|
9
|
-
* GenerateDocBlockCommandProvider handles the `platformOS.generateDocBlock` command.
|
|
10
|
-
*
|
|
11
|
-
* It generates a {% doc %} block based on detected parameters in a partial/block file
|
|
12
|
-
* and inserts it at the beginning of the file.
|
|
13
|
-
*/
|
|
14
|
-
class GenerateDocBlockCommandProvider extends BaseExecuteCommandProvider_1.BaseExecuteCommandProvider {
|
|
15
|
-
setThemeDocset(themeDocset) {
|
|
16
|
-
this.themeDocset = themeDocset;
|
|
17
|
-
}
|
|
18
|
-
async execute(uri, version) {
|
|
19
|
-
if (!this.clientCapabilities.hasApplyEditSupport)
|
|
20
|
-
return;
|
|
21
|
-
const document = this.documentManager.get(uri);
|
|
22
|
-
if (!document || document.type !== platformos_check_common_1.SourceCodeType.LiquidHtml)
|
|
23
|
-
return;
|
|
24
|
-
if (version !== undefined && document.version !== version)
|
|
25
|
-
return;
|
|
26
|
-
const ast = document.ast;
|
|
27
|
-
if ((0, platformos_check_common_1.isError)(ast))
|
|
28
|
-
return;
|
|
29
|
-
// Generate the doc block
|
|
30
|
-
const result = await (0, platformos_check_common_1.generateDocBlock)(ast, uri, this.themeDocset);
|
|
31
|
-
// If there's already a doc block, notify the user and return
|
|
32
|
-
if (result.hasExistingDocBlock) {
|
|
33
|
-
// File already has a doc block - we could update it, but for now just skip
|
|
34
|
-
// The user can manually edit or we could offer a separate "Update doc block" command
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
// If no parameters were detected, still insert an empty doc block
|
|
38
|
-
const docBlockText = result.docBlockText;
|
|
39
|
-
// Insert at the beginning of the file (line 0, character 0)
|
|
40
|
-
const textEdit = {
|
|
41
|
-
range: {
|
|
42
|
-
start: { line: 0, character: 0 },
|
|
43
|
-
end: { line: 0, character: 0 },
|
|
44
|
-
},
|
|
45
|
-
newText: docBlockText + '\n\n',
|
|
46
|
-
};
|
|
47
|
-
const textDocumentEdit = vscode_languageserver_1.TextDocumentEdit.create({ uri: document.textDocument.uri, version: document.textDocument.version }, [textEdit]);
|
|
48
|
-
await this.connection.sendRequest(vscode_languageserver_1.ApplyWorkspaceEditRequest.type, {
|
|
49
|
-
label: 'Generate doc block',
|
|
50
|
-
edit: {
|
|
51
|
-
documentChanges: [textDocumentEdit],
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.GenerateDocBlockCommandProvider = GenerateDocBlockCommandProvider;
|
|
57
|
-
GenerateDocBlockCommandProvider.command = 'platformOS.generateDocBlock';
|
|
58
|
-
/**
|
|
59
|
-
* Creates a command to generate a doc block for the given URI.
|
|
60
|
-
*/
|
|
61
|
-
function generateDocBlockCommand(uri, version) {
|
|
62
|
-
return vscode_languageserver_1.Command.create('Generate Doc Block', GenerateDocBlockCommandProvider.command, uri, version);
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=GenerateDocBlockCommandProvider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateDocBlockCommandProvider.js","sourceRoot":"","sources":["../../../src/commands/providers/GenerateDocBlockCommandProvider.ts"],"names":[],"mappings":";;;AA8EA,0DAEC;AAhFD,iFAK6C;AAC7C,iEAK+B;AAC/B,8EAA2E;AAE3E;;;;;GAKG;AACH,MAAa,+BAAgC,SAAQ,uDAA0B;IAK7E,cAAc,CAAC,WAAwB;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,OAA2B;QACpD,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,mBAAmB;YAAE,OAAO;QAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,wCAAc,CAAC,UAAU;YAAE,OAAO;QACrE,IAAI,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO;QAElE,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACzB,IAAI,IAAA,iCAAO,EAAC,GAAG,CAAC;YAAE,OAAO;QAEzB,yBAAyB;QACzB,MAAM,MAAM,GAAG,MAAM,IAAA,0CAAgB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAElE,6DAA6D;QAC7D,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC/B,2EAA2E;YAC3E,qFAAqF;YACrF,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAEzC,4DAA4D;QAC5D,MAAM,QAAQ,GAAa;YACzB,KAAK,EAAE;gBACL,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;gBAChC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;aAC/B;YACD,OAAO,EAAE,YAAY,GAAG,MAAM;SAC/B,CAAC;QAEF,MAAM,gBAAgB,GAAG,wCAAgB,CAAC,MAAM,CAC9C,EAAE,GAAG,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,EAC1E,CAAC,QAAQ,CAAC,CACX,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,iDAAyB,CAAC,IAAI,EAAE;YAChE,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE;gBACJ,eAAe,EAAE,CAAC,gBAAgB,CAAC;aACpC;SACF,CAAC,CAAC;IACL,CAAC;;AApDH,0EAqDC;AApDQ,uCAAO,GAAG,6BAAsC,CAAC;AAsD1D;;GAEG;AACH,SAAgB,uBAAuB,CAAC,GAAW,EAAE,OAA2B;IAC9E,OAAO,+BAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,+BAA+B,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACrG,CAAC"}
|