@platformos/platformos-language-server-common 0.0.12 → 0.0.16

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 (75) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/PropertyShapeInference.d.ts +5 -0
  3. package/dist/PropertyShapeInference.js +28 -0
  4. package/dist/PropertyShapeInference.js.map +1 -1
  5. package/dist/TypeSystem.js +106 -55
  6. package/dist/TypeSystem.js.map +1 -1
  7. package/dist/VariableShapeExtractor.js +2 -4
  8. package/dist/VariableShapeExtractor.js.map +1 -1
  9. package/dist/codeActions/CodeActionsProvider.d.ts +1 -1
  10. package/dist/completions/CompletionsProvider.d.ts +1 -0
  11. package/dist/completions/CompletionsProvider.js +6 -0
  12. package/dist/completions/CompletionsProvider.js.map +1 -1
  13. package/dist/completions/providers/GraphQLFieldCompletionProvider.d.ts +12 -0
  14. package/dist/completions/providers/GraphQLFieldCompletionProvider.js +75 -0
  15. package/dist/completions/providers/GraphQLFieldCompletionProvider.js.map +1 -0
  16. package/dist/definitions/DefinitionProvider.d.ts +19 -1
  17. package/dist/definitions/DefinitionProvider.js +33 -1
  18. package/dist/definitions/DefinitionProvider.js.map +1 -1
  19. package/dist/definitions/providers/PageRouteDefinitionProvider.d.ts +51 -0
  20. package/dist/definitions/providers/PageRouteDefinitionProvider.js +204 -0
  21. package/dist/definitions/providers/PageRouteDefinitionProvider.js.map +1 -0
  22. package/dist/definitions/providers/RenderPartialDefinitionProvider.d.ts +14 -0
  23. package/dist/definitions/providers/RenderPartialDefinitionProvider.js +50 -0
  24. package/dist/definitions/providers/RenderPartialDefinitionProvider.js.map +1 -0
  25. package/dist/diagnostics/runChecks.d.ts +3 -1
  26. package/dist/diagnostics/runChecks.js +2 -1
  27. package/dist/diagnostics/runChecks.js.map +1 -1
  28. package/dist/documentLinks/DocumentLinksProvider.d.ts +3 -1
  29. package/dist/documentLinks/DocumentLinksProvider.js +18 -20
  30. package/dist/documentLinks/DocumentLinksProvider.js.map +1 -1
  31. package/dist/hover/HoverProvider.d.ts +1 -0
  32. package/dist/hover/HoverProvider.js +6 -0
  33. package/dist/hover/HoverProvider.js.map +1 -1
  34. package/dist/hover/providers/GraphQLFieldHoverProvider.d.ts +12 -0
  35. package/dist/hover/providers/GraphQLFieldHoverProvider.js +85 -0
  36. package/dist/hover/providers/GraphQLFieldHoverProvider.js.map +1 -0
  37. package/dist/server/AppGraphManager.js +3 -4
  38. package/dist/server/AppGraphManager.js.map +1 -1
  39. package/dist/server/CachedFileSystem.js +7 -2
  40. package/dist/server/CachedFileSystem.js.map +1 -1
  41. package/dist/server/startServer.js +71 -5
  42. package/dist/server/startServer.js.map +1 -1
  43. package/dist/test/MockConnection.d.ts +1 -1
  44. package/dist/test/MockConnection.js +11 -4
  45. package/dist/test/MockConnection.js.map +1 -1
  46. package/dist/tsconfig.tsbuildinfo +1 -1
  47. package/dist/utils/searchPaths.d.ts +21 -0
  48. package/dist/utils/searchPaths.js +34 -0
  49. package/dist/utils/searchPaths.js.map +1 -0
  50. package/package.json +6 -4
  51. package/src/PropertyShapeInference.spec.ts +44 -0
  52. package/src/PropertyShapeInference.ts +27 -0
  53. package/src/TypeSystem.spec.ts +59 -0
  54. package/src/TypeSystem.ts +119 -58
  55. package/src/VariableShapeExtractor.ts +2 -4
  56. package/src/completions/CompletionsProvider.ts +11 -0
  57. package/src/completions/providers/GraphQLFieldCompletionProvider.ts +78 -0
  58. package/src/definitions/DefinitionProvider.ts +52 -0
  59. package/src/definitions/providers/PageRouteDefinitionProvider.spec.ts +776 -0
  60. package/src/definitions/providers/PageRouteDefinitionProvider.ts +250 -0
  61. package/src/definitions/providers/RenderPartialDefinitionProvider.spec.ts +226 -0
  62. package/src/definitions/providers/RenderPartialDefinitionProvider.ts +70 -0
  63. package/src/diagnostics/runChecks.ts +4 -0
  64. package/src/documentLinks/DocumentLinksProvider.spec.ts +131 -10
  65. package/src/documentLinks/DocumentLinksProvider.ts +27 -35
  66. package/src/hover/HoverProvider.ts +11 -0
  67. package/src/hover/providers/GraphQLFieldHoverProvider.spec.ts +124 -0
  68. package/src/hover/providers/GraphQLFieldHoverProvider.ts +90 -0
  69. package/src/server/AppGraphManager.ts +3 -5
  70. package/src/server/CachedFileSystem.ts +11 -2
  71. package/src/server/startServer.spec.ts +62 -0
  72. package/src/server/startServer.ts +85 -5
  73. package/src/test/MockConnection.ts +16 -4
  74. package/src/utils/searchPaths.spec.ts +101 -0
  75. package/src/utils/searchPaths.ts +32 -0
@@ -1 +1 @@
1
- {"version":3,"file":"VariableShapeExtractor.js","sourceRoot":"","sources":["../src/VariableShapeExtractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VariableShapeExtractor.js","sourceRoot":"","sources":["../src/VariableShapeExtractor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { CodeAction, CodeActionParams, Command } from 'vscode-languageserver';
2
2
  import { DiagnosticsManager } from '../diagnostics';
3
3
  import { DocumentManager } from '../documents';
4
- export declare const CodeActionKinds: ("source.fixAll" | "quickfix")[];
4
+ export declare const CodeActionKinds: ("quickfix" | "source.fixAll")[];
5
5
  export declare class CodeActionsProvider {
6
6
  private providers;
7
7
  constructor(documentManager: DocumentManager, diagnosticsManager: DiagnosticsManager);
@@ -23,6 +23,7 @@ export interface CompletionProviderDependencies {
23
23
  }
24
24
  export declare class CompletionsProvider {
25
25
  private providers;
26
+ private graphqlFieldCompletionProvider;
26
27
  readonly documentManager: DocumentManager;
27
28
  readonly platformosDocset: PlatformOSDocset;
28
29
  readonly log: (message: string) => void;
@@ -5,6 +5,7 @@ const platformos_check_common_1 = require("@platformos/platformos-check-common")
5
5
  const TypeSystem_1 = require("../TypeSystem");
6
6
  const params_1 = require("./params");
7
7
  const providers_1 = require("./providers");
8
+ const GraphQLFieldCompletionProvider_1 = require("./providers/GraphQLFieldCompletionProvider");
8
9
  class CompletionsProvider {
9
10
  constructor({ documentManager, platformosDocset, getTranslationsForURI = async () => ({}), getPartialNamesForURI = async () => [], getDocDefinitionForURI = async (uri, _partialName) => ({ uri }), fs, documentsLocator, findAppRootURI, log = () => { }, }) {
10
11
  this.providers = [];
@@ -12,6 +13,7 @@ class CompletionsProvider {
12
13
  this.platformosDocset = platformosDocset;
13
14
  this.log = log;
14
15
  const typeSystem = new TypeSystem_1.TypeSystem(platformosDocset, fs, documentsLocator, findAppRootURI);
16
+ this.graphqlFieldCompletionProvider = new GraphQLFieldCompletionProvider_1.GraphQLFieldCompletionProvider(platformosDocset, documentManager);
15
17
  this.providers = [
16
18
  new providers_1.HtmlTagCompletionProvider(),
17
19
  new providers_1.HtmlAttributeCompletionProvider(documentManager),
@@ -31,6 +33,10 @@ class CompletionsProvider {
31
33
  async completions(params) {
32
34
  const uri = params.textDocument.uri;
33
35
  const document = this.documentManager.get(uri);
36
+ // GraphQL files get dedicated completion support
37
+ if (document?.type === platformos_check_common_1.SourceCodeType.GraphQL) {
38
+ return this.graphqlFieldCompletionProvider.completions(params);
39
+ }
34
40
  // Supports only Liquid resources
35
41
  if (document?.type !== platformos_check_common_1.SourceCodeType.LiquidHtml) {
36
42
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"CompletionsProvider.js","sourceRoot":"","sources":["../../src/completions/CompletionsProvider.ts"],"names":[],"mappings":";;;AAAA,iFAI6C;AAG7C,8CAA2C;AAI3C,qCAAwD;AACxD,2CAeqB;AAoBrB,MAAa,mBAAmB;IAM9B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EACxC,qBAAqB,GAAG,KAAK,IAAI,EAAE,CAAC,EAAE,EACtC,sBAAsB,GAAG,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAC/D,EAAE,EACF,gBAAgB,EAChB,cAAc,EACd,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,GACiB;QAfzB,cAAS,GAAe,EAAE,CAAC;QAgBjC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,MAAM,UAAU,GAAG,IAAI,uBAAU,CAAC,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAE1F,IAAI,CAAC,SAAS,GAAG;YACf,IAAI,qCAAyB,EAAE;YAC/B,IAAI,2CAA+B,CAAC,eAAe,CAAC;YACpD,IAAI,gDAAoC,EAAE;YAC1C,IAAI,wCAA4B,CAAC,gBAAgB,CAAC;YAClD,IAAI,oCAAwB,CAAC,UAAU,CAAC;YACxC,IAAI,6CAAiC,CAAC,UAAU,CAAC;YACjD,IAAI,oCAAwB,CAAC,UAAU,CAAC;YACxC,IAAI,yCAA6B,CAAC,eAAe,EAAE,qBAAqB,CAAC;YACzE,IAAI,qCAAyB,CAAC,qBAAqB,CAAC;YACpD,IAAI,oDAAwC,CAAC,sBAAsB,CAAC;YACpE,IAAI,kDAAsC,CAAC,gBAAgB,CAAC;YAC5D,IAAI,0CAA8B,EAAE;YACpC,IAAI,gDAAoC,CAAC,gBAAgB,CAAC;SAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAwB;QACxC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE/C,iCAAiC;QACjC,IAAI,QAAQ,EAAE,IAAI,KAAK,wCAAc,CAAC,UAAU,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAA,qCAA4B,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;YACxE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,uCAAuC,GAAG,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AA3DD,kDA2DC"}
1
+ {"version":3,"file":"CompletionsProvider.js","sourceRoot":"","sources":["../../src/completions/CompletionsProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CompletionItem, CompletionParams } from 'vscode-languageserver';
2
+ import { DocumentManager } from '../../documents';
3
+ import { PlatformOSDocset } from '@platformos/platformos-check-common';
4
+ export declare class GraphQLFieldCompletionProvider {
5
+ private platformosDocset;
6
+ private documentManager;
7
+ private schemaCache;
8
+ private schemaLoaded;
9
+ constructor(platformosDocset: PlatformOSDocset, documentManager: DocumentManager);
10
+ private getSchema;
11
+ completions(params: CompletionParams): Promise<CompletionItem[]>;
12
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphQLFieldCompletionProvider = void 0;
4
+ const vscode_languageserver_1 = require("vscode-languageserver");
5
+ /**
6
+ * graphql-language-service and graphql must be loaded dynamically to avoid
7
+ * the "Cannot use GraphQLList from another module or realm" error that occurs
8
+ * when vitest transforms the graphql ESM module into separate instances.
9
+ */
10
+ let _glsMod;
11
+ function getGLS() {
12
+ if (!_glsMod)
13
+ _glsMod = require('graphql-language-service');
14
+ return _glsMod;
15
+ }
16
+ let _graphqlMod;
17
+ function getGraphQL() {
18
+ if (!_graphqlMod)
19
+ _graphqlMod = require('graphql');
20
+ return _graphqlMod;
21
+ }
22
+ class GraphQLFieldCompletionProvider {
23
+ constructor(platformosDocset, documentManager) {
24
+ this.platformosDocset = platformosDocset;
25
+ this.documentManager = documentManager;
26
+ this.schemaLoaded = false;
27
+ }
28
+ async getSchema() {
29
+ if (!this.schemaLoaded) {
30
+ const sdl = await this.platformosDocset.graphQL();
31
+ if (sdl) {
32
+ try {
33
+ this.schemaCache = getGraphQL().buildSchema(sdl);
34
+ }
35
+ catch {
36
+ // Invalid schema SDL
37
+ }
38
+ }
39
+ this.schemaLoaded = true;
40
+ }
41
+ return this.schemaCache;
42
+ }
43
+ async completions(params) {
44
+ const uri = params.textDocument.uri;
45
+ const document = this.documentManager.get(uri);
46
+ if (!document)
47
+ return [];
48
+ const schema = await this.getSchema();
49
+ if (!schema)
50
+ return [];
51
+ const content = document.textDocument.getText();
52
+ const gls = getGLS();
53
+ const position = new gls.Position(params.position.line, params.position.character);
54
+ try {
55
+ const suggestions = gls.getAutocompleteSuggestions(schema, content, position);
56
+ return suggestions.map((suggestion) => ({
57
+ label: suggestion.label,
58
+ kind: toCompletionItemKind(suggestion.kind),
59
+ detail: suggestion.detail ?? undefined,
60
+ documentation: suggestion.documentation ?? undefined,
61
+ }));
62
+ }
63
+ catch {
64
+ return [];
65
+ }
66
+ }
67
+ }
68
+ exports.GraphQLFieldCompletionProvider = GraphQLFieldCompletionProvider;
69
+ function toCompletionItemKind(kind) {
70
+ if (kind !== undefined && kind >= 1 && kind <= 25) {
71
+ return kind;
72
+ }
73
+ return vscode_languageserver_1.CompletionItemKind.Field;
74
+ }
75
+ //# sourceMappingURL=GraphQLFieldCompletionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphQLFieldCompletionProvider.js","sourceRoot":"","sources":["../../../src/completions/providers/GraphQLFieldCompletionProvider.ts"],"names":[],"mappings":";;;AAAA,iEAA6F;AAI7F;;;;GAIG;AACH,IAAI,OAA8D,CAAC;AACnE,SAAS,MAAM;IACb,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC5D,OAAO,OAAQ,CAAC;AAClB,CAAC;AAED,IAAI,WAAiD,CAAC;AACtD,SAAS,UAAU;IACjB,IAAI,CAAC,WAAW;QAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnD,OAAO,WAAY,CAAC;AACtB,CAAC;AAED,MAAa,8BAA8B;IAIzC,YACU,gBAAkC,EAClC,eAAgC;QADhC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,oBAAe,GAAf,eAAe,CAAiB;QAJlC,iBAAY,GAAG,KAAK,CAAC;IAK1B,CAAC;IAEI,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAClD,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,CAAC;oBACH,IAAI,CAAC,WAAW,GAAG,UAAU,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACnD,CAAC;gBAAC,MAAM,CAAC;oBACP,qBAAqB;gBACvB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAwB;QACxC,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAEvB,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEnF,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,GAAG,CAAC,0BAA0B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE9E,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACtC,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,IAAI,EAAE,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC3C,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,SAAS;gBACtC,aAAa,EAAE,UAAU,CAAC,aAAa,IAAI,SAAS;aACrD,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAjDD,wEAiDC;AAED,SAAS,oBAAoB,CAAC,IAAwB;IACpD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC;QAClD,OAAO,IAA0B,CAAC;IACpC,CAAC;IACD,OAAO,0CAAkB,CAAC,KAAK,CAAC;AAClC,CAAC"}
@@ -1,8 +1,26 @@
1
+ import { AbstractFileSystem, DocumentsLocator, RouteTable } from '@platformos/platformos-common';
1
2
  import { DefinitionLink, DefinitionParams } from 'vscode-languageserver';
2
3
  import { AugmentedJsonSourceCode, DocumentManager } from '../documents';
4
+ import { SearchPathsLoader } from '../utils/searchPaths';
3
5
  export declare class DefinitionProvider {
4
6
  private documentManager;
5
7
  private providers;
6
- constructor(documentManager: DocumentManager, getDefaultLocaleSourceCode: (uri: string) => Promise<AugmentedJsonSourceCode | null>);
8
+ private pageRouteProvider?;
9
+ constructor(documentManager: DocumentManager, getDefaultLocaleSourceCode: (uri: string) => Promise<AugmentedJsonSourceCode | null>, fs?: AbstractFileSystem, findAppRootURI?: (uri: string) => Promise<string | null>, documentsLocator?: DocumentsLocator, searchPathsCache?: SearchPathsLoader);
10
+ /** Notify the route table that a page file was created or changed. */
11
+ onPageFileChanged(uri: string, content: string): void;
12
+ /** Notify the route table that a page file was deleted. */
13
+ onPageFileDeleted(uri: string): void;
14
+ /**
15
+ * Invalidate the route table so it will be fully rebuilt on next use.
16
+ * Call after bulk filesystem changes (e.g., git checkout, branch switch).
17
+ */
18
+ invalidateRouteTable(): void;
19
+ /**
20
+ * Returns the shared RouteTable, or undefined if route support is not configured.
21
+ * When undefined (no fs/findAppRootURI), the check pipeline will build a fresh
22
+ * RouteTable per run via makeGetRouteTable in context-utils.ts.
23
+ */
24
+ getRouteTable(): RouteTable | undefined;
7
25
  definitions(params: DefinitionParams): Promise<DefinitionLink[] | null>;
8
26
  }
@@ -2,13 +2,45 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DefinitionProvider = void 0;
4
4
  const platformos_check_common_1 = require("@platformos/platformos-check-common");
5
+ const PageRouteDefinitionProvider_1 = require("./providers/PageRouteDefinitionProvider");
6
+ const RenderPartialDefinitionProvider_1 = require("./providers/RenderPartialDefinitionProvider");
5
7
  const TranslationStringDefinitionProvider_1 = require("./providers/TranslationStringDefinitionProvider");
6
8
  class DefinitionProvider {
7
- constructor(documentManager, getDefaultLocaleSourceCode) {
9
+ constructor(documentManager, getDefaultLocaleSourceCode, fs, findAppRootURI, documentsLocator, searchPathsCache) {
8
10
  this.documentManager = documentManager;
9
11
  this.providers = [
10
12
  new TranslationStringDefinitionProvider_1.TranslationStringDefinitionProvider(documentManager, getDefaultLocaleSourceCode),
11
13
  ];
14
+ if (fs && findAppRootURI) {
15
+ this.pageRouteProvider = new PageRouteDefinitionProvider_1.PageRouteDefinitionProvider(documentManager, fs, findAppRootURI);
16
+ this.providers.push(this.pageRouteProvider);
17
+ if (documentsLocator && searchPathsCache) {
18
+ this.providers.push(new RenderPartialDefinitionProvider_1.RenderPartialDefinitionProvider(documentManager, documentsLocator, searchPathsCache, findAppRootURI));
19
+ }
20
+ }
21
+ }
22
+ /** Notify the route table that a page file was created or changed. */
23
+ onPageFileChanged(uri, content) {
24
+ this.pageRouteProvider?.onPageFileChanged(uri, content);
25
+ }
26
+ /** Notify the route table that a page file was deleted. */
27
+ onPageFileDeleted(uri) {
28
+ this.pageRouteProvider?.onPageFileDeleted(uri);
29
+ }
30
+ /**
31
+ * Invalidate the route table so it will be fully rebuilt on next use.
32
+ * Call after bulk filesystem changes (e.g., git checkout, branch switch).
33
+ */
34
+ invalidateRouteTable() {
35
+ this.pageRouteProvider?.invalidate();
36
+ }
37
+ /**
38
+ * Returns the shared RouteTable, or undefined if route support is not configured.
39
+ * When undefined (no fs/findAppRootURI), the check pipeline will build a fresh
40
+ * RouteTable per run via makeGetRouteTable in context-utils.ts.
41
+ */
42
+ getRouteTable() {
43
+ return this.pageRouteProvider?.getRouteTable();
12
44
  }
13
45
  async definitions(params) {
14
46
  const sourceCode = this.documentManager.get(params.textDocument.uri);
@@ -1 +1 @@
1
- {"version":3,"file":"DefinitionProvider.js","sourceRoot":"","sources":["../../src/definitions/DefinitionProvider.ts"],"names":[],"mappings":";;;AAAA,iFAAsF;AAKtF,yGAAsG;AAEtG,MAAa,kBAAkB;IAG7B,YACU,eAAgC,EACxC,0BAAoF;QAD5E,oBAAe,GAAf,eAAe,CAAiB;QAGxC,IAAI,CAAC,SAAS,GAAG;YACf,IAAI,yEAAmC,CAAC,eAAe,EAAE,0BAA0B,CAAC;SACrF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAwB;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrE,IACE,CAAC,UAAU;YACX,UAAU,CAAC,IAAI,KAAK,wCAAc,CAAC,UAAU;YAC7C,UAAU,CAAC,GAAG,YAAY,KAAK,EAC/B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAA,yCAAe,EACvC,UAAU,CAAC,GAAG,EACd,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CACvC,CAAC;QAEF,MAAM,OAAO,GAAqB,MAAM,OAAO,CAAC,GAAG,CACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAChF,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;CACF;AAlCD,gDAkCC"}
1
+ {"version":3,"file":"DefinitionProvider.js","sourceRoot":"","sources":["../../src/definitions/DefinitionProvider.ts"],"names":[],"mappings":";;;AAAA,iFAAsF;AAOtF,yFAAsF;AACtF,iGAA8F;AAC9F,yGAAsG;AAEtG,MAAa,kBAAkB;IAI7B,YACU,eAAgC,EACxC,0BAAoF,EACpF,EAAuB,EACvB,cAAwD,EACxD,gBAAmC,EACnC,gBAAoC;QAL5B,oBAAe,GAAf,eAAe,CAAiB;QAOxC,IAAI,CAAC,SAAS,GAAG;YACf,IAAI,yEAAmC,CAAC,eAAe,EAAE,0BAA0B,CAAC;SACrF,CAAC;QAEF,IAAI,EAAE,IAAI,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,yDAA2B,CAAC,eAAe,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;YAC9F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAE5C,IAAI,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,IAAI,iEAA+B,CACjC,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,CACf,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,iBAAiB,CAAC,GAAW,EAAE,OAAe;QAC5C,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,2DAA2D;IAC3D,iBAAiB,CAAC,GAAW;QAC3B,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAwB;QACxC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrE,IACE,CAAC,UAAU;YACX,UAAU,CAAC,IAAI,KAAK,wCAAc,CAAC,UAAU;YAC7C,UAAU,CAAC,GAAG,YAAY,KAAK,EAC/B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,IAAA,yCAAe,EACvC,UAAU,CAAC,GAAG,EACd,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CACvC,CAAC;QAEF,MAAM,OAAO,GAAqB,MAAM,OAAO,CAAC,GAAG,CACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAChF,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;CACF;AAlFD,gDAkFC"}
@@ -0,0 +1,51 @@
1
+ import { LiquidHtmlNode } from '@platformos/liquid-html-parser';
2
+ import { RouteTable, AbstractFileSystem } from '@platformos/platformos-common';
3
+ import { DefinitionParams, DefinitionLink } from 'vscode-languageserver-protocol';
4
+ import { DocumentManager } from '../../documents';
5
+ import { BaseDefinitionProvider } from '../BaseDefinitionProvider';
6
+ export declare class PageRouteDefinitionProvider implements BaseDefinitionProvider {
7
+ private documentManager;
8
+ private fs;
9
+ private findAppRootURI;
10
+ private routeTable;
11
+ private builtRoots;
12
+ constructor(documentManager: DocumentManager, fs: AbstractFileSystem, findAppRootURI: (uri: string) => Promise<string | null>);
13
+ /** Returns the shared route table (may trigger a build if not yet built). */
14
+ getRouteTable(): RouteTable;
15
+ private ensureBuilt;
16
+ /**
17
+ * Called by the LSP when a page file changes on disk or in the editor.
18
+ * Keeps the route table in sync without a full rebuild.
19
+ * Callers are responsible for filtering to page URIs via isPage().
20
+ */
21
+ onPageFileChanged(uri: string, content: string): void;
22
+ /**
23
+ * Called by the LSP when a page file is deleted.
24
+ * Callers are responsible for filtering to page URIs via isPage().
25
+ */
26
+ onPageFileDeleted(uri: string): void;
27
+ /**
28
+ * Invalidate the cached build state so the next definition request triggers
29
+ * a full route-table rebuild. Call this after bulk file changes that bypass
30
+ * incremental updates (e.g., git checkout, branch switch, stash pop).
31
+ */
32
+ invalidate(): void;
33
+ definitions(params: DefinitionParams, node: LiquidHtmlNode, ancestors: LiquidHtmlNode[]): Promise<DefinitionLink[]>;
34
+ /**
35
+ * Resolve the URL context from the cursor position.
36
+ * Activates when cursor is on:
37
+ * - The tag name (e.g. `a` in `<a href="...">`)
38
+ * - The URL-bearing attribute name or value (e.g. `href` or `/about` for <a>, `action` for <form>)
39
+ * - Inside a Liquid expression within the URL attribute (e.g. `{{ url }}` inside href)
40
+ * Does NOT activate on unrelated attributes (e.g. `class` in `<a class="x" href="/about">`).
41
+ */
42
+ private resolveUrlContext;
43
+ /**
44
+ * Only resolve if the given attribute is the URL-bearing attribute (href/action)
45
+ * for the parent element.
46
+ */
47
+ private resolveFromUrlAttr;
48
+ private resolveFromElement;
49
+ private findElementAncestor;
50
+ private getMethodForElement;
51
+ }
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PageRouteDefinitionProvider = void 0;
4
+ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
5
+ const platformos_common_1 = require("@platformos/platformos-common");
6
+ const platformos_check_common_1 = require("@platformos/platformos-check-common");
7
+ const vscode_uri_1 = require("vscode-uri");
8
+ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
9
+ function getTagName(node) {
10
+ if (node.type !== liquid_html_parser_1.NodeTypes.HtmlElement)
11
+ return null;
12
+ const el = node;
13
+ if (el.name.length !== 1)
14
+ return null;
15
+ if (el.name[0].type !== liquid_html_parser_1.NodeTypes.TextNode)
16
+ return null;
17
+ return el.name[0].value;
18
+ }
19
+ /** Tag name → attribute that holds the URL */
20
+ const TAG_URL_ATTR = {
21
+ a: 'href',
22
+ form: 'action',
23
+ };
24
+ /**
25
+ * Find the URL-bearing attribute on an element.
26
+ * For <a> looks for href, for <form> looks for action.
27
+ */
28
+ function findUrlAttr(el, tagName) {
29
+ const urlAttrName = TAG_URL_ATTR[tagName];
30
+ if (!urlAttrName)
31
+ return null;
32
+ const attr = el.attributes.find((a) => (0, platformos_check_common_1.isValuedAttrNode)(a) && (0, platformos_check_common_1.getAttrName)(a) === urlAttrName);
33
+ if (!attr || !(0, platformos_check_common_1.isValuedAttrNode)(attr))
34
+ return null;
35
+ return attr;
36
+ }
37
+ class PageRouteDefinitionProvider {
38
+ constructor(documentManager, fs, findAppRootURI) {
39
+ this.documentManager = documentManager;
40
+ this.fs = fs;
41
+ this.findAppRootURI = findAppRootURI;
42
+ this.builtRoots = new Set();
43
+ this.routeTable = new platformos_common_1.RouteTable(fs);
44
+ }
45
+ /** Returns the shared route table (may trigger a build if not yet built). */
46
+ getRouteTable() {
47
+ return this.routeTable;
48
+ }
49
+ async ensureBuilt(uri) {
50
+ const rootUri = await this.findAppRootURI(uri);
51
+ if (!rootUri)
52
+ return false;
53
+ if (!this.builtRoots.has(rootUri)) {
54
+ await this.routeTable.build(vscode_uri_1.URI.parse(rootUri));
55
+ this.builtRoots.add(rootUri);
56
+ }
57
+ return true;
58
+ }
59
+ /**
60
+ * Called by the LSP when a page file changes on disk or in the editor.
61
+ * Keeps the route table in sync without a full rebuild.
62
+ * Callers are responsible for filtering to page URIs via isPage().
63
+ */
64
+ onPageFileChanged(uri, content) {
65
+ this.routeTable.updateFile(uri, content);
66
+ }
67
+ /**
68
+ * Called by the LSP when a page file is deleted.
69
+ * Callers are responsible for filtering to page URIs via isPage().
70
+ */
71
+ onPageFileDeleted(uri) {
72
+ this.routeTable.removeFile(uri);
73
+ }
74
+ /**
75
+ * Invalidate the cached build state so the next definition request triggers
76
+ * a full route-table rebuild. Call this after bulk file changes that bypass
77
+ * incremental updates (e.g., git checkout, branch switch, stash pop).
78
+ */
79
+ invalidate() {
80
+ this.builtRoots.clear();
81
+ this.routeTable = new platformos_common_1.RouteTable(this.fs);
82
+ }
83
+ async definitions(params, node, ancestors) {
84
+ const sourceCode = this.documentManager.get(params.textDocument.uri);
85
+ if (!sourceCode)
86
+ return [];
87
+ const doc = sourceCode.textDocument;
88
+ const resolved = this.resolveUrlContext(node, ancestors);
89
+ if (!resolved)
90
+ return [];
91
+ const { urlAttr, method, element } = resolved;
92
+ // Build a variable map from {% assign %} tags that precede the current element.
93
+ // This ensures that when a variable is reassigned, each usage sees only the
94
+ // assigns that come before it in document order.
95
+ let variableMap;
96
+ if (sourceCode.type === platformos_check_common_1.SourceCodeType.LiquidHtml &&
97
+ !(sourceCode.ast instanceof Error) &&
98
+ 'children' in sourceCode.ast &&
99
+ Array.isArray(sourceCode.ast.children)) {
100
+ variableMap = (0, platformos_check_common_1.buildVariableMap)(sourceCode.ast.children, element.position.start);
101
+ }
102
+ const urlPattern = (0, platformos_check_common_1.extractUrlPattern)(urlAttr, variableMap);
103
+ if (urlPattern === null || (0, platformos_check_common_1.shouldSkipUrl)(urlPattern))
104
+ return [];
105
+ const ready = await this.ensureBuilt(params.textDocument.uri);
106
+ if (!ready)
107
+ return [];
108
+ const matches = this.routeTable.match(urlPattern, method);
109
+ if (matches.length === 0)
110
+ return [];
111
+ const originRange = vscode_languageserver_protocol_1.Range.create(doc.positionAt(element.position.start), doc.positionAt(urlAttr.value[urlAttr.value.length - 1].position.end));
112
+ const results = [];
113
+ for (const entry of matches) {
114
+ const targetRange = vscode_languageserver_protocol_1.Range.create(0, 0, 0, 0);
115
+ results.push(vscode_languageserver_protocol_1.LocationLink.create(entry.uri, targetRange, targetRange, originRange));
116
+ }
117
+ return results;
118
+ }
119
+ /**
120
+ * Resolve the URL context from the cursor position.
121
+ * Activates when cursor is on:
122
+ * - The tag name (e.g. `a` in `<a href="...">`)
123
+ * - The URL-bearing attribute name or value (e.g. `href` or `/about` for <a>, `action` for <form>)
124
+ * - Inside a Liquid expression within the URL attribute (e.g. `{{ url }}` inside href)
125
+ * Does NOT activate on unrelated attributes (e.g. `class` in `<a class="x" href="/about">`).
126
+ */
127
+ resolveUrlContext(node, ancestors) {
128
+ // Case 1: node is the HtmlElement itself (cursor on tag name)
129
+ if (node.type === liquid_html_parser_1.NodeTypes.HtmlElement) {
130
+ return this.resolveFromElement(node);
131
+ }
132
+ // Case 2: node is a valued attribute — only activate if it's the URL attribute
133
+ if ((0, platformos_check_common_1.isValuedAttrNode)(node)) {
134
+ const element = this.findElementAncestor(ancestors);
135
+ if (!element)
136
+ return null;
137
+ return this.resolveFromUrlAttr(node, element);
138
+ }
139
+ // Case 3: node is inside a valued attribute (TextNode, LiquidVariableOutput, VariableLookup, etc.)
140
+ const attrAncestor = ancestors.find(platformos_check_common_1.isValuedAttrNode);
141
+ if (attrAncestor) {
142
+ const element = this.findElementAncestor(ancestors);
143
+ if (!element)
144
+ return null;
145
+ return this.resolveFromUrlAttr(attrAncestor, element);
146
+ }
147
+ // Case 4: TextNode directly under HtmlElement (e.g., tag name text)
148
+ if (node.type === liquid_html_parser_1.NodeTypes.TextNode) {
149
+ const parentElement = ancestors[ancestors.length - 1];
150
+ if (parentElement && parentElement.type === liquid_html_parser_1.NodeTypes.HtmlElement) {
151
+ return this.resolveFromElement(parentElement);
152
+ }
153
+ }
154
+ return null;
155
+ }
156
+ /**
157
+ * Only resolve if the given attribute is the URL-bearing attribute (href/action)
158
+ * for the parent element.
159
+ */
160
+ resolveFromUrlAttr(attr, element) {
161
+ const tagName = getTagName(element);
162
+ if (!tagName)
163
+ return null;
164
+ const urlAttrName = TAG_URL_ATTR[tagName];
165
+ if (!urlAttrName)
166
+ return null;
167
+ // Check that the cursor's attribute IS the URL attribute
168
+ const attrName = (0, platformos_check_common_1.getAttrName)(attr);
169
+ if (attrName !== urlAttrName)
170
+ return null;
171
+ const method = this.getMethodForElement(tagName, element);
172
+ if (!method)
173
+ return null;
174
+ return { urlAttr: attr, method, element };
175
+ }
176
+ resolveFromElement(element) {
177
+ const tagName = getTagName(element);
178
+ if (!tagName)
179
+ return null;
180
+ const urlAttr = findUrlAttr(element, tagName);
181
+ if (!urlAttr)
182
+ return null;
183
+ const method = this.getMethodForElement(tagName, element);
184
+ if (!method)
185
+ return null;
186
+ return { urlAttr, method, element };
187
+ }
188
+ findElementAncestor(ancestors) {
189
+ for (let i = ancestors.length - 1; i >= 0; i--) {
190
+ if (ancestors[i].type === liquid_html_parser_1.NodeTypes.HtmlElement)
191
+ return ancestors[i];
192
+ }
193
+ return null;
194
+ }
195
+ getMethodForElement(tagName, element) {
196
+ if (tagName === 'a')
197
+ return 'get';
198
+ if (tagName === 'form')
199
+ return (0, platformos_check_common_1.getEffectiveMethod)(element);
200
+ return null;
201
+ }
202
+ }
203
+ exports.PageRouteDefinitionProvider = PageRouteDefinitionProvider;
204
+ //# sourceMappingURL=PageRouteDefinitionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageRouteDefinitionProvider.js","sourceRoot":"","sources":["../../../src/definitions/providers/PageRouteDefinitionProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { LiquidHtmlNode } from '@platformos/liquid-html-parser';
2
+ import { DocumentsLocator } from '@platformos/platformos-common';
3
+ import { DefinitionParams, DefinitionLink } from 'vscode-languageserver-protocol';
4
+ import { DocumentManager } from '../../documents';
5
+ import { BaseDefinitionProvider } from '../BaseDefinitionProvider';
6
+ import { SearchPathsLoader } from '../../utils/searchPaths';
7
+ export declare class RenderPartialDefinitionProvider implements BaseDefinitionProvider {
8
+ private documentManager;
9
+ private documentsLocator;
10
+ private searchPathsCache;
11
+ private findAppRootURI;
12
+ constructor(documentManager: DocumentManager, documentsLocator: DocumentsLocator, searchPathsCache: SearchPathsLoader, findAppRootURI: (uri: string) => Promise<string | null>);
13
+ definitions(params: DefinitionParams, node: LiquidHtmlNode, ancestors: LiquidHtmlNode[]): Promise<DefinitionLink[]>;
14
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RenderPartialDefinitionProvider = void 0;
4
+ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
5
+ const vscode_languageserver_protocol_1 = require("vscode-languageserver-protocol");
6
+ const vscode_uri_1 = require("vscode-uri");
7
+ const TAG_MARKUP_TYPE = {
8
+ render: liquid_html_parser_1.NodeTypes.RenderMarkup,
9
+ include: liquid_html_parser_1.NodeTypes.RenderMarkup,
10
+ theme_render_rc: liquid_html_parser_1.NodeTypes.RenderMarkup,
11
+ function: liquid_html_parser_1.NodeTypes.FunctionMarkup,
12
+ graphql: liquid_html_parser_1.NodeTypes.GraphQLMarkup,
13
+ };
14
+ class RenderPartialDefinitionProvider {
15
+ constructor(documentManager, documentsLocator, searchPathsCache, findAppRootURI) {
16
+ this.documentManager = documentManager;
17
+ this.documentsLocator = documentsLocator;
18
+ this.searchPathsCache = searchPathsCache;
19
+ this.findAppRootURI = findAppRootURI;
20
+ }
21
+ async definitions(params, node, ancestors) {
22
+ if (node.type !== liquid_html_parser_1.NodeTypes.String)
23
+ return [];
24
+ const markup = ancestors.at(-1);
25
+ const tag = ancestors.at(-2);
26
+ if (!markup || !tag || tag.type !== liquid_html_parser_1.NodeTypes.LiquidTag)
27
+ return [];
28
+ const expectedMarkupType = TAG_MARKUP_TYPE[tag.name];
29
+ if (expectedMarkupType === undefined || markup.type !== expectedMarkupType)
30
+ return [];
31
+ const rootUri = await this.findAppRootURI(params.textDocument.uri);
32
+ if (!rootUri)
33
+ return [];
34
+ const root = vscode_uri_1.URI.parse(rootUri);
35
+ const searchPaths = await this.searchPathsCache.get(root);
36
+ const docType = tag.name;
37
+ const fileUri = await this.documentsLocator.locateOrDefault(root, docType, node.value, searchPaths);
38
+ if (!fileUri)
39
+ return [];
40
+ const sourceCode = this.documentManager.get(params.textDocument.uri);
41
+ if (!sourceCode)
42
+ return [];
43
+ const doc = sourceCode.textDocument;
44
+ const originRange = vscode_languageserver_protocol_1.Range.create(doc.positionAt(node.position.start), doc.positionAt(node.position.end));
45
+ const targetRange = vscode_languageserver_protocol_1.Range.create(0, 0, 0, 0);
46
+ return [vscode_languageserver_protocol_1.LocationLink.create(fileUri, targetRange, targetRange, originRange)];
47
+ }
48
+ }
49
+ exports.RenderPartialDefinitionProvider = RenderPartialDefinitionProvider;
50
+ //# sourceMappingURL=RenderPartialDefinitionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderPartialDefinitionProvider.js","sourceRoot":"","sources":["../../../src/definitions/providers/RenderPartialDefinitionProvider.ts"],"names":[],"mappings":";;;AAAA,uEAAoG;AAEpG,mFAKwC;AACxC,2CAAiC;AAKjC,MAAM,eAAe,GAA8B;IACjD,MAAM,EAAE,8BAAS,CAAC,YAAY;IAC9B,OAAO,EAAE,8BAAS,CAAC,YAAY;IAC/B,eAAe,EAAE,8BAAS,CAAC,YAAY;IACvC,QAAQ,EAAE,8BAAS,CAAC,cAAc;IAClC,OAAO,EAAE,8BAAS,CAAC,aAAa;CACjC,CAAC;AAEF,MAAa,+BAA+B;IAC1C,YACU,eAAgC,EAChC,gBAAkC,EAClC,gBAAmC,EACnC,cAAuD;QAHvD,oBAAe,GAAf,eAAe,CAAiB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,qBAAgB,GAAhB,gBAAgB,CAAmB;QACnC,mBAAc,GAAd,cAAc,CAAyC;IAC9D,CAAC;IAEJ,KAAK,CAAC,WAAW,CACf,MAAwB,EACxB,IAAoB,EACpB,SAA2B;QAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAE9C,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,8BAAS,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAEnE,MAAM,kBAAkB,GAAG,eAAe,CAAE,GAAiB,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,kBAAkB,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAAE,OAAO,EAAE,CAAC;QAEtF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,gBAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAI,GAAiB,CAAC,IAAoB,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACzD,IAAI,EACJ,OAAO,EACN,IAAqB,CAAC,KAAK,EAC5B,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC;QACpC,MAAM,WAAW,GAAG,sCAAK,CAAC,MAAM,CAC9B,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EACnC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAClC,CAAC;QACF,MAAM,WAAW,GAAG,sCAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7C,OAAO,CAAC,6CAAY,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAhDD,0EAgDC"}