Repository navigation
Commit fb158ba
committed
Recover the LSP analysis context after a workspace build
Why:
Projects opened before their first build lack generated metadata.
Recover on compiler-log events without requiring an editor restart.
Context modified (compiler-log creation and change notifications):
Before (text):
Refresh diagnostics using the existing analysis and package context.
After (text):
Discover fresh analysis tables and package configuration.
Replace the context if the workspace package is available.
Otherwise retain the previous context without repeated error messages.
Preserve open buffers, settings and diagnostics, then refresh diagnostics.
Diagnostic modified (initial package discovery failure):
Before (text):
Try building the project then restart the server
After (text):
Try building the project. The server will retry when a compiler log
changes.
Add snapshot tests for Created and Changed events, early retries,
compiled-file lookup and preservation of unsaved buffers. Document the
automatic recovery behavior.
Validation:
dune build and eight recovery/diagnostic tests pass. The full LSP
suite still has snapshot differences in hover_jsx.ml and code_action.ml.
Signed-off-by: Pedro Castro <aspeddro@gmail.com>1 parent 58789fc commit fb158ba
3 files changed
Lines changed: 167 additions & 31 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
117 | 122 | | |
118 | 123 | | |
119 | 124 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | | - | |
| 131 | + | |
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
136 | 136 | | |
137 | 137 | | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | 138 | | |
149 | 139 | | |
150 | 140 | | |
151 | | - | |
| 141 | + | |
| 142 | + | |
152 | 143 | | |
153 | 144 | | |
154 | | - | |
| 145 | + | |
| 146 | + | |
155 | 147 | | |
156 | 148 | | |
157 | 149 | | |
| |||
171 | 163 | | |
172 | 164 | | |
173 | 165 | | |
174 | | - | |
| 166 | + | |
175 | 167 | | |
176 | 168 | | |
177 | 169 | | |
| |||
205 | 197 | | |
206 | 198 | | |
207 | 199 | | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
218 | | - | |
| 200 | + | |
| 201 | + | |
219 | 202 | | |
220 | | - | |
221 | | - | |
222 | | - | |
223 | | - | |
| 203 | + | |
| 204 | + | |
224 | 205 | | |
225 | 206 | | |
226 | 207 | | |
227 | 208 | | |
228 | | - | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
229 | 212 | | |
230 | 213 | | |
231 | 214 | | |
| |||
234 | 217 | | |
235 | 218 | | |
236 | 219 | | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
237 | 235 | | |
238 | 236 | | |
239 | 237 | | |
| |||
626 | 624 | | |
627 | 625 | | |
628 | 626 | | |
629 | | - | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
630 | 655 | | |
631 | 656 | | |
632 | 657 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
0 commit comments