@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-local.js","sourceRoot":"","sources":["../../src/indexer/navigation-local.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation-local.js","sourceRoot":"","sources":["../../src/indexer/navigation-local.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,72 @@
|
|
|
1
1
|
import type { SyntaxNodeLike, SyntaxTreeLike } from "../languages/types.js";
|
|
2
2
|
import type { Range } from "../types.js";
|
|
3
|
+
import type { ImportBinding } from "./import-types.js";
|
|
4
|
+
/** Promotion parameter that contains `node`, or null once a method or class boundary is crossed. */
|
|
5
|
+
export declare function phpPropertyPromotionParameter(node: SyntaxNodeLike): SyntaxNodeLike | null;
|
|
6
|
+
/**
|
|
7
|
+
* Variable declared by a visibility-modified `__construct` parameter.
|
|
8
|
+
* The same syntax on any other method is a parameter, not a class property.
|
|
9
|
+
*/
|
|
10
|
+
export declare function phpConstructorPromotedVariable(node: SyntaxNodeLike, source?: string): SyntaxNodeLike | null;
|
|
3
11
|
export declare function readPhpNamespaceFromRange(tree: SyntaxTreeLike, source: string, range: Range): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* Whether PHP resolves this symbol kind's name case-insensitively. Bloom-filter narrowing
|
|
14
|
+
* uses this classification to fold the probe for class-like and function names while
|
|
15
|
+
* variables, properties, and constants keep their exact spelling.
|
|
16
|
+
*/
|
|
17
|
+
export declare function isPhpCaseInsensitiveSymbolKind(kind: string): boolean;
|
|
18
|
+
export type PhpNameComparison = "equivalent" | "different" | "unverified";
|
|
19
|
+
/**
|
|
20
|
+
* PHP reference-name comparator. Folds class, function, and namespace spelling
|
|
21
|
+
* ASCII-case-insensitively while keeping variables and constants exact. Stored names,
|
|
22
|
+
* ranges, and edit text always keep their source spelling; only comparisons fold.
|
|
23
|
+
*
|
|
24
|
+
* `caseSensitiveForm` marks a comparison the grammar already proves case-sensitive
|
|
25
|
+
* (a `variable_name` or `constant` node). `symbolKind` is the referenced symbol's
|
|
26
|
+
* `SymbolKind`; a kind outside both sets cannot be classified, so a case variant
|
|
27
|
+
* reports `"unverified"` instead of guessing.
|
|
28
|
+
*/
|
|
29
|
+
export declare function comparePhpReferenceNames(reference: string, symbol: string, options?: {
|
|
30
|
+
caseSensitiveForm?: boolean;
|
|
31
|
+
symbolKind?: string;
|
|
32
|
+
}): PhpNameComparison;
|
|
33
|
+
export declare function phpLastIdentifierSegment(name: string): string;
|
|
34
|
+
export type PhpCanonicalNameOptions = {
|
|
35
|
+
imports?: readonly ImportBinding[];
|
|
36
|
+
role?: "class" | "function";
|
|
37
|
+
};
|
|
38
|
+
/** Finds one PHP import alias in its language-defined symbol namespace. */
|
|
39
|
+
export declare function findPhpImportAlias(imports: readonly ImportBinding[], localName: string, importType: "class" | "function" | "const"): Extract<ImportBinding, {
|
|
40
|
+
kind: "named";
|
|
41
|
+
}> | null;
|
|
42
|
+
/**
|
|
43
|
+
* The absolute spelling a PHP reference resolves to, using the reference's own file
|
|
44
|
+
* namespace: `\Foo\Bar` is already absolute, `namespace\Foo` prefixes the current
|
|
45
|
+
* namespace, and a bare or partially qualified name is relative to the current namespace.
|
|
46
|
+
* The first segment of a relative name is resolved against `use` aliases ASCII-case-insensitively
|
|
47
|
+
* before the current namespace is prefixed. Unqualified function names keep an ordered list:
|
|
48
|
+
* `CurrentNamespace\name`, then the global `name`. Class names do not fall back. Consumers must
|
|
49
|
+
* take the first existing candidate; the list is not an unordered set of equivalents.
|
|
50
|
+
*/
|
|
51
|
+
export declare function canonicalPhpReferenceNames(rawName: string, source: string, tree: SyntaxTreeLike, node: SyntaxNodeLike | null, options?: PhpCanonicalNameOptions): string[];
|
|
52
|
+
/**
|
|
53
|
+
* PHP unqualified function lookup is `CurrentNamespace\\name`, then global `name`.
|
|
54
|
+
* Walk `candidates` in that order and return the first name that already exists.
|
|
55
|
+
*/
|
|
56
|
+
export declare function selectFirstExistingPhpCanonicalName(candidates: readonly string[], existingNames: readonly string[], symbolKind: string): string | null;
|
|
57
|
+
export declare function canonicalPhpReferenceName(rawName: string, source: string, tree: SyntaxTreeLike, node: SyntaxNodeLike | null, options?: PhpCanonicalNameOptions): string | null;
|
|
58
|
+
/**
|
|
59
|
+
* True when a reference node spells a namespace-qualified path (`App\Name`, `\App\Name`, or
|
|
60
|
+
* `namespace\Name`). A bare `name` is not a qualified path, so PHP could resolve it as a
|
|
61
|
+
* same-named constant rather than the class or function.
|
|
62
|
+
*/
|
|
63
|
+
export declare function isPhpQualifiedReferenceNode(node: SyntaxNodeLike | null): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* True when a node sits inside a PHP `use`/`use function`/`use const` declaration. Import
|
|
66
|
+
* declaration tokens are reported by the import-binding path, so the qualified-name scan must
|
|
67
|
+
* not report the declaration's whole `App\Name` specifier as an additional reference site.
|
|
68
|
+
*/
|
|
69
|
+
export declare function isInsidePhpUseDeclaration(node: SyntaxNodeLike | null): boolean;
|
|
4
70
|
export declare function getPhpQualifiedReference(node: SyntaxNodeLike | null, source: string): string | null;
|
|
5
71
|
export declare function normalizePhpQualifiedReference(rawName: string, source: string, tree: SyntaxTreeLike, node: SyntaxNodeLike | null): string | null;
|
|
6
72
|
export declare function inferPhpQualifiedReferenceImportType(node: SyntaxNodeLike): "class" | "function" | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-php.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation-php.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"navigation-php.d.ts","sourceRoot":"","sources":["../../src/indexer/navigation-php.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,51 @@
|
|
|
1
1
|
import { sliceText } from "../util/ast.js";
|
|
2
|
+
import { foldPhpIdentifierCase } from "../util/identifiers.js";
|
|
3
|
+
import { SymbolKind } from "./types.js";
|
|
4
|
+
/** Promotion parameter that contains `node`, or null once a method or class boundary is crossed. */
|
|
5
|
+
export function phpPropertyPromotionParameter(node) {
|
|
6
|
+
let current = node;
|
|
7
|
+
while (current) {
|
|
8
|
+
if (current.type === "property_promotion_parameter")
|
|
9
|
+
return current;
|
|
10
|
+
if (current.type === "method_declaration" ||
|
|
11
|
+
current.type === "function_definition" ||
|
|
12
|
+
current.type === "class_declaration") {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
current = current.parent;
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Variable declared by a visibility-modified `__construct` parameter.
|
|
21
|
+
* The same syntax on any other method is a parameter, not a class property.
|
|
22
|
+
*/
|
|
23
|
+
export function phpConstructorPromotedVariable(node, source) {
|
|
24
|
+
const parameter = node.type === "property_promotion_parameter" ? node : phpPropertyPromotionParameter(node);
|
|
25
|
+
if (!parameter)
|
|
26
|
+
return null;
|
|
27
|
+
const variable = parameter.childForFieldName("name");
|
|
28
|
+
if (!variable || variable.type !== "variable_name")
|
|
29
|
+
return null;
|
|
30
|
+
const namesTheVariable = node === parameter || (node.startIndex >= variable.startIndex && node.endIndex <= variable.endIndex);
|
|
31
|
+
if (!namesTheVariable)
|
|
32
|
+
return null;
|
|
33
|
+
let method = parameter.parent;
|
|
34
|
+
while (method && method.type !== "method_declaration") {
|
|
35
|
+
if (method.type === "class_declaration" || method.type === "function_definition")
|
|
36
|
+
return null;
|
|
37
|
+
method = method.parent;
|
|
38
|
+
}
|
|
39
|
+
if (!method)
|
|
40
|
+
return null;
|
|
41
|
+
const methodName = method.childForFieldName("name");
|
|
42
|
+
if (!methodName)
|
|
43
|
+
return null;
|
|
44
|
+
const text = source ? sliceText(methodName, source) : methodName.text;
|
|
45
|
+
if (text !== "__construct")
|
|
46
|
+
return null;
|
|
47
|
+
return variable;
|
|
48
|
+
}
|
|
2
49
|
function readPhpNamespaceName(namespaceNode, source) {
|
|
3
50
|
const namespaceName = namespaceNode.childForFieldName?.("name") ??
|
|
4
51
|
namespaceNode.namedChildren.find((child) => child.type === "namespace_name");
|
|
@@ -40,6 +87,171 @@ export function readPhpNamespaceFromRange(tree, source, range) {
|
|
|
40
87
|
const node = tree.rootNode.descendantForPosition(position, position);
|
|
41
88
|
return readPhpNamespaceFromNode(tree, node, source);
|
|
42
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Symbol kinds whose PHP names are case-insensitive. Keyed by `SymbolKind`, which is what
|
|
92
|
+
* `SymbolDef.kind` carries: PHP's richer classifier vocabulary (`trait`, `method`, `namespace`,
|
|
93
|
+
* `constant`) never reaches here, because `toKind` in `locals-and-exports.ts` maps it down.
|
|
94
|
+
* PHP resolves class, interface, trait, enum, and function/method names ASCII-case-insensitively;
|
|
95
|
+
* a trait is classified as `class` and an enum as `type` so both land here.
|
|
96
|
+
*/
|
|
97
|
+
const PHP_CASE_INSENSITIVE_SYMBOL_KINDS = {
|
|
98
|
+
[SymbolKind.Class]: true,
|
|
99
|
+
[SymbolKind.Interface]: true,
|
|
100
|
+
[SymbolKind.TypeAlias]: true,
|
|
101
|
+
[SymbolKind.Function]: true,
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Symbol kinds that PHP resolves case-sensitively, so a case variant is never the same symbol.
|
|
105
|
+
* Constants and enum cases collapse into `variable` alongside `$variables`, and all three are
|
|
106
|
+
* case-sensitive in PHP, so the single bucket is correct rather than merely convenient.
|
|
107
|
+
*/
|
|
108
|
+
const PHP_CASE_SENSITIVE_SYMBOL_KINDS = {
|
|
109
|
+
[SymbolKind.Variable]: true,
|
|
110
|
+
[SymbolKind.Default]: true,
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Whether PHP resolves this symbol kind's name case-insensitively. Bloom-filter narrowing
|
|
114
|
+
* uses this classification to fold the probe for class-like and function names while
|
|
115
|
+
* variables, properties, and constants keep their exact spelling.
|
|
116
|
+
*/
|
|
117
|
+
export function isPhpCaseInsensitiveSymbolKind(kind) {
|
|
118
|
+
return !!PHP_CASE_INSENSITIVE_SYMBOL_KINDS[kind];
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* PHP reference-name comparator. Folds class, function, and namespace spelling
|
|
122
|
+
* ASCII-case-insensitively while keeping variables and constants exact. Stored names,
|
|
123
|
+
* ranges, and edit text always keep their source spelling; only comparisons fold.
|
|
124
|
+
*
|
|
125
|
+
* `caseSensitiveForm` marks a comparison the grammar already proves case-sensitive
|
|
126
|
+
* (a `variable_name` or `constant` node). `symbolKind` is the referenced symbol's
|
|
127
|
+
* `SymbolKind`; a kind outside both sets cannot be classified, so a case variant
|
|
128
|
+
* reports `"unverified"` instead of guessing.
|
|
129
|
+
*/
|
|
130
|
+
export function comparePhpReferenceNames(reference, symbol, options) {
|
|
131
|
+
if (reference === symbol)
|
|
132
|
+
return "equivalent";
|
|
133
|
+
if (options?.caseSensitiveForm)
|
|
134
|
+
return "different";
|
|
135
|
+
if (foldPhpIdentifierCase(reference) !== foldPhpIdentifierCase(symbol))
|
|
136
|
+
return "different";
|
|
137
|
+
if (options?.symbolKind && PHP_CASE_SENSITIVE_SYMBOL_KINDS[options.symbolKind])
|
|
138
|
+
return "different";
|
|
139
|
+
if (options?.symbolKind && PHP_CASE_INSENSITIVE_SYMBOL_KINDS[options.symbolKind])
|
|
140
|
+
return "equivalent";
|
|
141
|
+
return "unverified";
|
|
142
|
+
}
|
|
143
|
+
export function phpLastIdentifierSegment(name) {
|
|
144
|
+
const trimmed = name.trim().replace(/^\\+/, "");
|
|
145
|
+
const suffix = trimmed.startsWith("namespace\\") ? trimmed.slice("namespace\\".length) : trimmed;
|
|
146
|
+
const parts = suffix.split("\\");
|
|
147
|
+
return parts[parts.length - 1] ?? suffix;
|
|
148
|
+
}
|
|
149
|
+
function phpUseAliasTarget(firstSegment, imports, role) {
|
|
150
|
+
if (!imports)
|
|
151
|
+
return null;
|
|
152
|
+
const folded = foldPhpIdentifierCase(firstSegment);
|
|
153
|
+
for (const imp of imports) {
|
|
154
|
+
if (imp.kind !== "named" || imp.mechanism !== "php")
|
|
155
|
+
continue;
|
|
156
|
+
if (role === "function") {
|
|
157
|
+
if (imp.phpImportType !== "function")
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
else if (imp.phpImportType && imp.phpImportType !== "class") {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (foldPhpIdentifierCase(imp.local) !== folded)
|
|
164
|
+
continue;
|
|
165
|
+
return imp.from.replace(/^\\+/, "");
|
|
166
|
+
}
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
/** Finds one PHP import alias in its language-defined symbol namespace. */
|
|
170
|
+
export function findPhpImportAlias(imports, localName, importType) {
|
|
171
|
+
const normalize = importType === "const" ? (name) => name : foldPhpIdentifierCase;
|
|
172
|
+
const comparableName = normalize(localName);
|
|
173
|
+
const matches = imports.filter((imp) => imp.kind === "named" &&
|
|
174
|
+
imp.mechanism === "php" &&
|
|
175
|
+
(imp.phpImportType ?? "class") === importType &&
|
|
176
|
+
normalize(imp.local) === comparableName);
|
|
177
|
+
return matches.length === 1 ? matches[0] : null;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* The absolute spelling a PHP reference resolves to, using the reference's own file
|
|
181
|
+
* namespace: `\Foo\Bar` is already absolute, `namespace\Foo` prefixes the current
|
|
182
|
+
* namespace, and a bare or partially qualified name is relative to the current namespace.
|
|
183
|
+
* The first segment of a relative name is resolved against `use` aliases ASCII-case-insensitively
|
|
184
|
+
* before the current namespace is prefixed. Unqualified function names keep an ordered list:
|
|
185
|
+
* `CurrentNamespace\name`, then the global `name`. Class names do not fall back. Consumers must
|
|
186
|
+
* take the first existing candidate; the list is not an unordered set of equivalents.
|
|
187
|
+
*/
|
|
188
|
+
export function canonicalPhpReferenceNames(rawName, source, tree, node, options) {
|
|
189
|
+
const trimmed = rawName.trim();
|
|
190
|
+
if (!trimmed)
|
|
191
|
+
return [];
|
|
192
|
+
if (/^\\+/.test(trimmed)) {
|
|
193
|
+
const absolute = trimmed.replace(/^\\+/, "");
|
|
194
|
+
return absolute ? [absolute] : [];
|
|
195
|
+
}
|
|
196
|
+
const currentNamespace = readPhpNamespaceFromNode(tree, node, source);
|
|
197
|
+
if (trimmed.startsWith("namespace\\")) {
|
|
198
|
+
const suffix = trimmed.slice("namespace\\".length);
|
|
199
|
+
if (!suffix)
|
|
200
|
+
return currentNamespace ? [currentNamespace] : [];
|
|
201
|
+
return [currentNamespace ? `${currentNamespace}\\${suffix}` : suffix];
|
|
202
|
+
}
|
|
203
|
+
const separator = trimmed.indexOf("\\");
|
|
204
|
+
const firstSegment = separator < 0 ? trimmed : trimmed.slice(0, separator);
|
|
205
|
+
const remainder = separator < 0 ? "" : trimmed.slice(separator + 1);
|
|
206
|
+
const aliasTarget = phpUseAliasTarget(firstSegment, options?.imports, separator < 0 ? options?.role : "class");
|
|
207
|
+
if (aliasTarget) {
|
|
208
|
+
return [remainder ? `${aliasTarget}\\${remainder}` : aliasTarget];
|
|
209
|
+
}
|
|
210
|
+
const relative = currentNamespace ? `${currentNamespace}\\${trimmed}` : trimmed;
|
|
211
|
+
if (options?.role === "function" && currentNamespace && separator < 0) {
|
|
212
|
+
return [relative, trimmed];
|
|
213
|
+
}
|
|
214
|
+
return [relative];
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* PHP unqualified function lookup is `CurrentNamespace\\name`, then global `name`.
|
|
218
|
+
* Walk `candidates` in that order and return the first name that already exists.
|
|
219
|
+
*/
|
|
220
|
+
export function selectFirstExistingPhpCanonicalName(candidates, existingNames, symbolKind) {
|
|
221
|
+
for (const candidate of candidates) {
|
|
222
|
+
for (const existingName of existingNames) {
|
|
223
|
+
if (comparePhpReferenceNames(candidate, existingName, { symbolKind }) === "equivalent") {
|
|
224
|
+
return candidate;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
230
|
+
export function canonicalPhpReferenceName(rawName, source, tree, node, options) {
|
|
231
|
+
return canonicalPhpReferenceNames(rawName, source, tree, node, options)[0] ?? null;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* True when a reference node spells a namespace-qualified path (`App\Name`, `\App\Name`, or
|
|
235
|
+
* `namespace\Name`). A bare `name` is not a qualified path, so PHP could resolve it as a
|
|
236
|
+
* same-named constant rather than the class or function.
|
|
237
|
+
*/
|
|
238
|
+
export function isPhpQualifiedReferenceNode(node) {
|
|
239
|
+
return node?.type === "qualified_name" || node?.type === "relative_name";
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* True when a node sits inside a PHP `use`/`use function`/`use const` declaration. Import
|
|
243
|
+
* declaration tokens are reported by the import-binding path, so the qualified-name scan must
|
|
244
|
+
* not report the declaration's whole `App\Name` specifier as an additional reference site.
|
|
245
|
+
*/
|
|
246
|
+
export function isInsidePhpUseDeclaration(node) {
|
|
247
|
+
let current = node?.parent ?? null;
|
|
248
|
+
while (current) {
|
|
249
|
+
if (current.type === "namespace_use_declaration")
|
|
250
|
+
return true;
|
|
251
|
+
current = current.parent;
|
|
252
|
+
}
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
43
255
|
export function getPhpQualifiedReference(node, source) {
|
|
44
256
|
if (!node)
|
|
45
257
|
return null;
|
|
@@ -69,18 +281,89 @@ export function normalizePhpQualifiedReference(rawName, source, tree, node) {
|
|
|
69
281
|
}
|
|
70
282
|
return `${currentNamespace}\\${relativeSuffix}`;
|
|
71
283
|
}
|
|
284
|
+
const PHP_CLASS_REFERENCE_CONTEXTS = new Set(["named_type", "base_clause", "class_interface_clause"]);
|
|
285
|
+
const PHP_CALL_EXPRESSION_TYPES = new Set(["function_call_expression", "call_expression"]);
|
|
286
|
+
const PHP_SCOPED_CLASS_EXPRESSION_TYPES = new Set([
|
|
287
|
+
"scoped_call_expression",
|
|
288
|
+
"scoped_property_access_expression",
|
|
289
|
+
"class_constant_access_expression",
|
|
290
|
+
]);
|
|
291
|
+
function containsNode(container, node) {
|
|
292
|
+
return container.startIndex <= node.startIndex && container.endIndex >= node.endIndex;
|
|
293
|
+
}
|
|
294
|
+
function phpArgumentsNode(node) {
|
|
295
|
+
return (node.childForFieldName("arguments") ??
|
|
296
|
+
node.childForFieldName("argument_list") ??
|
|
297
|
+
node.namedChildren.find((child) => child.type === "arguments") ??
|
|
298
|
+
null);
|
|
299
|
+
}
|
|
300
|
+
function phpScopedClassOperand(node) {
|
|
301
|
+
return (node.childForFieldName("scope") ??
|
|
302
|
+
node.childForFieldName("object") ??
|
|
303
|
+
node.childForFieldName("class") ??
|
|
304
|
+
node.namedChildren[0] ??
|
|
305
|
+
null);
|
|
306
|
+
}
|
|
307
|
+
function isPhpInstanceofTypeOperand(expression, node) {
|
|
308
|
+
const operator = expression.childForFieldName("operator");
|
|
309
|
+
if (operator?.text !== "instanceof" && operator?.type !== "instanceof")
|
|
310
|
+
return false;
|
|
311
|
+
const right = expression.childForFieldName("right");
|
|
312
|
+
return !!right && containsNode(right, node);
|
|
313
|
+
}
|
|
72
314
|
export function inferPhpQualifiedReferenceImportType(node) {
|
|
73
315
|
let current = node;
|
|
74
316
|
while (current) {
|
|
317
|
+
const argumentsNode = phpArgumentsNode(current);
|
|
318
|
+
if (current !== node && argumentsNode && containsNode(argumentsNode, node)) {
|
|
319
|
+
current = current.parent;
|
|
320
|
+
continue;
|
|
321
|
+
}
|
|
322
|
+
if (PHP_CLASS_REFERENCE_CONTEXTS.has(current.type)) {
|
|
323
|
+
return "class";
|
|
324
|
+
}
|
|
325
|
+
if (current.type === "attribute") {
|
|
326
|
+
const attributeName = current.childForFieldName("name") ?? current.namedChildren[0];
|
|
327
|
+
if (attributeName && containsNode(attributeName, node))
|
|
328
|
+
return "class";
|
|
329
|
+
}
|
|
75
330
|
if (current.type === "object_creation_expression") {
|
|
76
331
|
return "class";
|
|
77
332
|
}
|
|
78
|
-
if (
|
|
333
|
+
if (PHP_CALL_EXPRESSION_TYPES.has(current.type)) {
|
|
79
334
|
return "function";
|
|
80
335
|
}
|
|
81
|
-
if (current.type
|
|
82
|
-
|
|
83
|
-
|
|
336
|
+
if (PHP_SCOPED_CLASS_EXPRESSION_TYPES.has(current.type)) {
|
|
337
|
+
const object = phpScopedClassOperand(current);
|
|
338
|
+
if (object && containsNode(object, node))
|
|
339
|
+
return "class";
|
|
340
|
+
}
|
|
341
|
+
if (current.type === "catch_clause") {
|
|
342
|
+
const body = current.childForFieldName("body") ??
|
|
343
|
+
current.namedChildren.find((child) => child.type === "compound_statement") ??
|
|
344
|
+
null;
|
|
345
|
+
if (body && containsNode(body, node)) {
|
|
346
|
+
current = current.parent;
|
|
347
|
+
continue;
|
|
348
|
+
}
|
|
349
|
+
const variable = current.childForFieldName("name");
|
|
350
|
+
if (variable && containsNode(variable, node)) {
|
|
351
|
+
current = current.parent;
|
|
352
|
+
continue;
|
|
353
|
+
}
|
|
354
|
+
const typeNode = current.childForFieldName("type");
|
|
355
|
+
if (typeNode) {
|
|
356
|
+
if (containsNode(typeNode, node))
|
|
357
|
+
return "class";
|
|
358
|
+
}
|
|
359
|
+
else if (node.type !== "variable_name") {
|
|
360
|
+
return "class";
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
if (current.type === "use_declaration") {
|
|
364
|
+
return "class";
|
|
365
|
+
}
|
|
366
|
+
if (current.type === "binary_expression" && isPhpInstanceofTypeOperand(current, node)) {
|
|
84
367
|
return "class";
|
|
85
368
|
}
|
|
86
369
|
current = current.parent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-php.js","sourceRoot":"","sources":["../../src/indexer/navigation-php.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation-php.js","sourceRoot":"","sources":["../../src/indexer/navigation-php.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { type LanguageSupport } from "../languages.js";
|
|
2
2
|
import type { SyntaxTreeLike } from "../languages/types.js";
|
|
3
|
-
import type { Range } from "../types.js";
|
|
3
|
+
import type { FileId, Range } from "../types.js";
|
|
4
4
|
import { type ParsedFileContext } from "./parse-context.js";
|
|
5
5
|
import { type ScopeIndex } from "./scope.js";
|
|
6
|
-
import type
|
|
6
|
+
import { type ExportEntry, type ImportBindingRole, type ModuleIndex, type ProjectIndex, type ReferenceCoverage, type ReferenceCoverageReason, type ResolutionProvenance, type SymbolDef } from "./types.js";
|
|
7
7
|
import type { ImportBinding } from "./import-types.js";
|
|
8
8
|
type ReexportEntry = Extract<ExportEntry, {
|
|
9
9
|
type: "reexport";
|
|
@@ -27,7 +27,7 @@ export type VerifiedNamedNodeReference = {
|
|
|
27
27
|
reexport: true;
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
-
|
|
30
|
+
type ReferenceDefinitionResolver = (params: {
|
|
31
31
|
file: string;
|
|
32
32
|
line: number;
|
|
33
33
|
column: number;
|
|
@@ -35,10 +35,66 @@ export declare function collectVerifiedNamedNodeReferences(index: ProjectIndex,
|
|
|
35
35
|
status: string;
|
|
36
36
|
definition?: SymbolDef;
|
|
37
37
|
provenance?: ResolutionProvenance;
|
|
38
|
-
|
|
38
|
+
reason?: string;
|
|
39
|
+
}>;
|
|
40
|
+
/** True when `range` is the property of a member-access expression, not a bare call. */
|
|
41
|
+
export declare function isMemberAccessPropertyRange(parsed: ParsedFileContext, range: Range): boolean;
|
|
42
|
+
export declare function collectVerifiedNamedNodeReferences(index: ProjectIndex, fileId: string, symbolName: string, expectedDef: SymbolDef, resolveDefinition: ReferenceDefinitionResolver, maxVerified?: number, includeReference?: (reference: VerifiedNamedNodeReference) => boolean, onReceiverProofUnavailable?: (file: FileId) => void, equivalentDefinitions?: readonly SymbolDef[]): Promise<VerifiedNamedNodeReference[]>;
|
|
39
43
|
export declare function getCandidateReferenceNames(moduleIndex: ModuleIndex, definitionFile: string, exportedNameSet: Set<string>): string[];
|
|
40
44
|
export declare function hasExpandedNamedImport(moduleIndex: ModuleIndex, targetFile: string, symbolName: string): boolean;
|
|
41
|
-
|
|
45
|
+
/** A package import may expose a child only along its exact dotted module path. */
|
|
46
|
+
export declare function pythonParentPackageNamespacePaths(moduleIndex: ModuleIndex, definitionFile: string): Array<{
|
|
47
|
+
namespace: string;
|
|
48
|
+
importBinding: ImportBinding;
|
|
49
|
+
}>;
|
|
50
|
+
export declare function getCachedReferenceCandidateFiles(index: ProjectIndex, def: SymbolDef, exportedNames: readonly string[], hasGlobalNameReferences: boolean, languageId: string): string[];
|
|
51
|
+
/**
|
|
52
|
+
* The single precedence table for reference-coverage reasons, shared by the direct
|
|
53
|
+
* indexed-candidate builder and the bounded reference lookup cache. Existing reasons keep
|
|
54
|
+
* their established relative order so current expectations stay stable; the two strategy
|
|
55
|
+
* reasons sit after the file-level reasons they refine and before `truncated`, because a
|
|
56
|
+
* skipped collection strategy is a correctness gap while `truncated` only reflects the
|
|
57
|
+
* caller's own requested bound.
|
|
58
|
+
*/
|
|
59
|
+
export declare const REFERENCE_COVERAGE_REASON_ORDER: readonly ReferenceCoverageReason[];
|
|
60
|
+
/**
|
|
61
|
+
* A reference-collection strategy a definition's language and shape require. Coverage reports
|
|
62
|
+
* `strategy_unavailable` when an applicable strategy never ran, so a reference set that is
|
|
63
|
+
* missing sites because a scan was skipped can no longer claim `state: "complete"`.
|
|
64
|
+
*
|
|
65
|
+
* Applicability is a capability fact about the definition's language, not a result fact: a
|
|
66
|
+
* strategy that legitimately produced nothing (an export with no same-file uses) is still
|
|
67
|
+
* `executed`, while a strategy the language cannot run is applicable-but-not-executed.
|
|
68
|
+
*/
|
|
69
|
+
export type ReferenceStrategyId = "same_file_occurrence" | "php_qualified_name" | "implicit_unit_peers";
|
|
70
|
+
export type ReferenceStrategyReport = {
|
|
71
|
+
applicable: readonly ReferenceStrategyId[];
|
|
72
|
+
executed: readonly ReferenceStrategyId[];
|
|
73
|
+
};
|
|
74
|
+
export declare function describeReferenceStrategies(args: {
|
|
75
|
+
languageId: string;
|
|
76
|
+
/** PHP global/qualified probe names produced for the definition; empty for other languages. */
|
|
77
|
+
phpQualifiedNames: readonly string[];
|
|
78
|
+
/**
|
|
79
|
+
* Same-file occurrence scan facts, for a language whose scope layer cannot register the
|
|
80
|
+
* declaration's occurrences. Omit for languages that do register them; omitting a strategy
|
|
81
|
+
* never reports it as unavailable.
|
|
82
|
+
*/
|
|
83
|
+
sameFileOccurrence?: {
|
|
84
|
+
applicable: boolean;
|
|
85
|
+
executed: boolean;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Implicit compilation-unit peer enumeration, for languages whose files can name each
|
|
89
|
+
* other's top-level declarations without imports. `executed` is true only when the unit
|
|
90
|
+
* boundary is proven complete, so a unit that may extend beyond the enumerated peers
|
|
91
|
+
* reports `strategy_unavailable` instead of implying full candidate coverage.
|
|
92
|
+
*/
|
|
93
|
+
implicitUnitPeers?: {
|
|
94
|
+
applicable: boolean;
|
|
95
|
+
executed: boolean;
|
|
96
|
+
};
|
|
97
|
+
}): ReferenceStrategyReport;
|
|
42
98
|
export declare function rangeIdentityKey(range: Range): string;
|
|
43
99
|
export declare function referenceSiteKey(file: string, range: Range): string;
|
|
44
100
|
export declare function rangesEqual(left: Range | undefined, right: Range | undefined): boolean;
|
|
@@ -51,13 +107,24 @@ export declare function importBindingIdentityVerificationSites(imp: ImportBindin
|
|
|
51
107
|
importBinding: ImportBindingRole;
|
|
52
108
|
}>;
|
|
53
109
|
export declare function importBindingDeclarationRangeKeys(moduleIndex: ModuleIndex | undefined): Set<string>;
|
|
110
|
+
/** Recover C++ overload candidates through real exports, never the unresolved-import name shortcut. */
|
|
111
|
+
export declare function cppCanonicalStructuralExport(index: ProjectIndex, targetFile: string, exportedName: string, def: SymbolDef, languageId: string): boolean;
|
|
54
112
|
export declare function buildIndexedCandidateCoverage(args: {
|
|
55
113
|
index: ProjectIndex;
|
|
56
114
|
def: SymbolDef;
|
|
115
|
+
languageId: string;
|
|
57
116
|
exportedNames: readonly string[];
|
|
58
117
|
candidateFiles: readonly string[];
|
|
59
118
|
scannedFiles: readonly string[];
|
|
60
119
|
truncated: boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Reference strategies applicable to this definition and the subset that actually ran.
|
|
122
|
+
* Optional so existing callers compile unchanged; without it coverage keeps its historical
|
|
123
|
+
* file-count behavior. When supplied, an applicable strategy absent from `executed` reports
|
|
124
|
+
* `strategy_unavailable`.
|
|
125
|
+
*/
|
|
126
|
+
strategies?: ReferenceStrategyReport;
|
|
127
|
+
strategyUnavailableFiles?: readonly FileId[];
|
|
61
128
|
}): ReferenceCoverage;
|
|
62
129
|
export {};
|
|
63
130
|
//# sourceMappingURL=navigation-references.d.ts.map
|