Commit 64efbf4
committed
fix(save): make format-on-save await the formatter and target the saved file
- Await the format command so the document write captures the formatted
content instead of racing an async formatter
- Only format when the file being saved is the active file: formatters
operate on the active editor document, so a tab switch mid-save could
previously rewrite the wrong file
- Toggle markChanged on the file being saved, not whatever tab is active
- Abort the save when the formatter fails instead of writing unformatted
content and reporting success
- acode.format() now returns null (not a failure) when no formatter is
configured, so format-on-save keeps working for unformatted file types;
the format command propagates the tri-state result
Fixes #29001 parent 2803dda commit 64efbf4
3 files changed
Lines changed: 25 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
826 | 826 | | |
827 | 827 | | |
828 | 828 | | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
829 | 836 | | |
830 | 837 | | |
831 | 838 | | |
| |||
858 | 865 | | |
859 | 866 | | |
860 | 867 | | |
861 | | - | |
| 868 | + | |
| 869 | + | |
| 870 | + | |
862 | 871 | | |
863 | 872 | | |
864 | 873 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
727 | 727 | | |
728 | 728 | | |
729 | 729 | | |
| 730 | + | |
730 | 731 | | |
731 | 732 | | |
732 | 733 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
175 | | - | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
176 | 180 | | |
177 | | - | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
178 | 189 | | |
179 | | - | |
| 190 | + | |
180 | 191 | | |
181 | 192 | | |
182 | 193 | | |
| |||
0 commit comments