@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.
Files changed (77) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/ClientCapabilities.js +1 -1
  3. package/dist/ClientCapabilities.js.map +1 -1
  4. package/dist/PropertyShapeInference.d.ts +0 -18
  5. package/dist/PropertyShapeInference.js +1 -59
  6. package/dist/PropertyShapeInference.js.map +1 -1
  7. package/dist/TypeSystem.js +26 -225
  8. package/dist/TypeSystem.js.map +1 -1
  9. package/dist/completions/params/LiquidCompletionParams.js +0 -3
  10. package/dist/completions/params/LiquidCompletionParams.js.map +1 -1
  11. package/dist/completions/providers/FilterCompletionProvider.js.map +1 -1
  12. package/dist/completions/providers/TranslationCompletionProvider.js +1 -1
  13. package/dist/completions/providers/TranslationCompletionProvider.js.map +1 -1
  14. package/dist/diagnostics/runChecks.d.ts +2 -1
  15. package/dist/diagnostics/runChecks.js +2 -2
  16. package/dist/diagnostics/runChecks.js.map +1 -1
  17. package/dist/documentHighlights/providers/HtmlTagNameDocumentHighlightsProvider.d.ts +1 -1
  18. package/dist/formatting/OnTypeFormattingProvider.d.ts +1 -1
  19. package/dist/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.js.map +1 -1
  20. package/dist/linkedEditingRanges/providers/HtmlTagNameLinkedRangesProvider.d.ts +1 -1
  21. package/dist/progress.js.map +1 -1
  22. package/dist/server/Configuration.d.ts +7 -5
  23. package/dist/server/Configuration.js +10 -7
  24. package/dist/server/Configuration.js.map +1 -1
  25. package/dist/server/startServer.js +3 -2
  26. package/dist/server/startServer.js.map +1 -1
  27. package/dist/test/MockConnection.d.ts +15 -15
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +9 -9
  30. package/src/ClientCapabilities.ts +1 -1
  31. package/src/TypeSystem.spec.ts +6 -9
  32. package/src/TypeSystem.ts +2 -2
  33. package/src/completions/providers/ContentForBlockTypeCompletionProvider.spec.ts +1 -1
  34. package/src/completions/providers/ContentForCompletionProvider.spec.ts +1 -1
  35. package/src/completions/providers/ContentForParameterCompletionProvider.spec.ts +2 -2
  36. package/src/completions/providers/FilterCompletionProvider.spec.ts +1 -1
  37. package/src/completions/providers/FilterCompletionProvider.ts +6 -6
  38. package/src/completions/providers/FilterNamedParameterCompletionProvider.spec.ts +1 -1
  39. package/src/completions/providers/HtmlAttributeCompletionProvider.spec.ts +1 -1
  40. package/src/completions/providers/HtmlAttributeValueCompletionProvider.spec.ts +1 -1
  41. package/src/completions/providers/HtmlTagCompletionProvider.spec.ts +1 -1
  42. package/src/completions/providers/LiquidDocParamTypeCompletionProvider.spec.ts +1 -1
  43. package/src/completions/providers/LiquidDocTagCompletionProvider.spec.ts +1 -1
  44. package/src/completions/providers/LiquidTagsCompletionProvider.spec.ts +1 -1
  45. package/src/completions/providers/ObjectAttributeCompletionProvider.spec.ts +1 -1
  46. package/src/completions/providers/PartialCompletionProvider.spec.ts +4 -4
  47. package/src/completions/providers/RenderPartialParameterCompletionProvider.spec.ts +1 -1
  48. package/src/completions/providers/TranslationCompletionProvider.spec.ts +1 -1
  49. package/src/completions/providers/TranslationCompletionProvider.ts +1 -1
  50. package/src/css/CSSLanguageService.spec.ts +8 -10
  51. package/src/diagnostics/runChecks.ts +7 -2
  52. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.spec.ts +3 -2
  53. package/src/formatting/providers/HtmlElementAutoclosingOnTypeFormattingProvider.ts +1 -3
  54. package/src/hover/providers/ContentForArgumentHoverProvider.spec.ts +1 -1
  55. package/src/hover/providers/ContentForTypeHoverProvider.spec.ts +1 -1
  56. package/src/hover/providers/HtmlAttributeHoverProvider.spec.ts +1 -1
  57. package/src/hover/providers/HtmlAttributeValueHoverProvider.spec.ts +1 -1
  58. package/src/hover/providers/HtmlTagHoverProvider.spec.ts +1 -1
  59. package/src/hover/providers/LiquidDocTagHoverProvider.spec.ts +1 -1
  60. package/src/hover/providers/LiquidFilterArgumentHoverProvider.spec.ts +1 -1
  61. package/src/hover/providers/LiquidFilterHoverProvider.spec.ts +1 -1
  62. package/src/hover/providers/LiquidObjectAttributeHoverProvider.spec.ts +1 -1
  63. package/src/hover/providers/LiquidTagHoverProvider.spec.ts +1 -1
  64. package/src/hover/providers/RenderPartialHoverProvider.spec.ts +1 -1
  65. package/src/hover/providers/RenderPartialParameterHoverProvider.spec.ts +1 -1
  66. package/src/hover/providers/TranslationHoverProvider.spec.ts +1 -1
  67. package/src/progress.ts +4 -1
  68. package/src/server/Configuration.ts +14 -5
  69. package/src/server/startServer.spec.ts +6 -6
  70. package/src/server/startServer.ts +4 -3
  71. package/src/test/CompletionItemsAssertion.spec.ts +1 -1
  72. package/dist/codeActions/providers/GenerateDocBlockProvider.d.ts +0 -10
  73. package/dist/codeActions/providers/GenerateDocBlockProvider.js +0 -39
  74. package/dist/codeActions/providers/GenerateDocBlockProvider.js.map +0 -1
  75. package/dist/commands/providers/GenerateDocBlockCommandProvider.d.ts +0 -19
  76. package/dist/commands/providers/GenerateDocBlockCommandProvider.js +0 -64
  77. 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"}