Conversation
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Use the coarse reference index for conclusive zero counts and cache bounded exact member locations for non-zero lenses. Refresh-capable clients avoid eager resolve storms while older clients retain lazy resolution.
Stop reference counts and CodeLens resolves from repeating the full workspace walk for every declaration. Internal annotation requests share the initial index, including callers queued behind it, while an explicit Find References command keeps its single refresh for files created without watcher notifications.
d1d9871 to
1ee7d8d
Compare
Resolve fully-qualified classes and Class::member references from arbitrary YAML and XML positions without schema-specific rules.
Feed schema-free class and member occurrences into Find References and CodeLens, including transparent-proxy metadata aliases.
Discover opt-in generated subclasses by path and marker interface, then canonicalize external metadata without changing PHP type resolution.
1ee7d8d to
4b6ed79
Compare
The reference CodeLens and YAML/XML navigation this branch was built on landed upstream (PHPantom-dev#392, PHPantom-dev#394), so this applies only the proxy change on top of main. - In YAML/XML a proxy name counts as a reference to its real class inside upstream's reworked class search. - Proxy paths are recognised before the watcher's exclusion filter, since they usually live in ignored cache directories. - Startup proxy indexing moved to backend/startup.rs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Could you provide a sample setup where I can see how the code this acts on looks |
|
Good question. The intent was to handle generated proxies in general: ProxyManager ( Building the sample showed that nothing in the project actually names those classes. service-proxy keeps the real class on the service definition and creates the proxy at runtime through a factory, and Doctrine mappings always name the real entity. The generated names only exist at runtime. What we really needed was the relation between those services and their events, and #402 covers that from the real classes: it reads the final wiring from the generated container, and the |
Why
Generated runtime proxies often appear in configuration while their useful declarations live on the parent class. Navigating into cache artifacts is noisy, and treating proxy and real names as unrelated splits references and member metadata. The mapping must stay opt-in and generic because proxy layouts and marker contracts vary by package.
Summary
Dependency
Validation