@lzehrung/codegraph 2.3.31 → 2.4.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 +30 -137
- package/codegraph-skill/codegraph/SKILL.md +5 -3
- package/dist/agent/artifact.d.ts +2 -0
- package/dist/agent/artifact.d.ts.map +1 -1
- package/dist/agent/artifact.js.map +1 -1
- package/dist/agent/search.d.ts.map +1 -1
- package/dist/agent/search.js +3 -0
- package/dist/agent/search.js.map +1 -1
- package/dist/agent/session.d.ts +3 -0
- package/dist/agent/session.d.ts.map +1 -1
- package/dist/agent/session.js +10 -2
- package/dist/agent/session.js.map +1 -1
- package/dist/bin/cli.js +42243 -29202
- package/dist/bin/query-index-worker.js +73 -11
- package/dist/cli/affected.d.ts.map +1 -1
- package/dist/cli/affected.js +4 -1
- package/dist/cli/affected.js.map +1 -1
- package/dist/cli/command-catalog.js +1 -1
- package/dist/cli/command-catalog.js.map +1 -1
- package/dist/cli/graph-queries.d.ts.map +1 -1
- package/dist/cli/graph-queries.js +27 -1
- package/dist/cli/graph-queries.js.map +1 -1
- package/dist/cli/help.d.ts +2 -2
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +4 -2
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/options.js +2 -2
- package/dist/cli/options.js.map +1 -1
- package/dist/drift/artifact.d.ts.map +1 -1
- package/dist/drift/artifact.js +15 -18
- package/dist/drift/artifact.js.map +1 -1
- package/dist/drift/compare.js +1 -1
- package/dist/drift/compare.js.map +1 -1
- package/dist/drift/snapshot.d.ts.map +1 -1
- package/dist/drift/snapshot.js +5 -6
- package/dist/drift/snapshot.js.map +1 -1
- package/dist/drift/types.d.ts +2 -0
- package/dist/drift/types.d.ts.map +1 -1
- package/dist/drift/types.js.map +1 -1
- package/dist/graph-builder.d.ts.map +1 -1
- package/dist/graph-builder.js +4 -6
- package/dist/graph-builder.js.map +1 -1
- package/dist/graph-edge-collector.d.ts +3 -0
- package/dist/graph-edge-collector.d.ts.map +1 -1
- package/dist/graph-edge-collector.js +8 -5
- package/dist/graph-edge-collector.js.map +1 -1
- package/dist/graphs/angularjs.d.ts.map +1 -1
- package/dist/graphs/angularjs.js +2 -1
- package/dist/graphs/angularjs.js.map +1 -1
- package/dist/graphs/edge-resolution.d.ts +4 -1
- package/dist/graphs/edge-resolution.d.ts.map +1 -1
- package/dist/graphs/edge-resolution.js +26 -2
- package/dist/graphs/edge-resolution.js.map +1 -1
- package/dist/graphs/specifiers.d.ts.map +1 -1
- package/dist/graphs/specifiers.js +6 -2
- package/dist/graphs/specifiers.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/ast.d.ts +20 -0
- package/dist/graphs/symbol-graph-detailed/ast.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/ast.js +154 -15
- package/dist/graphs/symbol-graph-detailed/ast.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts +51 -8
- package/dist/graphs/symbol-graph-detailed/edge-passes.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/edge-passes.js +823 -132
- package/dist/graphs/symbol-graph-detailed/edge-passes.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts +2 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/import-aliases.js +139 -7
- package/dist/graphs/symbol-graph-detailed/import-aliases.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.d.ts +1 -0
- package/dist/graphs/symbol-graph-detailed/member-chains.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.js +3 -1
- package/dist/graphs/symbol-graph-detailed/member-chains.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts +128 -15
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +873 -93
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js.map +1 -1
- package/dist/graphs/symbol-graph-detailed.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed.js +434 -40
- package/dist/graphs/symbol-graph-detailed.js.map +1 -1
- package/dist/graphs/symbol-graph.d.ts +2 -0
- package/dist/graphs/symbol-graph.d.ts.map +1 -1
- package/dist/graphs/symbol-graph.js +34 -16
- package/dist/graphs/symbol-graph.js.map +1 -1
- package/dist/impact/call-compatibility/providers/index.d.ts +4 -4
- package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.js +6 -6
- package/dist/impact/call-compatibility/providers/index.js.map +1 -1
- package/dist/impact/call-compatibility/providers/types.d.ts +2 -0
- package/dist/impact/call-compatibility/providers/types.d.ts.map +1 -1
- package/dist/impact/call-compatibility/types.d.ts +6 -0
- package/dist/impact/call-compatibility/types.d.ts.map +1 -1
- package/dist/impact/call-compatibility.d.ts.map +1 -1
- package/dist/impact/call-compatibility.js +310 -516
- package/dist/impact/call-compatibility.js.map +1 -1
- package/dist/impact/map.js +1 -0
- package/dist/impact/map.js.map +1 -1
- package/dist/impact/reference-cache.d.ts.map +1 -1
- package/dist/impact/reference-cache.js +2 -2
- package/dist/impact/reference-cache.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer/ambiguous-resolution.d.ts +11 -0
- package/dist/indexer/ambiguous-resolution.d.ts.map +1 -0
- package/dist/indexer/ambiguous-resolution.js +19 -0
- package/dist/indexer/ambiguous-resolution.js.map +1 -0
- package/dist/indexer/build-cache/module-cache.d.ts +38 -0
- package/dist/indexer/build-cache/module-cache.d.ts.map +1 -1
- package/dist/indexer/build-cache/module-cache.js +151 -9
- package/dist/indexer/build-cache/module-cache.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +16 -43
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +16 -43
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.d.ts +1 -0
- package/dist/indexer/build-cache/project-snapshot.d.ts.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.js +117 -24
- package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
- package/dist/indexer/build-cache/resolver-environment.d.ts.map +1 -1
- package/dist/indexer/build-cache/resolver-environment.js +32 -2
- package/dist/indexer/build-cache/resolver-environment.js.map +1 -1
- package/dist/indexer/build-cache.d.ts +1 -1
- package/dist/indexer/build-cache.d.ts.map +1 -1
- package/dist/indexer/build-cache.js +1 -1
- package/dist/indexer/build-cache.js.map +1 -1
- package/dist/indexer/build-index.d.ts.map +1 -1
- package/dist/indexer/build-index.js +593 -22
- package/dist/indexer/build-index.js.map +1 -1
- package/dist/indexer/call-hierarchy.js +1 -1
- package/dist/indexer/call-hierarchy.js.map +1 -1
- package/dist/indexer/compilation-units.d.ts +101 -0
- package/dist/indexer/compilation-units.d.ts.map +1 -0
- package/dist/indexer/compilation-units.js +605 -0
- package/dist/indexer/compilation-units.js.map +1 -0
- package/dist/indexer/cpp-callables.d.ts +20 -0
- package/dist/indexer/cpp-callables.d.ts.map +1 -0
- package/dist/indexer/cpp-callables.js +554 -0
- package/dist/indexer/cpp-callables.js.map +1 -0
- package/dist/indexer/declaration-visibility.d.ts +36 -2
- package/dist/indexer/declaration-visibility.d.ts.map +1 -1
- package/dist/indexer/declaration-visibility.js +136 -2
- package/dist/indexer/declaration-visibility.js.map +1 -1
- package/dist/indexer/expand-star-imports.d.ts.map +1 -1
- package/dist/indexer/expand-star-imports.js +28 -6
- package/dist/indexer/expand-star-imports.js.map +1 -1
- package/dist/indexer/import-types.d.ts +37 -0
- package/dist/indexer/import-types.d.ts.map +1 -1
- package/dist/indexer/import-types.js +24 -1
- package/dist/indexer/import-types.js.map +1 -1
- package/dist/indexer/imports/context.d.ts +11 -1
- package/dist/indexer/imports/context.d.ts.map +1 -1
- package/dist/indexer/imports/import-binding-tables.d.ts +12 -1
- package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
- package/dist/indexer/imports/import-binding-tables.js +144 -19
- package/dist/indexer/imports/import-binding-tables.js.map +1 -1
- package/dist/indexer/imports/js-text-imports.js +4 -4
- package/dist/indexer/imports/js-text-imports.js.map +1 -1
- package/dist/indexer/imports/native-captures.d.ts.map +1 -1
- package/dist/indexer/imports/native-captures.js +18 -6
- package/dist/indexer/imports/native-captures.js.map +1 -1
- package/dist/indexer/imports/python.d.ts +10 -2
- package/dist/indexer/imports/python.d.ts.map +1 -1
- package/dist/indexer/imports/python.js +91 -40
- package/dist/indexer/imports/python.js.map +1 -1
- package/dist/indexer/imports/text-import-extractors.d.ts.map +1 -1
- package/dist/indexer/imports/text-import-extractors.js +51 -12
- package/dist/indexer/imports/text-import-extractors.js.map +1 -1
- package/dist/indexer/imports.d.ts.map +1 -1
- package/dist/indexer/imports.js +23 -4
- package/dist/indexer/imports.js.map +1 -1
- package/dist/indexer/incremental-plan.d.ts +33 -0
- package/dist/indexer/incremental-plan.d.ts.map +1 -1
- package/dist/indexer/incremental-plan.js +187 -1
- package/dist/indexer/incremental-plan.js.map +1 -1
- package/dist/indexer/locals-and-exports.d.ts +2 -0
- package/dist/indexer/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +565 -54
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/name-lookup-policies/c-family.d.ts +7 -0
- package/dist/indexer/name-lookup-policies/c-family.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/c-family.js +117 -0
- package/dist/indexer/name-lookup-policies/c-family.js.map +1 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts +11 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.js +136 -0
- package/dist/indexer/name-lookup-policies/csharp-using-static.js.map +1 -0
- package/dist/indexer/name-lookup-policies/implicit-self.d.ts +10 -0
- package/dist/indexer/name-lookup-policies/implicit-self.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/implicit-self.js +113 -0
- package/dist/indexer/name-lookup-policies/implicit-self.js.map +1 -0
- package/dist/indexer/name-lookup-policies/index.d.ts +3 -0
- package/dist/indexer/name-lookup-policies/index.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/index.js +106 -0
- package/dist/indexer/name-lookup-policies/index.js.map +1 -0
- package/dist/indexer/name-lookup-policies/php.d.ts +3 -0
- package/dist/indexer/name-lookup-policies/php.d.ts.map +1 -0
- package/dist/indexer/name-lookup-policies/php.js +75 -0
- package/dist/indexer/name-lookup-policies/php.js.map +1 -0
- package/dist/indexer/name-resolution-types.d.ts +99 -0
- package/dist/indexer/name-resolution-types.d.ts.map +1 -0
- package/dist/indexer/name-resolution-types.js +2 -0
- package/dist/indexer/name-resolution-types.js.map +1 -0
- package/dist/indexer/name-resolution.d.ts +52 -0
- package/dist/indexer/name-resolution.d.ts.map +1 -0
- package/dist/indexer/name-resolution.js +189 -0
- package/dist/indexer/name-resolution.js.map +1 -0
- package/dist/indexer/navigation-cpp.d.ts +50 -0
- package/dist/indexer/navigation-cpp.d.ts.map +1 -0
- package/dist/indexer/navigation-cpp.js +654 -0
- package/dist/indexer/navigation-cpp.js.map +1 -0
- package/dist/indexer/navigation-goto.d.ts +106 -3
- package/dist/indexer/navigation-goto.d.ts.map +1 -1
- package/dist/indexer/navigation-goto.js +2074 -137
- package/dist/indexer/navigation-goto.js.map +1 -1
- package/dist/indexer/navigation-local.d.ts +18 -2
- package/dist/indexer/navigation-local.d.ts.map +1 -1
- package/dist/indexer/navigation-local.js +498 -61
- package/dist/indexer/navigation-local.js.map +1 -1
- package/dist/indexer/navigation-php.d.ts +66 -0
- package/dist/indexer/navigation-php.d.ts.map +1 -1
- package/dist/indexer/navigation-php.js +287 -4
- package/dist/indexer/navigation-php.js.map +1 -1
- package/dist/indexer/navigation-references.d.ts +72 -5
- package/dist/indexer/navigation-references.d.ts.map +1 -1
- package/dist/indexer/navigation-references.js +620 -54
- package/dist/indexer/navigation-references.js.map +1 -1
- package/dist/indexer/navigation-resolve.d.ts +33 -2
- package/dist/indexer/navigation-resolve.d.ts.map +1 -1
- package/dist/indexer/navigation-resolve.js +446 -193
- package/dist/indexer/navigation-resolve.js.map +1 -1
- package/dist/indexer/navigation.d.ts +28 -2
- package/dist/indexer/navigation.d.ts.map +1 -1
- package/dist/indexer/navigation.js +1082 -151
- package/dist/indexer/navigation.js.map +1 -1
- package/dist/indexer/php-namespace-symbols.d.ts +66 -0
- package/dist/indexer/php-namespace-symbols.d.ts.map +1 -0
- package/dist/indexer/php-namespace-symbols.js +342 -0
- package/dist/indexer/php-namespace-symbols.js.map +1 -0
- package/dist/indexer/reference-context.d.ts +2 -0
- package/dist/indexer/reference-context.d.ts.map +1 -1
- package/dist/indexer/reference-context.js +4 -0
- package/dist/indexer/reference-context.js.map +1 -1
- package/dist/indexer/scope-nodes.d.ts +92 -13
- package/dist/indexer/scope-nodes.d.ts.map +1 -1
- package/dist/indexer/scope-nodes.js +212 -20
- package/dist/indexer/scope-nodes.js.map +1 -1
- package/dist/indexer/scope-types.d.ts +25 -1
- package/dist/indexer/scope-types.d.ts.map +1 -1
- package/dist/indexer/scope.d.ts.map +1 -1
- package/dist/indexer/scope.js +894 -45
- package/dist/indexer/scope.js.map +1 -1
- package/dist/indexer/shared-owner-identity.d.ts +53 -0
- package/dist/indexer/shared-owner-identity.d.ts.map +1 -0
- package/dist/indexer/shared-owner-identity.js +460 -0
- package/dist/indexer/shared-owner-identity.js.map +1 -0
- package/dist/indexer/shared.d.ts +1 -1
- package/dist/indexer/shared.d.ts.map +1 -1
- package/dist/indexer/shared.js +1 -1
- package/dist/indexer/shared.js.map +1 -1
- package/dist/indexer/star-import-precedence.d.ts +114 -0
- package/dist/indexer/star-import-precedence.d.ts.map +1 -0
- package/dist/indexer/star-import-precedence.js +396 -0
- package/dist/indexer/star-import-precedence.js.map +1 -0
- package/dist/indexer/symbols.d.ts +3 -1
- package/dist/indexer/symbols.d.ts.map +1 -1
- package/dist/indexer/symbols.js +58 -18
- package/dist/indexer/symbols.js.map +1 -1
- package/dist/indexer/ts-callables.d.ts +51 -0
- package/dist/indexer/ts-callables.d.ts.map +1 -0
- package/dist/indexer/ts-callables.js +264 -0
- package/dist/indexer/ts-callables.js.map +1 -0
- package/dist/indexer/types.d.ts +23 -1
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/indexer/unused-exports.d.ts +13 -0
- package/dist/indexer/unused-exports.d.ts.map +1 -0
- package/dist/indexer/unused-exports.js +159 -0
- package/dist/indexer/unused-exports.js.map +1 -0
- package/dist/indexer/workspace-symbols.d.ts.map +1 -1
- package/dist/indexer/workspace-symbols.js +3 -2
- package/dist/indexer/workspace-symbols.js.map +1 -1
- package/dist/indexer.d.ts +2 -2
- package/dist/indexer.d.ts.map +1 -1
- package/dist/indexer.js +1 -1
- package/dist/indexer.js.map +1 -1
- package/dist/languages/callable-arity.d.ts +202 -0
- package/dist/languages/callable-arity.d.ts.map +1 -0
- package/dist/languages/callable-arity.js +1182 -0
- package/dist/languages/callable-arity.js.map +1 -0
- package/dist/languages/definitions/c-family.d.ts.map +1 -1
- package/dist/languages/definitions/c-family.js +30 -1
- package/dist/languages/definitions/c-family.js.map +1 -1
- package/dist/languages/definitions/c.d.ts +4 -0
- package/dist/languages/definitions/c.d.ts.map +1 -1
- package/dist/languages/definitions/c.js +19 -0
- package/dist/languages/definitions/c.js.map +1 -1
- package/dist/languages/definitions/cpp.d.ts.map +1 -1
- package/dist/languages/definitions/cpp.js +12 -0
- package/dist/languages/definitions/cpp.js.map +1 -1
- package/dist/languages/definitions/csharp.d.ts.map +1 -1
- package/dist/languages/definitions/csharp.js +2 -8
- package/dist/languages/definitions/csharp.js.map +1 -1
- package/dist/languages/definitions/go.d.ts.map +1 -1
- package/dist/languages/definitions/go.js +3 -0
- package/dist/languages/definitions/go.js.map +1 -1
- package/dist/languages/definitions/javascript.d.ts.map +1 -1
- package/dist/languages/definitions/javascript.js +10 -1
- package/dist/languages/definitions/javascript.js.map +1 -1
- package/dist/languages/definitions/js-family.d.ts +1 -1
- package/dist/languages/definitions/js-family.d.ts.map +1 -1
- package/dist/languages/definitions/js-family.js +7 -1
- package/dist/languages/definitions/js-family.js.map +1 -1
- package/dist/languages/definitions/php.d.ts.map +1 -1
- package/dist/languages/definitions/php.js +5 -1
- package/dist/languages/definitions/php.js.map +1 -1
- package/dist/languages/definitions/typescript.d.ts.map +1 -1
- package/dist/languages/definitions/typescript.js +8 -1
- package/dist/languages/definitions/typescript.js.map +1 -1
- package/dist/languages/definitions/zig.d.ts.map +1 -1
- package/dist/languages/definitions/zig.js +2 -0
- package/dist/languages/definitions/zig.js.map +1 -1
- package/dist/mcp/handlers.js +14 -7
- package/dist/mcp/handlers.js.map +1 -1
- package/dist/review/candidates.d.ts.map +1 -1
- package/dist/review/candidates.js +1 -1
- package/dist/review/candidates.js.map +1 -1
- package/dist/review/deleted.d.ts +3 -3
- package/dist/review/deleted.d.ts.map +1 -1
- package/dist/review/deleted.js +82 -32
- package/dist/review/deleted.js.map +1 -1
- package/dist/review/report.d.ts +1 -0
- package/dist/review/report.d.ts.map +1 -1
- package/dist/review/report.js +1 -1
- package/dist/review/report.js.map +1 -1
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +1 -0
- package/dist/review.js.map +1 -1
- package/dist/sql/navigation.d.ts.map +1 -1
- package/dist/sql/navigation.js +1 -0
- package/dist/sql/navigation.js.map +1 -1
- package/dist/sql/source-graph.d.ts.map +1 -1
- package/dist/sql/source-graph.js +2 -2
- package/dist/sql/source-graph.js.map +1 -1
- package/dist/sqlite/schema.d.ts +1 -1
- package/dist/sqlite/schema.d.ts.map +1 -1
- package/dist/sqlite/schema.js +8 -2
- package/dist/sqlite/schema.js.map +1 -1
- package/dist/sqlite/write.js +2 -2
- package/dist/sqlite/write.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/util/bloom-filter.d.ts +7 -1
- package/dist/util/bloom-filter.d.ts.map +1 -1
- package/dist/util/bloom-filter.js +12 -2
- package/dist/util/bloom-filter.js.map +1 -1
- package/dist/util/graph-edges.d.ts +19 -1
- package/dist/util/graph-edges.d.ts.map +1 -1
- package/dist/util/graph-edges.js +30 -4
- package/dist/util/graph-edges.js.map +1 -1
- package/dist/util/identifiers.d.ts +15 -0
- package/dist/util/identifiers.d.ts.map +1 -1
- package/dist/util/identifiers.js +35 -0
- package/dist/util/identifiers.js.map +1 -1
- package/dist/util/member-access-tables.d.ts +61 -4
- package/dist/util/member-access-tables.d.ts.map +1 -1
- package/dist/util/member-access-tables.js +137 -19
- package/dist/util/member-access-tables.js.map +1 -1
- package/dist/util/member-access.d.ts +17 -0
- package/dist/util/member-access.d.ts.map +1 -1
- package/dist/util/member-access.js +95 -3
- package/dist/util/member-access.js.map +1 -1
- package/dist/util/resolution/cargo-targets.d.ts +11 -0
- package/dist/util/resolution/cargo-targets.d.ts.map +1 -1
- package/dist/util/resolution/cargo-targets.js +174 -13
- package/dist/util/resolution/cargo-targets.js.map +1 -1
- package/dist/util/resolution/csharp.d.ts +33 -1
- package/dist/util/resolution/csharp.d.ts.map +1 -1
- package/dist/util/resolution/csharp.js +145 -30
- package/dist/util/resolution/csharp.js.map +1 -1
- package/dist/util/resolution/php.d.ts.map +1 -1
- package/dist/util/resolution/php.js +35 -8
- package/dist/util/resolution/php.js.map +1 -1
- package/dist/util/resolution/python.d.ts +9 -0
- package/dist/util/resolution/python.d.ts.map +1 -1
- package/dist/util/resolution/python.js +46 -0
- package/dist/util/resolution/python.js.map +1 -1
- package/dist/util/resolution/rust.d.ts.map +1 -1
- package/dist/util/resolution/rust.js +95 -26
- package/dist/util/resolution/rust.js.map +1 -1
- package/dist/util/resolution-candidates.d.ts +5 -0
- package/dist/util/resolution-candidates.d.ts.map +1 -1
- package/dist/util/resolution-candidates.js +16 -3
- package/dist/util/resolution-candidates.js.map +1 -1
- package/dist/util/resolution.d.ts +2 -1
- package/dist/util/resolution.d.ts.map +1 -1
- package/dist/util/resolution.js +96 -5
- package/dist/util/resolution.js.map +1 -1
- package/dist/util/specifiers.d.ts +20 -0
- package/dist/util/specifiers.d.ts.map +1 -1
- package/dist/util/specifiers.js +29 -0
- package/dist/util/specifiers.js.map +1 -1
- package/docs/mcp.md +3 -2
- package/package.json +3 -3
- package/dist/impact/call-compatibility/providers/profiles.d.ts +0 -80
- package/dist/impact/call-compatibility/providers/profiles.d.ts.map +0 -1
- package/dist/impact/call-compatibility/providers/profiles.js +0 -164
- package/dist/impact/call-compatibility/providers/profiles.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { sliceText, unquote } from "./ast.js";
|
|
2
|
-
import { MEMBER_ACCESS_ROWS } from "./member-access-tables.js";
|
|
2
|
+
import { isKeywordReceiver, MEMBER_ACCESS_ROWS } from "./member-access-tables.js";
|
|
3
3
|
/**
|
|
4
4
|
* Member-access node types accepted for every language. The list is deliberately wider than any
|
|
5
5
|
* one grammar: node types are language-scoped in practice, so an over-broad shared list cannot
|
|
@@ -63,6 +63,26 @@ export function isReceiverNameNode(sup, nodeType) {
|
|
|
63
63
|
export function isMemberReferencePropertyIdentifier(sup, nodeType) {
|
|
64
64
|
return memberReferencePropertyIdentifierTypes(sup).includes(nodeType);
|
|
65
65
|
}
|
|
66
|
+
const RECEIVER_KEYWORD_CALL_NODE_TYPES = { call: true, call_expression: true };
|
|
67
|
+
/**
|
|
68
|
+
* The text used to classify a receiver as an own-type or supertype keyword. Ordinarily this is
|
|
69
|
+
* the receiver node's own source spelling, but a language whose row sets `receiverKeywordCallShape`
|
|
70
|
+
* may also spell a keyword receiver as a zero-argument call to that keyword - Python's `super()`,
|
|
71
|
+
* which (unlike `self`/`cls`) has no bare-name form. Only unwrap that call when its callee is
|
|
72
|
+
* not shadowed by a visible lexical binding.
|
|
73
|
+
*/
|
|
74
|
+
export function receiverKeywordText(sup, node, source, hasLexicalBinding) {
|
|
75
|
+
const text = sliceText(node, source).trim();
|
|
76
|
+
if (!MEMBER_ACCESS_ROWS[sup.id]?.receiverKeywordCallShape || !RECEIVER_KEYWORD_CALL_NODE_TYPES[node.type]) {
|
|
77
|
+
return text;
|
|
78
|
+
}
|
|
79
|
+
const callee = node.childForFieldName("function") ?? node.namedChildren[0] ?? null;
|
|
80
|
+
const args = node.childForFieldName("arguments") ?? node.childForFieldName("argument_list");
|
|
81
|
+
if (!callee || (args && args.namedChildren.length))
|
|
82
|
+
return text;
|
|
83
|
+
const calleeText = sliceText(callee, source).trim();
|
|
84
|
+
return isKeywordReceiver(sup.id, calleeText) && !hasLexicalBinding(callee) ? calleeText : text;
|
|
85
|
+
}
|
|
66
86
|
export function getNavigationExpressionProperty(sup, expr) {
|
|
67
87
|
const suffix = expr.namedChildren.find((child) => child.type === "navigation_suffix") ?? expr.child(1);
|
|
68
88
|
if (!suffix)
|
|
@@ -124,12 +144,18 @@ export function collectMemberAccessChain(args) {
|
|
|
124
144
|
names.push(unquote(sliceText(propNode, args.source)));
|
|
125
145
|
return;
|
|
126
146
|
}
|
|
127
|
-
|
|
147
|
+
let nameNode = propNode;
|
|
148
|
+
if (args.sup.id === "csharp" && nameNode.type === "generic_name") {
|
|
149
|
+
nameNode = nameNode.childForFieldName("name") ?? nameNode.namedChildren[0] ?? nameNode;
|
|
150
|
+
}
|
|
151
|
+
if (nameNode.type !== "identifier")
|
|
128
152
|
return;
|
|
129
|
-
const keyName = sliceText(
|
|
153
|
+
const keyName = sliceText(nameNode, args.source);
|
|
130
154
|
const value = args.constStringOf?.get(keyName);
|
|
131
155
|
if (typeof value === "string")
|
|
132
156
|
names.push(value);
|
|
157
|
+
else if (args.sup.id === "csharp")
|
|
158
|
+
names.push(keyName);
|
|
133
159
|
};
|
|
134
160
|
while (current && traversalTypes.has(current.type)) {
|
|
135
161
|
if (current.type === "subscript_expression") {
|
|
@@ -151,4 +177,70 @@ export function collectMemberAccessChain(args) {
|
|
|
151
177
|
return null;
|
|
152
178
|
return { base: current, names };
|
|
153
179
|
}
|
|
180
|
+
const RUST_COMMENT_NODE_TYPES = new Set(["line_comment", "block_comment"]);
|
|
181
|
+
/**
|
|
182
|
+
* Whether a name inside a Rust macro token tree follows a `.` or `::` separator, ignoring comments:
|
|
183
|
+
* `counter.bump()` with a block comment after the dot is still a member call, and `m::run()` with
|
|
184
|
+
* one after the `::` is still a path call. Raw
|
|
185
|
+
* tokens cannot prove such a receiver, so both consumers stay conservative there.
|
|
186
|
+
*/
|
|
187
|
+
export function rustTokenTreeNameFollowsSeparator(name) {
|
|
188
|
+
const tree = name.parent;
|
|
189
|
+
if (tree?.type !== "token_tree")
|
|
190
|
+
return false;
|
|
191
|
+
let previous = null;
|
|
192
|
+
for (let index = 0;; index += 1) {
|
|
193
|
+
const child = tree.child(index);
|
|
194
|
+
if (!child || child.startIndex >= name.startIndex)
|
|
195
|
+
break;
|
|
196
|
+
if (!RUST_COMMENT_NODE_TYPES.has(child.type))
|
|
197
|
+
previous = child;
|
|
198
|
+
}
|
|
199
|
+
return previous?.type === "." || previous?.type === "::";
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Standard Rust macros whose arguments are ordinary expressions (after an optional format string
|
|
203
|
+
* or target). Any other macro, and every `macro_rules!` definition, takes raw tokens whose meaning
|
|
204
|
+
* depends on its expansion, so `name(...)` inside them is not a proven call.
|
|
205
|
+
*/
|
|
206
|
+
const RUST_EXPRESSION_ARGUMENT_MACROS = new Set([
|
|
207
|
+
"assert",
|
|
208
|
+
"assert_eq",
|
|
209
|
+
"assert_ne",
|
|
210
|
+
"debug_assert",
|
|
211
|
+
"debug_assert_eq",
|
|
212
|
+
"debug_assert_ne",
|
|
213
|
+
"dbg",
|
|
214
|
+
"eprint",
|
|
215
|
+
"eprintln",
|
|
216
|
+
"format",
|
|
217
|
+
"format_args",
|
|
218
|
+
"panic",
|
|
219
|
+
"print",
|
|
220
|
+
"println",
|
|
221
|
+
"todo",
|
|
222
|
+
"unimplemented",
|
|
223
|
+
"unreachable",
|
|
224
|
+
"vec",
|
|
225
|
+
"write",
|
|
226
|
+
"writeln",
|
|
227
|
+
]);
|
|
228
|
+
const RUST_STANDARD_CRATES = new Set(["std", "core", "alloc"]);
|
|
229
|
+
/** Whether a Rust token tree is (nested in) the arguments of a standard expression macro. */
|
|
230
|
+
export function rustTokenTreeHoldsExpressions(tokenTree) {
|
|
231
|
+
let current = tokenTree;
|
|
232
|
+
while (current?.type === "token_tree")
|
|
233
|
+
current = current.parent;
|
|
234
|
+
if (current?.type !== "macro_invocation")
|
|
235
|
+
return false;
|
|
236
|
+
const macro = current.childForFieldName("macro");
|
|
237
|
+
if (!macro)
|
|
238
|
+
return false;
|
|
239
|
+
// `my_dsl::println!` is a custom macro that only shares a name; a path proves a standard macro
|
|
240
|
+
// only when it is rooted at a standard crate (`std::println!`, `::core::assert!`).
|
|
241
|
+
const segments = macro.text.replace(/\s+/g, "").replace(/^::/, "").split("::");
|
|
242
|
+
const name = segments.pop();
|
|
243
|
+
const standardPath = !segments.length || (segments.length === 1 && RUST_STANDARD_CRATES.has(segments[0]));
|
|
244
|
+
return standardPath && RUST_EXPRESSION_ARGUMENT_MACROS.has(name);
|
|
245
|
+
}
|
|
154
246
|
//# sourceMappingURL=member-access.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-access.js","sourceRoot":"","sources":["../../src/util/member-access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAA0B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"member-access.js","sourceRoot":"","sources":["../../src/util/member-access.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
type TomlTable = Record<string, unknown>;
|
|
2
|
+
/** Verified Cargo library root, or undefined when the package has no library. */
|
|
3
|
+
export declare function rustLibraryRootFile(cargoRoot: string, projectRoot: string, parsed?: TomlTable, probed?: Set<string>): Promise<string | undefined>;
|
|
1
4
|
export type RustCrateRoots = {
|
|
2
5
|
/** Existing, resolved, project-confined crate root files. */
|
|
3
6
|
roots: string[];
|
|
@@ -5,4 +8,12 @@ export type RustCrateRoots = {
|
|
|
5
8
|
probed: string[];
|
|
6
9
|
};
|
|
7
10
|
export declare function rustCrateRootFiles(cargoRoot: string, projectRoot: string): Promise<RustCrateRoots>;
|
|
11
|
+
/** The library root reachable through the package name from one of its binary crate roots. */
|
|
12
|
+
export declare function rustOwnLibraryTarget(cargoRoot: string, projectRoot: string, fromFile: string, identifier: string): Promise<string | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Resolves a Cargo path dependency (including workspace inheritance) to its verified library
|
|
15
|
+
* target, rather than assuming the dependency's conventional src/lib.rs file is its root.
|
|
16
|
+
*/
|
|
17
|
+
export declare function rustPathDependencyLibraryRoot(cargoRoot: string, projectRoot: string, crateIdentifier: string): Promise<string | null>;
|
|
18
|
+
export {};
|
|
8
19
|
//# sourceMappingURL=cargo-targets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cargo-targets.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/cargo-targets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cargo-targets.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/cargo-targets.ts"],"names":[],"mappings":"AAMA,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAuHzC,iFAAiF;AACjF,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,SAAS,EAClB,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAgDD,MAAM,MAAM,cAAc,GAAG;IAC3B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,gFAAgF;IAChF,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmCxG;AAED,8FAA8F;AAC9F,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoCxB;AAqFD;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBxB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fsp from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { parse as parseToml } from "smol-toml";
|
|
4
|
-
import { isPhysicalPathWithinRoot, readUtf8WithoutBom } from "../paths.js";
|
|
4
|
+
import { fileIdentityKey, isPhysicalPathWithinRoot, readUtf8WithoutBom } from "../paths.js";
|
|
5
5
|
const AUTO_DISCOVERY_GROUPS = [
|
|
6
6
|
{ flag: "autobins", directory: path.join("src", "bin") },
|
|
7
7
|
{ flag: "autotests", directory: "tests" },
|
|
@@ -65,10 +65,6 @@ function inferredNamedTargetPaths(kind, name, pkgName) {
|
|
|
65
65
|
}
|
|
66
66
|
function explicitTargetPaths(parsed) {
|
|
67
67
|
const paths = [];
|
|
68
|
-
const lib = isTomlTable(parsed.lib) ? parsed.lib : undefined;
|
|
69
|
-
const libPath = lib ? tomlString(lib, "path") : undefined;
|
|
70
|
-
if (libPath)
|
|
71
|
-
paths.push(libPath);
|
|
72
68
|
const pkgName = packageName(parsed);
|
|
73
69
|
for (const key of ["bin", "example", "test", "bench"]) {
|
|
74
70
|
for (const target of tomlTables(parsed[key])) {
|
|
@@ -85,9 +81,17 @@ function explicitTargetPaths(parsed) {
|
|
|
85
81
|
}
|
|
86
82
|
return paths;
|
|
87
83
|
}
|
|
88
|
-
|
|
84
|
+
/**
|
|
85
|
+
* The Cargo.toml in `cargoRoot`, read only when the manifest file itself physically lies
|
|
86
|
+
* inside `projectRoot`: a symlinked manifest from outside the project must not steer
|
|
87
|
+
* crate targets or dependency resolution.
|
|
88
|
+
*/
|
|
89
|
+
async function parseCargoToml(cargoRoot, projectRoot) {
|
|
90
|
+
const manifest = path.join(cargoRoot, "Cargo.toml");
|
|
91
|
+
if (!(await isPhysicalPathWithinRoot(projectRoot, manifest)))
|
|
92
|
+
return null;
|
|
89
93
|
try {
|
|
90
|
-
const raw = await readUtf8WithoutBom(
|
|
94
|
+
const raw = await readUtf8WithoutBom(manifest);
|
|
91
95
|
const parsed = parseToml(raw);
|
|
92
96
|
return isTomlTable(parsed) ? parsed : null;
|
|
93
97
|
}
|
|
@@ -111,6 +115,18 @@ async function acceptCrateRoot(candidate, projectRoot, requireRustExtension = fa
|
|
|
111
115
|
return null;
|
|
112
116
|
return resolved;
|
|
113
117
|
}
|
|
118
|
+
/** Verified Cargo library root, or undefined when the package has no library. */
|
|
119
|
+
export async function rustLibraryRootFile(cargoRoot, projectRoot, parsed, probed) {
|
|
120
|
+
const manifest = parsed ?? (await parseCargoToml(cargoRoot, projectRoot));
|
|
121
|
+
if (!manifest || !isTomlTable(manifest.package))
|
|
122
|
+
return undefined;
|
|
123
|
+
const lib = isTomlTable(manifest.lib) ? manifest.lib : undefined;
|
|
124
|
+
if (!lib && !packageAutoFlag(manifest, "autolib"))
|
|
125
|
+
return undefined;
|
|
126
|
+
const candidate = path.resolve(cargoRoot, (lib ? tomlString(lib, "path") : undefined) ?? "src/lib.rs");
|
|
127
|
+
probed?.add(candidate);
|
|
128
|
+
return (await acceptCrateRoot(candidate, projectRoot)) ?? undefined;
|
|
129
|
+
}
|
|
114
130
|
async function addCrateRoot(roots, probed, candidate, projectRoot, requireRustExtension = false) {
|
|
115
131
|
const resolved = path.resolve(candidate);
|
|
116
132
|
probed.add(resolved);
|
|
@@ -153,7 +169,7 @@ export async function rustCrateRootFiles(cargoRoot, projectRoot) {
|
|
|
153
169
|
const root = path.resolve(cargoRoot);
|
|
154
170
|
const roots = new Set();
|
|
155
171
|
const probed = new Set();
|
|
156
|
-
const parsed = await parseCargoToml(root);
|
|
172
|
+
const parsed = await parseCargoToml(root, projectRoot);
|
|
157
173
|
if (parsed && !isTomlTable(parsed.package)) {
|
|
158
174
|
return { roots: [], probed: [] };
|
|
159
175
|
}
|
|
@@ -165,11 +181,9 @@ export async function rustCrateRootFiles(cargoRoot, projectRoot) {
|
|
|
165
181
|
if (buildScript) {
|
|
166
182
|
await addCrateRoot(roots, probed, path.resolve(root, buildScript), projectRoot);
|
|
167
183
|
}
|
|
168
|
-
const
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
await addCrateRoot(roots, probed, path.join(root, "src", "lib.rs"), projectRoot);
|
|
172
|
-
}
|
|
184
|
+
const libraryRoot = await rustLibraryRootFile(root, projectRoot, parsed, probed);
|
|
185
|
+
if (libraryRoot)
|
|
186
|
+
roots.add(libraryRoot);
|
|
173
187
|
if (packageAutoFlag(parsed, "autobins")) {
|
|
174
188
|
await addCrateRoot(roots, probed, path.join(root, "src", "main.rs"), projectRoot);
|
|
175
189
|
}
|
|
@@ -186,4 +200,151 @@ export async function rustCrateRootFiles(cargoRoot, projectRoot) {
|
|
|
186
200
|
}
|
|
187
201
|
return { roots: [...roots], probed: [...probed] };
|
|
188
202
|
}
|
|
203
|
+
/** The library root reachable through the package name from one of its binary crate roots. */
|
|
204
|
+
export async function rustOwnLibraryTarget(cargoRoot, projectRoot, fromFile, identifier) {
|
|
205
|
+
const parsed = await parseCargoToml(cargoRoot, projectRoot);
|
|
206
|
+
if (!parsed || !isTomlTable(parsed.package))
|
|
207
|
+
return null;
|
|
208
|
+
const lib = isTomlTable(parsed.lib) ? parsed.lib : undefined;
|
|
209
|
+
const pkgName = packageName(parsed);
|
|
210
|
+
const name = (lib ? tomlString(lib, "name") : undefined) ?? pkgName;
|
|
211
|
+
if (!name || name.replace(/-/gu, "_") !== identifier)
|
|
212
|
+
return null;
|
|
213
|
+
const from = path.resolve(fromFile);
|
|
214
|
+
const fromKey = fileIdentityKey(from);
|
|
215
|
+
let isBinary = false;
|
|
216
|
+
for (const bin of tomlTables(parsed.bin)) {
|
|
217
|
+
const explicitPath = tomlString(bin, "path");
|
|
218
|
+
const binName = tomlString(bin, "name");
|
|
219
|
+
let paths = [];
|
|
220
|
+
if (explicitPath)
|
|
221
|
+
paths = [explicitPath];
|
|
222
|
+
else if (binName)
|
|
223
|
+
paths = inferredNamedTargetPaths("bin", binName, pkgName);
|
|
224
|
+
if (paths.some((candidate) => fileIdentityKey(path.resolve(cargoRoot, candidate)) === fromKey)) {
|
|
225
|
+
isBinary = true;
|
|
226
|
+
break;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (!isBinary && packageAutoFlag(parsed, "autobins")) {
|
|
230
|
+
if (fromKey === fileIdentityKey(path.join(cargoRoot, "src/main.rs"))) {
|
|
231
|
+
isBinary = true;
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
const binRelative = path.relative(path.join(cargoRoot, "src/bin"), from);
|
|
235
|
+
const parts = binRelative.split(path.sep);
|
|
236
|
+
isBinary =
|
|
237
|
+
(parts.length === 1 && !!parts[0]?.endsWith(".rs")) ||
|
|
238
|
+
(parts.length === 2 && !!parts[0] && parts[1] === "main.rs");
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (!isBinary || !(await acceptCrateRoot(from, projectRoot, true)))
|
|
242
|
+
return null;
|
|
243
|
+
return (await rustLibraryRootFile(cargoRoot, projectRoot, parsed)) ?? null;
|
|
244
|
+
}
|
|
245
|
+
/** Inline dependency tables naming `crateIdentifier`, across the dependency groups. */
|
|
246
|
+
function dependencyEntries(parsed, crateIdentifier) {
|
|
247
|
+
const matches = [];
|
|
248
|
+
for (const key of ["dependencies", "dev-dependencies", "build-dependencies"]) {
|
|
249
|
+
const table = isTomlTable(parsed[key]) ? parsed[key] : undefined;
|
|
250
|
+
if (!table)
|
|
251
|
+
continue;
|
|
252
|
+
for (const [depName, entry] of Object.entries(table)) {
|
|
253
|
+
if (depName.replace(/-/gu, "_") !== crateIdentifier || !isTomlTable(entry))
|
|
254
|
+
continue;
|
|
255
|
+
matches.push(entry);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return matches;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* A `path`-only Cargo dependency declared under `[dependencies]`, `[dev-dependencies]`, or
|
|
262
|
+
* `[build-dependencies]` (inline-table `name = { path = "..." }` or dotted-section
|
|
263
|
+
* `[dependencies.name]` form), matched by the Rust identifier the dependency's own manifest
|
|
264
|
+
* key spells (hyphens folded to underscores, matching Cargo's own crate-identifier rule). A
|
|
265
|
+
* version-only or registry dependency has no `path` field and is not returned;
|
|
266
|
+
* workspace-inherited (`{ workspace = true }`) dependencies carry no `path` here and are
|
|
267
|
+
* resolved through the workspace manifest instead.
|
|
268
|
+
*/
|
|
269
|
+
function pathDependencySpec(parsed, crateIdentifier) {
|
|
270
|
+
for (const entry of dependencyEntries(parsed, crateIdentifier)) {
|
|
271
|
+
const depPath = tomlString(entry, "path");
|
|
272
|
+
if (!depPath)
|
|
273
|
+
continue;
|
|
274
|
+
const renamed = tomlString(entry, "package");
|
|
275
|
+
return renamed ? { depPath, packageName: renamed } : { depPath };
|
|
276
|
+
}
|
|
277
|
+
return undefined;
|
|
278
|
+
}
|
|
279
|
+
/** Whether the manifest's own dependency entry asks the workspace to supply the spec. */
|
|
280
|
+
function workspaceInheritanceRequested(parsed, crateIdentifier) {
|
|
281
|
+
for (const entry of dependencyEntries(parsed, crateIdentifier)) {
|
|
282
|
+
const workspace = entry.workspace;
|
|
283
|
+
if (typeof workspace === "boolean")
|
|
284
|
+
return workspace;
|
|
285
|
+
}
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* The `path` from the nearest ancestor workspace manifest's `[workspace.dependencies]` entry
|
|
290
|
+
* for `crateIdentifier`, plus the manifest directory the path is relative to. The walk goes
|
|
291
|
+
* from `cargoRoot` up to and including `projectRoot` and never reads a manifest outside it.
|
|
292
|
+
* The nearest manifest declaring `[workspace]` governs inheritance, matching Cargo: an entry
|
|
293
|
+
* missing there is not inherited from a more distant workspace.
|
|
294
|
+
*/
|
|
295
|
+
async function workspaceInheritedDependencyPath(cargoRoot, projectRoot, crateIdentifier) {
|
|
296
|
+
const root = path.resolve(projectRoot);
|
|
297
|
+
let current = path.resolve(cargoRoot);
|
|
298
|
+
while (await isPhysicalPathWithinRoot(root, current)) {
|
|
299
|
+
const parsed = await parseCargoToml(current, root);
|
|
300
|
+
const workspace = parsed && isTomlTable(parsed.workspace) ? parsed.workspace : undefined;
|
|
301
|
+
if (workspace) {
|
|
302
|
+
const table = isTomlTable(workspace.dependencies) ? workspace.dependencies : undefined;
|
|
303
|
+
for (const [depName, entry] of Object.entries(table ?? {})) {
|
|
304
|
+
if (depName.replace(/-/gu, "_") !== crateIdentifier || !isTomlTable(entry))
|
|
305
|
+
continue;
|
|
306
|
+
const depPath = tomlString(entry, "path");
|
|
307
|
+
if (!depPath)
|
|
308
|
+
return null;
|
|
309
|
+
const renamed = tomlString(entry, "package");
|
|
310
|
+
return renamed ? { manifestDir: current, depPath, packageName: renamed } : { manifestDir: current, depPath };
|
|
311
|
+
}
|
|
312
|
+
return null;
|
|
313
|
+
}
|
|
314
|
+
const parent = path.dirname(current);
|
|
315
|
+
if (parent === current)
|
|
316
|
+
return null;
|
|
317
|
+
current = parent;
|
|
318
|
+
}
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Resolves a Cargo path dependency (including workspace inheritance) to its verified library
|
|
323
|
+
* target, rather than assuming the dependency's conventional src/lib.rs file is its root.
|
|
324
|
+
*/
|
|
325
|
+
export async function rustPathDependencyLibraryRoot(cargoRoot, projectRoot, crateIdentifier) {
|
|
326
|
+
const parsed = await parseCargoToml(cargoRoot, projectRoot);
|
|
327
|
+
if (!parsed)
|
|
328
|
+
return null;
|
|
329
|
+
let manifestDir = cargoRoot;
|
|
330
|
+
let dependency = pathDependencySpec(parsed, crateIdentifier);
|
|
331
|
+
if (!dependency && workspaceInheritanceRequested(parsed, crateIdentifier)) {
|
|
332
|
+
const inherited = await workspaceInheritedDependencyPath(cargoRoot, projectRoot, crateIdentifier);
|
|
333
|
+
if (!inherited)
|
|
334
|
+
return null;
|
|
335
|
+
manifestDir = inherited.manifestDir;
|
|
336
|
+
dependency = inherited;
|
|
337
|
+
}
|
|
338
|
+
if (!dependency)
|
|
339
|
+
return null;
|
|
340
|
+
const resolved = path.resolve(manifestDir, dependency.depPath);
|
|
341
|
+
if (!(await isPhysicalPathWithinRoot(projectRoot, resolved)))
|
|
342
|
+
return null;
|
|
343
|
+
const dependencyManifest = await parseCargoToml(resolved, projectRoot);
|
|
344
|
+
const actualName = dependencyManifest ? packageName(dependencyManifest) : undefined;
|
|
345
|
+
const expectedName = dependency.packageName ?? crateIdentifier;
|
|
346
|
+
if (!actualName || actualName.replace(/-/gu, "_") !== expectedName.replace(/-/gu, "_"))
|
|
347
|
+
return null;
|
|
348
|
+
return (await rustLibraryRootFile(resolved, projectRoot, dependencyManifest ?? undefined)) ?? null;
|
|
349
|
+
}
|
|
189
350
|
//# sourceMappingURL=cargo-targets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cargo-targets.js","sourceRoot":"","sources":["../../../src/util/resolution/cargo-targets.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,kBAAkB,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAI3E,MAAM,qBAAqB,GAAG;IAC5B,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;IACxD,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE;IACzC,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE;IAC/C,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE;CACrC,CAAC;AAEX,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3D,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CAAC,KAAgB,EAAE,GAAW;IAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,MAAiB,EAAE,GAAW;IACrD,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,OAAO,WAAW,KAAK,SAAS;QAAE,OAAO,WAAW,CAAC;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,QAAQ,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAiB;IAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,MAAM,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,MAAiB;IACpC,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC;AAED,SAAS,4BAA4B,CAAC,IAA0C;IAC9E,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAC1C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC;IACpC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAA0C,EAC1C,IAAY,EACZ,OAA2B;IAE3B,MAAM,SAAS,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/F,IAAI,IAAI,KAAK,KAAK,IAAI,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAClD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAiB;IAC5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAU,EAAE,CAAC;QAC/D,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC7C,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,KAAK,CAAC,IAAI,CAAC,GAAG,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,SAAiB;IAC7C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,SAAiB,EACjB,WAAmB,EACnB,oBAAoB,GAAG,KAAK;IAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,oBAAoB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,wBAAwB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAAkB,EAClB,MAAmB,EACnB,SAAiB,EACjB,WAAmB,EACnB,oBAAoB,GAAG,KAAK;IAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;IACpF,IAAI,QAAQ;QAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,KAAkB,EAClB,MAAmB,EACnB,SAAiB,EACjB,WAAmB;IAEnB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACpC,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAClG,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YAChE,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrC,IAAI,EAAE,CAAC,MAAM,EAAE;gBAAE,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;IACH,CAAC;AACH,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,SAAiB,EAAE,WAAmB;IAC7E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACnC,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,YAAY,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1D,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YAC5D,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;YACxC,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;QAC5E,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;QACjF,MAAM,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,qBAAqB,EAAE,CAAC;QAC1C,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7D,MAAM,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;AACpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"cargo-targets.js","sourceRoot":"","sources":["../../../src/util/resolution/cargo-targets.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,40 @@
|
|
|
1
|
+
import { type LanguageExtensionMap } from "../../languages.js";
|
|
2
|
+
/**
|
|
3
|
+
* A namespace-qualified type name found in more than one declaring file.
|
|
4
|
+
* `found` is the one declaration, or the partial-type representative when every
|
|
5
|
+
* part shares one owner. `ambiguous` and `partial` never name a file: ambiguity
|
|
6
|
+
* is proven, and `partial` means a candidate could not be read so uniqueness is
|
|
7
|
+
* not proven. Callers must not fall through to the first path match.
|
|
8
|
+
*/
|
|
9
|
+
export type CsharpNamespaceTypeResolution = {
|
|
10
|
+
status: "found";
|
|
11
|
+
file: string;
|
|
12
|
+
} | {
|
|
13
|
+
status: "not_found";
|
|
14
|
+
} | {
|
|
15
|
+
status: "ambiguous";
|
|
16
|
+
} | {
|
|
17
|
+
status: "partial";
|
|
18
|
+
};
|
|
1
19
|
/**
|
|
2
20
|
* Every file under the nearest C# project manifest (or `projectRoot` when none
|
|
3
21
|
* exists) that declares `spec` as a namespace, via either a block-scoped or a
|
|
4
22
|
* file-scoped namespace declaration. Sorted by the shared project symbol index.
|
|
5
23
|
*/
|
|
6
|
-
export declare function resolveCsharpNamespaceImportPaths(projectRoot: string, spec: string, fromFile: string): Promise<string[]>;
|
|
24
|
+
export declare function resolveCsharpNamespaceImportPaths(projectRoot: string, spec: string, fromFile: string, languageExtensions?: LanguageExtensionMap): Promise<string[]>;
|
|
25
|
+
/**
|
|
26
|
+
* The file that declares `typeName` directly in `namespaceName`.
|
|
27
|
+
* One file binds immediately. Several files bind only when partial-type ownership
|
|
28
|
+
* collapses them to one representative; otherwise the result is `ambiguous` or
|
|
29
|
+
* `partial` and never the first path.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveCsharpNamespaceTypePath(projectRoot: string, namespaceName: string, typeName: string, fromFile: string, languageExtensions?: LanguageExtensionMap): Promise<CsharpNamespaceTypeResolution>;
|
|
32
|
+
/**
|
|
33
|
+
* `N.Point` (and `@N.@Point`) as a type in namespace `N`, after namespace identity
|
|
34
|
+
* normalization. A single-segment spec is not a dotted type. Navigation, references,
|
|
35
|
+
* and the symbol graph follow the import binding this resolves; the dependency graph
|
|
36
|
+
* calls this helper itself because it re-resolves the specifier text.
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveCsharpDottedTypeImportPath(projectRoot: string, spec: string, fromFile: string, languageExtensions?: LanguageExtensionMap): Promise<CsharpNamespaceTypeResolution>;
|
|
7
39
|
export declare function clearCsharpResolutionCaches(): void;
|
|
8
40
|
//# sourceMappingURL=csharp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/csharp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"csharp.d.ts","sourceRoot":"","sources":["../../../src/util/resolution/csharp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAkClG;;;;;;GAMG;AACH,MAAM,MAAM,6BAA6B,GACrC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AA8H1B;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,oBAAoB,GACxC,OAAO,CAAC,MAAM,EAAE,CAAC,CAanB;AAiCD;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,oBAAoB,GACxC,OAAO,CAAC,6BAA6B,CAAC,CAexC;AAED;;;;;GAKG;AACH,wBAAsB,iCAAiC,CACrD,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,oBAAoB,GACxC,OAAO,CAAC,6BAA6B,CAAC,CAQxC;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD"}
|