You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| 88 | Early-exit and `Cow` return in `apply_substitution`| Low | Performance |[performance.md §7](todo/performance.md#7-recursive-string-substitution-in-apply_substitution)|
89
+
90
+
Item 89 (incremental text sync) is in the backlog because the parser
91
+
requires a full re-parse regardless, limiting the benefit to IPC
92
+
bandwidth savings on large files.
93
+
94
+
**After Sprint 2.5:** Every resolution path is O(1) lookup instead of
95
+
O(N) scan. Concurrent reads no longer block each other. Inheritance
96
+
merging is O(N) instead of O(N²). File content and symbol maps are
97
+
shared by reference instead of deep-cloned. The codebase is ready for
98
+
parallel file processing and full background indexing without
99
+
performance regressions.
100
+
101
+
---
102
+
59
103
## Sprint 3 — Refactoring
60
104
61
105
Extract Function is the remaining refactoring pillar. Inline Variable,
@@ -116,7 +160,7 @@ deepens that lead and rounds out the remaining feature surface.
116
160
| 39 | Simplify with null coalescing / null-safe operator (code action) | Medium | Code Actions |[actions.md §2](todo/actions.md#2-simplify-with-null-coalescing--null-safe-operator)|
117
161
| 40 | Inlay hints (`textDocument/inlayHint`) | Medium | LSP Features |[lsp-features.md §9](todo/lsp-features.md#9-inlay-hints-textdocumentinlayhint)|
118
162
119
-
**After Sprint 6:** PHPantom has a complete, polished LSP feature set.
163
+
**After Sprint 5:** PHPantom has a complete, polished LSP feature set.
120
164
Users moving to Zed/Neovim/Helix lose nothing on the intelligence side
121
165
and gain 1000× faster startup. The remaining gaps are Blade and
122
166
formatting (not our domain).
@@ -152,7 +196,7 @@ the Laravel-specific manifestation is a small incremental step. Item 51
152
196
(Type Hierarchy) depends on the go-to-implementation infrastructure and
153
197
should be scheduled after that work is stable. Item 56 (partial result
154
198
streaming) addresses outbound latency for large result sets. See also
155
-
item 73 (incremental text sync) in the backlog, which addresses the
199
+
item 89 (incremental text sync) in the backlog, which addresses the
156
200
complementary inbound direction.
157
201
158
202
---
@@ -206,8 +250,13 @@ eventually but don't move the needle.
206
250
| # | Item | Effort | Domain | Doc Link |
207
251
|---|---|---|---|---|
208
252
| 72 | Switch → match conversion | Medium | Code Actions |[actions.md §4](todo/actions.md#4-switch--match-conversion)|
209
-
|73| Incremental text sync | Medium |LSP Features |[lsp-features.md §17](todo/lsp-features.md#17-incremental-text-sync)|
253
+
|89| Incremental text sync | Medium |Performance |[performance.md §8](todo/performance.md#8-incremental-text-sync)|
210
254
255
+
### Performance long-tail
256
+
257
+
| # | Item | Effort | Domain | Doc Link |
258
+
|---|---|---|---|---|
259
+
| 90 | Type AST for `apply_substitution` (full refactor) | High | Performance |[performance.md §7](todo/performance.md#7-recursive-string-substitution-in-apply_substitution)|
211
260
212
261
---
213
262
@@ -242,5 +291,4 @@ Blade is a multi-phase project tracked in [todo/blade.md](todo/blade.md).
0 commit comments