@lzehrung/codegraph 2.3.30 → 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 +42229 -28876
- 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 -22
- package/dist/graphs/symbol-graph-detailed/receiver-calls.d.ts.map +1 -1
- package/dist/graphs/symbol-graph-detailed/receiver-calls.js +872 -125
- 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 +12 -0
- package/dist/impact/call-compatibility/providers/index.d.ts.map +1 -1
- package/dist/impact/call-compatibility/providers/index.js +16 -22
- 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 +316 -552
- 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/member-resolution-coverage.d.ts.map +1 -1
- package/dist/impact/member-resolution-coverage.js +1 -1
- package/dist/impact/member-resolution-coverage.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/binding-ranges.d.ts +1 -1
- package/dist/indexer/imports/binding-ranges.d.ts.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 +75 -0
- package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -0
- package/dist/indexer/imports/import-binding-tables.js +544 -0
- package/dist/indexer/imports/import-binding-tables.js.map +1 -0
- 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/language-specific.d.ts +3 -22
- package/dist/indexer/imports/language-specific.d.ts.map +1 -1
- package/dist/indexer/imports/language-specific.js +29 -362
- package/dist/indexer/imports/language-specific.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 +25 -5
- 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 +107 -4
- package/dist/indexer/navigation-goto.d.ts.map +1 -1
- package/dist/indexer/navigation-goto.js +2075 -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/dynamic-import-tables.d.ts +88 -0
- package/dist/util/dynamic-import-tables.d.ts.map +1 -0
- package/dist/util/dynamic-import-tables.js +100 -0
- package/dist/util/dynamic-import-tables.js.map +1 -0
- 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 +129 -0
- package/dist/util/member-access-tables.d.ts.map +1 -0
- package/dist/util/member-access-tables.js +285 -0
- package/dist/util/member-access-tables.js.map +1 -0
- 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 +138 -93
- 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 +39 -93
- package/dist/util/specifiers.js.map +1 -1
- package/docs/mcp.md +3 -2
- package/package.json +3 -3
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fileIdentityKey } from "../util/paths.js";
|
|
1
2
|
const RUST_ROW = {
|
|
2
3
|
declarationTypes: new Set([
|
|
3
4
|
"function_item",
|
|
@@ -44,7 +45,8 @@ const CSHARP_ROW = {
|
|
|
44
45
|
"event_field_declaration",
|
|
45
46
|
]),
|
|
46
47
|
modifierNodeTypes: new Set(["modifier"]),
|
|
47
|
-
|
|
48
|
+
// `file` (C# 11) restricts a top-level type to its declaring file, so it is never a peer export.
|
|
49
|
+
hiddenModifierTexts: new Set(["private", "file"]),
|
|
48
50
|
namespaceHiddenModifierTexts: new Set(["internal"]),
|
|
49
51
|
typeContainerTypes: new Set([
|
|
50
52
|
"class_declaration",
|
|
@@ -92,12 +94,30 @@ const C_FAMILY_ROW = {
|
|
|
92
94
|
namespaceHiddenModifierTexts: new Set(["static"]),
|
|
93
95
|
typeContainerTypes: new Set(["class_specifier", "struct_specifier", "union_specifier"]),
|
|
94
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* Zig `pub` is an anonymous keyword child of the declaration (tree-sitter-zig 1.1.2),
|
|
99
|
+
* not a named modifier node. Unmarked top-level items stay module-local, matching
|
|
100
|
+
* `@import` visibility. `export` without `pub` is C ABI only and is not a Zig export.
|
|
101
|
+
*/
|
|
102
|
+
const ZIG_ROW = {
|
|
103
|
+
declarationTypes: new Set([
|
|
104
|
+
"function_declaration",
|
|
105
|
+
"variable_declaration",
|
|
106
|
+
"using_namespace_declaration",
|
|
107
|
+
"test_declaration",
|
|
108
|
+
"comptime_declaration",
|
|
109
|
+
]),
|
|
110
|
+
modifierNodeTypes: new Set(["pub"]),
|
|
111
|
+
publicModifierTexts: new Set(["pub"]),
|
|
112
|
+
hiddenModifierTexts: new Set(),
|
|
113
|
+
};
|
|
95
114
|
const VISIBILITY_BY_LANGUAGE = {
|
|
96
115
|
rust: RUST_ROW,
|
|
97
116
|
java: JAVA_ROW,
|
|
98
117
|
csharp: CSHARP_ROW,
|
|
99
118
|
kotlin: KOTLIN_ROW,
|
|
100
119
|
swift: SWIFT_ROW,
|
|
120
|
+
zig: ZIG_ROW,
|
|
101
121
|
c: C_FAMILY_ROW,
|
|
102
122
|
cpp: C_FAMILY_ROW,
|
|
103
123
|
};
|
|
@@ -111,7 +131,11 @@ function collectModifierTexts(declaration, row) {
|
|
|
111
131
|
if (row.modifierNodeTypes.has(node.type) && node.text)
|
|
112
132
|
texts.push(node.text.trim());
|
|
113
133
|
};
|
|
114
|
-
|
|
134
|
+
// Zig `pub` is unnamed. Named-only walks miss it; other languages still match named modifiers.
|
|
135
|
+
for (let index = 0;; index += 1) {
|
|
136
|
+
const child = declaration.child(index);
|
|
137
|
+
if (!child)
|
|
138
|
+
break;
|
|
115
139
|
visit(child);
|
|
116
140
|
for (const grand of child.namedChildren)
|
|
117
141
|
visit(grand);
|
|
@@ -199,4 +223,114 @@ export function isExportedDeclaration(languageId, node) {
|
|
|
199
223
|
return true;
|
|
200
224
|
return isExportedByRow(declaration, row);
|
|
201
225
|
}
|
|
226
|
+
const CSHARP_ACCESS_MODIFIERS = new Set(["public", "protected", "internal", "private"]);
|
|
227
|
+
const CSHARP_MEMBER_CONTAINERS = new Set([
|
|
228
|
+
"class_declaration",
|
|
229
|
+
"struct_declaration",
|
|
230
|
+
"record_declaration",
|
|
231
|
+
"interface_declaration",
|
|
232
|
+
]);
|
|
233
|
+
const CSHARP_PRIVATE_BY_DEFAULT_CONTAINERS = new Set(["class_declaration", "struct_declaration", "record_declaration"]);
|
|
234
|
+
/**
|
|
235
|
+
* Whether `node`'s declaration is `private` (and not C# `private protected`). A private member is
|
|
236
|
+
* not accessible to a subclass, so it cannot be reached through the implicit `this` there.
|
|
237
|
+
*/
|
|
238
|
+
export function isPrivateDeclaration(languageId, node) {
|
|
239
|
+
const row = VISIBILITY_BY_LANGUAGE[languageId];
|
|
240
|
+
const declaration = row ? findVisibilityDeclaration(node, row) : null;
|
|
241
|
+
if (!row || !declaration)
|
|
242
|
+
return false;
|
|
243
|
+
const tokens = modifierTokens(collectModifierTexts(declaration, row));
|
|
244
|
+
// C# `private protected` stays accessible to derived classes in the same assembly.
|
|
245
|
+
if (tokens.includes("private"))
|
|
246
|
+
return !tokens.includes("protected");
|
|
247
|
+
// A C# class, struct, or record member without an access modifier is private; interface
|
|
248
|
+
// members are public.
|
|
249
|
+
return (languageId === "csharp" &&
|
|
250
|
+
!tokens.some((token) => CSHARP_ACCESS_MODIFIERS.has(token)) &&
|
|
251
|
+
CSHARP_PRIVATE_BY_DEFAULT_CONTAINERS.has(enclosingAncestor(declaration, CSHARP_MEMBER_CONTAINERS)?.type ?? ""));
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Whether a C# member is accessible from an unrelated type in the same assembly: `public`,
|
|
255
|
+
* `internal`, or `protected internal`. `private`, `protected`, `private protected`, and a class,
|
|
256
|
+
* struct, or record member without an access modifier are not.
|
|
257
|
+
*/
|
|
258
|
+
export function isCsharpAccessibleOutsideType(node) {
|
|
259
|
+
const row = VISIBILITY_BY_LANGUAGE.csharp;
|
|
260
|
+
const declaration = row ? findVisibilityDeclaration(node, row) : null;
|
|
261
|
+
if (!row || !declaration)
|
|
262
|
+
return true;
|
|
263
|
+
const tokens = modifierTokens(collectModifierTexts(declaration, row));
|
|
264
|
+
if (tokens.includes("private"))
|
|
265
|
+
return false;
|
|
266
|
+
if (tokens.includes("protected"))
|
|
267
|
+
return tokens.includes("internal");
|
|
268
|
+
if (tokens.some((token) => CSHARP_ACCESS_MODIFIERS.has(token)))
|
|
269
|
+
return true;
|
|
270
|
+
return !CSHARP_PRIVATE_BY_DEFAULT_CONTAINERS.has(enclosingAncestor(declaration, CSHARP_MEMBER_CONTAINERS)?.type ?? "");
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Go export visibility is spelled in the identifier itself (Go spec, "Exported identifiers"):
|
|
274
|
+
* a name is visible outside its declaring package only when its first Unicode letter is
|
|
275
|
+
* upper case. Unlike every `DeclarationVisibilityRow` above, this must never filter a Go
|
|
276
|
+
* file's module exports: Go's own compilation-unit peers (any file in the same package)
|
|
277
|
+
* legitimately see an unexported name, and that same-package lookup reads the same export
|
|
278
|
+
* list. Only a reference that crosses into a different Go package, whether by namespace
|
|
279
|
+
* selector (`pkg.hidden`) or by a proven receiver of an imported type (`v.hidden()`), must
|
|
280
|
+
* reject an unexported name. Both paths call this rule instead of adding a `GO_ROW` here.
|
|
281
|
+
*/
|
|
282
|
+
export function isGoExportedMemberName(languageId, name) {
|
|
283
|
+
if (languageId !== "go")
|
|
284
|
+
return true;
|
|
285
|
+
return /^\p{Lu}/u.test(name);
|
|
286
|
+
}
|
|
287
|
+
function swiftDeclarationKind(container) {
|
|
288
|
+
const kind = container.childForFieldName("declaration_kind");
|
|
289
|
+
if (kind) {
|
|
290
|
+
const text = kind.text.trim();
|
|
291
|
+
if (text)
|
|
292
|
+
return text;
|
|
293
|
+
}
|
|
294
|
+
for (let index = 0;; index += 1) {
|
|
295
|
+
const child = container.child(index);
|
|
296
|
+
if (!child)
|
|
297
|
+
return "";
|
|
298
|
+
const text = child.text.trim();
|
|
299
|
+
if (text === "extension" || text === "class" || text === "struct" || text === "enum" || text === "actor") {
|
|
300
|
+
return text;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
function enclosingSwiftExtension(node) {
|
|
305
|
+
let current = node;
|
|
306
|
+
while (current) {
|
|
307
|
+
if (current.type === "class_declaration") {
|
|
308
|
+
return swiftDeclarationKind(current) === "extension" ? current : null;
|
|
309
|
+
}
|
|
310
|
+
current = current.parent;
|
|
311
|
+
}
|
|
312
|
+
return null;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Swift `private`/`fileprivate` is file-scoped, including when that modifier is on the
|
|
316
|
+
* enclosing `extension` rather than the member.
|
|
317
|
+
*/
|
|
318
|
+
export function isSwiftFileHiddenSharedOwnerMember(languageId, memberNode) {
|
|
319
|
+
if (languageId !== "swift")
|
|
320
|
+
return false;
|
|
321
|
+
if (!isExportedDeclaration("swift", memberNode))
|
|
322
|
+
return true;
|
|
323
|
+
const extension = enclosingSwiftExtension(memberNode);
|
|
324
|
+
return !!extension && !isExportedDeclaration("swift", extension);
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Shared-owner navigation and detailed membership drop Swift file-hidden members when
|
|
328
|
+
* the owner lives in another file, and keep same-file matches plus ordinary cross-file
|
|
329
|
+
* internal/public members.
|
|
330
|
+
*/
|
|
331
|
+
export function isSwiftCrossFileHiddenSharedOwnerMember(languageId, ownerFile, memberFile, memberNode) {
|
|
332
|
+
if (fileIdentityKey(ownerFile) === fileIdentityKey(memberFile))
|
|
333
|
+
return false;
|
|
334
|
+
return isSwiftFileHiddenSharedOwnerMember(languageId, memberNode);
|
|
335
|
+
}
|
|
202
336
|
//# sourceMappingURL=declaration-visibility.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration-visibility.js","sourceRoot":"","sources":["../../src/indexer/declaration-visibility.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"declaration-visibility.js","sourceRoot":"","sources":["../../src/indexer/declaration-visibility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAuCnD,MAAM,QAAQ,GAA6B;IACzC,gBAAgB,EAAE,IAAI,GAAG,CAAC;QACxB,eAAe;QACf,aAAa;QACb,YAAY;QACZ,WAAW;QACX,WAAW;QACX,YAAY;QACZ,aAAa;QACb,kBAAkB;QAClB,iBAAiB;QACjB,UAAU;KACX,CAAC;IACF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACnD,mBAAmB,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACjE,sBAAsB,EAAE,CAAC,MAAM,CAAC;IAChC,mBAAmB,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IAC3C,4BAA4B,EAAE,IAAI,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,QAAQ,GAA6B;IACzC,gBAAgB,EAAE,IAAI,GAAG,CAAC;QACxB,mBAAmB;QACnB,oBAAoB;QACpB,uBAAuB;QACvB,kBAAkB;QAClB,6BAA6B;QAC7B,oBAAoB;QACpB,mBAAmB;KACpB,CAAC;IACF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;IACzC,mBAAmB,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;CAC1C,CAAC;AAEF,MAAM,UAAU,GAA6B;IAC3C,gBAAgB,EAAE,IAAI,GAAG,CAAC;QACxB,mBAAmB;QACnB,oBAAoB;QACpB,oBAAoB;QACpB,uBAAuB;QACvB,kBAAkB;QAClB,oBAAoB;QACpB,sBAAsB;QACtB,sBAAsB;QACtB,mBAAmB;QACnB,yBAAyB;KAC1B,CAAC;IACF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACxC,iGAAiG;IACjG,mBAAmB,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACjD,4BAA4B,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IACnD,kBAAkB,EAAE,IAAI,GAAG,CAAC;QAC1B,mBAAmB;QACnB,oBAAoB;QACpB,oBAAoB;QACpB,uBAAuB;QACvB,kBAAkB;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,UAAU,GAA6B;IAC3C,gBAAgB,EAAE,IAAI,GAAG,CAAC;QACxB,mBAAmB;QACnB,oBAAoB;QACpB,sBAAsB;QACtB,sBAAsB;QACtB,YAAY;KACb,CAAC;IACF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACnD,mBAAmB,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,SAAS,GAA6B;IAC1C,gBAAgB,EAAE,IAAI,GAAG,CAAC;QACxB,mBAAmB;QACnB,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB;QACtB,uBAAuB;QACvB,4BAA4B;QAC5B,mBAAmB;QACnB,sBAAsB;KACvB,CAAC;IACF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACnD,mBAAmB,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,YAAY,GAA6B;IAC7C,gBAAgB,EAAE,IAAI,GAAG,CAAC,CAAC,qBAAqB,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;IACtF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACvD,mBAAmB,EAAE,IAAI,GAAG,EAAE;IAC9B,4BAA4B,EAAE,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjD,kBAAkB,EAAE,IAAI,GAAG,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;CACxF,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,GAA6B;IACxC,gBAAgB,EAAE,IAAI,GAAG,CAAC;QACxB,sBAAsB;QACtB,sBAAsB;QACtB,6BAA6B;QAC7B,kBAAkB;QAClB,sBAAsB;KACvB,CAAC;IACF,iBAAiB,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACnC,mBAAmB,EAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACrC,mBAAmB,EAAE,IAAI,GAAG,EAAE;CAC/B,CAAC;AAEF,MAAM,sBAAsB,GAA6C;IACvE,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,OAAO;IACZ,CAAC,EAAE,YAAY;IACf,GAAG,EAAE,YAAY;CAClB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,gCAAgC,CAAC,UAAkB;IACjE,OAAO,sBAAsB,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;AAC1D,CAAC;AAED,SAAS,oBAAoB,CAAC,WAA2B,EAAE,GAA6B;IACtF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,IAAoB,EAAQ,EAAE;QAC3C,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC;IACF,+FAA+F;IAC/F,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,aAAa;YAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAoB,EAAE,KAA0B;IACzE,IAAI,OAAO,GAA0B,IAAI,CAAC,MAAM,CAAC;IACjD,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QAC5C,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAoB,EAAE,GAA6B;IACpF,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,OAAO,CAAC;QAC3D,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,MAAyB,EAAE,MAA2B;IACzE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAwB;IACtD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,qBAAqB,CAAC,SAA4B,EAAE,GAA6B;IACxF,MAAM,WAAW,GAAG,GAAG,CAAC,mBAAmB,CAAC;IAC5C,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,mBAAmB,CAAC;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,sBAAsB,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,eAAe,CAAC,WAA2B,EAAE,GAA6B;IACjF,MAAM,SAAS,GACb,GAAG,CAAC,mBAAmB,IAAI,GAAG,CAAC,4BAA4B;QACzD,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,4BAA4B,CAAC;QAClE,CAAC,CAAC,IAAI,CAAC;IACX,MAAM,MAAM,GAAG,SAAS,IAAI,WAAW,CAAC;IACxC,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC5B,OAAO,qBAAqB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,mBAAmB,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,IACE,GAAG,CAAC,4BAA4B;QAChC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,4BAA4B,CAAC;QACrD,GAAG,CAAC,kBAAkB;QACtB,CAAC,iBAAiB,CAAC,WAAW,EAAE,GAAG,CAAC,kBAAkB,CAAC,EACvD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,UAAkB,EAAE,IAAoB;IAC5E,MAAM,GAAG,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,OAAO,eAAe,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AACxF,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,uBAAuB;CACxB,CAAC,CAAC;AACH,MAAM,oCAAoC,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CAAC;AAExH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,IAAoB;IAC3E,MAAM,GAAG,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,MAAM,GAAG,cAAc,CAAC,oBAAoB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,mFAAmF;IACnF,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrE,wFAAwF;IACxF,sBAAsB;IACtB,OAAO,CACL,UAAU,KAAK,QAAQ;QACvB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3D,oCAAoC,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE,wBAAwB,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAC/G,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAoB;IAChE,MAAM,GAAG,GAAG,sBAAsB,CAAC,MAAM,CAAC;IAC1C,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,MAAM,GAAG,cAAc,CAAC,oBAAoB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,CAAC,oCAAoC,CAAC,GAAG,CAC9C,iBAAiB,CAAC,WAAW,EAAE,wBAAwB,CAAC,EAAE,IAAI,IAAI,EAAE,CACrE,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAA8B,EAAE,IAAY;IACjF,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAyB;IACrD,MAAM,IAAI,GAAG,SAAS,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAC7D,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;IACxB,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,GAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACzG,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAoB;IACnD,IAAI,OAAO,GAA0B,IAAI,CAAC;IAC1C,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACzC,OAAO,oBAAoB,CAAC,OAAO,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kCAAkC,CAAC,UAAkB,EAAE,UAA0B;IAC/F,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,SAAS,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uCAAuC,CACrD,UAAkB,EAClB,SAAiB,EACjB,UAAkB,EAClB,UAA0B;IAE1B,IAAI,eAAe,CAAC,SAAS,CAAC,KAAK,eAAe,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7E,OAAO,kCAAkC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand-star-imports.d.ts","sourceRoot":"","sources":["../../src/indexer/expand-star-imports.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,WAAW,EAAkB,MAAM,YAAY,CAAC;AAoC7F;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"expand-star-imports.d.ts","sourceRoot":"","sources":["../../src/indexer/expand-star-imports.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAc,KAAK,YAAY,EAAE,KAAK,WAAW,EAAkB,MAAM,YAAY,CAAC;AAoC7F;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CA2E9F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { supportForFileWithoutHeaderSample } from "../languages.js";
|
|
2
2
|
import { fileIdentityKey } from "../util/paths.js";
|
|
3
3
|
import { SymbolKind } from "./types.js";
|
|
4
4
|
const STYLESHEET_LANGUAGE_IDS = new Set(["css", "scss", "less"]);
|
|
@@ -44,7 +44,15 @@ export function expandStarImports(modules, opts) {
|
|
|
44
44
|
const expandedImportKey = (binding) => {
|
|
45
45
|
const typeOnly = binding.typeOnly ?? false;
|
|
46
46
|
if (binding.kind === "named") {
|
|
47
|
-
return JSON.stringify([
|
|
47
|
+
return JSON.stringify([
|
|
48
|
+
"named",
|
|
49
|
+
binding.from,
|
|
50
|
+
binding.resolved,
|
|
51
|
+
typeOnly,
|
|
52
|
+
binding.local,
|
|
53
|
+
binding.imported,
|
|
54
|
+
binding.cNamespace,
|
|
55
|
+
]);
|
|
48
56
|
}
|
|
49
57
|
if (binding.kind === "namespace") {
|
|
50
58
|
return JSON.stringify(["namespace", binding.from, binding.resolved, typeOnly, binding.localNS]);
|
|
@@ -59,18 +67,29 @@ export function expandStarImports(modules, opts) {
|
|
|
59
67
|
expandedImportKeys.add(key);
|
|
60
68
|
}
|
|
61
69
|
for (const imp of [...mod.imports]) {
|
|
62
|
-
|
|
70
|
+
// A C# `using static` imports one type's static members, not the file's exports.
|
|
71
|
+
if (imp.kind !== "star" || imp.staticMembersOf || typeof imp.resolved !== "string")
|
|
63
72
|
continue;
|
|
64
73
|
const target = modules.get(fileIdentityKey(imp.resolved));
|
|
65
74
|
if (!target)
|
|
66
75
|
continue;
|
|
67
|
-
|
|
76
|
+
// Only stylesheet and Ruby membership is asked below, and C and C++ answer both the same,
|
|
77
|
+
// so a `.h` target must not pay for a header sample read here.
|
|
78
|
+
const targetSupport = supportForFileWithoutHeaderSample(imp.resolved, opts?.languageExtensions);
|
|
68
79
|
const exportedSymbols = symbolsForStarImport(target, !!targetSupport && STYLESHEET_LANGUAGE_IDS.has(targetSupport.id));
|
|
80
|
+
// `.h` defaults to C in filename-only lookup. Only extracted C tags prove the namespace split.
|
|
81
|
+
const hasCTagExports = exportedSymbols.some(({ symbol }) => Boolean(symbol.cTag));
|
|
69
82
|
const seen = new Set();
|
|
70
83
|
for (const { name, symbol } of exportedSymbols) {
|
|
71
|
-
|
|
84
|
+
let namespace;
|
|
85
|
+
if (symbol.cTag)
|
|
86
|
+
namespace = "tag";
|
|
87
|
+
else if (hasCTagExports)
|
|
88
|
+
namespace = "ordinary";
|
|
89
|
+
const symbolKey = namespace ? `${name}\0${namespace}` : name;
|
|
90
|
+
if (!name || seen.has(symbolKey))
|
|
72
91
|
continue;
|
|
73
|
-
seen.add(
|
|
92
|
+
seen.add(symbolKey);
|
|
74
93
|
const treatAsNamespace = targetSupport?.id === "ruby" && symbol.kind === SymbolKind.Class;
|
|
75
94
|
const expandedImport = treatAsNamespace
|
|
76
95
|
? {
|
|
@@ -79,6 +98,7 @@ export function expandStarImports(modules, opts) {
|
|
|
79
98
|
from: imp.from,
|
|
80
99
|
resolved: imp.resolved,
|
|
81
100
|
...(imp.typeOnly !== undefined ? { typeOnly: imp.typeOnly } : {}),
|
|
101
|
+
...(imp.includeForm ? { includeForm: imp.includeForm } : {}),
|
|
82
102
|
}
|
|
83
103
|
: {
|
|
84
104
|
kind: "named",
|
|
@@ -86,7 +106,9 @@ export function expandStarImports(modules, opts) {
|
|
|
86
106
|
imported: name,
|
|
87
107
|
from: imp.from,
|
|
88
108
|
resolved: imp.resolved,
|
|
109
|
+
...(namespace ? { cNamespace: namespace } : {}),
|
|
89
110
|
...(imp.typeOnly !== undefined ? { typeOnly: imp.typeOnly } : {}),
|
|
111
|
+
...(imp.includeForm ? { includeForm: imp.includeForm } : {}),
|
|
90
112
|
};
|
|
91
113
|
const expandedImportKeyValue = expandedImportKey(expandedImport);
|
|
92
114
|
if (!expandedImportKeyValue || expandedImportKeys.has(expandedImportKeyValue))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand-star-imports.js","sourceRoot":"","sources":["../../src/indexer/expand-star-imports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"expand-star-imports.js","sourceRoot":"","sources":["../../src/indexer/expand-star-imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FileId, Range } from "../types.js";
|
|
2
|
+
import type { CFamilyIncludeForm } from "../util/specifiers.js";
|
|
2
3
|
export type ImportBinding = {
|
|
3
4
|
kind: "default";
|
|
4
5
|
local: string;
|
|
@@ -29,6 +30,8 @@ export type ImportBinding = {
|
|
|
29
30
|
*/
|
|
30
31
|
localRange?: Range;
|
|
31
32
|
phpImportType?: "class" | "function" | "const";
|
|
33
|
+
/** Namespace retained when a C include expands tags and ordinary names. */
|
|
34
|
+
cNamespace?: "tag" | "ordinary";
|
|
32
35
|
resolved?: FileId | {
|
|
33
36
|
external: string;
|
|
34
37
|
};
|
|
@@ -38,10 +41,18 @@ export type ImportBinding = {
|
|
|
38
41
|
moduleLevel?: boolean;
|
|
39
42
|
resolvedType?: "heuristic" | "precise";
|
|
40
43
|
confidence?: number;
|
|
44
|
+
/** Copied from the C/C++ star include this binding was expanded from. */
|
|
45
|
+
includeForm?: CFamilyIncludeForm;
|
|
41
46
|
} | {
|
|
42
47
|
kind: "namespace";
|
|
43
48
|
localNS: string;
|
|
44
49
|
from: string;
|
|
50
|
+
/**
|
|
51
|
+
* True when the source spells an explicit `as alias` (Python `import a.b as alias`).
|
|
52
|
+
* A plain `import a.b` also binds a name here (`a`, the first dotted segment), but that
|
|
53
|
+
* name is not itself an alias for `a.b`'s own spelling.
|
|
54
|
+
*/
|
|
55
|
+
explicitAlias?: boolean;
|
|
45
56
|
/** UTF-16 range of the namespace binding token. */
|
|
46
57
|
localRange?: Range;
|
|
47
58
|
resolved?: FileId | {
|
|
@@ -53,6 +64,8 @@ export type ImportBinding = {
|
|
|
53
64
|
moduleLevel?: boolean;
|
|
54
65
|
resolvedType?: "heuristic" | "precise";
|
|
55
66
|
confidence?: number;
|
|
67
|
+
/** Copied from the C/C++ star include this binding was expanded from. */
|
|
68
|
+
includeForm?: CFamilyIncludeForm;
|
|
56
69
|
} | {
|
|
57
70
|
kind: "star";
|
|
58
71
|
from: string;
|
|
@@ -65,5 +78,29 @@ export type ImportBinding = {
|
|
|
65
78
|
moduleLevel?: boolean;
|
|
66
79
|
resolvedType?: "heuristic" | "precise";
|
|
67
80
|
confidence?: number;
|
|
81
|
+
/** Present for a C/C++ include. Older cached bindings omit it. */
|
|
82
|
+
includeForm?: CFamilyIncludeForm;
|
|
83
|
+
/**
|
|
84
|
+
* C# `using static N.T;`: the normalized qualified type name `N.T`. Only static members and
|
|
85
|
+
* nested types of that type in the resolved file are imported, so generic star lookup and
|
|
86
|
+
* expansion skip this binding.
|
|
87
|
+
*/
|
|
88
|
+
staticMembersOf?: string;
|
|
68
89
|
};
|
|
90
|
+
/**
|
|
91
|
+
* PHP resolves named imports through separate class, function, and constant namespaces, and
|
|
92
|
+
* PHP spells an untyped named import as a class alias. Non-PHP bindings carry no PHP role.
|
|
93
|
+
*/
|
|
94
|
+
export declare function phpNamedImportRole(binding: ImportBinding): "class" | "function" | "const" | undefined;
|
|
95
|
+
/**
|
|
96
|
+
* The role segment a named binding contributes to its import node ID: a PHP import role or a
|
|
97
|
+
* C include namespace. Bindings with neither keep the plain `import` segment.
|
|
98
|
+
*/
|
|
99
|
+
export declare function importIdRoleSegment(binding: Extract<ImportBinding, {
|
|
100
|
+
kind: "named";
|
|
101
|
+
}>): string | undefined;
|
|
102
|
+
/** Use the caller's normalized file path and keep PHP import roles and C namespaces distinct. */
|
|
103
|
+
export declare function importNodeId(file: string, binding: Exclude<ImportBinding, {
|
|
104
|
+
kind: "star";
|
|
105
|
+
}>): string;
|
|
69
106
|
//# sourceMappingURL=import-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-types.d.ts","sourceRoot":"","sources":["../../src/indexer/import-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"import-types.d.ts","sourceRoot":"","sources":["../../src/indexer/import-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* PHP resolves named imports through separate class, function, and constant namespaces, and
|
|
3
|
+
* PHP spells an untyped named import as a class alias. Non-PHP bindings carry no PHP role.
|
|
4
|
+
*/
|
|
5
|
+
export function phpNamedImportRole(binding) {
|
|
6
|
+
if (binding.kind !== "named")
|
|
7
|
+
return undefined;
|
|
8
|
+
if (binding.mechanism !== "php" && binding.phpImportType === undefined)
|
|
9
|
+
return undefined;
|
|
10
|
+
return binding.phpImportType ?? "class";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The role segment a named binding contributes to its import node ID: a PHP import role or a
|
|
14
|
+
* C include namespace. Bindings with neither keep the plain `import` segment.
|
|
15
|
+
*/
|
|
16
|
+
export function importIdRoleSegment(binding) {
|
|
17
|
+
return phpNamedImportRole(binding) ?? binding.cNamespace;
|
|
18
|
+
}
|
|
19
|
+
/** Use the caller's normalized file path and keep PHP import roles and C namespaces distinct. */
|
|
20
|
+
export function importNodeId(file, binding) {
|
|
21
|
+
const name = binding.kind === "namespace" ? binding.localNS : binding.local;
|
|
22
|
+
const role = binding.kind === "named" ? importIdRoleSegment(binding) : undefined;
|
|
23
|
+
return `${file}::${name}::import${role ? `:${role}` : ""}`;
|
|
24
|
+
}
|
|
2
25
|
//# sourceMappingURL=import-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-types.js","sourceRoot":"","sources":["../../src/indexer/import-types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"import-types.js","sourceRoot":"","sources":["../../src/indexer/import-types.ts"],"names":[],"mappings":"AAuFA;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAsB;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzF,OAAO,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAkD;IACpF,OAAO,kBAAkB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;AAC3D,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAiD;IAC1F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,OAAO,GAAG,IAAI,KAAK,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -44,7 +44,7 @@ export declare function attributeNamedBindingRanges(args: {
|
|
|
44
44
|
* tokens sharing the same spelling (currently just C#'s `using Alias = Namespace.Path;`).
|
|
45
45
|
* Every other producer's `local === imported` really means "one token, no alias".
|
|
46
46
|
*/
|
|
47
|
-
alwaysAliased?: boolean;
|
|
47
|
+
alwaysAliased?: boolean | undefined;
|
|
48
48
|
}): void;
|
|
49
49
|
export declare function sourceRangeFromOffsets(lineStarts: readonly number[], startIndex: number, endIndex: number): Range;
|
|
50
50
|
//# sourceMappingURL=binding-ranges.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding-ranges.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/binding-ranges.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUxD,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"binding-ranges.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/binding-ranges.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUxD,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACrC,GAAG,IAAI,CAyBP;AAgHD,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAKjH"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import type { ImportBinding } from "../types.js";
|
|
2
|
+
import type { CFamilyIncludeForm, ModuleSpecifierResolutionKind } from "../../util/specifiers.js";
|
|
2
3
|
export type ResolvedImportTarget = Exclude<ImportBinding["resolved"], undefined>;
|
|
3
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Per-occurrence resolution facts the capture path can prove but the extracted specifier text
|
|
6
|
+
* cannot. A C/C++ `#include` keeps its literal/angle/macro form here so resolution never infers
|
|
7
|
+
* it from the file's other spellings.
|
|
8
|
+
*/
|
|
9
|
+
export type ImportResolverOptions = {
|
|
10
|
+
includeForm?: CFamilyIncludeForm;
|
|
11
|
+
resolutionKind?: ModuleSpecifierResolutionKind;
|
|
12
|
+
};
|
|
13
|
+
export type ImportResolver = (from: string, phpImportType?: "class" | "function" | "const", opts?: ImportResolverOptions) => Promise<ResolvedImportTarget>;
|
|
4
14
|
export type ImportBindingSink = {
|
|
5
15
|
pushBinding: (binding: ImportBinding) => void;
|
|
6
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAElG,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;AAEjF;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,cAAc,CAAC,EAAE,6BAA6B,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,EAC9C,IAAI,CAAC,EAAE,qBAAqB,KACzB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/C,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type LanguageExtensionMap } from "../../languages.js";
|
|
2
|
+
import type { Range } from "../../types.js";
|
|
3
|
+
import type { CFamilyIncludeForm } from "../../util/specifiers.js";
|
|
4
|
+
import type { ImportBinding } from "../types.js";
|
|
5
|
+
import type { ImportBindingSink, ImportResolver, ResolvedImportTarget } from "./context.js";
|
|
6
|
+
/**
|
|
7
|
+
* Per-language import-binding registry for statement overrides and implicit native-capture
|
|
8
|
+
* mapping. Rows are keyed by language id and live next to `language-specific.ts` because that
|
|
9
|
+
* file is the only dispatch consumer this wave.
|
|
10
|
+
*
|
|
11
|
+
* One row owns the statement handler, the implicit mapper, and the flags those paths used to
|
|
12
|
+
* spell as `languageId === "..."` chains: trivia masking, JVM/C# dot normalization, Rust
|
|
13
|
+
* statement-key offsets, C# `alwaysAliased` range attribution, and Rust's reduced-mode rescan.
|
|
14
|
+
* `text-import-extractors.ts` stays the shared discovery source; this table does not re-scan.
|
|
15
|
+
*
|
|
16
|
+
* `tests/import-binding-tables.test.ts` asserts every registered language has a row, that an
|
|
17
|
+
* omission names a reason, and that a capability row names a reason for each handler it lacks.
|
|
18
|
+
*/
|
|
19
|
+
export type LanguageSpecificImportContext = ImportBindingSink & {
|
|
20
|
+
file: string;
|
|
21
|
+
projectRoot: string;
|
|
22
|
+
source: string;
|
|
23
|
+
languageId: string;
|
|
24
|
+
resolveFrom: ImportResolver;
|
|
25
|
+
/** Active extension-to-language mapping, so a resolved file is classified as the language that parses it. */
|
|
26
|
+
languageExtensions?: LanguageExtensionMap;
|
|
27
|
+
getBindings: () => ImportBinding[];
|
|
28
|
+
replaceBindings: (bindings: ImportBinding[]) => void;
|
|
29
|
+
};
|
|
30
|
+
export type ImplicitImportBindingArgs = {
|
|
31
|
+
from: string;
|
|
32
|
+
resolved: ResolvedImportTarget;
|
|
33
|
+
typeOnly: boolean;
|
|
34
|
+
stmtText: string;
|
|
35
|
+
/** UTF-16 start index of `stmtText` within the source file, when known. */
|
|
36
|
+
stmtStartIndex?: number;
|
|
37
|
+
source?: string;
|
|
38
|
+
alias?: string;
|
|
39
|
+
/** UTF-16 range of the captured alias token, when the native alias capture proved it. */
|
|
40
|
+
localRange?: Range;
|
|
41
|
+
wildcard?: boolean;
|
|
42
|
+
includeForm?: CFamilyIncludeForm;
|
|
43
|
+
};
|
|
44
|
+
export type ApplyStatementImportOverride = (context: LanguageSpecificImportContext, parserStmt: string, typeOnly: boolean, statementStartIndex?: number) => Promise<boolean>;
|
|
45
|
+
export type AppendImplicitImportBinding = (context: LanguageSpecificImportContext, args: ImplicitImportBindingArgs) => void;
|
|
46
|
+
/**
|
|
47
|
+
* How a statement override prepares text before the parser: mask trivia, mask only PHP `use`
|
|
48
|
+
* statements (includes keep string payloads), or leave the trimmed source untouched (Rust).
|
|
49
|
+
*/
|
|
50
|
+
export type StatementTriviaMask = true | false | "use-keyword";
|
|
51
|
+
export type ImportBindingRow = {
|
|
52
|
+
/** Why the language has no statement override and no implicit mapper. */
|
|
53
|
+
omittedReason?: string;
|
|
54
|
+
applyStatement?: ApplyStatementImportOverride;
|
|
55
|
+
appendImplicit?: AppendImplicitImportBinding;
|
|
56
|
+
/** Present only with `applyStatement`. */
|
|
57
|
+
maskTrivia?: StatementTriviaMask;
|
|
58
|
+
/** Collapse whitespace around `.` after masking (C#, Java, Kotlin). */
|
|
59
|
+
normalizeDots?: true;
|
|
60
|
+
/**
|
|
61
|
+
* Include the statement start offset in the override de-dupe key (C#, Rust). Required when the
|
|
62
|
+
* same statement text can appear in several scopes and each must keep its own range.
|
|
63
|
+
*/
|
|
64
|
+
statementKeyUsesOffset?: true;
|
|
65
|
+
/** Named-range attribution treats unaliased `local === imported` as two tokens (C#). */
|
|
66
|
+
alwaysAliased?: true;
|
|
67
|
+
/** Reduced-mode text bindings re-run even when native already produced some (Rust). */
|
|
68
|
+
rescanTextBindings?: true;
|
|
69
|
+
/** Why the language declares no statement override. */
|
|
70
|
+
statementOmittedReason?: string;
|
|
71
|
+
/** Why the language declares no implicit mapper. */
|
|
72
|
+
implicitOmittedReason?: string;
|
|
73
|
+
};
|
|
74
|
+
export declare const IMPORT_BINDING_ROWS: Record<string, ImportBindingRow>;
|
|
75
|
+
//# sourceMappingURL=import-binding-tables.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-binding-tables.d.ts","sourceRoot":"","sources":["../../../src/indexer/imports/import-binding-tables.ts"],"names":[],"mappings":"AASA,OAAO,EAAqC,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAOlG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5F;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,6BAA6B,GAAG,iBAAiB,GAAG;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,cAAc,CAAC;IAC5B,6GAA6G;IAC7G,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,WAAW,EAAE,MAAM,aAAa,EAAE,CAAC;IACnC,eAAe,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,CACzC,OAAO,EAAE,6BAA6B,EACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EACjB,mBAAmB,CAAC,EAAE,MAAM,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,2BAA2B,GAAG,CACxC,OAAO,EAAE,6BAA6B,EACtC,IAAI,EAAE,yBAAyB,KAC5B,IAAI,CAAC;AAEV;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,aAAa,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,4BAA4B,CAAC;IAC9C,cAAc,CAAC,EAAE,2BAA2B,CAAC;IAC7C,0CAA0C;IAC1C,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,uEAAuE;IACvE,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,IAAI,CAAC;IAC9B,wFAAwF;IACxF,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,IAAI,CAAC;IAC1B,uDAAuD;IACvD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oDAAoD;IACpD,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAknBF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CA2FhE,CAAC"}
|