Ir al contenido
verdict:

Biome 2.6.4

digest

note: la síntesis y las notas de la versión están en inglés

note: sin síntesis para esta release digest

Las releases digest se listan sin síntesis. Las notas de la versión originales de esta versión están aquí abajo.

release-notesgithub.com/biomejs/biome · 477 líneas
  1. ## 2.6.4
  2. ### Patch Changes
  3. - [#12261](https://github.com/biomejs/biome/pull/12261) [`19fbfb2`](https://github.com/biomejs/biome/commit/19fbfb2311b5dc4bf1b6ee8dd5b258d9699436a5) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`noConsoleSpaces`](https://biomejs.dev/linter/rules/no-console-spaces/), which reports a leading or trailing space in a `console.log()`, `console.debug()`, `console.info()`, `console.warn()`, or `console.error()` argument that sits next to another argument. These methods already put a space between arguments, so such a space prints twice.
  4. ```js
  5. console.log("abc ", "def");
  6. ```
  7. - [#12469](https://github.com/biomejs/biome/pull/12469) [`cd716d3`](https://github.com/biomejs/biome/commit/cd716d38575ce603d8cddbabec97b3d52463858b) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`noMagicArrayFlatDepth`](https://biomejs.dev/linter/rules/no-magic-array-flat-depth/), which reports number literals other than `1` passed as the depth of `Array.prototype.flat()` unless a comment inside the parentheses explains them.
  8. ```js
  9. const items = array.flat(2);
  10. ```
  11. - [#12470](https://github.com/biomejs/biome/pull/12470) [`92c9e81`](https://github.com/biomejs/biome/commit/92c9e81bd7c767b4b3e583a312f75c0f364298dd) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noNull`](https://biomejs.dev/linter/rules/no-null/), which reports uses of the `null` literal and suggests `undefined` instead. Strict comparisons such as `foo === null` are allowed.
  12. ```js
  13. let foo = null;
  14. ```
  15. - [#12483](https://github.com/biomejs/biome/pull/12483) [`9bd3527`](https://github.com/biomejs/biome/commit/9bd35277c99fffa6b252a594a2a74e553e977b3b) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noReturnArrayPush`](https://biomejs.dev/linter/rules/no-return-array-push/), which reports code that uses the return value of `push()` or `unshift()`. These methods return the new length of the array, not the added item or the array.
  16. ```js
  17. function add(item) {
  18. return items.push(item);
  19. }
  20. ```
  21. - [#12477](https://github.com/biomejs/biome/pull/12477) [`a384892`](https://github.com/biomejs/biome/commit/a384892c6b9f882b9c1751bf725cb84d9c8738b6) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noUnreadableIife`](https://biomejs.dev/linter/rules/no-unreadable-iife/), which reports arrow functions that are called right where they are defined and whose body is wrapped in parentheses.
  22. ```js
  23. const foo = (bar => (bar ? bar.baz : baz))(getBar());
  24. ```
  25. - [#12447](https://github.com/biomejs/biome/pull/12447) [`0a963e4`](https://github.com/biomejs/biome/commit/0a963e4a30cfb550e0994bd925d16391e725bf4f) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noUselessRecursion`](https://biomejs.dev/linter/rules/no-useless-recursion/), which reports functions that return a call to themselves when a loop can do the same work. Too many nested calls can crash the program with a stack overflow error.
  26. ```js
  27. function findRoot(node) {
  28. if (node.parent) {
  29. return findRoot(node.parent);
  30. }
  31. return node;
  32. }
  33. ```
  34. - [#12554](https://github.com/biomejs/biome/pull/12554) [`2eddda9`](https://github.com/biomejs/biome/commit/2eddda9046fc36aa5ef455d8fd57b2900b7dc319) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noVueComputedPropertiesInData`](https://biomejs.dev/linter/rules/no-vue-computed-properties-in-data/), which reports computed properties used inside the `data` function of a Vue component. Vue runs `data` before it sets up computed properties, so the value read there is `undefined`.
  35. ```vue
  36. <script>
  37. export default {
  38. data() {
  39. return { total: this.doubled };
  40. },
  41. computed: {
  42. doubled() {
  43. return 2;
  44. },
  45. },
  46. };
  47. </script>
  48. ```
  49. - [#12586](https://github.com/biomejs/biome/pull/12586) [`824df15`](https://github.com/biomejs/biome/commit/824df15e1e7c4bd433c3efaa999c4aa3e495c625) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noVueDeprecatedDeleteSet`](https://biomejs.dev/linter/rules/no-vue-deprecated-delete-set/), which reports calls to the `$set` and `$delete` functions, `Vue.set` and `Vue.delete`, and `set` and `del` imported from `vue`. Vue 3 removed these functions, so calling them throws an error.
  50. ```vue
  51. <script>
  52. export default {
  53. mounted() {
  54. this.$set(this.user, "name", "Alice");
  55. },
  56. };
  57. </script>
  58. ```
  59. - [#12648](https://github.com/biomejs/biome/pull/12648) [`6fc1a51`](https://github.com/biomejs/biome/commit/6fc1a51e9e9493c6519892e10478d2e1fdf226db) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noVueDeprecatedRouterLinkTagProp`](https://biomejs.dev/linter/rules/no-vue-deprecated-router-link-tag-prop/), which disallows the `tag` prop on `RouterLink`. Vue Router 4 ignores this prop, so the link still renders as an `<a>` element.
  60. ```vue
  61. <template>
  62. <RouterLink tag="li" to="/">Home</RouterLink>
  63. </template>
  64. ```
  65. - [#12631](https://github.com/biomejs/biome/pull/12631) [`de1188f`](https://github.com/biomejs/biome/commit/de1188fce7bd6205361225ae53c6dc32d16f3600) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`noVueDeprecatedScopeAttribute`](https://biomejs.dev/linter/rules/no-vue-deprecated-scope-attribute/), which reports the `scope` attribute on `<template>` elements in Vue files. Vue no longer supports this attribute, so use `v-slot` to receive slot props instead.
  66. ```vue
  67. <template>
  68. <ListComponent>
  69. <template scope="props">{{ props.title }}</template>
  70. </ListComponent>
  71. </template>
  72. ```
  73. - [#12562](https://github.com/biomejs/biome/pull/12562) [`5d7553b`](https://github.com/biomejs/biome/commit/5d7553b94a472c8f4e9739b35efd15eb56eff7dd) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`noVueMultipleSlotArgs`](https://biomejs.dev/linter/rules/no-vue-multiple-slot-args/), which disallows passing more than one argument to a Vue slot from a render function. Slot content written in a template receives only the first argument.
  74. ```vue
  75. <script>
  76. export default {
  77. render() {
  78. return this.$slots.default(item, index); // reported
  79. },
  80. };
  81. </script>
  82. ```
  83. - [#12513](https://github.com/biomejs/biome/pull/12513) [`2e520d8`](https://github.com/biomejs/biome/commit/2e520d81799678deedd2de0ef0f9be1c071415c3) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noVueMutatingProps`](https://biomejs.dev/linter/rules/no-vue-mutating-props/), which reports code that changes the props of a Vue component, in the script or in the template. Props belong to the parent component, so the child should emit an event or copy the value instead.
  84. ```vue
  85. <script setup>
  86. const props = defineProps({ items: Array });
  87. props.items.push("new item");
  88. </script>
  89. ```
  90. - [#12567](https://github.com/biomejs/biome/pull/12567) [`144b786`](https://github.com/biomejs/biome/commit/144b7865bc9981258929e742785d75946b6bc077) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noVueSideEffectsInComputed`](https://biomejs.dev/linter/rules/no-vue-side-effects-in-computed/), which reports Vue computed properties that change state. Vue decides when to run a computed property, so changes made inside one happen at unpredictable times.
  91. ```vue
  92. <script setup>
  93. import { computed, ref } from "vue";
  94. const items = ref([]);
  95. // `reverse()` changes `items.value` in place.
  96. const reversedItems = computed(() => items.value.reverse());
  97. </script>
  98. ```
  99. - [#12603](https://github.com/biomejs/biome/pull/12603) [`861b288`](https://github.com/biomejs/biome/commit/861b2888c4a8ab324f888cfc2d9b68a5cb41671c) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`noVueUnusedRefs`](https://biomejs.dev/linter/rules/no-vue-unused-refs/), which reports template refs in Vue components that nothing reads through `$refs`, `useTemplateRef()`, or a variable of the same name in `<script setup>`. The rule needs `html.experimentalFullSupportEnabled` to be `true`.
  100. ```vue
  101. <template>
  102. <input ref="input" />
  103. </template>
  104. ```
  105. - [#12285](https://github.com/biomejs/biome/pull/12285) [`68770e0`](https://github.com/biomejs/biome/commit/68770e008365f0351d82c39cc6498293e4717110) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`noYamlBooleanKeys`](https://biomejs.dev/linter/rules/no-yaml-boolean-keys/), which disallows boolean values as keys in YAML. For example, the following key is a boolean instead of text, so it is reported:
  106. ```yaml
  107. true: enabled
  108. ```
  109. - [#12338](https://github.com/biomejs/biome/pull/12338) [`f46411b`](https://github.com/biomejs/biome/commit/f46411b97772e24221dc1a8f406c8d07004f23e3) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useSvelteEventDispatcherTypes`](https://biomejs.dev/linter/rules/use-svelte-event-dispatcher-types/), which reports `createEventDispatcher()` calls that don't declare the types of their events in Svelte components written in TypeScript.
  110. The rule accepts a call that declares its events:
  111. ```svelte
  112. <script lang="ts">
  113. import { createEventDispatcher } from "svelte";
  114. const dispatch = createEventDispatcher<{ save: string }>();
  115. </script>
  116. ```
  117. - [#12615](https://github.com/biomejs/biome/pull/12615) [`ade9845`](https://github.com/biomejs/biome/commit/ade9845477b4914fb07d47c64fe0cb1b29aec9d5) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueDefineOptions`](https://biomejs.dev/linter/rules/use-vue-define-options/), which reports the default export of a plain `<script>` block in Vue components that also use `<script setup>`, and suggests setting those options with `defineOptions()` instead.
  118. ```vue
  119. <script>
  120. export default { name: "MyComponent" }; // reported
  121. </script>
  122. <script setup>
  123. const props = defineProps(["title"]);
  124. </script>
  125. ```
  126. - [#12514](https://github.com/biomejs/biome/pull/12514) [`e74b4dc`](https://github.com/biomejs/biome/commit/e74b4dc1cdf066076f67be9c9b437fa1ce0a1e07) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueDefinePropsDestructuring`](https://biomejs.dev/linter/rules/use-vue-define-props-destructuring/), which requires destructuring the props returned by `defineProps()` in Vue `<script setup>` blocks. It also reports `withDefaults()`, because destructured props can set their default values directly.
  127. ```vue
  128. <script setup lang="ts">
  129. const props = defineProps<{ foo?: string }>();
  130. </script>
  131. ```
  132. - [#12559](https://github.com/biomejs/biome/pull/12559) [`94985ba`](https://github.com/biomejs/biome/commit/94985ba66b7cfbab5b8e66fe8b925ea7de074fd3) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueTemplateRef`](https://biomejs.dev/linter/rules/use-vue-template-ref/), which requires `useTemplateRef()` instead of `ref()` or `shallowRef()` to access elements of the template in `<script setup>`.
  133. ```vue
  134. <template>
  135. <input ref="input" />
  136. </template>
  137. <script setup>
  138. import { ref } from "vue";
  139. const input = ref(); // reported
  140. </script>
  141. ```
  142. - [#12512](https://github.com/biomejs/biome/pull/12512) [`6be5078`](https://github.com/biomejs/biome/commit/6be5078e64484b64eae77510742dfd8cb2fe95ae) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueTypedProps`](https://biomejs.dev/linter/rules/use-vue-typed-props/), which reports Vue props declared without a type, in the `props` option, `defineProps()`, or `defineModel()`. Without a type, Vue accepts any value for the prop and can't warn when a component receives the wrong kind of value.
  143. ```vue
  144. <script setup>
  145. defineProps(["title"]);
  146. </script>
  147. ```
  148. - [#12653](https://github.com/biomejs/biome/pull/12653) [`f307633`](https://github.com/biomejs/biome/commit/f30763352aff8b5a4f5269ffd3c1c026192da22e) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueVModel`](https://biomejs.dev/linter/rules/use-vue-v-model/), which reports a prop binding on a Vue component paired with an `update:` listener that only writes the new value back, and suggests `v-model` instead.
  149. ```vue
  150. <template>
  151. <MyComponent :title="title" @update:title="title = $event" />
  152. </template>
  153. ```
  154. - [#12591](https://github.com/biomejs/biome/pull/12591) [`a810209`](https://github.com/biomejs/biome/commit/a810209d4f09e9c07b8ec73ef05480ad0e17c1eb) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueValidDefineEmits`](https://biomejs.dev/linter/rules/use-vue-valid-define-emits/), which enforces valid usage of Vue's `defineEmits` macro in `<script setup>`.
  155. For example, the following code is now reported, because `defineEmits` declares its events with both a type and an argument:
  156. ```vue
  157. <script setup lang="ts">
  158. const emit = defineEmits<(e: "notify") => void>(["submit"]);
  159. </script>
  160. ```
  161. - [#12614](https://github.com/biomejs/biome/pull/12614) [`9308110`](https://github.com/biomejs/biome/commit/9308110c3c5c7c84675f1f4bf419c3dd65031254) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueValidDefineProps`](https://biomejs.dev/linter/rules/use-vue-valid-define-props/), which reports `defineProps()` calls that Vue can't compile or that declare props incorrectly. For example, it reports a component that calls `defineProps()` twice, or whose `defineProps()` argument uses a variable declared in `<script setup>`:
  162. ```vue
  163. <script setup>
  164. const definition = { msg: String };
  165. defineProps(definition);
  166. </script>
  167. ```
  168. - [#12570](https://github.com/biomejs/biome/pull/12570) [`222a230`](https://github.com/biomejs/biome/commit/222a230c6026a9a741dddbe35a10dd1507d3e978) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueValidVIs`](https://biomejs.dev/linter/rules/use-vue-valid-v-is/), which reports `v-is` directives that have an argument or modifiers, have no value, or are used on a component instead of a native HTML element.
  169. For example, the following `v-is` directive has no value:
  170. ```vue
  171. <template>
  172. <tr v-is></tr>
  173. </template>
  174. ```
  175. - [#12521](https://github.com/biomejs/biome/pull/12521) [`4010bb7`](https://github.com/biomejs/biome/commit/4010bb76235ef66297c1cc4ebc97df40653f5e89) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueValidVMemo`](https://biomejs.dev/linter/rules/use-vue-valid-v-memo/), which reports invalid `v-memo` directives in Vue templates. A `v-memo` directive must have an array value, can't have an argument or modifiers, and doesn't work inside an element with `v-for`.
  176. For example, the following value is an object instead of an array:
  177. ```vue
  178. <template>
  179. <div v-memo="{ id }"></div>
  180. </template>
  181. ```
  182. - [#12597](https://github.com/biomejs/biome/pull/12597) [`aff42a7`](https://github.com/biomejs/biome/commit/aff42a73b0f03fc477d86208d44aff71df62acc4) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueValidVModel`](https://biomejs.dev/linter/rules/use-vue-valid-v-model/), which reports `v-model` directives that Vue can't use: on unsupported elements or file inputs, with an argument or unknown modifier on a native element, without a value, or with a value that can't be assigned to.
  183. For example, the following `v-model` directives are invalid:
  184. ```vue
  185. <template>
  186. <div v-model="foo"></div>
  187. <input v-model="foo + bar" />
  188. </template>
  189. ```
  190. - [#12569](https://github.com/biomejs/biome/pull/12569) [`3058597`](https://github.com/biomejs/biome/commit/3058597e79e4e79438432ede4d729a1907dd945c) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`useVueValidVShow`](https://biomejs.dev/linter/rules/use-vue-valid-v-show/), which reports `v-show` directives that have an argument, a modifier, or no value, or that are placed on a `<template>` element.
  191. ```vue
  192. <template v-show="isVisible"><div></div></template>
  193. ```
  194. - [#12525](https://github.com/biomejs/biome/pull/12525) [`e2e5a36`](https://github.com/biomejs/biome/commit/e2e5a36e1be8581419742a85268ad82f020da62e) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`useVueValidVSlot`](https://biomejs.dev/linter/rules/use-vue-valid-v-slot/), which reports misplaced, duplicated, or malformed `v-slot` directives in Vue templates.
  195. For example, the rule reports two `<template>` elements that fill the same slot:
  196. ```vue
  197. <MyComponent>
  198. <template #header>First title</template>
  199. <template #header>Second title</template>
  200. </MyComponent>
  201. ```
  202. - [#12472](https://github.com/biomejs/biome/pull/12472) [`efd16bd`](https://github.com/biomejs/biome/commit/efd16bd44d84ad0580d59d27bba6843323761b42) Thanks [@dyc3](https://github.com/dyc3)! - Added the new nursery rule [`useWhileLoopCondition`](https://biomejs.dev/linter/rules/use-while-loop-condition/), which reports loops such as `while (true)` and `for (;;)` that start with an `if` statement containing only a `break`, and moves that condition into the `while` statement.
  203. ```js
  204. while (true) {
  205. if (!hasMore()) {
  206. break;
  207. } // reported
  208. processNext();
  209. }
  210. ```
  211. - [#12640](https://github.com/biomejs/biome/pull/12640) [`167bb00`](https://github.com/biomejs/biome/commit/167bb00ed962640cb72bc1d896fd5f6e98e8ef4d) Thanks [@latin-1](https://github.com/latin-1)! - Updated [`useSortedProperties`](https://biomejs.dev/assist/actions/use-sorted-properties/) to follow `stylelint-config-recess-order` 7.9.0, adding sorting support for `scroll-behavior`, anchor positioning, multi-column layout, and other properties known to Biome.
  212. - [#12719](https://github.com/biomejs/biome/pull/12719) [`40a82b0`](https://github.com/biomejs/biome/commit/40a82b0c5e11d825c3b3d42fc56950ca53d4b79a) Thanks [@dyc3](https://github.com/dyc3)! - Improved the performance of the linter. Biome now spends less time setting up the enabled rules for each file it analyzes.
  213. - [#12722](https://github.com/biomejs/biome/pull/12722) [`f074730`](https://github.com/biomejs/biome/commit/f07473021c756cc1e3f2582b55959b91878a1d1a) Thanks [@dyc3](https://github.com/dyc3)! - Improved the performance of `biome lint` by about 1% to 3% on large projects, most noticeably with Biome's default rules and with rules that track variables or unreachable code.
  214. - [#12501](https://github.com/biomejs/biome/pull/12501) [`90a4d74`](https://github.com/biomejs/biome/commit/90a4d74f206dd262f82bfdb2dda7420bde3770a3) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#12466](https://github.com/biomejs/biome/issues/12466): the Biome daemon used more memory with every `biome check --use-server` run. The daemon now reuses the data that it stores for each file and project, and it keeps syntax trees only for the files that it read most recently.
  215. - [#12501](https://github.com/biomejs/biome/pull/12501) [`90a4d74`](https://github.com/biomejs/biome/commit/90a4d74f206dd262f82bfdb2dda7420bde3770a3) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [biomejs/biome-vscode#923](https://github.com/biomejs/biome-vscode/issues/923): when a file open in the editor changed on disk, the language server replaced the editor's text with the text on disk. Biome now keeps the editor's text of open files until they are closed, so diagnostics, code actions and formatting stay at the right positions.
  216. - [#12652](https://github.com/biomejs/biome/pull/12652) [`59ff42a`](https://github.com/biomejs/biome/commit/59ff42a79c795edd9bbdc64719bb43b7d4cf822c) Thanks [@kurovskyiii](https://github.com/kurovskyiii)! - Fixed [#12651](https://github.com/biomejs/biome/issues/12651): an imported name that the other module exports as both a type and a value now resolves to the type in type annotations, so [`noBaseToString`](https://biomejs.dev/linter/rules/no-base-to-string/) no longer reports `slug` below as an object.
  217. ```ts
  218. // rule-slug.ts
  219. export type RuleSlug = string;
  220. export const RuleSlug = { create: (text: string): RuleSlug => text } as const;
  221. // main.ts
  222. import { RuleSlug } from "./rule-slug";
  223. export const label = (slug: RuleSlug): string => `rule ${slug}`;
  224. ```
  225. - [#12678](https://github.com/biomejs/biome/pull/12678) [`301402f`](https://github.com/biomejs/biome/commit/301402f9bcaec9087dc00fac2d2240880dc48921) Thanks [@nhedger](https://github.com/nhedger)! - Fixed [biomejs/biome-vscode#1113](https://github.com/biomejs/biome-vscode/issues/1113): the language server now shows a warning when the configuration file can't be parsed. Previously, Biome stopped processing files without telling the user why.
  226. - [#12662](https://github.com/biomejs/biome/pull/12662) [`8c836eb`](https://github.com/biomejs/biome/commit/8c836eb1b7e80af3674dfd124887612c5f975faa) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#12645](https://github.com/biomejs/biome/issues/12645): the Markdown formatter no longer removes the blank line between a blockquote and the list that follows it, matching Prettier.
  227. ```md
  228. > A note.
  229. - one
  230. - two
  231. ```
  232. - [#12662](https://github.com/biomejs/biome/pull/12662) [`8c836eb`](https://github.com/biomejs/biome/commit/8c836eb1b7e80af3674dfd124887612c5f975faa) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#12663](https://github.com/biomejs/biome/issues/12663): the Markdown formatter no longer removes the blank line between a table and the list that follows it, matching Prettier.
  233. ```md
  234. | Table |
  235. | ----- |
  236. | Value |
  237. - Hello
  238. ```
  239. - [#12576](https://github.com/biomejs/biome/pull/12576) [`735d370`](https://github.com/biomejs/biome/commit/735d37073eb0c213dab5caf75db1e0bdbcb580cc) Thanks [@jfmcdowell](https://github.com/jfmcdowell)! - Fixed [#12541](https://github.com/biomejs/biome/issues/12541): Markdown list items whose markers are indented 4 or more spaces now nest at the correct level. Previously the formatter could move such an item under the item before it, or join it to that item's text.
  240. ```diff
  241. 1. Step
  242. - a
  243. - x
  244. - - y
  245. - - b
  246. + - y
  247. + - b
  248. ```
  249. - [#12575](https://github.com/biomejs/biome/pull/12575) [`0da9080`](https://github.com/biomejs/biome/commit/0da9080f34514c18cdc012e75b4c18d113c7ca01) Thanks [@jfmcdowell](https://github.com/jfmcdowell)! - Fixed formatting of Markdown block quotes inside deeply indented list items. With `proseWrap: "always"`, consecutive quote lines now wrap together within the same quote, while setext headings and fenced code blocks keep their structure.
  250. ```diff
  251. 10. item
  252. - > first line
  253. - > second line
  254. + > first line second line
  255. ```
  256. - [#12607](https://github.com/biomejs/biome/pull/12607) [`896d53e`](https://github.com/biomejs/biome/commit/896d53eff2984a8e96d39f4419dd12ccdff15493) Thanks [@xucian](https://github.com/xucian)! - Fixed [#12542](https://github.com/biomejs/biome/issues/12542): the Markdown formatter is no longer idempotent when it formats tables.
  257. ```diff
  258. - | a | b |
  259. - | -------- | ----- |
  260. - | x | `y` z |
  261. - | `p` z`q` | r |
  262. + | a | b |
  263. + | --------- | ----- |
  264. + | x | `y` z |
  265. + | `p` z `q` | r |
  266. ```
  267. - [#12692](https://github.com/biomejs/biome/pull/12692) [`8ff63f4`](https://github.com/biomejs/biome/commit/8ff63f42593e4fbc92679d6585320b950b20381d) Thanks [@NikitaCOEUR](https://github.com/NikitaCOEUR)! - Fixed the `linux-x64-musl` binary not using jemalloc, which it already ships: it fell back to musl's allocator, and `biome check` on several threads could take minutes instead of seconds, for example in Alpine-based CI images.
  268. - [#12682](https://github.com/biomejs/biome/pull/12682) [`fa7cf4c`](https://github.com/biomejs/biome/commit/fa7cf4c0511ac2a07d6af42064c4108488aca0c6) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#12679](https://github.com/biomejs/biome/issues/12679): when `markdown.parser.frontmatter` and `markdown.formatter.formatEmbeds` are enabled, the Markdown formatter keeps the frontmatter of a fenced Markdown code block as written. Previously, it formatted the frontmatter as a thematic break and a paragraph, which removed the indentation of its YAML.
  269. ````md
  270. ```markdown
  271. ---
  272. verified:
  273. by: human
  274. ---
  275. # Policy
  276. ```
  277. ````
  278. - [#12649](https://github.com/biomejs/biome/pull/12649) [`343c8ca`](https://github.com/biomejs/biome/commit/343c8ca9cc718d76717b334338cc7eff94b0d426) Thanks [@JamBalaya56562](https://github.com/JamBalaya56562)! - Fixed [#12643](https://github.com/biomejs/biome/issues/12643) and [#12669](https://github.com/biomejs/biome/issues/12669): Biome now migrates the Prettier option `bracketSpacing` to `formatter.bracketSpacing`, both at the top level and inside `overrides`. JSON and GraphQL files are now formatted with the same bracket spacing as JavaScript files.
  279. - [#12640](https://github.com/biomejs/biome/pull/12640) [`167bb00`](https://github.com/biomejs/biome/commit/167bb00ed962640cb72bc1d896fd5f6e98e8ef4d) Thanks [@latin-1](https://github.com/latin-1)! - Fixed [`useSortedProperties`](https://biomejs.dev/assist/actions/use-sorted-properties/) to withhold sorting fixes that would change the effective values of overlapping declarations, physical/logical border or corner properties, or declarations followed by `all`.
  280. Updated [`noShorthandPropertyOverrides`](https://biomejs.dev/linter/rules/no-shorthand-property-overrides/) to recognize logical border, corner shape, `position-try`, `text-box`, and `transition-behavior` overrides.
  281. - [#12723](https://github.com/biomejs/biome/pull/12723) [`b6cbec8`](https://github.com/biomejs/biome/commit/b6cbec881cd6e10381ee6194aa6e2437c47b6e28) Thanks [@dyc3](https://github.com/dyc3)! - Improved the performance of `biome lint`, `biome check`, and `biome ci` on files where rules report diagnostics with code fixes, by up to 12% with the default rules.
  282. - [#12664](https://github.com/biomejs/biome/pull/12664) [`6021da0`](https://github.com/biomejs/biome/commit/6021da0fad40d556123ff227b9034cbed90b2ea2) Thanks [@MindTooth](https://github.com/MindTooth)! - Fixed Biome processing `pnpm-lock.yaml` files. These generated lockfiles are now protected from processing.
  283. - [#12501](https://github.com/biomejs/biome/pull/12501) [`90a4d74`](https://github.com/biomejs/biome/commit/90a4d74f206dd262f82bfdb2dda7420bde3770a3) Thanks [@ematipico](https://github.com/ematipico)! - Fixed an issue where the CLI, when it ran with `--use-server` alongside an editor connected to the same daemon, checked the unsaved text of the files open in the editor instead of the files on disk, and could make the editor's text get lost. The CLI now checks the files on disk, and every editor and CLI run connected to the daemon keeps its own text of the files it opens.
  284. - [#12519](https://github.com/biomejs/biome/pull/12519) [`9ae56ba`](https://github.com/biomejs/biome/commit/9ae56ba6e2cac09c4883fd0cf5fa21d3a94751a0) Thanks [@dyc3](https://github.com/dyc3)! - The rule [`noVueVIfWithVFor`](https://biomejs.dev/linter/rules/no-vue-v-if-with-v-for/) now also reports `v-else-if` and `v-else` on the same element as `v-for`.
  285. ```vue
  286. <div v-if="loading">Loading...</div>
  287. <TodoItem v-else v-for="todo in todos" :todo="todo" />
  288. ```
  289. - [#12702](https://github.com/biomejs/biome/pull/12702) [`df0f7cc`](https://github.com/biomejs/biome/commit/df0f7ccad27358a61a6b60f8e4a2992097c3a29b) Thanks [@dyc3](https://github.com/dyc3)! - Fixed parsing of default values in Vue `v-for` bindings. Biome now parses the default value as JavaScript, so it is formatted and linted like other template expressions instead of being reported as a parse error.
  290. ```vue
  291. <div v-for="{ value = gt('v-for default') } in rows" />
  292. ```
  293. - [#12656](https://github.com/biomejs/biome/pull/12656) [`25a00a2`](https://github.com/biomejs/biome/commit/25a00a2a4c61eb24923ff8c91f60672320c80833) Thanks [@dyc3](https://github.com/dyc3)! - Fixed non-JSON files inside the global settings directories of Zed, VS Code, and Cursor being parsed as JSON.
  294. - [#12501](https://github.com/biomejs/biome/pull/12501) [`90a4d74`](https://github.com/biomejs/biome/commit/90a4d74f206dd262f82bfdb2dda7420bde3770a3) Thanks [@ematipico](https://github.com/ematipico)! - Fixed an issue where the language server kept using the previous parser options for open files after the configuration changed. Open files are now parsed again with the new options, for example `json.parser.allowComments`.
  295. - [#12656](https://github.com/biomejs/biome/pull/12656) [`25a00a2`](https://github.com/biomejs/biome/commit/25a00a2a4c61eb24923ff8c91f60672320c80833) Thanks [@dyc3](https://github.com/dyc3)! - Improved the performance of Biome when it processes many files by up to 7%.
  296. - [#12661](https://github.com/biomejs/biome/pull/12661) [`066a077`](https://github.com/biomejs/biome/commit/066a077c28ddd1d39bc10ca60afa592ad02cf2f5) Thanks [@dyc3](https://github.com/dyc3)! - Added the nursery rule [`noVueDeprecatedListeners`](https://biomejs.dev/linter/rules/no-vue-deprecated-listeners/). It reports references to `$listeners`, which Vue 3 removed, in Vue templates and component objects. For example, Biome now reports `<div v-on="$listeners" />` and `this.$listeners` inside a Vue component.
  297. ## What's Changed
  298. * feat(lint): add useWhileLoopCondition by @dyc3 in https://github.com/biomejs/biome/pull/12472
  299. * refactor(analyze): remove the rule-count limit on analyzer groups by @dyc3 in https://github.com/biomejs/biome/pull/12637
  300. * fix(migrate): carry Prettier's bracketSpacing in overrides by @JamBalaya56562 in https://github.com/biomejs/biome/pull/12649
  301. * fix(format/md): preserve newline between block quote and list by @dyc3 in https://github.com/biomejs/biome/pull/12662
  302. * feat(lint): add noNull by @dyc3 in https://github.com/biomejs/biome/pull/12470
  303. * fix(migrate): carry Prettier's bracketSpacing into the top-level by @JamBalaya56562 in https://github.com/biomejs/biome/pull/12670
  304. * fix: mark pnpm-lock.yaml as protected file by @MindTooth in https://github.com/biomejs/biome/pull/12664
  305. * fix(markdown_parser): attach whitespace before a table pipe to the pipe by @xucian in https://github.com/biomejs/biome/pull/12607
  306. * feat(lint): add noYamlBooleanKeys by @dyc3 in https://github.com/biomejs/biome/pull/12285
  307. * feat(lint): add noUnreadableIife by @dyc3 in https://github.com/biomejs/biome/pull/12477
  308. * feat(lint): add useSvelteEventDispatcherTypes by @dyc3 in https://github.com/biomejs/biome/pull/12338
  309. * feat(lint): add noMagicArrayFlatDepth by @dyc3 in https://github.com/biomejs/biome/pull/12469
  310. * feat(lint): add noConsoleSpaces by @dyc3 in https://github.com/biomejs/biome/pull/12261
  311. * perf(languages): resolve editor settings directories once, and check less often by @dyc3 in https://github.com/biomejs/biome/pull/12656
  312. * feat(lint): add noUselessRecursion by @dyc3 in https://github.com/biomejs/biome/pull/12447
  313. * fix(css): sync recess property order and preserve cascade when sorting by @latin-1 in https://github.com/biomejs/biome/pull/12640
  314. * feat(lint): add noReturnArrayPush by @dyc3 in https://github.com/biomejs/biome/pull/12483
  315. * fix(lsp): warn when the configuration file can't be loaded by @nhedger in https://github.com/biomejs/biome/pull/12678
  316. * chore(deps): update rust crate notify to 8.2.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/12689
  317. * fix(module_graph): resolve an imported type merged with a value to the type in annotations by @kurovskyiii in https://github.com/biomejs/biome/pull/12652
  318. * fix(markdown): keep frontmatter of fenced Markdown blocks when formatting embeds by @dyc3 in https://github.com/biomejs/biome/pull/12682
  319. * chore(deps): update rust crate serde_json to 1.0.154 by @renovate[bot] in https://github.com/biomejs/biome/pull/12690
  320. * chore(deps): update rust crate smallvec to 1.16.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/12691
  321. * fix(markdown_parser): continue block quotes inside deep list items by @jfmcdowell in https://github.com/biomejs/biome/pull/12575
  322. * chore: update rule metadata by @dyc3 in https://github.com/biomejs/biome/pull/12699
  323. * perf(lint): make noDuplicateCase, noDuplicateElseIf and noFallthroughSwitchClause linear by @dyc3 in https://github.com/biomejs/biome/pull/12457
  324. * perf(lint): speed up useHookAtTopLevel, noUnusedImports and noUnusedPrivateClassMembers by @dyc3 in https://github.com/biomejs/biome/pull/12458
  325. * feat(lint): add useVueTemplateRef by @dyc3 in https://github.com/biomejs/biome/pull/12559
  326. * feat(lint): add useVueValidVShow by @dyc3 in https://github.com/biomejs/biome/pull/12569
  327. * feat(lint): add useVueDefinePropsDestructuring by @dyc3 in https://github.com/biomejs/biome/pull/12514
  328. * feat(lint): add useVueValidVIs by @dyc3 in https://github.com/biomejs/biome/pull/12570
  329. * feat(noVueVIfWithVFor): report v-else and v-else-if with v-for by @dyc3 in https://github.com/biomejs/biome/pull/12519
  330. * feat(lint): add noVueSideEffectsInComputed by @dyc3 in https://github.com/biomejs/biome/pull/12567
  331. * feat(lint): add noVueDeprecatedListeners by @dyc3 in https://github.com/biomejs/biome/pull/12661
  332. * feat(lint): add useVueValidVModel by @dyc3 in https://github.com/biomejs/biome/pull/12597
  333. * feat(lint): add useVueValidVSlot by @dyc3 in https://github.com/biomejs/biome/pull/12525
  334. * fix(markdown_parser): nest list items by enclosing content column by @jfmcdowell in https://github.com/biomejs/biome/pull/12576
  335. * chore(deps): update rust:1.98.0-bullseye docker digest to 4730e38 by @renovate[bot] in https://github.com/biomejs/biome/pull/11645
  336. * feat(lint): add useVueValidVMemo by @dyc3 in https://github.com/biomejs/biome/pull/12521
  337. * feat(lint): add useVueValidDefineProps by @dyc3 in https://github.com/biomejs/biome/pull/12614
  338. * feat(lint): add useVueTypedProps by @dyc3 in https://github.com/biomejs/biome/pull/12512
  339. * feat(lint): add useVueVModel by @dyc3 in https://github.com/biomejs/biome/pull/12653
  340. * feat(lint): add useVueValidDefineEmits by @dyc3 in https://github.com/biomejs/biome/pull/12591
  341. * feat(lint): add noVueDeprecatedRouterLinkTagProp by @dyc3 in https://github.com/biomejs/biome/pull/12648
  342. * chore: move myself to core by @Netail in https://github.com/biomejs/biome/pull/12713
  343. * feat(lint): add useVueDefineOptions by @dyc3 in https://github.com/biomejs/biome/pull/12615
  344. * feat(lint): add noVueMutatingProps by @dyc3 in https://github.com/biomejs/biome/pull/12513
  345. * feat(lint): add noVueDeprecatedScopeAttribute by @dyc3 in https://github.com/biomejs/biome/pull/12631
  346. * feat(lint): add noVueMultipleSlotArgs by @dyc3 in https://github.com/biomejs/biome/pull/12562
  347. * fix(cli): use jemalloc on x86_64 musl by @NikitaCOEUR in https://github.com/biomejs/biome/pull/12692
  348. * feat(lint): add noVueComputedPropertiesInData by @dyc3 in https://github.com/biomejs/biome/pull/12554
  349. * refactor: source text as input by @ematipico in https://github.com/biomejs/biome/pull/12501
  350. * refactor(core): scanner epoch and LRU eviction by @ematipico in https://github.com/biomejs/biome/pull/12694
  351. * perf(rowan): read node text from the green tree by @dyc3 in https://github.com/biomejs/biome/pull/12723
  352. * fix(parse/html/vue): parse `v-for` binding default values by @dyc3 in https://github.com/biomejs/biome/pull/12702
  353. * chore: fix advisory by @dyc3 in https://github.com/biomejs/biome/pull/12730
  354. * perf(rowan): iterate SyntaxKindSet by scanning set bits by @dyc3 in https://github.com/biomejs/biome/pull/12719
  355. * perf(rowan): resolve syntax node pointers through the green tree and near a known node by @dyc3 in https://github.com/biomejs/biome/pull/12722
  356. * feat(lint): add noVueUnusedRefs by @dyc3 in https://github.com/biomejs/biome/pull/12603
  357. * feat(lint): add noVueDeprecatedDeleteSet by @dyc3 in https://github.com/biomejs/biome/pull/12586
  358. * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/12647
  359. ## New Contributors
  360. * @MindTooth made their first contribution in https://github.com/biomejs/biome/pull/12664
  361. * @xucian made their first contribution in https://github.com/biomejs/biome/pull/12607
  362. * @kurovskyiii made their first contribution in https://github.com/biomejs/biome/pull/12652
  363. * @NikitaCOEUR made their first contribution in https://github.com/biomejs/biome/pull/12692
  364. **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/biome@2.6.3...@biomejs/biome@2.6.4

ver en githubdetected 2026-10-29 vía npm