diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae673de21f..9fc0f3547c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,36 @@
> [Join the Insiders Program](https://github.com/vuejs/language-tools/wiki/Get-Insiders-Edition) for more exclusive features and updates.
+## 2.2.4 official, 2.2.5 insiders (2025-02-22)
+
+### Features
+
+- feat(language-service): map sfc compiler errors outside the template inner content (#5045) - Thanks to @KazariEX!
+- feat(language-core): introduce options to control type inference of `$attrs`, `$el`, `$refs` and `$slots` (#5135) - Thanks to @KazariEX!
+- feat(language-core): enhance single root nodes collection (#4819) - Thanks to @KazariEX!
+
+### Bug Fixes
+
+- fix(language-core): move `generateSfcBlockSection` to the end to fix missing comma errors (#5184) - Thanks to @zhiyuanzmj!
+- fix(language-core): handle edge case of default slot name mismatch - Thanks to @KazariEX!
+- fix(language-core): combine dollar variable keys from the upper level interface - Thanks to @KazariEX!
+- fix(language-core): hoist the variables that may cause `TS4081` (#5192) - Thanks to @KazariEX!
+- fix(language-core): adjust regex match for `@vue-generic` to improve offset calculation (#5193) - Thanks to @Gehbt!
+- fix(language-core): correct codegen of native element refs - Thanks to @KazariEX!
+- fix(language-core): ignore latex block content (#5151) - Thanks to @KazariEX!
+- fix(language-core): do not emit `undefined` for model with default value (#5198) - Thanks to @RylanBueckert-Broadsign!
+- fix(language-service): typescript-semantic renaming first in style blocks (#4685) - Thanks to @KazariEX!
+- fix(typescript-plugin): prevent removed components from appearing in the completion list - Thanks to @KazariEX!
+
+### Other Changes
+
+- refactor(language-core): drop invalid `v-scope` implemention - Thanks to @KazariEX!
+- refactor(language-core): improve type declaration of `v-for` - Thanks to @KazariEX!
+- test: enable `declaration` to track more errors - Thanks to @KazariEX!
+- refactor(language-core): remove semantic highlight of style module names - Thanks to @KazariEX!
+- chore(language-core): add docs for `@vue-expect-error` support (#5176) - Thanks to @machty!
+- ci: upload extension as artifact for each commit - Thanks to @KazariEX!
+
## 2.2.2 official, 2.2.3 insiders (2025-02-15)
### Features
diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json
index b9e0b0e421..13e5f94fba 100644
--- a/extensions/vscode/package.json
+++ b/extensions/vscode/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"name": "volar",
- "version": "2.2.2",
+ "version": "2.2.4",
"repository": {
"type": "git",
"url": "https://github.com/vuejs/language-tools.git",
@@ -567,9 +567,9 @@
"@types/vscode": "^1.82.0",
"@volar/vscode": "~2.4.11",
"@vscode/vsce": "^3.2.1",
- "@vue/language-core": "2.2.2",
- "@vue/language-server": "2.2.2",
- "@vue/typescript-plugin": "2.2.2",
+ "@vue/language-core": "2.2.4",
+ "@vue/language-server": "2.2.4",
+ "@vue/typescript-plugin": "2.2.4",
"esbuild": "^0.25.0",
"esbuild-visualizer": "^0.7.0",
"reactive-vscode": "^0.2.9",
diff --git a/insiders.json b/insiders.json
index 33e1c57a32..336237e694 100644
--- a/insiders.json
+++ b/insiders.json
@@ -1,12 +1,20 @@
{
- "latest": "2.2.3",
+ "latest": "2.2.5",
"versions": [
+ {
+ "version": "2.2.5",
+ "date": "2025-02-22",
+ "downloads": {
+ "GitHub": "https://github.com/volarjs/insiders/releases/tag/v2.2.5",
+ "AFDIAN": "https://afdian.com/p/708861e2f1c611ef9fc552540025c377"
+ }
+ },
{
"version": "2.2.3",
"date": "2025-02-15",
"downloads": {
"GitHub": "https://github.com/volarjs/insiders/releases/tag/v2.2.3",
- "AFDIAN": "https://ifdian.net/p/6fa17e40ebc111ef849e52540025c377"
+ "AFDIAN": "https://afdian.com/p/6fa17e40ebc111ef849e52540025c377"
}
},
{
diff --git a/lerna.json b/lerna.json
index 83f3407f0c..4344415445 100644
--- a/lerna.json
+++ b/lerna.json
@@ -6,5 +6,5 @@
"packages/*",
"test-workspace"
],
- "version": "2.2.2"
+ "version": "2.2.4"
}
diff --git a/packages/component-meta/package.json b/packages/component-meta/package.json
index e8771fffd1..508cdb99c7 100644
--- a/packages/component-meta/package.json
+++ b/packages/component-meta/package.json
@@ -1,6 +1,6 @@
{
"name": "vue-component-meta",
- "version": "2.2.2",
+ "version": "2.2.4",
"license": "MIT",
"files": [
"**/*.js",
@@ -14,9 +14,9 @@
},
"dependencies": {
"@volar/typescript": "~2.4.11",
- "@vue/language-core": "2.2.2",
+ "@vue/language-core": "2.2.4",
"path-browserify": "^1.0.1",
- "vue-component-type-helpers": "2.2.2"
+ "vue-component-type-helpers": "2.2.4"
},
"peerDependencies": {
"typescript": "*"
diff --git a/packages/component-type-helpers/package.json b/packages/component-type-helpers/package.json
index 354d5b5912..21a6177dca 100644
--- a/packages/component-type-helpers/package.json
+++ b/packages/component-type-helpers/package.json
@@ -1,6 +1,6 @@
{
"name": "vue-component-type-helpers",
- "version": "2.2.2",
+ "version": "2.2.4",
"license": "MIT",
"files": [
"**/*.js",
diff --git a/packages/language-core/package.json b/packages/language-core/package.json
index 5116034662..00f7ce374e 100644
--- a/packages/language-core/package.json
+++ b/packages/language-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@vue/language-core",
- "version": "2.2.2",
+ "version": "2.2.4",
"license": "MIT",
"files": [
"**/*.js",
diff --git a/packages/language-plugin-pug/package.json b/packages/language-plugin-pug/package.json
index b6c91c6a82..f285fbdd33 100644
--- a/packages/language-plugin-pug/package.json
+++ b/packages/language-plugin-pug/package.json
@@ -1,6 +1,6 @@
{
"name": "@vue/language-plugin-pug",
- "version": "2.2.2",
+ "version": "2.2.4",
"license": "MIT",
"files": [
"**/*.js",
@@ -14,7 +14,7 @@
},
"devDependencies": {
"@types/node": "^22.10.4",
- "@vue/language-core": "2.2.2"
+ "@vue/language-core": "2.2.4"
},
"dependencies": {
"@volar/source-map": "~2.4.11",
diff --git a/packages/language-server/package.json b/packages/language-server/package.json
index 20220c9b70..11c55f57d0 100644
--- a/packages/language-server/package.json
+++ b/packages/language-server/package.json
@@ -1,6 +1,6 @@
{
"name": "@vue/language-server",
- "version": "2.2.2",
+ "version": "2.2.4",
"license": "MIT",
"files": [
"**/*.js",
@@ -19,9 +19,9 @@
"@volar/language-core": "~2.4.11",
"@volar/language-server": "~2.4.11",
"@volar/test-utils": "~2.4.11",
- "@vue/language-core": "2.2.2",
- "@vue/language-service": "2.2.2",
- "@vue/typescript-plugin": "2.2.2",
+ "@vue/language-core": "2.2.4",
+ "@vue/language-service": "2.2.4",
+ "@vue/typescript-plugin": "2.2.4",
"vscode-languageserver-protocol": "^3.17.5",
"vscode-uri": "^3.0.8"
}
diff --git a/packages/language-service/package.json b/packages/language-service/package.json
index 77723ae977..9d46a795d5 100644
--- a/packages/language-service/package.json
+++ b/packages/language-service/package.json
@@ -1,6 +1,6 @@
{
"name": "@vue/language-service",
- "version": "2.2.2",
+ "version": "2.2.4",
"license": "MIT",
"files": [
"data",
@@ -21,9 +21,9 @@
"@volar/language-service": "~2.4.11",
"@volar/typescript": "~2.4.11",
"@vue/compiler-dom": "^3.5.0",
- "@vue/language-core": "2.2.2",
+ "@vue/language-core": "2.2.4",
"@vue/shared": "^3.5.0",
- "@vue/typescript-plugin": "2.2.2",
+ "@vue/typescript-plugin": "2.2.4",
"alien-signals": "^1.0.3",
"path-browserify": "^1.0.1",
"volar-service-css": "0.0.62",
diff --git a/packages/tsc/package.json b/packages/tsc/package.json
index f8ef75c389..fca29c5de5 100644
--- a/packages/tsc/package.json
+++ b/packages/tsc/package.json
@@ -1,6 +1,6 @@
{
"name": "vue-tsc",
- "version": "2.2.2",
+ "version": "2.2.4",
"license": "MIT",
"files": [
"bin",
@@ -21,7 +21,7 @@
},
"dependencies": {
"@volar/typescript": "~2.4.11",
- "@vue/language-core": "2.2.2"
+ "@vue/language-core": "2.2.4"
},
"devDependencies": {
"@types/node": "^22.10.4"
diff --git a/packages/typescript-plugin/package.json b/packages/typescript-plugin/package.json
index fa31afe9a2..b9c20e9d32 100644
--- a/packages/typescript-plugin/package.json
+++ b/packages/typescript-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@vue/typescript-plugin",
- "version": "2.2.2",
+ "version": "2.2.4",
"license": "MIT",
"files": [
"**/*.js",
@@ -14,7 +14,7 @@
},
"dependencies": {
"@volar/typescript": "~2.4.11",
- "@vue/language-core": "2.2.2",
+ "@vue/language-core": "2.2.4",
"@vue/shared": "^3.5.0"
},
"devDependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d7cc7df4c7..9b7d325d40 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -48,13 +48,13 @@ importers:
specifier: ^3.2.1
version: 3.2.1
'@vue/language-core':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../../packages/language-core
'@vue/language-server':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../../packages/language-server
'@vue/typescript-plugin':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../../packages/typescript-plugin
esbuild:
specifier: ^0.25.0
@@ -81,7 +81,7 @@ importers:
specifier: ~2.4.11
version: 2.4.11
'@vue/language-core':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../language-core
path-browserify:
specifier: ^1.0.1
@@ -90,7 +90,7 @@ importers:
specifier: '*'
version: 5.7.2
vue-component-type-helpers:
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../component-type-helpers
devDependencies:
'@types/node':
@@ -161,7 +161,7 @@ importers:
specifier: ^22.10.4
version: 22.10.4
'@vue/language-core':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../language-core
packages/language-server:
@@ -176,13 +176,13 @@ importers:
specifier: ~2.4.11
version: 2.4.11
'@vue/language-core':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../language-core
'@vue/language-service':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../language-service
'@vue/typescript-plugin':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../typescript-plugin
vscode-languageserver-protocol:
specifier: ^3.17.5
@@ -206,13 +206,13 @@ importers:
specifier: ^3.5.0
version: 3.5.13
'@vue/language-core':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../language-core
'@vue/shared':
specifier: ^3.5.0
version: 3.5.13
'@vue/typescript-plugin':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../typescript-plugin
alien-signals:
specifier: ^1.0.3
@@ -276,7 +276,7 @@ importers:
specifier: ~2.4.11
version: 2.4.11
'@vue/language-core':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../language-core
typescript:
specifier: '>=5.0.0'
@@ -292,7 +292,7 @@ importers:
specifier: ~2.4.11
version: 2.4.11
'@vue/language-core':
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../language-core
'@vue/shared':
specifier: ^3.5.0
@@ -314,7 +314,7 @@ importers:
specifier: ^3.5.0
version: 3.5.13(typescript@5.7.2)
vue-component-type-helpers:
- specifier: 2.2.2
+ specifier: 2.2.4
version: link:../packages/component-type-helpers
vue2:
specifier: npm:vue@2.7.16
@@ -1019,61 +1019,51 @@ packages:
resolution: {integrity: sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==}
cpu: [arm]
os: [linux]
- libc: [glibc]
'@rollup/rollup-linux-arm-musleabihf@4.34.6':
resolution: {integrity: sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==}
cpu: [arm]
os: [linux]
- libc: [musl]
'@rollup/rollup-linux-arm64-gnu@4.34.6':
resolution: {integrity: sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==}
cpu: [arm64]
os: [linux]
- libc: [glibc]
'@rollup/rollup-linux-arm64-musl@4.34.6':
resolution: {integrity: sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==}
cpu: [arm64]
os: [linux]
- libc: [musl]
'@rollup/rollup-linux-loongarch64-gnu@4.34.6':
resolution: {integrity: sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==}
cpu: [loong64]
os: [linux]
- libc: [glibc]
'@rollup/rollup-linux-powerpc64le-gnu@4.34.6':
resolution: {integrity: sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==}
cpu: [ppc64]
os: [linux]
- libc: [glibc]
'@rollup/rollup-linux-riscv64-gnu@4.34.6':
resolution: {integrity: sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==}
cpu: [riscv64]
os: [linux]
- libc: [glibc]
'@rollup/rollup-linux-s390x-gnu@4.34.6':
resolution: {integrity: sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==}
cpu: [s390x]
os: [linux]
- libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.34.6':
resolution: {integrity: sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==}
cpu: [x64]
os: [linux]
- libc: [glibc]
'@rollup/rollup-linux-x64-musl@4.34.6':
resolution: {integrity: sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==}
cpu: [x64]
os: [linux]
- libc: [musl]
'@rollup/rollup-win32-arm64-msvc@4.34.6':
resolution: {integrity: sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==}
diff --git a/test-workspace/package.json b/test-workspace/package.json
index 4bb5b81a7c..3204b60102 100644
--- a/test-workspace/package.json
+++ b/test-workspace/package.json
@@ -1,11 +1,11 @@
{
"private": true,
- "version": "2.2.2",
+ "version": "2.2.4",
"devDependencies": {
"typescript-next": "npm:typescript@5.7.0-dev.20240926",
"typescript-stable": "npm:typescript@~5.6.0",
"vue": "^3.5.0",
- "vue-component-type-helpers": "2.2.2",
+ "vue-component-type-helpers": "2.2.4",
"vue2": "npm:vue@2.7.16",
"vue3.4": "npm:vue@3.4.38"
}