feat(symfony): add ExpressionLanguage intelligence - #403
Open
sidux wants to merge 29 commits into
Open
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.
sidux
force-pushed
the
feat/symfony-expression-language-intelligence
branch
from
August 30, 2026 15:33
c667791 to
de17890
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.
Index semantic framework relationships alongside generic YAML and XML class references.
Pass every indexed target to editor-native navigation and ignore empty PHP resource strings.
Generic YAML and XML navigation now returns early only when it resolves a PHP symbol. Otherwise the semantic Symfony resolver still handles aliases, form fields, validation mappings, and configuration keys.
Build entity-to-repository pairs alongside the framework resource index and update them per URI. CodeLens and reference lookups now read the derived index instead of reopening and rescanning every YAML/XML resource for each declaration.
Discover opt-in generated subclasses by path and marker interface, then canonicalize external metadata without changing PHP type resolution.
Reuse the existing definition and reference pipelines for standard incoming and outgoing call navigation.
Model publishers, events, and subscribers through standard LSP call hierarchy nodes, canonicalizing configured proxy owners before matching.
sidux
force-pushed
the
feat/symfony-expression-language-intelligence
branch
from
August 30, 2026 15:54
de17890 to
8894f02
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
ExpressionLanguage strings carry PHP-like member access but their root variables come from application contracts that a language server cannot infer from syntax alone. Declarative attribute and constructor rules make that relationship explicit without hardcoding any package or project, so navigation and diagnostics can reuse the normal PHP type engine and remain accurate for custom integrations.
Dependencies
Validation
cargo clippy --fix --allow-dirty -- -D warningscargo fmtcargo clippy --all-targets -- -D warningscargo test— 14,167 passed, 12 ignored