-
-
Notifications
You must be signed in to change notification settings - Fork 388
/
CHANGELOG.md
4588 lines (3208 loc) · 240 KB
/
CHANGELOG.md
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
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
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Changelog
> [Join the Insiders Program](https://github.com/vuejs/language-tools/wiki/Get-Insiders-Edition) for more exclusive features and updates.
## 2.1.6 <sup>official</sup>, 2.1.7 <sup>insiders</sup> (2024-09-05)
### Features
- **language-plugin-pug:** support initial indentation (#4774)
- **language-service:** JSDoc display support when typing props on component template (#4796) - Thanks to @joy-yu!
- **language-core:** typed directives in template (#4807) - Thanks to @KazariEX!
### Bug Fixes
- **language-core:** wrap template refs with `unref` in interpolation (#4777) - Thanks to @KazariEX!
- **language-core:** ensure to pass tsc on inline global types (#4782) - Thanks to @KazariEX!
- **language-core:** infer native template ref as build-in element interface (#4786) - Thanks to @KazariEX!
- **language-core:** generate `__VLS_StyleModules` after template (#4790) - Thanks to @KazariEX!
- **language-core:** make `expose` of non-generic template ref required (#4795) - Thanks to @zhiyuanzmj!
- **language-core:** avoid using `__typeProps` with runtime props (#4800) - Thanks to @KazariEX!
- **language-core:** ignore unknown attrs error when strictTemplates is not enabled (#4785)
- **language-core:** prevent append globalTypes to virtual file (#4806) - Thanks to @zhiyuanzmj!
- **language-core:** prevent type error when use defineSlots and non-template (#4809) - Thanks to @zhiyuanzmj!
- **typescript-plugin:** disconnect socket on error (#4672)
### Performance
- **language-core:** don't emit event lnlayhint when content is none (#4776) - Thanks to @Gehbt!
### Other Changes
- **language-core:** split `__VLS_templateResult` (#4781) - Thanks to @KazariEX!
- **language-core:** wrap template virtual code into a function (#4784)
- **language-core:** move `templateRef` into `composibles` (#4791) - Thanks to @KazariEX!
- **language-core:** generate global types for the first parsed Vue component if cannot write global types file
### Tests
- **language-server:** add renaming case for template `ref()` (#4794) - Thanks to @KazariEX!
- **tsc:** update to Vue 3.5 (#4725)
- **tsc:** unknown props on non-strict generic component (#4792)
## 2.1.4 <sup>official</sup>, 2.1.5 <sup>insiders</sup> (2024-09-01)
### Features
- **typescript-plugin, language-server:** generate global types file into `node_modules/.vue-global-types` (#4752) - Thanks to @KazariEX!
- **language-core:** navigation support for template-ref (#4726) - Thanks to @KazariEX!
### Bug Fixes
- **language-core, typescript-plugin, language-server:** apply snake case on globalTypes filename (#4749) - Thanks to @KazariEX!
- **language-core:** hoist `$refs` type (#4763)
- **language-core:** disable lib check on global types file (#4767) - Thanks to @KazariEX!
- **language-core:** prevent circular reference of templateRef (#4768) - Thanks to @zhiyuanzmj!
- **language-core:** using interface merging for `GlobalComponents`
- **language-core:** `fallthroughAttributes` causes global components to be self-referential (#4761)
- **language-core:** auto-completion for the last line of template block (#4771) - Thanks to @zhiyuanzmj!
- **language-core:** update ast correctly on repeated `v-for` modifications (#4772) - Thanks to @KazariEX!
- **language-server:** leaking named pipes (#4672)
- **typescript-plugin:** compatible with Yarn PnP (#4751)
- **vscode:** whitelist `ms-dynamics-smb.al` extension for Vue Hybrid Mode. (#4765) - Thanks to @kyleweishaupt!
### Other Changes
- Add optional "dependencies" textarea to issue template (#4758) - Thanks to @davidmatter!
## 2.1.2 <sup>official</sup>, 2.1.3 <sup>insiders</sup> (2024-08-29)
### Bug Fixes
- **language-core, typescript-plugin, language-server:** write globalTypes into dist for correct export (#4740) (#4737) (#4738) (#4739) - Thanks to @KazariEX!
- **language-core:** don't default `vueCompilerOptions.lib` to `@vue/runtime-dom` for Vue 2
## 2.1.0 <sup>official</sup>, 2.1.1 <sup>insiders</sup> (2024-08-29)
### Features
- **language-core:** inlay hints for destructured props (#4634) - Thanks to @KazariEX!
- **language-core:** typed fallthrough attributes (#4103) - Thanks to @A5rocks, @so1ve!
- **language-core:** document links for classname within `:class` (#4642) - Thanks to @KazariEX!
- **language-core:** auto infer type for $refs & useTemplateRef (#4644) - Thanks to @zhiyuanzmj!
- **language-core:** type support for CSS Modules API (#4674) - Thanks to @KazariEX!
- **language-service:** better completion for directives (#4640) - Thanks to @KazariEX!
- **language-service:** better sorting & filtering of completion (#4671) - Thanks to @KazariEX!
- **language-service:** add style scoped and module completion (#4705) - Thanks to @runyasak!
### Bug Fixes
- **vscode:** type of `vue.server.hybridMode` config (#4703) - Thanks to @KermanX!
- **language-core:** dependency on vulnerable version of `vue-template-compiler` (#4613) - Thanks to @yyx990803!
- **language-core:** support parse method to access ctx var in object (#4609) - Thanks to @linghaoSu!
- **language-core:** escape \ and ' in className avoid type error (#4619) - Thanks to @linghaoSu!
- **language-core:** semantic highlight of the end tag of namespaced elements (#4623) - Thanks to @KermanX!
- **language-core:** nullable modelvalues (#4648) - Thanks to @davidmatter!
- **language-core:** should try casting dynamic slot name into constant (#4669) - Thanks to @KermanX!
- **language-core:** local name support for prop using runtime api (#4650) - Thanks to @KazariEX!
- **language-core:** optimize matching of scoped class and `v-bind()` (#4679) - Thanks to @KazariEX!
- **language-core:** should preserve generic info in directive (#4686) - Thanks to @KermanX!
- **language-core:** generate `ref` as identifier instead of interpolation (#4688) - Thanks to @KazariEX!
- **language-core:** correct type narrowing from script to template (#4689) - Thanks to @KazariEX!
- **language-core:** should camelize prop name in `experimentalModelPropName` (#4691) - Thanks to @KermanX!
- **language-core:** drop duplicate hints on incomplete tag (#4696) - Thanks to @KazariEX!
- **language-core:** correct inlay hints for v-bind with modifier (#4721) - Thanks to @KazariEX!
- **language-core:** transform range of `file-md` correctly (#4735) - Thanks to @KazariEX!
- **language-plugin-pug:** should cache proxyed object (#4626) - Thanks to @KermanX!
- **language-plugin-pug:** compute offset correctly of pug class (#4652) - Thanks to @KazariEX!
- **language-service:** completion documentations for binding attributes (#4667) - Thanks to @KazariEX!
- **language-service:** avoid converting internal id of special tags (#4643) - Thanks to @KazariEX!
- **language-service:** reinstate the completion for modifiers (#4639) - Thanks to @KazariEX!
- **language-service:** consistent data from provider for sfc completion (#4645) - Thanks to @KazariEX!
- **typescript-plugin:** unknown request type warning (#4715) - Thanks to @davidmatter!
### Refactors
- **language-core:** extract SFC root tags to separate virtual code
- **language-core:** removed `__hint` trick from codegen
- **language-core:** rewrite a part of confusing codegen code
- **language-core:** reduce virtual code generated by component tags (#4714)
- **language-core:** do not wrap template virtual code with function (#4731)
- **language-core**: write real files to FS for shared global types (#4736)
- **component-meta:** remove deprecated `createComponentMetaCheckerByJsonConfig`, `createComponentMetaChecker` api
### Other Changes
- Upgraded Volar from `v2.4.0-alpha.18` to `v2.4.1`:
- Ensure unopened files are synced to project (#4711) (#4632) - Thanks to @davidmatter!
- **ci:** integrated [pkg.pr.new](https://github.com/stackblitz-labs/pkg.pr.new)
- **tsc:** test all typecheck cases in one tsconfig (#4723)
- **tsc:** add test for TS-next (#4724)
- **tsc:** add tests for for #3779, #3820 (#3838) - Thanks to @so1ve!
- **vscode:** add grammar test (#3861) - Thanks to @so1ve!
- **language-service:** migrate tests to `@volar/test-utils` (#4719)
- **language-core:** add scoped classes renaming case (#4727) - Thanks to @KazariEX!
## 2.0.28 <sup>official</sup>, 2.0.29 <sup>insiders</sup> (2024-07-22)
### Features
- **vscode:** focus mode <sup>Insiders</sup> (https://github.com/volarjs/insiders/pull/24)
- **language-core:** Plugin API 2.1
- Added plugin hooks: `getLanguageId`, `isValidFile`, `parseSFC2`
- Improve backward compatibility (#4585) - Thanks @zhiyuanzmj
- **language-core:** support default prop when using __typeProps (#4602) - Thanks @zhiyuanzmj
- **language-core:** improve nested plugins (#4581) - Thanks @zhiyuanzmj
- **language-service:** remove `v-bind` code action (#4601)
- **vscode:** add empty pattern to codeblock attributes scope (#4590) - Thanks @KermanX
### Bug Fixes
- **tsc:** errors should be thrown instead of being console.log printed
- **language-server:** observe named pipes changes when server startup (#4292)
- **language-core:** infer define model type from options type (#4545) - Thanks @davidmatter
- **language-core:** type-checking not working with hyphen in slot name with JS (#4478) - Thanks @KermanX
- **language-core:** add type check for v-model without argument (#4598) - Thanks @zhiyuanzmj
- **language-service:** filter special tags (#4596) - Thanks @so1ve
- **typescript-plugin:** improve named pipes reliability (#4603)
- **language-core:** property access is incorrectly identified as compound expression (#4600)
- **language-core:** fix compatibility of generic component virtual code with TS 5.5 (#4577)
- **tsc:** TS4082 not reported for functional component (#4569)
### Other Changes
- Upgraded Volar from `v2.4.0-alpha.15` to `v2.4.0-alpha.18`:
- Fix VS Code IntelliSense will be lost in new created files (#4424)
- Add workspace symbols support in Hybrid Mode (#4595)
- Add workspace `addMissingImports` action support in Hybrid Mode (#4586)
- Fix yarn 4 compatibility (#4587)
- Add vue vine to hybrid mode compatible list (#4543) - Thanks @so1ve
- Add global components prop validation test (#4542) - Thanks @davidmatter
## 2.0.26 <sup>official</sup>, 2.0.27 <sup>insiders</sup> (2024-07-04)
### Features
- **language-service:** Support auto-complete for more preprocessing languages.
- **language-core:** Improve type compatibility with Vue 3.5. (#4474) - Thanks, @zhiyuanzmj.
### Bug Fixes
- **vscode:** Fix insider version display condition. <sup>Insiders</sup>
- **language-service:** Fix `vue-twoslash-queries` not working in LSP mode.
- **language-service:** Add null handling for script tag completion items. (#4520)
- **language-core:** Fix `any` in templates if the first checked file was not root. (#4526) - Thanks, @daniluk4000.
### Other Changes
- Upgraded Volar from `v2.4.0-alpha.2` to `v2.4.0-alpha.15`:
- Fixed an issue where, when Hybrid Mode is disabled, TS support for Vue files not included in tsconfig may be missing.
- Improved the consistency of `vue-tsc` and `tsc` behavior. (#3526)
- Fixed the `--clean` flag support for `vue-tsc`.
- Updated the high-level overview mermaid diagram.
- Added 'expected' and 'actually happening' sections to the bug report template. (#4515) - Thanks, @davidmatter.
## 2.0.24 <sup>official</sup>, 2.0.25 <sup>insiders</sup> (2024-06-30)
### Features
- **vscode:** pop message box if new insiders version available <sup>insiders</sup>
- **vscode:** if insiders versions information failed to fetch from GitHub, try to fetch from CDN <sup>insiders</sup>
- **language-service:** better sfc-level tag name completion (#4506) - Thanks @KermanX
### Bug Fixes
- **tsc:** update required volar version (#4498) - Thanks @davidmatter
- **tsc:** bump peer typescript version (#4513) - Thanks @so1ve
### Refactors
- **language-server:** reorganize the code structure (#4507)
### Other Changes
- Upgrade Volar from `v2.3.1` to `v2.4.0-alpha.2`.
- Hybrid Mode compatibility improvements with other TS plugins (https://github.com/volarjs/volar.js/issues/216)
- **docs:** add nvim-cmp integration (#4463) - Thanks @RayGuo-ergou
- **docs:** update mermaid
- The following extensions have been added to Hybrid Mode’s compatibility whitelist (#4206):
- `p42ai.refactor`
- `nrwl.angular-console`
- `styled-components.vscode-styled-components`
- `Divlo.vscode-styled-jsx-languageserver`
## 2.1.0-insiders.14 (2024-06-22)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.14), [爱发电电圈](https://afdian.net/p/e05e95a8309d11efbebf52540025c377)
### Other Changes
- Merged [v2.0.22](https://github.com/vuejs/language-tools/releases/tag/v2.0.22).
## 2.0.22 (2024-06-22)
### Bug Fixes
- **vscode:** directive syntax highlighting (#4482) - Thanks @KermanX
- **language-core:** move declare defineProp out of function scope (#4454) - Thanks @zhiyuanzmj
- **language-core:** compatible with TS 5.5 (#4492)
### Other Changes
- Upgrade Volar from `v2.3.0-alpha.14` to `v2.3.1`.
- Error tolerant to `contentChanges` length (#4457)
- Add feature request template (#4490) - Thanks @so1ve
- **docs:** fix wrong links in CHANGELOG.md (#4475) - Thanks @KermanX
## 2.1.0-insiders.13 (2024-06-08)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.13), [爱发电电圈](https://afdian.net/p/8f915cf625a711ef860252540025c377)
### Other Changes
- Merged [v2.0.21](https://github.com/vuejs/language-tools/releases/tag/v2.0.21).
## 2.0.21 (2024-06-08)
### Bug Fixes
- fix(typescript-plugin): TS plugin cause type checking broken in .ts files (#4453)
## 2.1.0-insiders.12 (2024-06-08)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.12), [爱发电电圈](https://afdian.net/p/596ab3c0256b11ef8a9c52540025c377)
### Other Changes
- Merged [v2.0.20](https://github.com/vuejs/language-tools/releases/tag/v2.0.20).
## 2.0.20 (2024-06-08)
### Features
- feat(language-service): add localization support for zh-hk/zh-tw
- feat(vscode): enable syntax highlighting of cue code blocks in MDX (#4425) - Thanks @remcohaszing
### Bug Fixes
- fix(vscode): fix "as"/"instanceof" expressions syntax highlight (#4412)
- fix(language-core): `ForIteratorExpression`'s `returns` property may be undefined (#4418) - Thanks @so1ve
- fix(language-core): use defineEmits calls instead of type infer (#4430) - Thanks @zhiyuanzmj
- fix(tsc): log catched errors to console (#4451) - Thanks @mik3ybark3r
- fix(typescript-plugin): TS not working in template when tsconfig missing (#4452)
- fix(language-core): use type infer instead of await import (#4436) - Thanks @zhiyuanzmj
- feat(language-core): ignore type error for new functional component (#4445) - Thanks @zhiyuanzmj
- fix(language-core): ignore type error for possible component name (#4446) - Thanks @zhiyuanzmj
- fix(language-service): filter internal props in template completion
- fix(language-service): sort component props in template completion
- fix(language-core): duplicate completion appears at the beginning of script setup block
### Other Changes
- Upgrade Volar from `v2.2.4` to `v2.3.0-alpha.14`.
- LSP server performance improved
- Language server now responds with the exact server capabilities for initialization requests
- Auto insertion requests can now exit early in the language client
- The following extensions have been added to Hybrid Mode’s compatibility whitelist:
- `kimuson.ts-type-expand` - Thanks @zcf0508
## 2.1.0-insiders.11 (2024-05-16)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.11), [爱发电电圈](https://afdian.net/p/c69dc31e134211ef823d5254001e7c00)
### Other Changes
- Merged [v2.0.19](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2019-2024-05-16).
## 2.0.19 (2024-05-16)
### Bug Fixes
- **language-core:** property 'xyz' does not exist on type 'abc' when using v-for (#4386)
- **language-core:** avoid report error when events do not accept parameters (#4387)
- **language-core:** inline dynamic event handlers should not expect commas (#4387)
## 2.1.0-insiders.10 (2024-05-15)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.10), [爱发电电圈](https://afdian.net/p/6c4eaf90134211efb38652540025c377)
### Other Changes
- Merged [v2.0.18](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2018-2024-05-15).
## 2.0.18 (2024-05-15)
### Features
- **language-core:** report unknown events when strictTemplates is enabled (#3718)
- **language-core:** add `compileSFCScript` plugin hook (#3200)
- **vscode:** add coffeescript syntax highlight support
### Bug Fixes
- **language-core:** fix event handler type for hyphen-case event names
- **language-core:** allow binding multiple events with the same name (#4369)
- **language-core:** variable used in `key` appears as unused in v-for template tag (#329) (#3421)
- **language-core:** generics with slots don't work with Vue 2.7 (#3241)
- **language-core:** template language of .md files should be markdown (#4299)
- **language-core:** no template class links when `experimentalResolveStyleCssClasses` is set to `always` (#4379)
### Other Changes
- Upgrade Volar from `v2.2.2` to `v2.2.4`.
- Fixed a few URI conversion issues
- fix(typescript): empty items list should be valid completion result (#4368)
- fix(typescript): path completion not working for meta files
- Upgrade Volar services from `v0.0.44` to `v0.0.45`.
- fix(typescript-twoslash-queries): inlay hints not working
- fix(css, html, json, yaml): failed to resolve relative path
- feat(emmet): port VSCode emmet extension client logic (https://github.com/volarjs/services/issues/95)
- The following extensions have been added to Hybrid Mode’s compatibility whitelist:
- `miaonster.vscode-tsx-arrow-definition`
- `runem.lit-plugin`
## 2.1.0-insiders.9 (2024-05-10)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.9), [爱发电电圈](https://afdian.net/p/6d7547a60ead11efbc8352540025c377)
### Other Changes
- Merged [v2.0.17](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2017-2024-05-10).
## 2.0.17 (2024-05-10)
### Features
- **language-core:** add JSDoc support for component (#2377)
- **language-core:** add JSDoc support for script setup binding variables (#3409)
- **language-core:** add class component support (#4354)
- **language-service:** re-support scoped class links in template (#4357)
- **typescript-plugin:** create script setup block when auto import if needed
- **typescript-plugin:** add JSDoc support for events in template (#4365)
- **component-meta:** add JSDoc tags support for events
- **language-core:** support defineOptions (#4362) - Thanks @zhiyuanzmj
### Bug Fixes
- **language-core:** hover not working for intrinsic element event name
- **language-core:** showing false _declared but not used_ errors for functions used in `v-on="{}"` (#4333)
- **language-core:** fix nameless event expression formatting
- **language-core:** types imported in the `<script setup>` should not be used as a variable in template (#4353)
- **language-core:** renaming classname within `scoped` not working (#4355)
- **language-core:** `<style>` completions and html custom data completions not provided in some cases (#4092)
- **language-core:** improve code action edits mapping fault tolerance
- **language-core:** support defineModel for generic component (#4345) - Thanks @zhiyuanzmj
- **language-service:** completion cannot trigger in SFC root
- **component-meta:** `forceUseTs` options not working
### Other Changes
- Upgrade Volar from `v2.2.0` to `v2.2.2`.
- fix(language-server): pass correct languageId when creating virtual code (https://github.com/volarjs/volar.js/issues/173)
- fix(typescript): additional completion not working in plugin (#4323)
- Upgrade Volar services from `v0.0.42` to `v0.0.44`.
- feat(typescript): code action edits respect editor formatting settings (https://github.com/volarjs/services/issues/30)
- fix(typescript): not being able to jump to shims module definition
- fix(typescript): `allowTextChangesInNewFiles` never true for embedded documents
- perf(typescript): check `command` resolve capability only for specific refactors (https://github.com/volarjs/services/issues/94)
- The following extensions have been added to Hybrid Mode’s compatibility whitelist:
- `mxsdev.typescript-explorer`
- Deprecated `vueCompilerOptions.experimentalUseElementAccessInTemplate`
- Specify `packageManager` (#4358) - Thanks @so1ve
- **docs:** emoved possibly redundant duplicate reference (#4348) - Thanks @artshade
- **language-service:** temporarily remove references codeLens (#4364)
## 2.1.0-insiders.8 (2024/5/1)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.8), [爱发电电圈](https://afdian.net/p/f45436ca076d11ef9b7352540025c377)
### Other Changes
- Merged [v2.0.16](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2016-202451).
## 2.0.16 (2024/5/1)
### Bug Fixes
- **language-core:** virtual document language ID is not updated when changing SFC style block lang
- **language-core:** correct logic for `defineSlots` destructuring (#4326) - Thanks @zhiyuanzmj
- **language-core:** ObjectDirective does not work with `defineSlots` (#4327)
- **language-service:** emmet not working in postcss style block (https://github.com/volarjs/volar.js/issues/169)
### Other Changes
- Upgrade to [Volar 2.2](https://github.com/volarjs/volar.js/releases/tag/v2.2.0)
- **language-core:** export `VueEmbeddedCode` (#4265) - Thanks @zhiyuanzmj
- **typescript-plugin:** expose `FileRegistry` to `project.program` (#3963) - Thanks @zcf0508
- **vscode:** remove outdated formatters section (#4243) - Thanks @BBboy01
## 2.1.0-insiders.7 (2024/4/30)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.7), [爱发电电圈](https://afdian.net/p/84db515c069b11ef9eaf52540025c377)
### Other Changes
- Merged [v2.0.15](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2015-2024430).
## 2.0.15 (2024/4/30)
### Features
- Redesign additional extensions, VitePress, PetiteVue support (#4321)
- Fix custom file extensions not working in Hybrid Mode (#4251)
- **vscode:** prompt when Hybrid Mode is explicitly enabled but known incompatible extensions are installed
- **language-core:** use internal options for directly exposing user props/emits types ([vuejs/core#10801](https://github.com/vuejs/core/pull/10801))
- **language-core:** support defineSlots destructuring (#4312) - Thanks @zhiyuanzmj
### Bug Fixes
- **vscode:** when enabled VitePress support, extension not activated when opening markdown files
- **language-core:** auto-complete not working in v-bind
### Performance
- **language-service:** emmet completion should not be blocked by TS type evaluation (#4298)
- **language-core:** simplify virtual code for intrinsic elements
### Other Changes
- Upgrade Volar from `v2.2.0-alpha.10` to `v2.2.0-alpha.12`:
- Avoid extension crash when workspace TSDK does not exist
- Fix template variables cannot be renamed at the first character in Hybrid Mode (#4297)
- Fix template virtual code mapping is misaligned in Windows in Hybrid Mode (#4297)
- Add `svelte.svelte-vscode` (>=108.4.0) to Hybrid Mode compatibility whitelist ([sveltejs/language-tools#2317](https://github.com/sveltejs/language-tools/pull/2317))
- **component-meta:** convert source code to TS
- **language-core:** export `allCodeFeatures` (#4320) - Thanks @zhiyuanzmj
## 2.1.0-insiders.6 (2024/4/25)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.6), [爱发电电圈](https://afdian.net/p/f73a772602ab11efa33652540025c377)
### Features
- Check for Insiders version updates on startup
- Support reactions visualization for TS document
### Bug Fixes
- Fixed some incorrect situations in reactions analysis
### Other Changes
- Merged [v2.0.14...a69909e81](https://github.com/vuejs/language-tools/compare/v2.0.14...a69909e81).
## 2.1.0-insiders.5 (2024/4/22)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.5), [爱发电电圈](https://afdian.net/p/25aca47c004e11ef8b445254001e7c00)
### Other Changes
- Merged [v2.0.14](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2014-2024422).
## 2.0.14 (2024/4/22)
### Features
- **language-core:** added search html tag (#4280) - Thanks @audunhov
- **language-service:** added Russian, Czech localization support
### Bug Fixes
- **language-core:** `@ts-ignore` not working for slots (#4263)
- **language-core:** reduce unnecessary props mapping (#4284)
- **tsc:** improve regexp performance for global type removal (#4260) - Thanks @blake-newman
### Other Changes
- Upgrade Volar from `v2.2.0-alpha.8` to `v2.2.0-alpha.10` to fix some issues:
- Parameter Hints not working in Hybrid Mode (#3948)
- TS server to crash repeatedly when include large js file (#4278)
- Randomly causing errors when renaming / find definitions in Hybrid Mode (#4257, #4281, #4282)
- Unable to resolve Nuxt UI component type
- Incomplete results for find refernces in Hybrid Mode
- The following extensions have been added to Hybrid Mode’s compatibility whitelist:
- `bierner.lit-html`
- `denoland.vscode-deno` (When `deno.enable` is `false`)
- `jenkey2011.string-highlight`
- **language-core:** improve maintainability of codegen (#4276)
- Deprecated `vueCompilerOptions.nativeTags`, now respects the `nodeType` property of template AST node.
- Dynamic component types without `v-bind:is` are no longer supported.
## 2.0.13 (2024/4/12)
### Performance
- **tsc:** re-introduce global types removal check (#4245)
### Other Changes
- Upgrade Volar from `v2.2.0-alpha.7` to `v2.2.0-alpha.8` for a vue-tsc performance issue fixes (#4238)
## 2.1.0-insiders.4 (2024/4/10)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.4), [爱发电电圈](https://afdian.net/p/46a5f4a8f72011ee97fe52540025c377)
### Other Changes
- Merged [v2.0.12](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2012-2024410).
## 2.0.12 (2024/4/10)
### Bug Fixes
- **vscode:** restart tsserver before restart vue language server (#4242)
- **tsc:** remove exit early condition
- **typescript-plugin:** handle named pipe server timeout
- **language-core:** `@vue-ignore` not working for fragment v-if/v-for nodes (#4232)
### Other Changes
- Upgrade Volar from `v2.2.0-alpha.6` to `v2.2.0-alpha.7` for a typescript plugin bug fixes
## 2.1.0-insiders.3 (2024/4/7)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.3), [爱发电电圈](https://afdian.net/p/5bf99cfaf4ec11ee9e1f5254001e7c00)
### Features
- **vscode:** add `vue.editor.reactionsVisualization` setting ([#8](https://github.com/volarjs/insiders/pull/8))
### Other Changes
- Merged [v2.0.11](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2011-202447).
## 2.0.11 (2024/4/7)
### Features
- **vscode:** support for enabling/disabling typescript plugin (#4226)
- Added `typeScriptPluginOnly` option for `vue.server.hybridMode` setting.
- When Hybrid Mode is disabled, the Vue TypeScript Plugin will be disabled by default.
- **vscode:** support for `vue.format.wrapAttributes` setting (#4212)
- **vscode:** add `vue.codeActions.askNewComponentName` setting (#4217)
### Bug Fixes
- **vscode:** `Find File References` not working when hybrid mode is disabled (#4221)
- **language-core:** type narrowing not working for inline event handlers (#4209)
- **language-core:** `@vue-ignore`, `@vue-expect-error` not working for interpolations
- **language-core:** improve reliability for `@vue-ignore`, `@vue-expect-error` (#4203)
- **language-core:** duplicated items in suggestion list for prop values (#3922)
- **language-server:** `vueCompilerOptions` not working with hybrid mode (#4211) (#3959)
### Other Changes
- Upgrade Volar from `v2.2.0-alpha.5` to `v2.2.0-alpha.6` for a `vue-tsc` bug fixes
- [volarjs/volar.js#162](https://github.com/volarjs/volar.js/pull/162) - Thanks @wangshunnn
- **test:** add test for #4203 (#4207) - Thanks @tinco
## 2.1.0-insiders.2 (2024/4/4)
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.2), [爱发电电圈](https://afdian.net/p/d59d0dd8f29611ee88945254001e7c00)
### Features
- **language-server:** improve reactions analyze ([volarjs/insiders#8](https://github.com/volarjs/insiders/pull/8))
### Other Changes
- Merged [v2.0.10](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md#2010-202444).
## 2.0.10 (2024/4/4)
### Features
- **vscode:** enable `vue.updateImportsOnFileMove.enabled` by default (#3646)
- **vscode:** re-add restart server command (#4174)
- **vscode:** automatically enable Hybrid Mode if possible (#4206)
- **component-meta:** add typing resolution for defineModel modifiers (#4175) - Thanks @stafyniaksacha
- **language-service:** drag and drop import respects tsconfig path aliases (#4184)
- **language-service:** supports auto insertion of multiple cursors (#4140)
### Bug Fixes
- **language-server:** `additionalExtensions` option not working for inferred project
- **language-core:** avoid interpolation indentation affecting each other
- **language-core:** generate each interpolation into separate virtual code (#4165)
- **language-service:** ignore html `wrapAttributes` format settings for vue document (#3987)
- **vscode:** remove duplicate ts version status (#4167)
- **language-server:** `.html`, `.md` file language id incorrect
- **typescript-plugin:** formatting settings not working for ts completion
- **tsc:** remove fake global types holder for composite projects compatibility (#4196) - Thanks @blake-newman
### Performance
- **language-core:** cache canonical root file names with string Set
### Other Changes
- Upgrade Volar from `v2.1.3` to `v2.2.0-alpha.5` for a few bug fixes and performance improves, please refer to [CHANGELOG.md](https://github.com/volarjs/volar.js/blob/master/CHANGELOG.md) for details.
- **vscode:** update required VSCode version to `^1.88.0`
- **docs:** update readme with neovim lspconfig setup (#4134) - Thanks @RayGuo-ergou
- **language-core:** split inline css codegen into separate plugin
- **language-core:** move global types codegen into separate script
- **language-core:** resolve virtual code features before push code
- **test:** added simple tests for vue-tsc and custom SFC extensions. (#4181) - Thanks @cabal95
## 2.1.0-insiders.1
Download Pages: [GitHub Releases](https://github.com/volarjs/insiders/releases/tag/v2.1.0-insiders.1), [爱发电电圈](https://afdian.net/p/ba0901a2edce11ee8f2e52540025c377)
### Features
#### Reactions visualization (PR: https://github.com/volarjs/insiders/pull/5)
![](https://github.com/vuejs/language-tools/assets/16279759/b90d3d05-f98c-42a0-b011-448af00a0c06)
#### Template interpolation decorators (PR: https://github.com/volarjs/insiders/pull/4)
> To disable this feature, uncheck `vue.editor.templateInterpolationDecorators` in VSCode settings.
![](https://github.com/vuejs/language-tools/assets/16279759/fc591552-834e-4fbb-ab47-1740f6f8a151)
### Other Changes
- Merged https://github.com/vuejs/language-tools/commit/1b9946c02ee3f5bb8c2de17c430985756115e51c
## 2.0.7 (2024/3/20)
> [!NOTE]
> Hybrid Mode is now disabled by default, you need to enable `vue.server.hybridMode` in settings to enable it explicitly.
### Features
- **language-server:** reintroducing full TS support and disable Hybrid Mode by default (#4119)
- **vscode:** check outdated `@vue/language-plugin-pug` in doctor
- **vscode:** significantly reduces the status bar space occupied
### Bug Fixes
- **vscode:** vueCompilerOptions no longer prompts for deprecated options
- **component-meta:** `defineSlots` allows empty params (#4093) - thanks @Evertvdw
- **typescript-plugin:** fault tolerance for named pipe servers json file (#4075) - thanks @Simon-He95
- **language-core:** generate `defineModel` emits type on-demand (#4052) - thanks @so1ve
- **language-core:** special treatment for number elements inside `v-for` (#3859) - thanks @so1ve
- **language-plugin-pug:** semantic tokens mapping failed (#4070)
### Other Changes
- **language-service** update neovim lsp set up info (#4085) - thanks @CofCat456
- **lint:** add `tsl` linter and auto fix workflow (#4100)
- **vscode:** remove embedded language IDs (#4081) - thanks @remcohaszing
## 2.0.6 (2024/3/7)
> [!IMPORTANT]
> If the TypeScript language server crashes since 2.0, please try using VSCode Insiders and install [JavaScript and TypeScript Nightly](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-typescript-next), or temporarily downgrade to 1.8.27.\
> Issue: https://github.com/vuejs/language-tools/issues/3962
>
> If false positive errors occur, please try disabling unrelated extensions in the Vue workspace.\
> Issue: https://github.com/vuejs/language-tools/issues/3942
### Fixes
- **language-core:** use local variables in v-bind shorthand (#4017) - thanks @so1ve
- **language-core:** sfc folding end position failed to mapping (#4038) - thanks @so1ve
- **language-service:** remove `extraLiners` option for formatting (#3943)
- **language-service:** bump `volar-service-typescript` for fix jsx formatting (#3949)
- **language-service:** bump `@volar/typescript` for fix 2.0.5 auto-complete performance regression (#4024)
### Other Changes
- **vscode:** rename `vue.inlayHints.vbindShorthand` setting to `vue.inlayHints.vBindShorthand` (#3995) - thanks @l4dybird
## 2.0.5 (2024/3/5)
### Features
- **language-core:** support `v-bind` shorthand (#3990) - thanks @so1ve
- **language-service:** support inlay hints for `v-bind` shorthand (#3990) - thanks @so1ve
- **vscode:** prompt to disable Svelte extension in Vue workspace to avoid conflicts
### Fixes
- **typescript-plugin:** fault tolerance for named pipe server data
- **language-core:** avoid `globalTypesHolder` being specified from a `node_modules` file (#3990)
- **language-core:** fault tolerance for plugin creation
- **language-plugin-pug:** failed to load due to an invalid require path (#3930)
- **typescript-plugin:** custom extensions do not work (#3977)
- **language-service:** html custom data not working (#3975)
### Other Changes
- **typescript-plugin** add README (#3974) - thanks @WhyNotHugo
- **component-meta** update demo (#3994) - thanks @zzfn
## 2.0.4 (2024/3/4)
### Features
- **vscode:** report requires TSDK version in doctor
### Fixes
- **typescript-plugin:** JSON parsing error when server data length > 8192 (#3961)
## 2.0.3 (2024/3/3)
### Features
- **vscode:** identify #3942 in doctor
### Fixes
- **vscode:** compatible with VSCode 1.87.0
- **vscode:** search "TypeScript and JavaScript Language Features" with id (#3932)
- **typescript-plugin:** more reliable connection to named pipe server (#3941)
### Refactors
- **language-service:** dependency injection typescript plugin (#3994)
## 2.0.2 (2024/3/2)
### Fixes
- **vscode:** fix random `Cannot access 'i' before initialization` errors
- **typescript-plugin:** `vue-tsp-table.json` path is invalid in windows
## 2.0.1 (2024/3/2)
### Fixes
- npm release does not include files (#3919)
## 2.0.0 (2024/3/2)
### Features
- Hybrid Mode
- Takeover Mode has been deprecated. The extension now has the same performance as Takeover Mode by default.
- TypeScript language support has been moved from Vue language server to TypeScript plugin (#3788)
- Integrated all TypeScript editor features
- Warn when internal TypeScript extension is disabled or "TypeScript Vue Plugin" extension is installed
- Migrated to named pipe server using TypeScript LanguageService (#3908, #3916)
- `typescript.tsdk` duplicate registration errors are no longer reported
- **language-service:** reimplemented component tag semantic tokens in TypeScript plugin (#3915)
- **language-service:** reimplemented auto-import patching in TypeScript plugin (#3917)
- **language-service:** ensured tsserver readiness when requesting auto insert `.value` (#3914)
- Upgraded to Volar 2.0 and 2.1 (#3736, #3906)
- **vscode:** extension now compatible with [Volar Labs](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volarjs-labs) v2
- **vscode:** removed `volar.format.initialIndent` option, replaced with 3 new options:
- `vue.format.template.initialIndent`
- `vue.format.script.initialIndent`
- `vue.format.style.initialIndent`
- **language-server:** `ignoreTriggerCharacters`, `reverseConfigFilePriority` and `fullCompletionList` options are no longer supported
- Supported Component Drag and Drop Import (#3692)
- **tsc:** supported `vueCompilerOptions.extensions` option (#3800)
- **language-core:** achieved compatibility with Vue 3.4 type changes (#3860)
### Fixes
- **vscode:** prevented reading undefined properties in non-VS Code editors (#3836)
- **vscode:** prevented extension activation with TS files
- **vscode:** corrected trace server ID
- **language-core:** implemented emit codegen for defineModel (#3895)
- **language-core:** addressed transition type incompatibility with Vue 2.7.16 (#3882)
- **language-core:** excluded vue directive syntax injection in Angular bindings (#3891)
- **component-type-helpers:** resolved inference issue for Vue 3.4.20 functional component
### Refactors
- Renamed "Volar Language Features (Volar)" extension to "Vue - Official"
- "TypeScript Vue Plugin" extension has been deprecated
- Relocated source scripts from `src` to `lib` (#3913)
- Replaced `typescript/lib/tsserverlibrary` imports with `typescript`
- **language-core:** implemented codegen based on Generator (#3778)
- **language-core:** generated global types in a single virtual file (#3803)
- **language-core:** implemented plugin API v2 (#3918)
- **language-core:** ignored nested codeblocks in markdown file (#3839)
- **language-core:** removed `experimentalAdditionalLanguageModules` and deprecated APIs (#3907)
- **language-service:** made service plugins independent of project context
- **language-server:** `volar.config.js` is no longer supported
- **component-meta:** renamed APIs
- **typescript-plugin:** renamed package to `@vue/typescript-plugin` (#3910)
- **tsc:** rewritten based on first-party TS API and no longer relies on TypeScript module (#3795)
- **tsc:** deprecated hooks API (#3793)
## 1.8.27 (2023/12/26)
- fix(language-core): remove misuse of `JSX.Element` for compatible with vue 3.4 (https://github.com/vuejs/core/issues/9923)
## 1.8.26 (2023/12/22)
- fix: upgrade typescript-auto-import-cache to v0.3.1 to be compatible with TS 5.3 (https://github.com/volarjs/typescript-auto-import-cache/pull/3) ([#3802](https://github.com/vuejs/language-tools/issues/3802))
## 1.8.25 (2023/12/6)
- fix(component-type-helpers): correct type inference for FunctionalComponent ([#3766](https://github.com/vuejs/language-tools/issues/3766)) - thanks @pinguet62
- fix(language-core): camelize props for dynamic component ([#3774](https://github.com/vuejs/language-tools/issues/3774)) - thanks @so1ve
## 1.8.24 (2023/11/29)
- refactor(component-type-helpers): vue 2 types now move to `vue-component-type-helpers/vue2` ([#3404](https://github.com/vuejs/language-tools/issues/3404))
- feat(language-core): expose `defineEmits`'s `arg` and `typeArg` in `parseScriptSetupRanges` ([#3710](https://github.com/vuejs/language-tools/issues/3710)) - thanks @so1ve
- fix(language-core): `strictTemplates` fails to report unknown components ([#3539](https://github.com/vuejs/language-tools/issues/3539))
- fix(language-core): script syntax breaks if script options does not have trailing comma ([#3755](https://github.com/vuejs/language-tools/issues/3755))
- fix(language-core): script syntax breaks if options are enclosed in parentheses ([#3756](https://github.com/vuejs/language-tools/issues/3756))
- fix(language-core): allow using `as` with multiple `<script>` blocks ([#3733](https://github.com/vuejs/language-tools/issues/3733)) - thanks @so1ve
- fix(language-core): component type narrowing not working in template
- fix(language-core): incremental insertion incorrect if input `<script setup>` tag above `<script>` tag ([#3743](https://github.com/vuejs/language-tools/issues/3743)) - thanks @so1ve
- fix(language-core): don't camelize attributes for plain elements ([#3750](https://github.com/vuejs/language-tools/issues/3750)) - thanks @rchl
- fix(vscode): syntax highlighting for `.prop` shorthand ([#3729](https://github.com/vuejs/language-tools/issues/3729)) - thanks @so1ve
#### Volar.js 1.11.1 updates:
- fix: browser integration no longer requires node polyfill (https://github.com/volarjs/volar.js/pull/70)
- fix: document continuous change merge results are incorrect in WebStorm (https://github.com/volarjs/volar.js/pull/77) - thanks @browsnet
## 1.8.22 (2023/10/27)
- fix: `experimentalResolveStyleCssClasses: "always"` not working ([#3689](https://github.com/vuejs/language-tools/issues/3689)) - thanks @maIIady
- fix: `__VLS_Prettify` missing for dts build when uses `withDefaults()` ([#3691](https://github.com/vuejs/language-tools/issues/3691))
## 1.8.21 (2023/10/25)
#### Volar.js 1.10.5 updates:
- fix(monaco): completion cannot insert text starting with `$` (https://github.com/volarjs/volar.js/issues/69)
- fix(typescript): automatic type acquisition not working since v1.10.0
## 1.8.20 (2023/10/23)
- feat: added Italian integration documentation
- feat: enforce `v-bind` argument to be an object ([#3666](https://github.com/vuejs/language-tools/issues/3666)) - thanks @so1ve
- fix: JSDoc comments not emitted when using type-only defineProps macro ([#3645](https://github.com/vuejs/language-tools/issues/3645))
- fix: autocomplete for directive comments without a space ([#3665](https://github.com/vuejs/language-tools/issues/3665)) - thanks @so1ve
- fix: fix slot type when using a interpolation in template string ([#3657](https://github.com/vuejs/language-tools/issues/3657)) - thanks @so1ve
- fix: add autocomplete for v-slot parameters ([#3661](https://github.com/vuejs/language-tools/issues/3661)) - thanks @so1ve
- fix: export correct SlotsPropertyName for vue2 ([#3669](https://github.com/vuejs/language-tools/issues/3669)) - thanks @zhiyuanzmj
- fix(types): infer discriminated unions in child component props ([#3672](https://github.com/vuejs/language-tools/issues/3669)) - thanks @davidmatter
- fix: access to slots directly ([#3671](https://github.com/vuejs/language-tools/issues/3671)) - thanks @so1ve
- fix: autocomplete not working for `$event` ([#3668](https://github.com/vuejs/language-tools/issues/3668)) - thanks @so1ve
- perf: remove duplicate virtual code for native tags
- chore: rename `volar` to `vue` in diagnostics ([#3667](https://github.com/vuejs/language-tools/issues/3667)) - thanks @so1ve
- chore: publish ts plugin to open-vsx ([#3589](https://github.com/vuejs/language-tools/issues/3589)) - thanks @brc-dd
## 1.8.19 (2023/10/11)
- feat: no longer checking save time ([#3650](https://github.com/vuejs/language-tools/issues/3650))
- fix(ts-plugin): tsserver doesnt have updated list of external files when new vue files are added (required TS 5.3) ([#3555](https://github.com/vuejs/language-tools/issues/3555)) ([#3649](https://github.com/vuejs/language-tools/issues/3649))
- fix: false positive error when accessing local variables in defineProps parameter ([#3643](https://github.com/vuejs/language-tools/issues/3643)) ([#3644](https://github.com/vuejs/language-tools/issues/3644)) - thanks @so1ve
## 1.8.18 (2023/10/9)
#### Upgrade required VSCode version to 1.82.0 ([#3642](https://github.com/vuejs/language-tools/issues/3642))
## 1.8.17 (2023/10/9)
- fix: extension cannot run on vscode versions lower than 1.82.0 ([#3631](https://github.com/vuejs/language-tools/issues/3631)) ([#3635](https://github.com/vuejs/language-tools/issues/3635))
- fix: make `defineProps` work when reading a property from `defineProps()` ([#3633](https://github.com/vuejs/language-tools/issues/3633)) - thanks @so1ve
- fix: avoid reading `props` from `__VLS_ctx` ([#3636](https://github.com/vuejs/language-tools/issues/3636)) - thanks @so1ve
- fix: regression with `defineExpose` ([#3639](https://github.com/vuejs/language-tools/issues/3639)) - thanks @so1ve
## 1.8.16 (2023/10/7)
- fix: merge default export's properties properly ([#3600](https://github.com/vuejs/language-tools/issues/3600)) - thanks @so1ve
- fix: accurate exposed type with refs in generic component ([#3604](https://github.com/vuejs/language-tools/issues/3604)) - thanks @so1ve
- fix: make emits type correct when user assigns emit function a custom name ([#3624](https://github.com/vuejs/language-tools/issues/3624)) - thanks @so1ve
#### Volar.js 1.10.3 updates:
- fix: performance issue with o(n^2) complexity of `directoryExists()` (https://github.com/volarjs/volar.js/issues/66) - thanks @Akryum
- fix: directory named "constructor" could crash (https://github.com/volarjs/volar.js/issues/65) - thanks @Dmitrigar, @franz-bendezu
## 1.8.15 (2023/9/26)
- fix: props type missing in JS component context ([#3592](https://github.com/vuejs/language-tools/issues/3592))
- fix: ignore `$emit` return type for Vue 2 ([#3596](https://github.com/vuejs/language-tools/issues/3596))
## 1.8.14 (2023/9/26)
- feat: `defineEmit` now able to infer event types with more than 4 overloads ([#3379](https://github.com/vuejs/language-tools/issues/3379)) ([#1855](https://github.com/vuejs/language-tools/issues/1855))
- feat: more accurately distinguish component internal context and external context types ([#3591](https://github.com/vuejs/language-tools/issues/3591)) ([#3517](https://github.com/vuejs/language-tools/issues/3517)) - thanks @so1ve
- fix: don't import alias macros ([#3576](https://github.com/vuejs/language-tools/issues/3576)) - thanks @sxzz
- fix: make generic components' emit type compactible with Vue core types ([#3569](https://github.com/vuejs/language-tools/issues/3569)) ([#3257](https://github.com/vuejs/language-tools/issues/3257)) - thanks @so1ve
- fix: use universal `__VLS_ConstructorOverloads` when emits type is not inlined ([#3585](https://github.com/vuejs/language-tools/issues/3585)) - thanks @so1ve
- fix: inherit emits props and supports generic component emit type for JSX ([#3533](https://github.com/vuejs/language-tools/issues/3533)) ([#3289](https://github.com/vuejs/language-tools/issues/3289)) ([#3476](https://github.com/vuejs/language-tools/issues/3476)) - thanks @so1ve
- perf: generate less TS virtual code for TS performance ([#3581](https://github.com/vuejs/language-tools/issues/3581))
## 1.8.13 (2023/9/20)
- fix: generate valid syntax when `noPropertyAccessFromIndexSignature` is not enabled ([#3575](https://github.com/vuejs/language-tools/issues/3575)) - thanks @so1ve
## 1.8.12 (2023/9/20)
- feat: support vitepress's code snippet import ([#3559](https://github.com/vuejs/language-tools/issues/3559)) - thanks @so1ve
- fix(component-meta): fix modules interoperability with `vue-component-type-helper`
- fix: avoid losing generic types with `strictTemplates: false` ([#3565](https://github.com/vuejs/language-tools/issues/3565)) - thanks @so1ve
- fix: format slots with typeannotation correctly ([#3573](https://github.com/vuejs/language-tools/issues/3573)) - thanks @so1ve
## 1.8.11 (2023/9/13)
- feat: slot references codeLens counting fragment default slot ([#932](https://github.com/vuejs/language-tools/issues/932))
- fix: correct message for `@vue-expect-error` ([#3541](https://github.com/vuejs/language-tools/issues/3541)) - thanks @so1ve
- fix: avoid global macros conflicts with local variables ([#3550](https://github.com/vuejs/language-tools/issues/3550)) - thanks @so1ve
- fix: script setup comments at top breaks global macros ([#3549](https://github.com/vuejs/language-tools/issues/3549)) - thanks @so1ve
- fix(vue-tsc): prevent rebuild in incremental mode throwing error ([#3556](https://github.com/vuejs/language-tools/issues/3556)) - thanks @blake-newman
## 1.8.10 (2023/9/6)
- feat: added Portuguese integration documentation ([#3535](https://github.com/vuejs/language-tools/issues/3535))
- feat: exposed `configFileName` for `createParsedCommandLineByJson()` function ([#3456](https://github.com/vuejs/language-tools/issues/3456)) - thanks @qmhc
- feat: support nested plugins ([#3530](https://github.com/vuejs/language-tools/issues/3530)) - thanks @so1ve
- feat(vscode): add `vue.server.runtime` setting and support for Bun runtime
- feat(vscode): add `vue.server.path` setting for customize server module path
- fix: correctly hyphen-case props ([#3424](https://github.com/vuejs/language-tools/issues/3424)) - thanks @so1ve
- fix: generic components should respect `strictTemplates` ([#3487](https://github.com/vuejs/language-tools/issues/3487)) - thanks @so1ve
- fix(vue-component-type-helpers): correctly handle generic components when using `ComponentExposed` ([#3536](https://github.com/vuejs/language-tools/issues/3536)) - thanks @so1ve
## 1.8.8 (2023/7/27)
- fix: language server crashed due to importing unexist library ([#3453](https://github.com/vuejs/language-tools/issues/3453)) ([#3454](https://github.com/vuejs/language-tools/issues/3454))
## 1.8.7 (2023/7/27)
- feat: support auto-complete for directives ([#2559](https://github.com/vuejs/language-tools/issues/2559))
- feat: support extract component for options api
- feat: re-support external component parsing ([#3328](https://github.com/vuejs/language-tools/issues/3328))
- feat: support function expression emit event ([#3445](https://github.com/vuejs/language-tools/issues/3445)) - thanks @lvjiaxuan
- perf: reuse VueFile instances between monorepo packages ([#3450](https://github.com/vuejs/language-tools/issues/3450))
- fix: handle node next module resolution ([#3159](https://github.com/vuejs/language-tools/issues/3159)) - thanks @kalvenschraut
- fix: generate valid code when using `__VLS_PropsChildren` ([#3442](https://github.com/vuejs/language-tools/issues/3442)) - thanks @so1ve
- fix: component auto-import cannot insert import statement
- fix: extract component cannot extract interpolations
- fix: allow top-level await in script setup blocks with generics ([#3441](https://github.com/vuejs/language-tools/issues/3441)) - thanks @so1ve
## 1.8.6 (2023/7/22)
- feat: add support for extract component code action ([#2496](https://github.com/vuejs/language-tools/issues/2496)) - thanks @zardoy
- feat: add support for `v-bind` toggle code action ([#2524](https://github.com/vuejs/language-tools/issues/2524)) - thanks @zardoy
- feat: more dull "Saving time is too long" popup
- fix: `vue.server.petiteVue.supportHtmlFile`, `vue.server.vitePress.supportMdFile` settings not working ([#3238](https://github.com/vuejs/language-tools/issues/3238))
- fix: don't check element type for directives ([#3140](https://github.com/vuejs/language-tools/issues/3140))
- fix: `@ts-nocheck` cannot work from script setup ([#3420](https://github.com/vuejs/language-tools/issues/3420)) - thanks @so1ve
- fix(ts-plugin): module resolving should be able to fallback to `.d.ts` ([#3419](https://github.com/vuejs/language-tools/issues/3419))
- fix(language-plugin-pug): `@vue-ignore`, `@vue-skip`, `@vue-expected-error` not working for pug template
## 1.8.5 (2023/7/14)
- 🔥 feat(labs): support for TS memory usage treemap
- 🔥 perf: properly support TS DocumentRegistry to drastically reduce memory usage in monorepo projects
- feat(ts-plugin): re-support auto-import
- fix: remove invalid `volar.action.serverStats` command ([#3366](https://github.com/vuejs/language-tools/issues/3366)) - thanks @yaegassy
- fix: don't remove comments when comment is in the first line ([#3365](https://github.com/vuejs/language-tools/issues/3365)) - thanks @so1ve
- fix: allow slots to have no arguments ([#3376](https://github.com/vuejs/language-tools/issues/3376)) - thanks @so1ve
- fix: camel case components is not recognized as used ([#3377](https://github.com/vuejs/language-tools/issues/3377)) - thanks @so1ve
- perf: hoist regexp if possible ([#3378](https://github.com/vuejs/language-tools/issues/3378)) - thanks @so1ve
- fix: non scoped classes resolution regression ([#3381](https://github.com/vuejs/language-tools/issues/3381)) - thanks @maIIady
- feat: don't to request reload editor when server options changed ([#3393](https://github.com/vuejs/language-tools/issues/3393)) - thanks @zardoy
- feat: don't hide output channel on server restart ([#3401](https://github.com/vuejs/language-tools/issues/3401)) - thanks @zardoy
**Breaking changes**
- Deprecate language server `json.customBlockSchemaUrls` option ([#3398](https://github.com/vuejs/language-tools/issues/3398))
## 1.8.4 (2023/7/5)
- feat(monaco): support for custom file system provider (https://github.com/volarjs/volar.js/pull/50)
- feat: support auto-complete for template directive comments
- fix: local component type should override a global component ([#1886](https://github.com/vuejs/language-tools/issues/1886)) ([#3333](https://github.com/vuejs/language-tools/issues/3333)) - thanks @so1ve