fix(deps): update all dependencies #3

Open
kjuulh wants to merge 1 commits from renovate/all into main
Owner

This PR contains the following updates:

Package Type Update Change
nan dependencies minor 2.17.0 -> 2.22.0
prettier (source) devDependencies major ^2.8.8 -> ^3.0.0
tree-sitter (source) dependencies minor ~0.20.10 -> ~0.24.0
tree-sitter-cli devDependencies minor ^0.20.8 -> ^0.24.0
tree-sitter-json dependencies minor ^0.20.0 -> ^0.24.0

Release Notes

nodejs/nan (nan)

v2.22.0

Compare Source

  • Feature: replace SetAccessor -> SetNativeDataProperty (#​977) 6bd62c9

v2.21.0

Compare Source

v2.20.0

Compare Source

v2.19.0

Compare Source

v2.18.0

Compare Source

  • Feature: Cast v8::Object::GetInternalField() return value to v8::Value (#​956) bdfee17
prettier/prettier (prettier)

v3.4.2

Compare Source

diff

Treat U+30A0 & U+30FB in Katakana Block as CJK (#​16796 by @​tats-u)

Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese.

<!-- Input (--prose-wrap=never) -->

C言
語
・
C++
・
Go
・
Rust

<!-- Prettier 3.4.1 -->
C言語・ C++ ・ Go ・ Rust

<!-- Prettier 3.4.2 -->
C言語・C++・Go・Rust

U+30A0 can be used as the replacement of the - in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”).

Fix comments print on class methods with decorators (#​16891 by @​fisker)
// Input
class A {
  @&#8203;decorator
  /** 
   * The method description
   *
  */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.1
class A {
  @&#8203;decorator
  async /**
   * The method description
   *
   */
  method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}

// Prettier 3.4.2
class A {
  @&#8203;decorator
  /**
   * The method description
   *
   */
  async method(foo: Foo, bar: Bar) {
    console.log(foo);
  }
}
Fix non-idempotent formatting (#​16899 by @​seiyab)

This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3.

// Input
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.1 (first)
<div>
  foo
  <span>
    longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo
  </span>, abc
</div>;

// Prettier 3.4.1 (second)
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

// Prettier 3.4.2
<div>
  foo
  <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span>
  , abc
</div>;

v3.4.1

Compare Source

diff

Remove unnecessary parentheses around assignment in v-on (#​16887 by @​fisker)
<!-- Input -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>

<!-- Prettier 3.4.0 -->
<template>
  <button @&#8203;click="(foo += 2)">Click</button>
</template>

<!-- Prettier 3.4.1 -->
<template>
  <button @&#8203;click="foo += 2">Click</button>
</template>

v3.4.0

Compare Source

diff

🔗 Release Notes

v3.3.3

Compare Source

diff

Add parentheses for nullish coalescing in ternary (#​16391 by @​cdignam-segment)

This change adds clarity to operator precedence.

// Input
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;

// Prettier 3.3.2
foo ? bar ?? foo : baz;
foo ?? bar ? a : b;
a ? b : foo ?? bar;

// Prettier 3.3.3
foo ? (bar ?? foo) : baz;
(foo ?? bar) ? a : b;
a ? b : (foo ?? bar);
Add parentheses for decorator expressions (#​16458 by @​y-schneider)

Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5.

// Input
@&#8203;(foo`tagged template`)
class X {}

// Prettier 3.3.2
@&#8203;foo`tagged template`
class X {}

// Prettier 3.3.3
@&#8203;(foo`tagged template`)
class X {}
Support @let declaration syntax (#​16474 by @​sosukesuzuki)

Adds support for Angular v18 @let declaration syntax.

Please see the following code example. The @let declaration allows you to define local variables within the template:

@&#8203;let name = 'Frodo';

<h1>Dashboard for {{name}}</h1>
Hello, {{name}}

For more details, please refer to the excellent blog post by the Angular Team: Introducing @​let in Angular.

We also appreciate the Angular Team for kindly answering our questions to implement this feature.

v3.3.2

Compare Source

diff

Fix handlebars path expressions starts with @ (#​16358 by @​Princeyadav05)
{{! Input }}
<div>{{@&#8203;x.y.z}}</div>

{{! Prettier 3.3.1 }}
<div>{{@&#8203;x}}</div>

{{! Prettier 3.3.2 }}
<div>{{@&#8203;x.y.z}}</div>

v3.3.1

Compare Source

diff

Preserve empty lines in front matter (#​16347 by @​fisker)
<!-- Input -->
---
foo:
  - bar1

  - bar2

  - bar3
---
Markdown

<!-- Prettier 3.3.0 -->

---
foo:
  - bar1
  - bar2
  - bar3
---

Markdown

<!-- Prettier 3.3.1 -->
---
foo:
  - bar1

  - bar2

  - bar3
---

Markdown
Preserve explicit language in front matter (#​16348 by @​fisker)
<!-- Input -->
---yaml
title: Hello
slug: home
---

<!-- Prettier 3.3.0 -->
---
title: Hello
slug: home
---

<!-- Prettier 3.3.1 -->
---yaml
title: Hello
slug: home
---
Avoid line breaks in import attributes (#​16349 by @​fisker)
// Input
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };

// Prettier 3.3.0
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type:
  "json" };

// Prettier 3.3.1
import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" };

v3.3.0

Compare Source

diff

🔗 Release Notes

v3.2.5

Compare Source

diff

Support Angular inline styles as single template literal (#​15968 by @​sosukesuzuki)

Angular v17 supports single string inline styles.

// Input
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `h1 { color: blue; }`,
})
export class AppComponent {}

// Prettier 3.2.4
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `h1 { color: blue; }`,
})
export class AppComponent {}

// Prettier 3.2.5
@&#8203;Component({
  template: `<div>...</div>`,
  styles: `
    h1 {
      color: blue;
    }
  `,
})
export class AppComponent {}

Unexpected embedded formatting for Angular template (#​15969 by @​JounQin)

Computed template should not be considered as Angular component template

// Input
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{       hello }}</h1>`,
})
export class AppComponent {}

// Prettier 3.2.4
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{ hello }}</h1>`,
})
export class AppComponent {}

// Prettier 3.2.5
const template = "foobar";

@&#8203;Component({
  [template]: `<h1>{{       hello }}</h1>`,
})
export class AppComponent {}
Use "json" parser for tsconfig.json by default (#​16012 by @​sosukesuzuki)

In v3.2.0, we introduced "jsonc" parser which adds trailing comma by default.

When adding a new parser we also define how it will be used based on the linguist-languages data.

tsconfig.json is a special file used by TypeScript, it uses .json file extension, but it actually uses the JSON with Comments syntax. However, we found that there are many third-party tools not recognize it correctly because of the confusing .json file extension.

We decide to treat it as a JSON file for now to avoid the extra configuration step.

To keep using the "jsonc" parser for your tsconfig.json files, add the following to your .prettierrc file

{
  "overrides": [
    {
      "files": ["tsconfig.json", "jsconfig.json"],
      "options": {
        "parser": "jsonc"
      }
    }
  ]
}

v3.2.4

Compare Source

prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "jsonc" }

v3.2.3

Compare Source

diff

Throw errors for invalid code (#​15881 by @​fisker, @​Josh-Cena, @​auvred)
// Input
1++;

// Prettier 3.2.2
1++;

// Prettier 3.2.3
SyntaxError: Invalid left-hand side expression in unary operation (1:1)
> 1 | 1++;
    | ^
// Input
try {} catch (error = 1){}

// Prettier 3.2.2
try {
} catch (error) {}

// Prettier 3.2.3
SyntaxError: Catch clause variable cannot have an initializer. (1:23)
> 1 | try {} catch (error = 1){}
    |                       ^
Fix parser inference (#​15927 by @​fisker)
// Prettier 3.2.2
prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "json" }

// Prettier 3.2.3
prettier --file-info tsconfig.json
{ "ignored": false, "inferredParser": "jsonc" }

v3.2.2

Compare Source

diff

Fix crash when parsing template literal CSS in a JSX style tag using a spread attribute (#​15896 by @​eelco)

For example this code would crash before:

<style {...spread}>{`.{}`}</style>
Fix formatting error on optional call expression and member chain (#​15920 by @​sosukesuzuki)
// Input
a(() => {}, c?.d());

// Prettier 3.2.1
TypeError: Cannot read properties of undefined (reading 'type')

// Prettier 3.2.2
a(() => {}, c?.d());

v3.2.1

Compare Source

diff

Fix formatting error on member chain (#​15915 by @​sosukesuzuki)
// Input
test().test2().test2(thing?.something);

// Prettier 3.2.0
TypeError: Cannot read properties of undefined (reading 'type')

// Prettier 3.2.1
test().test2().test2(thing?.something);

v3.2.0

Compare Source

diff

🔗 Release Notes

v3.1.1

Compare Source

diff

Fix config file search (#​15363 by @​fisker)

Previously, we start search for config files from the filePath as a directory, if it happened to be a directory and contains config file, it will be used by mistake.

├─ .prettierrc
└─ test.js         (A directory)
  └─ .prettierrc
// Prettier 3.1.0
await prettier.resolveConfigFile(new URL("./test.js", import.meta.url));
// <CWD>/test.js/.prettierrc

// Prettier 3.1.1
await prettier.resolveConfigFile(new URL("./test.js", import.meta.url));
// <CWD>/.prettierrc

Since Prettier v3, we stopped following symbolic links, however in some use cases, the symbolic link patterns can't be filtered out, and there is no way to prevent Prettier from throwing errors.

In Prettier 3.1.1, you can use --no-error-on-unmatched-pattern to simply skip symbolic links.

Consistently use tabs in ternaries when useTabs is true (#​15662 by @​auvred)
// Input
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
	  ? ddddddddddddddd
	  : eeeeeeeeeeeeeee
	    ? fffffffffffffff
	    : gggggggggggggggg;

// Prettier 3.1.0
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
	  ? ddddddddddddddd
	  : eeeeeeeeeeeeeee
	    ? fffffffffffffff
	    : gggggggggggggggg;

// Prettier 3.1.1
aaaaaaaaaaaaaaa
	? bbbbbbbbbbbbbbbbbb
	: ccccccccccccccc
		? ddddddddddddddd
		: eeeeeeeeeeeeeee
			? fffffffffffffff
			: gggggggggggggggg;
Improve config file search (#​15663 by @​fisker)

The Prettier config file search performance has been improved by more effective cache strategy.

Fix unstable and ugly formatting for comments in destructuring patterns (#​15708 by @​sosukesuzuki)
// Input
const {
  foo,
  // bar
  // baz
}: Foo = expr;

// Prettier 3.1.0
const {
  foo1,
} // bar
// baz
: Foo = expr;

// Prettier 3.1.0 second output
const {
  foo1, // bar
} // baz
: Foo = expr;

// Prettier 3.1.1
const {
  foo1,
  // bar
  // baz
}: Foo = expr;
Support "Import Attributes" (#​15718 by @​fisker)

TypeScript 5.3 supports the latest updates to the import attributes proposal.

import something from "./something.json" with { type: "json" };
Fix false claim in docs that cursorOffset is incompatible with rangeStart/rangeEnd (#​15750 by @​ExplodingCabbage)

The cursorOffset option has in fact been compatible with rangeStart/rangeEnd for over 5 years, thanks to work by @​ds300. However, Prettier's documentation (including the CLI --help text) continued to claim otherwise, falsely. The documentation is now fixed.

Keep curly braces and from keyword in empty import statements (#​15756 by @​fisker)
// Input
import { } from 'foo';
import { /* comment */ } from 'bar';

// Prettier 3.1.0
import {} from "foo";
import /* comment */ "bar";

// Prettier 3.1.1
import {} from "foo";
import {} from /* comment */ "bar";
Keep empty import attributes and assertions (#​15757 by @​fisker)
// Input
import foo from "foo" with {};
import bar from "bar" assert {};

// Prettier 3.1.0
import foo from "foo";
import bar from "bar";

// Prettier 3.1.1
import foo from "foo" with {};
import bar from "bar" assert {};

v3.1.0

Compare Source

diff

🔗 Release Notes

v3.0.3

Compare Source

diff

Add preferUnplugged: true to package.json (#​15169 by @​fisker and @​so1ve)

Prettier v3 uses dynamic imports, user will need to unplug Prettier when Yarn's PnP mode is enabled, add preferUnplugged: true to package.json, so Yarn will install Prettier as unplug by default.

Support shared config that forbids require() (#​15233 by @​fisker)

If an external shared config package is used, and the package exports don't have require or default export.

In Prettier 3.0.2 Prettier fails when attempt to require() the package, and throws an error.

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in <packageName>/package.json
Allow argument of require() to break (#​15256 by @​fisker)
// Input
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, "../standalone.js")
    : path.join(__dirname, "..")
);

// Prettier 3.0.2
const plugin = require(global.STANDALONE
  ? path.join(__dirname, "../standalone.js")
  : path.join(__dirname, ".."));

// Prettier 3.0.3
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, "../standalone.js")
    : path.join(__dirname, "..")
);
Do not print trailing commas in arrow function type parameter lists in ts code blocks (#​15286 by @​sosukesuzuki)
<!-- Input -->
```ts
const foo = <T>() => {}
```

<!-- Prettier 3.0.2 -->
```ts
const foo = <T,>() => {}
```

<!-- Prettier 3.0.3 -->
```ts
const foo = <T>() => {}
```
Support TypeScript 5.2 using / await using declaration (#​15321 by @​sosukesuzuki)

Support for the upcoming Explicit Resource Management feature in ECMAScript. using / await using declaration

{
   using foo = new Foo();
   await using bar = new Bar();
}

v3.0.2

Compare Source

diff

Break after = of assignment if RHS is poorly breakable AwaitExpression or YieldExpression (#​15204 by @​seiyab)
// Input
const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData);

// Prettier 3.0.1
const { section, rubric, authors, tags } = await utils.upsertCommonData(
  mainData,
);

// Prettier 3.0.2
const { section, rubric, authors, tags } =
  await utils.upsertCommonData(mainData);
Do not add trailing comma for grouped scss comments (#​15217 by @​auvred)
/* Input */
$foo: (
	'property': (),
	// comment 1
	// comment 2
)

/* Prettier 3.0.1 */
$foo: (
  "property": (),
  // comment 1
  // comment 2,
);

/* Prettier 3.0.2 */
$foo: (
  "property": (),
  // comment 1
  // comment 2
);
Print declare and export keywords for nested namespace (#​15249 by @​sosukesuzuki)
// Input
declare namespace abc1.def {}
export namespace abc2.def {}

// Prettier 3.0.1
namespace abc1.def {}
namespace abc2.def {}

// Prettier 3.0.2
declare namespace abc1.def {}
export namespace abc2.def {}

v3.0.1

Compare Source

diff

Fix cursor positioning for a special case (#​14812 by @​fisker)
// <|> is the cursor position

/* Input */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns "node {this_file}".
import {<|>  } from "fs"

/* Prettier 3.0.0 */
// All messages are represented in JSON.
// So, the prettier.py <|>controls a subprocess which spawns "node {this_file}".
import {} from "fs"

/* Prettier 3.0.1 */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns "node {this_file}".
import {<|>} from "fs"
Fix plugins/estree.d.ts to make it a module (#​15018 by @​kingyue737)

Add export {} in plugins/estree.d.ts to fix the "File is not a module" error

Add parenthesis around leading multiline comment in return statement (#​15037 by @​auvred)
// Input
function fn() {
  return (
    /**
     * @&#8203;type {...}
     */ expression
  )
}

// Prettier 3.0.0
function fn() {
  return /**
   * @&#8203;type {...}
   */ expression;
}

// Prettier 3.0.1
function fn() {
  return (
    /**
     * @&#8203;type {...}
     */ expression
  );
}
Add support for Vue "Generic Components" (#​15066 by @​auvred)

https://blog.vuejs.org/posts/vue-3-3#generic-components

<!-- Input -->
<script setup lang="ts" generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"></script>

<!-- Prettier 3.0.0 -->
<script
  setup
  lang="ts"
  generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"
></script>

<!-- Prettier 3.0.1 -->
<script
  setup
  lang="ts"
  generic="
    T extends Type1 & Type2 & (Type3 | Type4),
    U extends string | number | boolean
  "
></script>
Fix comments print in IfStatement (#​15076 by @​fisker)
function a(b) {
  if (b) return 1; // comment
  else return 2;
}

/* Prettier 3.0.0 */
Error: Comment "comment" was not printed. Please report this error!

/* Prettier 3.0.1 */
function a(b) {
  if (b) return 1; // comment
  else return 2;
}
Add missing type definition for printer.preprocess (#​15123 by @​so1ve)
export interface Printer<T = any> {
  // ...
+ preprocess?:
+   | ((ast: T, options: ParserOptions<T>) => T | Promise<T>)
+   | undefined;
}
Add missing getVisitorKeys method type definition for Printer (#​15125 by @​auvred)
const printer: Printer = {
  print: () => [],
  getVisitorKeys(node, nonTraversableKeys) {
    return ["body"];
  },
};
Add typing to support readonly array properties of AST Node (#​15127 by @​auvred)
// Input
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");

// Prettier 3.0.0
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");
//                  ^ Argument of type '"readonlyArray"' is not assignable to parameter of type '"regularArray"'. ts(2345)

// Prettier 3.0.1
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");
Add space before unary minus followed by a function call (#​15129 by @​pamelalozano)
// Input
div {
  margin: - func();
}

// Prettier 3.0.0
div {
  margin: -func();
}

// Prettier 3.0.1
div {
  margin: - func();
}

v3.0.0

Compare Source

diff

🔗 Release Notes

tree-sitter/tree-sitter (tree-sitter)

v0.24.5

Compare Source

[0.24.5] - 2024-12-11
Features
  • Move scripts to xtasks
Bug Fixes
  • Compiler warning
  • Sync cmake with master
  • lib: Correct next sibling of zero width node
  • lib: Use clock_gettime on macOS again
  • lib: Handle compiler warnings
Build System and CI
  • Configure clippy lints at the workspace level
  • Tune compiler warnings
  • Major overhaul
  • Treat incompatible pointer warning as error
  • Build lib with wasmtime
  • Fix minor issues
  • cmake: Link wasmtime dependencies
Other
  • Remove unnecessary fuzz and profile helpers

v0.24.4

Compare Source

[0.24.4] - 2024-11-10
Features
  • loader: Add language_for_configuration
  • loader: Add error message when a tree-sitter.json file is invalid
  • node: Support single-file executables via bun build --compile
  • node: Update bindings when necessary
Bug Fixes
  • Return LanguageRef in Parser::language
  • bindings: Update CMakeLists.txt file
  • cli: Pass all fields to tree-sitter.json in init
  • cli: Use contains over is in warning
  • cmake: Use current source dir for EXISTS check
  • generate: Do not set the unit reduction symbol if it's in the extras array
  • init: Use current path if unspecified
  • init: Use camel name from config in missing spots
  • lib: Simplify edge cases with zero-width tokens
  • lib: Correctly fetch the node name in query errors
  • loader: Don't print warnings if the file is not found
Performance
  • loader: Improve language lookup speed
Build System and CI
  • bindings: Rename cmake test target
Other
  • Memory errors in wasm_store

v0.24.3

Compare Source

[0.24.3] - 2024-10-09
Bug Fixes
  • lib: Correct unexpected side effect in get_column when the lexer is at EOF
Build System and CI
  • Fix incorrect variable checks
  • deps: Bump wasmtime to v25.0.2

v0.24.2

Compare Source

[0.24.2] - 2024-10-06
Features
  • Drop legacy binding updates
Bug Fixes
  • templates: Properly replace author email
Build System and CI
  • bindings: Improve cmake file
  • cmake: Support amalgamated build
  • cmake: Correct library scopes
  • make: Fix tree-sitter.pc generation (#​3745)
Other
  • templates: Update npm packages

v0.24.1

Compare Source

[0.24.1] - 2024-10-04
Bug Fixes
  • generate: Move generated header files into the generate crate

v0.24.0

Compare Source

[0.24.0] - 2024-10-04
Breaking
  • Remove C++ support for external scanners (#​3602)
  • Remove filter flag from commands in favor of include and exclude (#​3604)
  • Remove the build-wasm subcommand (#​3605)
  • Move generation of grammar files to an init command (#​3694)
  • Implement StreamingIterator instead of Iterator for QueryMatches and QueryCaptures (#​3504)
  • generate: Remove unused rules (#​3722)
  • lib: Treat nodes' end ranges exclusively in goto_first_child_for_{byte,point} (#​3263)
Features
  • Add an API to time out query executions (#​3559)
  • Add field_name_for_named_child (#​3614)
  • Add root field in node-types.json (#​3615)
  • Add eslint configuration package (#​3666)
  • Provide a rebuild flag to force rebuild parsers (#​3672)
  • Add shell completions (#​3675)
  • Move generate logic to its own crate (#​3689)
  • Add --overview-only to test subcommand (#​3501)
  • Move tree-sitter configuration to dedicated file (#​3700) (#​3700)
  • api: Expose function to check if symbol represents a supertype (#​3616)
  • bindings: Bump go-tree-sitter version (#​3564)
  • cli: Add a no-ranges flag to the parse command (#​3687)
  • generate: Bump tree-sitter dev dependency to 0.23 (#​3563)
  • generate: Add a no-op --no-bindings flag
  • init: Add an update flag (#​3698)
  • language: Derive Clone and Copy on LanguageFn (#​3585)
  • schema: Misc improvements (#​3681)
  • test: Test all queries
Bug Fixes
  • Correct comment quote (#​3630)
  • Properly handle utf8 code points for highlight and tag assertions (#​3610)
  • Do not generate spurious files if the grammar path is not the default path (#​3677)
  • Disallow empty string literals in rules (#​3679)
  • Correct test name parsing when the prior test has equal signs (#​3704)
  • Handle more cases of editing subtrees that depend on column values (#​3257)
  • Exclude APIs that dup given file descriptors from WASI builds (#​3475)
  • Deprecate child_containing_descendant and add child_with_descendant instead (#​3708)
  • binding_web: Correct edit signature (#​3599)
  • binding_web: Remove nonexistent function definition (#​3612)
  • bindings: Use RUST_BINDING_VERSION in Cargo.toml template
  • bindings: Lower go version to 1.22 (#​3711)
  • build: Correct wasm root path lookup (#​3723)
  • build: Force rebuild parsers when build is invoked (#​3729)
  • cli: Remove conflicting short flags in the fuzz subcommand (#​3562)
  • cli: Keep skipped tests unchanged in the test/corpus (#​3590)
  • cli: Remove duplicate short options from fuzz command (#​3635) (#​3635)
  • cli: Generate the parser version from the config as well
  • docs: Fix highlight readme example using compatible versions (#​3573)
  • fuzz: Skip tests marked with :skip & don't report errors on tests marked with :error (#​3640)
  • generate: Remove necessary files from gitignore template (#​3561)
  • generate: Disallow inline variables referencing themselves (#​3569)
  • generate: Add tree-sitter to the dev-dependencies of the Cargo.toml (#​3597)
  • generate: Do not generate large character sets for unused variables (#​3606)
  • generate: Remove excludes in Package.swift (#​3631)
  • generate: Add *.scm section to .editorconfig template (#​3724)
  • generate: Filter out unused rules in other spots (#​3726)
  • init: Fix some schema issues
  • init: Don't prompt to reconfigure (#​3713)
  • init: Do not migrate package.json on error (#​3718)
  • lib: Correct extra node creation from non-zero root-alias cursors (#​3568)
  • lib: Backtrack to the last relevant iterator if no child was found (#​3570)
  • lib: Peek at the next sibling when iterating to find the child that contains a given descendant (#​3566)
  • lib: Correct descendant-for-range behavior with zero-width tokens (#​3688)
  • lib: Silence warnings with -Wpedantic (#​3691)
  • lib: Ensure an unfinished state was found before removing it (#​3727)
  • rust: Add missing TSNode functions (#​3571)
  • test: Exit with an error if a test marked with :error has no error
  • test: Retain attributes when running test -u (#​3572)
  • test: Correctly handle assertions on empty lines (#​3674)
  • wasm: Use / paths for workdir (#​3658)
Documentation
  • Add Kotlin to the playground (#​3560)
  • changelog: Add 0.23.0 release notes (#​3565)
Refactor
  • Improve the grammar schema
  • cli: Break out subcommand logic into separate functions (#​3676)
Build System and CI
  • Add backport workflow (#​3575)
  • Bump deps (#​3696)
  • Bump language to 0.1.1 (#​3730)
  • bindings: Add CMakeLists.txt file (#​3608)
  • cmake: Link wasmtime dependencies (#​3717)
  • deps: Bump the cargo group across 1 directory with 11 updates (#​3644)
  • deps: Bump the cargo group with 3 updates (#​3671)
  • lib: Build using cmake (#​3541)
  • make: Support darwin cross-compile (#​3641)
  • xtask: Bump cmake version in bump-version
  • xtask: Only consider major and minor versions when validating the current version
  • xtask: Ignore the language crate
Other
  • Remove compile_flags.txt (#​3667)
  • Update generate crate paths (#​3697)
  • bindings: Update rust lib docs (#​3621)
  • lib: Add parameter names in declarations that are missing them (#​3692)
  • tests: Do not use .as_bytes().len() on strings (#​3664)

v0.23.2

Compare Source

[0.23.2] - 2024-10-01

This release only corrected the version in a crate so publishing wouldn't fail.

v0.23.0

Compare Source

[0.23.0] - 2024-08-26

Breaking
  • Introduce tree-sitter-language crate for grammar crates to depend on (#​3069)
  • Revert interning of a sequence or choice of a single rule (#​3548)
  • bindings: Use capsules in python (#​3384)
  • dsl: Support other JS runtimes (#​3355)
Features
  • Add fuzz subcommand (#​3385)
  • Allow external scanners to use the logger (#​3204)
  • bindings: Add query constants to python
  • bindings: Add node, python, swift tests (#​3178)
  • bindings: Update npm scripts (#​3210)
  • cli: Bump unicode data to v15.1.0
  • cli: Add debug build flag (#​3279)
  • cli: Attach helpful context when grammar.json cannot be found (#​3405)
  • cli: Add --show-fields flag to test command (#​3502)
  • lib: Add ts_query_end_byte_for_pattern (#​3451)
  • lib: Support no_std
  • zig: Update outdated path syntax (#​3383)
Bug Fixes
  • Always reset to the first language when iterating over language attributes (#​3375)
  • Better error when a supertype rule is invalid (#​3400)
  • Intern a sequence or choice of a single element the same as the element itself
  • Do not "absorb" rules that consist of a single terminal if the rule is hidden (#​2577)
  • bindings: Update go bindings (#​3544)
  • cli: Installation via authenticated proxy (#​3414)
  • cli: Dedup preceding_auxiliary_symbols (#​3550)
  • dsl: Improve error message when a rule function returns undefined (#​3452)
  • generate: Rename cargo.toml template (#​3532)
  • go: Update parser name in binding files, add to docs (#​3547)
  • lib: A null clock must have tv_nsec be 0 as well (#​3372)
  • lib: Restrict pattern_map optimization when a wildcard step has an immediate first child (#​3440)
  • lib: An empty root node should not precede an empty range (#​3450)
  • lib: Fix api header C++ interop (#​3534)
  • make: Fail properly on Windows (#​3418)
  • rust: Fetch CARGO_MANIFEST_DIR at runtime in build script (#​3352)
  • rust: Fix new clippy warnings (#​3491)
  • test: Multi-grammar corpus tests are now in the repo root (#​3342)
  • wasm: Update test
Performance
  • Hoist out common subexpressions in satisfies_text_predicates (#​3397)
Documentation
  • Update changelog
  • Remove duplicate pr # in changelog
  • Add note for bullet
  • Fix syntax highlighting unit testing example (#​3434)
  • Add tsserver annotation to example (#​3460)
  • Fix tree cursor documentation (#​3324)
  • Document rust library features (#​3395)
  • Clean up binding & parser lists (#​3443)
Refactor
  • Remove ansi_term dependency (#​3387)
  • Remove difference dependency (#​3388)
  • scripts: Clean up bash scripts (#​3231)
Testing
Build System and CI
  • deps: bump wasmtime, cc, and wasmparser (#​3529
  • bindings: Use language version in soname (#​3308)
  • lib: Include the minor in the soname
  • loader: Make dependencies optional (#​1638)
  • swift: Declare header search path (#​3474)
  • wasm: Don't minify JS (#​3380)
  • wasm: Bump emscripten to 3.1.64 (#​3497)
  • wasm: Support big endian machines (#​3492)
  • zig: Git ignore updated Zig cache directory (#​3408)
Other
  • Swap sprintf() for snprintf() (#​3430)
  • Add .build to gitignore (#​3498)
  • Reset language when resetting wasm store (#​3495)
  • Clone wasm store engine (#​3542)
  • bindings: Fix indent & line endings (#​3284)

v0.22.6

Compare Source

[0.22.6] — 2024-05-05

Features
  • Improve handling of serialization buffer overflows (#​3318)
  • Reverse iteration through node parents (#​3214)
  • cli: Support NO_COLOR (#​3299)
  • cli: Add test listing and allow users to parse a specific test number (#​3067)
  • grammar: Add "inherits" field if available (#​3295)
Bug Fixes
  • Correctly load field data from wasm languages
  • Improve error message when the tree-sitter field is malformed
  • Don't error out on package.json lookup errors if --no-bindings is passed (#​3323)
  • cli: Keep default cc flags in build
  • cli: Properly account for multi-grammar repos when using docker to build a wasm parser (#​3337)
  • generate: Don't check arbitrarily named dirs
  • generate: Take AsRef<Path> for the path parameter to avoid clones (#​3322)
  • highlight: Correct signature of ts_highlighter_add_language
  • lib: Do not return field names for extras (#​3330)
  • lib: Advance the lookahead end byte by 4 when there's an invalid code point (#​3305)
  • rust: Update README example (#​3307)
  • rust: Use unix + wasi cfg instead of not windows for fd (#​3304)
  • test: Allow newlines in between test name and attribute
  • wasm: Correct childrenFromFieldXXX method signatures (#​3301)
  • xtask: Always bump every crate in tandem
  • zig: Make usable as a zig dependency (#​3315)
Documentation
  • Mention build command variables
  • Swap \s for \\s in query example
  • highlight: Typo (#​3290)
Refactor
  • tests: Migrate remaining grammar.json tests to grammar.js (#​3325)
Build System and CI
  • Add nightly rustfmt to workflow for linting (#​3333)
  • Fix address sanitizer step (#​3188)
  • deps: Bump cc from 1.0.92 to 1.0.94 in the cargo group (#​3298)
  • deps: Bump the cargo group with 6 updates (#​3313)
  • xtask: Bump build.zig.zon version when bumping versions

v0.22.5

Compare Source

[0.22.5] — 2024-04-14

Bug Fixes
  • Avoid generating unused character set constants
  • cli: Test parsing on windows (#​3289)
  • rust: Compilation on wasm32-wasi (#​3293)

v0.22.4

Compare Source

[0.22.4] — 2024-04-12

Bug Fixes
  • Fix sorting of transitions within a lex state
  • Include 2-character ranges in array-based state transitions
Build System and CI
  • Always bump at least the patch version in bump xtask

v0.22.3

Compare Source

[0.22.3] — 2024-04-12
Features
  • Add strncat to wasm stdlib
  • Generate simpler code for matching large character sets (#​3234)
  • When loading languages via WASM, gracefully handle memory errors and leaks in external scanners (#​3181)
Bug Fixes
  • bindings: Add utf-8 flag to python & node (#​3278)
  • bindings: Generate parser.c if missing (#​3277)
  • bindings: Remove required platforms for swift (#​3264)
  • cli: Fix mismatched parenthesis when accounting for && (#​3274)
  • lib: Do not consider childless nodes for ts_node_parent (#​3191)
  • lib: Properly account for aliased root nodes and root nodes with
    children in ts_subtree_string (#​3191)
  • lib: Account for the root node of a tree cursor being an alias (#​3191)
  • lib: Use correct format specifier in log message (#​3255)
  • parser: Fix variadic macro (#​3229)
  • render: Proper function prototypes (#​3277)
  • windows: Add /utf-8 flag for parsers using unicode symbols (#​3223)
  • Add a semicolon after SKIP macros (#​3264)
  • Add back build-wasm temporarily (#​3203)
  • Add lifetime to matches function (#​3254)
  • Default output directory for build --wasm should use current_dir (#​3203)
  • Fix sorting of wasm stdlib symbols
  • Insert "tree-sitter" section in current directory's package.json if it exists (#​3224)
  • Tie the lifetime of the cursor to the query in QueryCursor::captures() (#​3266)
  • Wrong flag check in build.rs
Performance
  • cli: Reduced the compile time of generated parsers by generating C code with fewer conditionals (#​3234)
Documentation
  • Add NGINX grammar
Refactor
  • parser: Make REDUCE macro non-variadic (#​3280)
  • js: Misc fixes & tidying
  • rust: Misc fixes & tidying
Testing
  • Add regression test for node parent + string bug (#​3191)
  • test: Allow colons in test names (#​3264)
Build System and CI
  • Upgrade wasmtime
  • Update emscripten version (#​3272)
  • dependabot: Improve PR labels (#​3282)

v0.22.2

Compare Source

[0.22.2] — 2024-03-17
Breaking
  • cli: Add a separate build command to compile parsers
Features
  • bindings/rust: Expose Parser::included_ranges
  • Lower the lib's MSRV (#​3169)
  • lib: Implement Display for Node (#​3177)
Bug Fixes
  • bindings/wasm: Fix Parser.getIncludedRanges() (#​3164)
  • lib: Makefile installation on macOS (#​3167)
  • lib: Makefile installation (#​3173)
  • lib: Avoid possible UB of calling memset on a null ptr when 0 is passed into array_grow_by (#​3176)
  • lib: Allow hiding symbols (#​3180)
Documentation
Refactor
  • Remove dependency on which crate (#​3172)
  • Turbofish styling
Testing
Build System and CI
  • Simplify workflows (#​3002)
  • lib: Allow overriding CFLAGS on the commandline (#​3159)

v0.22.1

Compare Source

Changelog
[0.22.1] — 2024-03-10
Bug Fixes
  • Cli build script behavior on release

v0.22.0

Compare Source

Changelog
[0.22.0] — 2024-03-10
Breaking
  • Remove top-level corpus dir for tests
    The cli will now only look in test/corpus for tests
  • Remove redundant escape regex & curly brace regex preprocessing (#​2838)
  • bindings: Convert node bindings to NAPI (#​3077)
  • wasm: Make current*, is*, and has* methods properties (#​3103)
  • wasm: Keep API in-line with upstream and start aligning with node (#​3149)
Features
  • Add xtasks to assist with bumping crates (#​3065)
  • Improve language bindings (#​2438)
  • Expose the allocator and array header files for external scanners (#​3063)
  • Add typings for the node bindings
  • Replace nan with node-addon-api and conditionally print logs
  • bindings: Add more make targets
  • bindings: Add peerDependencies for npm
  • bindings: Add prebuildify to node
  • bindings: Remove dsl types file (#​3126)
  • node: Type tag the language (#​3109)
  • test: Add attributes for corpus tests
Bug Fixes
  • Apply some scan-build suggestions (unused assignment/garbage access) (#​3056)
  • Wrap || comparison in parentheses when && is used (#​3070)
  • Ignore unused variables in the array macros (#​3083)
  • binding.cc overwrite should replace PARSER_NAME (#​3116)
  • Don't use __declspec(dllexport) on windows (#​3128)
  • Parsers should export the language function on windows
  • Allow the regex v flag (#​3154)
  • assertions: Case shouldn't matter for comment node detection
  • bindings: Editorconfig and setup.py fixes (#​3082)
  • bindings: Insert types after main if it exists (#​3122)
  • bindings: Fix template oversights (#​3155)
  • cli: Only output the sources with --no-bindings (#​3123)
  • generate: Add .npmignore, populate Swift's exclude list (#​3085)
  • generate: Extern allocator functions for the template don't need to be "exported" (#​3132)
  • generate: Camel case name in Cargo.toml description (#​3140)
  • lib: Include api.h so ts_set_allocator is visible (#​3092)
Documentation
  • Add GitHub user and PR info to the changelog
  • Add css for inline code (#​2844)
  • Document test attributes
  • Add Ohm language parser
  • Remove duplicate the's (#​3120)
  • Add discord and matrix badges (#​3148)
Refactor
  • Rename TS_REUSE_ALLOCATOR flag (#​3088)
  • Remove extern/const where possible
  • array: Use pragma GCC in clang too
  • bindings: Remove npmignore (#​3089)
Testing
  • Don't use TS_REUSE_ALLOCATOR on Darwin systems (#​3087)
  • Add test case for parse stack merging with incorrect error cost bug (#​3098)
Build System and CI
  • Improve changelog settings (#​3064)
  • Unify crate versions via workspace (#​3074)
  • Update cc to remove annoying debug output (#​3075)
  • Adjust dependabot settings (#​3079)
  • Use c11 everywhere
  • Add uninstall command
  • Don't skip tests on failing lint (#​3102)
  • Remove unused deps, bump deps, and bump MSRV to 1.74.1 (#​3153)
  • bindings: Metadata improvements
  • bindings: Make everything c11 (#​3099)
  • dependabot: Update weekly instead of daily (#​3112)
  • deps: Bump the cargo group with 1 update (#​3081)
  • deps: Bump the cargo group with 1 update (#​3097)
  • deps: Bump deps & lockfile (#​3060)
  • deps: Bump the cargo group with 4 updates (#​3134)
  • lint: Detect if Cargo.lock needs to be updated (#​3066)
  • lint: Make lockfile check quiet (#​3078)
  • swift: Move 'cLanguageStandard' behind 'targets' (#​3101)
Other
  • Make Node.js language bindings context aware (#​2841)
    They don't have any dynamic global data, so all it takes is just declaring them as such
  • Fix crash when attempting to load ancient languages via wasm (#​3068)
  • Use workspace dependencies for internal crates like Tree-sitter (#​3076)
  • Remove vendored wasmtime headers (https://github.com/tree-sitter/tree-sitter/pull/3084)
    When building rust binding, use wasmtime headers provided via cargo
    by the wasmtime-c-api crate.
  • Fix invalid parse stack recursive merging with mismatched error cost (#​3086)
    Allowing this invalid merge caused an invariant to be violated
    later on during parsing, when handling a later error.
  • Fix regression in subtree_compare (#​3111)
  • docs: Add Ohm language parser (#​3114)
  • Delete binding_files.rs (#​3106)
  • bindings: Consistent wording (#​3096)
  • bindings: Ignore more artifacts (#​3119)

v0.21.0

Changelog
[0.21.0] - 2024-02-21
Breaking
  • Remove the apply-all-captures flag, make last-wins precedence the default

    NOTE: This change might cause breakage in your grammar's highlight tests.
    Just flip the order around of the relevant queries, and keep in mind that the
    last query that matches will win.

Features
Bug Fixes
Documentation
Refactor
Testing
Build System and CI
Other
tree-sitter/tree-sitter-json (tree-sitter-json)

v0.24.8

Compare Source

NOTE: Download tree-sitter-json.tar.xz for the complete source code.

v0.24.7

Compare Source

NOTE: Download tree-sitter-json.tar.xz for the complete source code.

v0.24.5

Compare Source

NOTE: Download tree-sitter-json.tar.xz for the complete source code.

v0.24.4

Compare Source

v0.24.3

Compare Source

v0.24.2

Compare Source

v0.23.0

Compare Source

v0.21.0

Compare Source

v0.20.2

Compare Source

v0.20.1

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [nan](https://github.com/nodejs/nan) | dependencies | minor | [`2.17.0` -> `2.22.0`](https://renovatebot.com/diffs/npm/nan/2.17.0/2.22.0) | | [prettier](https://prettier.io) ([source](https://github.com/prettier/prettier)) | devDependencies | major | [`^2.8.8` -> `^3.0.0`](https://renovatebot.com/diffs/npm/prettier/2.8.8/3.4.2) | | [tree-sitter](https://tree-sitter.github.io/tree-sitter) ([source](https://github.com/tree-sitter/tree-sitter)) | dependencies | minor | `~0.20.10` -> `~0.24.0` | | [tree-sitter-cli](https://github.com/tree-sitter/tree-sitter) | devDependencies | minor | [`^0.20.8` -> `^0.24.0`](https://renovatebot.com/diffs/npm/tree-sitter-cli/0.20.8/0.24.5) | | [tree-sitter-json](https://github.com/tree-sitter/tree-sitter-json) | dependencies | minor | [`^0.20.0` -> `^0.24.0`](https://renovatebot.com/diffs/npm/tree-sitter-json/0.20.0/0.24.8) | --- ### Release Notes <details> <summary>nodejs/nan (nan)</summary> ### [`v2.22.0`](https://github.com/nodejs/nan/blob/HEAD/CHANGELOG.md#2220-Oct-11-2024) [Compare Source](https://github.com/nodejs/nan/compare/v2.21.0...v2.22.0) - Feature: replace SetAccessor -> SetNativeDataProperty ([#&#8203;977](https://github.com/nodejs/nan/issues/977)) [`6bd62c9`](https://github.com/nodejs/nan/commit/6bd62c9a0004339d5d1e18a945c84929d0f6b808) ### [`v2.21.0`](https://github.com/nodejs/nan/blob/HEAD/CHANGELOG.md#2210-Oct-10-2024) [Compare Source](https://github.com/nodejs/nan/compare/v2.20.0...v2.21.0) - Feature: Support for node version 20.17.0 ([#&#8203;976](https://github.com/nodejs/nan/issues/976)) [`a7df36e`](https://github.com/nodejs/nan/commit/a7df36eda8a7fe8581c00a18590f5e4faafca7ae) ### [`v2.20.0`](https://github.com/nodejs/nan/blob/HEAD/CHANGELOG.md#2200-Jun-12-2024) [Compare Source](https://github.com/nodejs/nan/compare/v2.19.0...v2.20.0) - Feature: fix removal of v8::CopyablePersistent ([#&#8203;970](https://github.com/nodejs/nan/issues/970)) [`5805ca5`](https://github.com/nodejs/nan/commit/5805ca5c4c2eef9a65316b68741e29f4825c511f) ### [`v2.19.0`](https://github.com/nodejs/nan/blob/HEAD/CHANGELOG.md#2190-Mar-6-2024) [Compare Source](https://github.com/nodejs/nan/compare/v2.18.0...v2.19.0) - Feature: Fix builds for Electron 29 ([#&#8203;966](https://github.com/nodejs/nan/issues/966)) [`1b630dd`](https://github.com/nodejs/nan/commit/1b630ddb3412cde35b64513662b440f9fd71e1ff) ### [`v2.18.0`](https://github.com/nodejs/nan/blob/HEAD/CHANGELOG.md#2180-Sep-12-2023) [Compare Source](https://github.com/nodejs/nan/compare/v2.17.0...v2.18.0) - Feature: Cast v8::Object::GetInternalField() return value to v8::Value ([#&#8203;956](https://github.com/nodejs/nan/issues/956)) [`bdfee17`](https://github.com/nodejs/nan/commit/bdfee1788239f735b67fe6b46b1439da755e9b62) </details> <details> <summary>prettier/prettier (prettier)</summary> ### [`v3.4.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#342) [Compare Source](https://github.com/prettier/prettier/compare/3.4.1...3.4.2) [diff](https://github.com/prettier/prettier/compare/3.4.1...3.4.2) ##### Treat U+30A0 & U+30FB in Katakana Block as CJK ([#&#8203;16796](https://github.com/prettier/prettier/pull/16796) by [@&#8203;tats-u](https://github.com/tats-u)) Prettier doesn't treat U+30A0 & U+30FB as Japanese. U+30FB is commonly used in Japanese to represent the delimitation of first and last names of non-Japanese people or “and”. The following “C言語・C++・Go・Rust” means “C language & C++ & Go & Rust” in Japanese. <!-- prettier-ignore --> ```md <!-- Input (--prose-wrap=never) --> C言 語 ・ C++ ・ Go ・ Rust <!-- Prettier 3.4.1 --> C言語・ C++ ・ Go ・ Rust <!-- Prettier 3.4.2 --> C言語・C++・Go・Rust ``` U+30A0 can be used as the replacement of the `-` in non-Japanese names (e.g. “Saint-Saëns” (Charles Camille Saint-Saëns) can be represented as “サン゠サーンス” in Japanese), but substituted by ASCII hyphen (U+002D) or U+FF1D (full width hyphen) in many cases (e.g. “サン=サーンス” or “サン=サーンス”). ##### Fix comments print on class methods with decorators ([#&#8203;16891](https://github.com/prettier/prettier/pull/16891) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input class A { @&#8203;decorator /** * The method description * */ async method(foo: Foo, bar: Bar) { console.log(foo); } } // Prettier 3.4.1 class A { @&#8203;decorator async /** * The method description * */ method(foo: Foo, bar: Bar) { console.log(foo); } } // Prettier 3.4.2 class A { @&#8203;decorator /** * The method description * */ async method(foo: Foo, bar: Bar) { console.log(foo); } } ``` ##### Fix non-idempotent formatting ([#&#8203;16899](https://github.com/prettier/prettier/pull/16899) by [@&#8203;seiyab](https://github.com/seiyab)) This bug fix is not language-specific. You may see similar change in any languages. This fixes regression in 3.4.0 so change caused by it should yield same formatting as 3.3.3. <!-- prettier-ignore --> ```jsx // Input <div> foo <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span> , abc </div>; // Prettier 3.4.1 (first) <div> foo <span> longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo </span>, abc </div>; // Prettier 3.4.1 (second) <div> foo <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span> , abc </div>; // Prettier 3.4.2 <div> foo <span>longlonglonglonglonglonglonglonglonglonglonglonglonglonglongl foo</span> , abc </div>; ``` ### [`v3.4.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#341) [Compare Source](https://github.com/prettier/prettier/compare/3.4.0...3.4.1) [diff](https://github.com/prettier/prettier/compare/3.4.0...3.4.1) ##### Remove unnecessary parentheses around assignment in `v-on` ([#&#8203;16887](https://github.com/prettier/prettier/pull/16887) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```vue <!-- Input --> <template> <button @&#8203;click="foo += 2">Click</button> </template> <!-- Prettier 3.4.0 --> <template> <button @&#8203;click="(foo += 2)">Click</button> </template> <!-- Prettier 3.4.1 --> <template> <button @&#8203;click="foo += 2">Click</button> </template> ``` ### [`v3.4.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#340) [Compare Source](https://github.com/prettier/prettier/compare/3.3.3...3.4.0) [diff](https://github.com/prettier/prettier/compare/3.3.3...3.4.0) 🔗 [Release Notes](https://prettier.io/blog/2024/11/26/3.4.0.html) ### [`v3.3.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#333) [Compare Source](https://github.com/prettier/prettier/compare/3.3.2...3.3.3) [diff](https://github.com/prettier/prettier/compare/3.3.2...3.3.3) ##### Add parentheses for nullish coalescing in ternary ([#&#8203;16391](https://github.com/prettier/prettier/pull/16391) by [@&#8203;cdignam-segment](https://github.com/cdignam-segment)) This change adds clarity to operator precedence. <!-- prettier-ignore --> ```js // Input foo ? bar ?? foo : baz; foo ?? bar ? a : b; a ? b : foo ?? bar; // Prettier 3.3.2 foo ? bar ?? foo : baz; foo ?? bar ? a : b; a ? b : foo ?? bar; // Prettier 3.3.3 foo ? (bar ?? foo) : baz; (foo ?? bar) ? a : b; a ? b : (foo ?? bar); ``` ##### Add parentheses for decorator expressions ([#&#8203;16458](https://github.com/prettier/prettier/pull/16458) by [@&#8203;y-schneider](https://github.com/y-schneider)) Prevent parentheses around member expressions or tagged template literals from being removed to follow the stricter parsing rules of TypeScript 5.5. <!-- prettier-ignore --> ```ts // Input @&#8203;(foo`tagged template`) class X {} // Prettier 3.3.2 @&#8203;foo`tagged template` class X {} // Prettier 3.3.3 @&#8203;(foo`tagged template`) class X {} ``` ##### Support `@let` declaration syntax ([#&#8203;16474](https://github.com/prettier/prettier/pull/16474) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) Adds support for Angular v18 `@let` declaration syntax. Please see the following code example. The `@let` declaration allows you to define local variables within the template: <!-- prettier-ignore --> ```html @&#8203;let name = 'Frodo'; <h1>Dashboard for {{name}}</h1> Hello, {{name}} ``` For more details, please refer to the excellent blog post by the Angular Team: [Introducing @&#8203;let in Angular](https://blog.angular.dev/introducing-let-in-angular-686f9f383f0f). We also appreciate the Angular Team for kindly answering our questions to implement this feature. ### [`v3.3.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#332) [Compare Source](https://github.com/prettier/prettier/compare/3.3.1...3.3.2) [diff](https://github.com/prettier/prettier/compare/3.3.1...3.3.2) ##### Fix handlebars path expressions starts with `@` ([#&#8203;16358](https://github.com/prettier/prettier/pull/16358) by [@&#8203;Princeyadav05](https://github.com/Princeyadav05)) <!-- prettier-ignore --> ```hbs {{! Input }} <div>{{@&#8203;x.y.z}}</div> {{! Prettier 3.3.1 }} <div>{{@&#8203;x}}</div> {{! Prettier 3.3.2 }} <div>{{@&#8203;x.y.z}}</div> ``` ### [`v3.3.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#331) [Compare Source](https://github.com/prettier/prettier/compare/3.3.0...3.3.1) [diff](https://github.com/prettier/prettier/compare/3.3.0...3.3.1) ##### Preserve empty lines in front matter ([#&#8203;16347](https://github.com/prettier/prettier/pull/16347) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```markdown <!-- Input --> --- foo: - bar1 - bar2 - bar3 --- Markdown <!-- Prettier 3.3.0 --> --- foo: - bar1 - bar2 - bar3 --- Markdown <!-- Prettier 3.3.1 --> --- foo: - bar1 - bar2 - bar3 --- Markdown ``` ##### Preserve explicit language in front matter ([#&#8203;16348](https://github.com/prettier/prettier/pull/16348) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```markdown <!-- Input --> ---yaml title: Hello slug: home --- <!-- Prettier 3.3.0 --> --- title: Hello slug: home --- <!-- Prettier 3.3.1 --> ---yaml title: Hello slug: home --- ``` ##### Avoid line breaks in import attributes ([#&#8203;16349](https://github.com/prettier/prettier/pull/16349) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" }; // Prettier 3.3.0 import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" }; // Prettier 3.3.1 import something from "./some-very-very-very-very-very-very-very-very-long-path.json" with { type: "json" }; ``` ### [`v3.3.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#330) [Compare Source](https://github.com/prettier/prettier/compare/3.2.5...3.3.0) [diff](https://github.com/prettier/prettier/compare/3.2.5...3.3.0) 🔗 [Release Notes](https://prettier.io/blog/2024/06/01/3.3.0.html) ### [`v3.2.5`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#325) [Compare Source](https://github.com/prettier/prettier/compare/3.2.4...3.2.5) [diff](https://github.com/prettier/prettier/compare/3.2.4...3.2.5) ##### Support Angular inline styles as single template literal ([#&#8203;15968](https://github.com/prettier/prettier/pull/15968) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) [Angular v17](https://blog.angular.io/introducing-angular-v17-4d7033312e4b) supports single string inline styles. <!-- prettier-ignore --> ```ts // Input @&#8203;Component({ template: `<div>...</div>`, styles: `h1 { color: blue; }`, }) export class AppComponent {} // Prettier 3.2.4 @&#8203;Component({ template: `<div>...</div>`, styles: `h1 { color: blue; }`, }) export class AppComponent {} // Prettier 3.2.5 @&#8203;Component({ template: `<div>...</div>`, styles: ` h1 { color: blue; } `, }) export class AppComponent {} ``` ##### Unexpected embedded formatting for Angular template ([#&#8203;15969](https://github.com/prettier/prettier/pull/15969) by [@&#8203;JounQin](https://github.com/JounQin)) Computed template should not be considered as Angular component template <!-- prettier-ignore --> ```ts // Input const template = "foobar"; @&#8203;Component({ [template]: `<h1>{{ hello }}</h1>`, }) export class AppComponent {} // Prettier 3.2.4 const template = "foobar"; @&#8203;Component({ [template]: `<h1>{{ hello }}</h1>`, }) export class AppComponent {} // Prettier 3.2.5 const template = "foobar"; @&#8203;Component({ [template]: `<h1>{{ hello }}</h1>`, }) export class AppComponent {} ``` ##### Use `"json"` parser for `tsconfig.json` by default ([#&#8203;16012](https://github.com/prettier/prettier/pull/16012) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) In [v3.2.0](https://prettier.io/blog/2024/01/12/3.2.0#new-jsonc-parser-added-15831httpsgithubcomprettierprettierpull15831-by-fiskerhttpsgithubcomfisker), we introduced `"jsonc"` parser which adds trailing comma **by default**. When adding a new parser we also define how it will be used based on the [`linguist-languages`](https://www.npmjs.com/package/linguist-languages) data. `tsconfig.json` is a special file used by [TypeScript](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#using-tsconfigjson-or-jsconfigjson), it uses `.json` file extension, but it actually uses the [JSON with Comments](https://code.visualstudio.com/docs/languages/json#\_json-with-comments) syntax. However, we found that there are many third-party tools not recognize it correctly because of the confusing `.json` file extension. We decide to treat it as a JSON file for now to avoid the extra configuration step. To keep using the `"jsonc"` parser for your `tsconfig.json` files, add the following to your `.prettierrc` file ```json { "overrides": [ { "files": ["tsconfig.json", "jsconfig.json"], "options": { "parser": "jsonc" } } ] } ``` <!-- prettier-ignore --> ``` ``` ### [`v3.2.4`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#Prettier-324) [Compare Source](https://github.com/prettier/prettier/compare/3.2.3...3.2.4) prettier --file-info tsconfig.json { "ignored": false, "inferredParser": "jsonc" } ### [`v3.2.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#323) [Compare Source](https://github.com/prettier/prettier/compare/3.2.2...3.2.3) [diff](https://github.com/prettier/prettier/compare/3.2.2...3.2.3) ##### Throw errors for invalid code ([#&#8203;15881](https://github.com/prettier/prettier/pull/15881) by [@&#8203;fisker](https://github.com/fisker), [@&#8203;Josh-Cena](https://github.com/Josh-Cena), [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```ts // Input 1++; // Prettier 3.2.2 1++; // Prettier 3.2.3 SyntaxError: Invalid left-hand side expression in unary operation (1:1) > 1 | 1++; | ^ ``` <!-- prettier-ignore --> ```ts // Input try {} catch (error = 1){} // Prettier 3.2.2 try { } catch (error) {} // Prettier 3.2.3 SyntaxError: Catch clause variable cannot have an initializer. (1:23) > 1 | try {} catch (error = 1){} | ^ ``` ##### Fix parser inference ([#&#8203;15927](https://github.com/prettier/prettier/pull/15927) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```console // Prettier 3.2.2 prettier --file-info tsconfig.json { "ignored": false, "inferredParser": "json" } // Prettier 3.2.3 prettier --file-info tsconfig.json { "ignored": false, "inferredParser": "jsonc" } ``` ### [`v3.2.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#322) [Compare Source](https://github.com/prettier/prettier/compare/3.2.1...3.2.2) [diff](https://github.com/prettier/prettier/compare/3.2.1...3.2.2) ##### Fix crash when parsing template literal CSS in a JSX style tag using a spread attribute ([#&#8203;15896](https://github.com/prettier/prettier/pull/15896) by [@&#8203;eelco](https://github.com/eelco)) For example this code would crash before: <!-- prettier-ignore --> ```jsx <style {...spread}>{`.{}`}</style> ``` ##### Fix formatting error on optional call expression and member chain ([#&#8203;15920](https://github.com/prettier/prettier/pull/15920) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```jsx // Input a(() => {}, c?.d()); // Prettier 3.2.1 TypeError: Cannot read properties of undefined (reading 'type') // Prettier 3.2.2 a(() => {}, c?.d()); ``` ### [`v3.2.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#321) [Compare Source](https://github.com/prettier/prettier/compare/3.2.0...3.2.1) [diff](https://github.com/prettier/prettier/compare/3.2.0...3.2.1) ##### Fix formatting error on member chain ([#&#8203;15915](https://github.com/prettier/prettier/pull/15915) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```jsx // Input test().test2().test2(thing?.something); // Prettier 3.2.0 TypeError: Cannot read properties of undefined (reading 'type') // Prettier 3.2.1 test().test2().test2(thing?.something); ``` ### [`v3.2.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#320) [Compare Source](https://github.com/prettier/prettier/compare/3.1.1...3.2.0) [diff](https://github.com/prettier/prettier/compare/3.1.1...3.2.0) 🔗 [Release Notes](https://prettier.io/blog/2024/01/12/3.2.0.html) ### [`v3.1.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#311) [Compare Source](https://github.com/prettier/prettier/compare/3.1.0...3.1.1) [diff](https://github.com/prettier/prettier/compare/3.1.0...3.1.1) ##### Fix config file search ([#&#8203;15363](https://github.com/prettier/prettier/pull/15363) by [@&#8203;fisker](https://github.com/fisker)) Previously, we start search for config files from the filePath as a directory, if it happened to be a directory and contains config file, it will be used by mistake. ```text ├─ .prettierrc └─ test.js (A directory) └─ .prettierrc ``` ```js // Prettier 3.1.0 await prettier.resolveConfigFile(new URL("./test.js", import.meta.url)); // <CWD>/test.js/.prettierrc // Prettier 3.1.1 await prettier.resolveConfigFile(new URL("./test.js", import.meta.url)); // <CWD>/.prettierrc ``` ##### Skip explicitly passed symbolic links with `--no-error-on-unmatched-pattern` ([#&#8203;15533](https://github.com/prettier/prettier/pull/15533) by [@&#8203;sanmai-NL](https://github.com/sanmai-NL)) Since Prettier v3, we stopped following symbolic links, however in some use cases, the symbolic link patterns can't be filtered out, and there is no way to prevent Prettier from throwing errors. In Prettier 3.1.1, you can use `--no-error-on-unmatched-pattern` to simply skip symbolic links. ##### Consistently use tabs in ternaries when `useTabs` is `true` ([#&#8203;15662](https://github.com/prettier/prettier/pull/15662) by [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```jsx // Input aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; // Prettier 3.1.0 aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; // Prettier 3.1.1 aaaaaaaaaaaaaaa ? bbbbbbbbbbbbbbbbbb : ccccccccccccccc ? ddddddddddddddd : eeeeeeeeeeeeeee ? fffffffffffffff : gggggggggggggggg; ``` ##### Improve config file search ([#&#8203;15663](https://github.com/prettier/prettier/pull/15663) by [@&#8203;fisker](https://github.com/fisker)) The Prettier config file search performance has been improved by more effective cache strategy. ##### Fix unstable and ugly formatting for comments in destructuring patterns ([#&#8203;15708](https://github.com/prettier/prettier/pull/15708) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```tsx // Input const { foo, // bar // baz }: Foo = expr; // Prettier 3.1.0 const { foo1, } // bar // baz : Foo = expr; // Prettier 3.1.0 second output const { foo1, // bar } // baz : Foo = expr; // Prettier 3.1.1 const { foo1, // bar // baz }: Foo = expr; ``` ##### Support "Import Attributes" ([#&#8203;15718](https://github.com/prettier/prettier/pull/15718) by [@&#8203;fisker](https://github.com/fisker)) [TypeScript 5.3](https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/#import-attributes) supports the latest updates to the [import attributes](https://github.com/tc39/proposal-import-attributes) proposal. ```tsx import something from "./something.json" with { type: "json" }; ``` ##### Fix false claim in docs that cursorOffset is incompatible with rangeStart/rangeEnd ([#&#8203;15750](https://github.com/prettier/prettier/pull/15750) by [@&#8203;ExplodingCabbage](https://github.com/ExplodingCabbage)) The cursorOffset option has in fact been compatible with rangeStart/rangeEnd for over 5 years, thanks to work by [@&#8203;ds300](https://github.com/ds300). However, Prettier's documentation (including the CLI `--help` text) continued to claim otherwise, falsely. The documentation is now fixed. ##### Keep curly braces and `from` keyword in empty `import` statements ([#&#8203;15756](https://github.com/prettier/prettier/pull/15756) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```js // Input import { } from 'foo'; import { /* comment */ } from 'bar'; // Prettier 3.1.0 import {} from "foo"; import /* comment */ "bar"; // Prettier 3.1.1 import {} from "foo"; import {} from /* comment */ "bar"; ``` ##### Keep empty import attributes and assertions ([#&#8203;15757](https://github.com/prettier/prettier/pull/15757) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```js // Input import foo from "foo" with {}; import bar from "bar" assert {}; // Prettier 3.1.0 import foo from "foo"; import bar from "bar"; // Prettier 3.1.1 import foo from "foo" with {}; import bar from "bar" assert {}; ``` ### [`v3.1.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#310) [Compare Source](https://github.com/prettier/prettier/compare/3.0.3...3.1.0) [diff](https://github.com/prettier/prettier/compare/3.0.3...3.1.0) 🔗 [Release Notes](https://prettier.io/blog/2023/11/13/3.1.0.html) ### [`v3.0.3`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#303) [Compare Source](https://github.com/prettier/prettier/compare/3.0.2...3.0.3) [diff](https://github.com/prettier/prettier/compare/3.0.2...3.0.3) ##### Add `preferUnplugged: true` to `package.json` ([#&#8203;15169](https://github.com/prettier/prettier/pull/15169) by [@&#8203;fisker](https://github.com/fisker) and [@&#8203;so1ve](https://github.com/so1ve)) Prettier v3 uses dynamic imports, user [will need to unplug Prettier](https://github.com/yarnpkg/berry/pull/5411#issuecomment-1523502224) when Yarn's PnP mode is enabled, add [`preferUnplugged: true`](https://yarnpkg.com/configuration/manifest#preferUnplugged) to `package.json`, so Yarn will install Prettier as unplug by default. ##### Support shared config that forbids `require()` ([#&#8203;15233](https://github.com/prettier/prettier/pull/15233) by [@&#8203;fisker](https://github.com/fisker)) If an external shared config package is used, and the package `exports` don't have `require` or `default` export. In Prettier 3.0.2 Prettier fails when attempt to `require()` the package, and throws an error. ```text Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in <packageName>/package.json ``` ##### Allow argument of `require()` to break ([#&#8203;15256](https://github.com/prettier/prettier/pull/15256) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```jsx // Input const plugin = require( global.STANDALONE ? path.join(__dirname, "../standalone.js") : path.join(__dirname, "..") ); // Prettier 3.0.2 const plugin = require(global.STANDALONE ? path.join(__dirname, "../standalone.js") : path.join(__dirname, "..")); // Prettier 3.0.3 const plugin = require( global.STANDALONE ? path.join(__dirname, "../standalone.js") : path.join(__dirname, "..") ); ``` ##### Do not print trailing commas in arrow function type parameter lists in `ts` code blocks ([#&#8203;15286](https://github.com/prettier/prettier/pull/15286) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ````md <!-- Input --> ```ts const foo = <T>() => {} ``` <!-- Prettier 3.0.2 --> ```ts const foo = <T,>() => {} ``` <!-- Prettier 3.0.3 --> ```ts const foo = <T>() => {} ``` ```` ##### Support TypeScript 5.2 `using` / `await using` declaration ([#&#8203;15321](https://github.com/prettier/prettier/pull/15321) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) Support for the upcoming Explicit Resource Management feature in ECMAScript. [`using` / `await using` declaration](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/#using-declarations-and-explicit-resource-management) <!-- prettier-ignore --> ```tsx { using foo = new Foo(); await using bar = new Bar(); } ``` ### [`v3.0.2`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#302) [Compare Source](https://github.com/prettier/prettier/compare/3.0.1...3.0.2) [diff](https://github.com/prettier/prettier/compare/3.0.1...3.0.2) ##### Break after `=` of assignment if RHS is poorly breakable AwaitExpression or YieldExpression ([#&#8203;15204](https://github.com/prettier/prettier/pull/15204) by [@&#8203;seiyab](https://github.com/seiyab)) <!-- prettier-ignore --> ```js // Input const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData); // Prettier 3.0.1 const { section, rubric, authors, tags } = await utils.upsertCommonData( mainData, ); // Prettier 3.0.2 const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData); ``` ##### Do not add trailing comma for grouped scss comments ([#&#8203;15217](https://github.com/prettier/prettier/pull/15217) by [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```scss /* Input */ $foo: ( 'property': (), // comment 1 // comment 2 ) /* Prettier 3.0.1 */ $foo: ( "property": (), // comment 1 // comment 2, ); /* Prettier 3.0.2 */ $foo: ( "property": (), // comment 1 // comment 2 ); ``` ##### Print `declare` and `export` keywords for nested namespace ([#&#8203;15249](https://github.com/prettier/prettier/pull/15249) by [@&#8203;sosukesuzuki](https://github.com/sosukesuzuki)) <!-- prettier-ignore --> ```tsx // Input declare namespace abc1.def {} export namespace abc2.def {} // Prettier 3.0.1 namespace abc1.def {} namespace abc2.def {} // Prettier 3.0.2 declare namespace abc1.def {} export namespace abc2.def {} ``` ### [`v3.0.1`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#301) [Compare Source](https://github.com/prettier/prettier/compare/3.0.0...3.0.1) [diff](https://github.com/prettier/prettier/compare/3.0.0...3.0.1) ##### Fix cursor positioning for a special case ([#&#8203;14812](https://github.com/prettier/prettier/pull/14812) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```js // <|> is the cursor position /* Input */ // All messages are represented in JSON. // So, the prettier.py controls a subprocess which spawns "node {this_file}". import {<|> } from "fs" /* Prettier 3.0.0 */ // All messages are represented in JSON. // So, the prettier.py <|>controls a subprocess which spawns "node {this_file}". import {} from "fs" /* Prettier 3.0.1 */ // All messages are represented in JSON. // So, the prettier.py controls a subprocess which spawns "node {this_file}". import {<|>} from "fs" ``` ##### Fix plugins/estree.d.ts to make it a module ([#&#8203;15018](https://github.com/prettier/prettier/pull/15018) by [@&#8203;kingyue737](https://github.com/kingyue737)) Add `export {}` in `plugins/estree.d.ts` to fix the "File is not a module" error ##### Add parenthesis around leading multiline comment in return statement ([#&#8203;15037](https://github.com/prettier/prettier/pull/15037) by [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```jsx // Input function fn() { return ( /** * @&#8203;type {...} */ expression ) } // Prettier 3.0.0 function fn() { return /** * @&#8203;type {...} */ expression; } // Prettier 3.0.1 function fn() { return ( /** * @&#8203;type {...} */ expression ); } ``` ##### Add support for Vue "Generic Components" ([#&#8203;15066](https://github.com/prettier/prettier/pull/15066) by [@&#8203;auvred](https://github.com/auvred)) https://blog.vuejs.org/posts/vue-3-3#generic-components <!-- prettier-ignore --> ```vue <!-- Input --> <script setup lang="ts" generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"></script> <!-- Prettier 3.0.0 --> <script setup lang="ts" generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean" ></script> <!-- Prettier 3.0.1 --> <script setup lang="ts" generic=" T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean " ></script> ``` ##### Fix comments print in `IfStatement` ([#&#8203;15076](https://github.com/prettier/prettier/pull/15076) by [@&#8203;fisker](https://github.com/fisker)) <!-- prettier-ignore --> ```js function a(b) { if (b) return 1; // comment else return 2; } /* Prettier 3.0.0 */ Error: Comment "comment" was not printed. Please report this error! /* Prettier 3.0.1 */ function a(b) { if (b) return 1; // comment else return 2; } ``` ##### Add missing type definition for `printer.preprocess` ([#&#8203;15123](https://github.com/prettier/prettier/pull/15123) by [@&#8203;so1ve](https://github.com/so1ve)) ```diff export interface Printer<T = any> { // ... + preprocess?: + | ((ast: T, options: ParserOptions<T>) => T | Promise<T>) + | undefined; } ``` ##### Add missing `getVisitorKeys` method type definition for `Printer` ([#&#8203;15125](https://github.com/prettier/prettier/pull/15125) by [@&#8203;auvred](https://github.com/auvred)) ```tsx const printer: Printer = { print: () => [], getVisitorKeys(node, nonTraversableKeys) { return ["body"]; }, }; ``` ##### Add typing to support `readonly` array properties of AST Node ([#&#8203;15127](https://github.com/prettier/prettier/pull/15127) by [@&#8203;auvred](https://github.com/auvred)) <!-- prettier-ignore --> ```tsx // Input interface TestNode { readonlyArray: readonly string[]; } declare const path: AstPath<TestNode>; path.map(() => "", "readonlyArray"); // Prettier 3.0.0 interface TestNode { readonlyArray: readonly string[]; } declare const path: AstPath<TestNode>; path.map(() => "", "readonlyArray"); // ^ Argument of type '"readonlyArray"' is not assignable to parameter of type '"regularArray"'. ts(2345) // Prettier 3.0.1 interface TestNode { readonlyArray: readonly string[]; } declare const path: AstPath<TestNode>; path.map(() => "", "readonlyArray"); ``` ##### Add space before unary minus followed by a function call ([#&#8203;15129](https://github.com/prettier/prettier/pull/15129) by [@&#8203;pamelalozano](https://github.com/pamelalozano)) <!-- prettier-ignore --> ```less // Input div { margin: - func(); } // Prettier 3.0.0 div { margin: -func(); } // Prettier 3.0.1 div { margin: - func(); } ``` ### [`v3.0.0`](https://github.com/prettier/prettier/blob/HEAD/CHANGELOG.md#300) [Compare Source](https://github.com/prettier/prettier/compare/2.8.8...3.0.0) [diff](https://github.com/prettier/prettier/compare/3.0.0-alpha.6...3.0.0) 🔗 [Release Notes](https://prettier.io/blog/2023/07/05/3.0.0.html) </details> <details> <summary>tree-sitter/tree-sitter (tree-sitter)</summary> ### [`v0.24.5`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.24.5) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.24.4...v0.24.5) ##### \[0.24.5] - 2024-12-11 ##### Features - Move scripts to xtasks ##### Bug Fixes - Compiler warning - Sync cmake with master - **lib**: Correct next sibling of zero width node - **lib**: Use `clock_gettime` on macOS again - **lib**: Handle compiler warnings ##### Build System and CI - Configure clippy lints at the workspace level - Tune compiler warnings - Major overhaul - Treat incompatible pointer warning as error - Build lib with wasmtime - Fix minor issues - **cmake**: Link wasmtime dependencies ##### Other - Remove unnecessary fuzz and profile helpers ### [`v0.24.4`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.24.4) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.24.3...v0.24.4) ##### \[0.24.4] - 2024-11-10 ##### Features - **loader**: Add `language_for_configuration` - **loader**: Add error message when a `tree-sitter.json` file is invalid - **node**: Support single-file executables via bun build --compile - **node**: Update bindings when necessary ##### Bug Fixes - Return `LanguageRef` in `Parser::language` - **bindings**: Update CMakeLists.txt file - **cli**: Pass all fields to `tree-sitter.json` in `init` - **cli**: Use `contains` over `is` in warning - **cmake**: Use current source dir for EXISTS check - **generate**: Do not set the unit reduction symbol if it's in the extras array - **init**: Use current path if unspecified - **init**: Use camel name from config in missing spots - **lib**: Simplify edge cases with zero-width tokens - **lib**: Correctly fetch the node name in query errors - **loader**: Don't print warnings if the file is not found ##### Performance - **loader**: Improve language lookup speed ##### Build System and CI - **bindings**: Rename cmake test target ##### Other - Memory errors in wasm_store ### [`v0.24.3`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.24.3) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.24.2...v0.24.3) ##### \[0.24.3] - 2024-10-09 ##### Bug Fixes - **lib**: Correct unexpected side effect in `get_column` when the lexer is at EOF ##### Build System and CI - Fix incorrect variable checks - **deps**: Bump wasmtime to v25.0.2 ### [`v0.24.2`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.24.2) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.24.1...v0.24.2) ##### \[0.24.2] - 2024-10-06 ##### Features - Drop legacy binding updates ##### Bug Fixes - **templates**: Properly replace author email ##### Build System and CI - **bindings**: Improve cmake file - **cmake**: Support amalgamated build - **cmake**: Correct library scopes - **make**: Fix `tree-sitter.pc` generation ([#&#8203;3745](https://github.com/tree-sitter/tree-sitter/issues/3745)) ##### Other - **templates**: Update npm packages ### [`v0.24.1`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.24.1) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.24.0...v0.24.1) ##### \[0.24.1] - 2024-10-04 ##### Bug Fixes - **generate**: Move generated header files into the generate crate ### [`v0.24.0`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.24.0) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.23.2...v0.24.0) ##### \[0.24.0] - 2024-10-04 ##### Breaking - Remove C++ support for external scanners ([#&#8203;3602](https://github.com/tree-sitter/tree-sitter/pull/3602)) - Remove `filter` flag from commands in favor of `include` and `exclude` ([#&#8203;3604](https://github.com/tree-sitter/tree-sitter/pull/3604)) - Remove the `build-wasm` subcommand ([#&#8203;3605](https://github.com/tree-sitter/tree-sitter/pull/3605)) - Move generation of grammar files to an `init` command ([#&#8203;3694](https://github.com/tree-sitter/tree-sitter/pull/3694)) - Implement `StreamingIterator` instead of `Iterator` for `QueryMatches` and `QueryCaptures` ([#&#8203;3504](https://github.com/tree-sitter/tree-sitter/pull/3504)) - **generate**: Remove unused rules ([#&#8203;3722](https://github.com/tree-sitter/tree-sitter/pull/3722)) - **lib**: Treat nodes' end ranges exclusively in `goto_first_child_for_{byte,point}` ([#&#8203;3263](https://github.com/tree-sitter/tree-sitter/pull/3263)) ##### Features - Add an API to time out query executions ([#&#8203;3559](https://github.com/tree-sitter/tree-sitter/pull/3559)) - Add `field_name_for_named_child` ([#&#8203;3614](https://github.com/tree-sitter/tree-sitter/pull/3614)) - Add `root` field in node-types.json ([#&#8203;3615](https://github.com/tree-sitter/tree-sitter/pull/3615)) - Add eslint configuration package ([#&#8203;3666](https://github.com/tree-sitter/tree-sitter/pull/3666)) - Provide a `rebuild` flag to force rebuild parsers ([#&#8203;3672](https://github.com/tree-sitter/tree-sitter/pull/3672)) - Add shell completions ([#&#8203;3675](https://github.com/tree-sitter/tree-sitter/pull/3675)) - Move generate logic to its own crate ([#&#8203;3689](https://github.com/tree-sitter/tree-sitter/pull/3689)) - Add `--overview-only` to `test` subcommand ([#&#8203;3501](https://github.com/tree-sitter/tree-sitter/pull/3501)) - Move tree-sitter configuration to dedicated file ([#&#8203;3700](https://github.com/tree-sitter/tree-sitter/issues/3700)) ([#&#8203;3700](https://github.com/tree-sitter/tree-sitter/pull/3700)) - **api**: Expose function to check if symbol represents a supertype ([#&#8203;3616](https://github.com/tree-sitter/tree-sitter/pull/3616)) - **bindings**: Bump `go-tree-sitter` version ([#&#8203;3564](https://github.com/tree-sitter/tree-sitter/pull/3564)) - **cli**: Add a `no-ranges` flag to the parse command ([#&#8203;3687](https://github.com/tree-sitter/tree-sitter/pull/3687)) - **generate**: Bump `tree-sitter` dev dependency to `0.23` ([#&#8203;3563](https://github.com/tree-sitter/tree-sitter/pull/3563)) - **generate**: Add a no-op `--no-bindings` flag - **init**: Add an update flag ([#&#8203;3698](https://github.com/tree-sitter/tree-sitter/pull/3698)) - **language**: Derive Clone and Copy on LanguageFn ([#&#8203;3585](https://github.com/tree-sitter/tree-sitter/pull/3585)) - **schema**: Misc improvements ([#&#8203;3681](https://github.com/tree-sitter/tree-sitter/pull/3681)) - **test**: Test all queries ##### Bug Fixes - Correct comment quote ([#&#8203;3630](https://github.com/tree-sitter/tree-sitter/pull/3630)) - Properly handle utf8 code points for highlight and tag assertions ([#&#8203;3610](https://github.com/tree-sitter/tree-sitter/pull/3610)) - Do not generate spurious files if the grammar path is not the default path ([#&#8203;3677](https://github.com/tree-sitter/tree-sitter/pull/3677)) - Disallow empty string literals in rules ([#&#8203;3679](https://github.com/tree-sitter/tree-sitter/pull/3679)) - Correct test name parsing when the prior test has equal signs ([#&#8203;3704](https://github.com/tree-sitter/tree-sitter/pull/3704)) - Handle more cases of editing subtrees that depend on column values ([#&#8203;3257](https://github.com/tree-sitter/tree-sitter/pull/3257)) - Exclude APIs that dup given file descriptors from WASI builds ([#&#8203;3475](https://github.com/tree-sitter/tree-sitter/pull/3475)) - Deprecate `child_containing_descendant` and add `child_with_descendant` instead ([#&#8203;3708](https://github.com/tree-sitter/tree-sitter/pull/3708)) - **binding_web**: Correct `edit` signature ([#&#8203;3599](https://github.com/tree-sitter/tree-sitter/pull/3599)) - **binding_web**: Remove nonexistent function definition ([#&#8203;3612](https://github.com/tree-sitter/tree-sitter/pull/3612)) - **bindings**: Use `RUST_BINDING_VERSION` in `Cargo.toml` template - **bindings**: Lower go version to `1.22` ([#&#8203;3711](https://github.com/tree-sitter/tree-sitter/pull/3711)) - **build**: Correct wasm root path lookup ([#&#8203;3723](https://github.com/tree-sitter/tree-sitter/pull/3723)) - **build**: Force rebuild parsers when build is invoked ([#&#8203;3729](https://github.com/tree-sitter/tree-sitter/pull/3729)) - **cli**: Remove conflicting short flags in the `fuzz` subcommand ([#&#8203;3562](https://github.com/tree-sitter/tree-sitter/pull/3562)) - **cli**: Keep skipped tests unchanged in the test/corpus ([#&#8203;3590](https://github.com/tree-sitter/tree-sitter/pull/3590)) - **cli**: Remove duplicate short options from `fuzz` command ([#&#8203;3635](https://github.com/tree-sitter/tree-sitter/issues/3635)) ([#&#8203;3635](https://github.com/tree-sitter/tree-sitter/pull/3635)) - **cli**: Generate the parser version from the config as well - **docs**: Fix highlight readme example using compatible versions ([#&#8203;3573](https://github.com/tree-sitter/tree-sitter/pull/3573)) - **fuzz**: Skip tests marked with `:skip` & don't report errors on tests marked with `:error` ([#&#8203;3640](https://github.com/tree-sitter/tree-sitter/pull/3640)) - **generate**: Remove necessary files from gitignore template ([#&#8203;3561](https://github.com/tree-sitter/tree-sitter/pull/3561)) - **generate**: Disallow inline variables referencing themselves ([#&#8203;3569](https://github.com/tree-sitter/tree-sitter/pull/3569)) - **generate**: Add `tree-sitter` to the `dev-dependencies` of the Cargo.toml ([#&#8203;3597](https://github.com/tree-sitter/tree-sitter/pull/3597)) - **generate**: Do not generate large character sets for unused variables ([#&#8203;3606](https://github.com/tree-sitter/tree-sitter/pull/3606)) - **generate**: Remove excludes in `Package.swift` ([#&#8203;3631](https://github.com/tree-sitter/tree-sitter/pull/3631)) - **generate**: Add `*.scm` section to `.editorconfig` template ([#&#8203;3724](https://github.com/tree-sitter/tree-sitter/pull/3724)) - **generate**: Filter out unused rules in other spots ([#&#8203;3726](https://github.com/tree-sitter/tree-sitter/pull/3726)) - **init**: Fix some schema issues - **init**: Don't prompt to reconfigure ([#&#8203;3713](https://github.com/tree-sitter/tree-sitter/pull/3713)) - **init**: Do not migrate `package.json` on error ([#&#8203;3718](https://github.com/tree-sitter/tree-sitter/pull/3718)) - **lib**: Correct extra node creation from non-zero root-alias cursors ([#&#8203;3568](https://github.com/tree-sitter/tree-sitter/pull/3568)) - **lib**: Backtrack to the last relevant iterator if no child was found ([#&#8203;3570](https://github.com/tree-sitter/tree-sitter/pull/3570)) - **lib**: Peek at the next sibling when iterating to find the child that contains a given descendant ([#&#8203;3566](https://github.com/tree-sitter/tree-sitter/pull/3566)) - **lib**: Correct descendant-for-range behavior with zero-width tokens ([#&#8203;3688](https://github.com/tree-sitter/tree-sitter/pull/3688)) - **lib**: Silence warnings with `-Wpedantic` ([#&#8203;3691](https://github.com/tree-sitter/tree-sitter/pull/3691)) - **lib**: Ensure an unfinished state was found before removing it ([#&#8203;3727](https://github.com/tree-sitter/tree-sitter/pull/3727)) - **rust**: Add missing TSNode functions ([#&#8203;3571](https://github.com/tree-sitter/tree-sitter/pull/3571)) - **test**: Exit with an error if a test marked with `:error` has no error - **test**: Retain attributes when running `test -u` ([#&#8203;3572](https://github.com/tree-sitter/tree-sitter/pull/3572)) - **test**: Correctly handle assertions on empty lines ([#&#8203;3674](https://github.com/tree-sitter/tree-sitter/pull/3674)) - **wasm**: Use / paths for workdir ([#&#8203;3658](https://github.com/tree-sitter/tree-sitter/pull/3658)) ##### Documentation - Add Kotlin to the playground ([#&#8203;3560](https://github.com/tree-sitter/tree-sitter/pull/3560)) - **changelog**: Add 0.23.0 release notes ([#&#8203;3565](https://github.com/tree-sitter/tree-sitter/pull/3565)) ##### Refactor - Improve the grammar schema - **cli**: Break out subcommand logic into separate functions ([#&#8203;3676](https://github.com/tree-sitter/tree-sitter/pull/3676)) ##### Build System and CI - Add backport workflow ([#&#8203;3575](https://github.com/tree-sitter/tree-sitter/pull/3575)) - Bump deps ([#&#8203;3696](https://github.com/tree-sitter/tree-sitter/pull/3696)) - Bump language to `0.1.1` ([#&#8203;3730](https://github.com/tree-sitter/tree-sitter/pull/3730)) - **bindings**: Add CMakeLists.txt file ([#&#8203;3608](https://github.com/tree-sitter/tree-sitter/pull/3608)) - **cmake**: Link wasmtime dependencies ([#&#8203;3717](https://github.com/tree-sitter/tree-sitter/pull/3717)) - **deps**: Bump the cargo group across 1 directory with 11 updates ([#&#8203;3644](https://github.com/tree-sitter/tree-sitter/pull/3644)) - **deps**: Bump the cargo group with 3 updates ([#&#8203;3671](https://github.com/tree-sitter/tree-sitter/pull/3671)) - **lib**: Build using cmake ([#&#8203;3541](https://github.com/tree-sitter/tree-sitter/pull/3541)) - **make**: Support darwin cross-compile ([#&#8203;3641](https://github.com/tree-sitter/tree-sitter/pull/3641)) - **xtask**: Bump cmake version in `bump-version` - **xtask**: Only consider major and minor versions when validating the current version - **xtask**: Ignore the language crate ##### Other - Remove `compile_flags.txt` ([#&#8203;3667](https://github.com/tree-sitter/tree-sitter/pull/3667)) - Update generate crate paths ([#&#8203;3697](https://github.com/tree-sitter/tree-sitter/pull/3697)) - **bindings**: Update rust lib docs ([#&#8203;3621](https://github.com/tree-sitter/tree-sitter/pull/3621)) - **lib**: Add parameter names in declarations that are missing them ([#&#8203;3692](https://github.com/tree-sitter/tree-sitter/pull/3692)) - **tests**: Do not use `.as_bytes().len()` on strings ([#&#8203;3664](https://github.com/tree-sitter/tree-sitter/pull/3664)) ### [`v0.23.2`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.23.2) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.23.0...v0.23.2) ##### \[0.23.2] - 2024-10-01 This release only corrected the version in a crate so publishing wouldn't fail. ### [`v0.23.0`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.23.0) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.22.6...v0.23.0) #### \[0.23.0] - 2024-08-26 ##### Breaking - Introduce tree-sitter-language crate for grammar crates to depend on ([#&#8203;3069](https://github.com/tree-sitter/tree-sitter/pull/3069)) - Revert interning of a sequence or choice of a single rule ([#&#8203;3548](https://github.com/tree-sitter/tree-sitter/pull/3548)) - **bindings**: Use capsules in python ([#&#8203;3384](https://github.com/tree-sitter/tree-sitter/pull/3384)) - **dsl**: Support other JS runtimes ([#&#8203;3355](https://github.com/tree-sitter/tree-sitter/pull/3355)) ##### Features - Add `fuzz` subcommand ([#&#8203;3385](https://github.com/tree-sitter/tree-sitter/pull/3385)) - Allow external scanners to use the logger ([#&#8203;3204](https://github.com/tree-sitter/tree-sitter/pull/3204)) - **bindings**: Add query constants to python - **bindings**: Add node, python, swift tests ([#&#8203;3178](https://github.com/tree-sitter/tree-sitter/pull/3178)) - **bindings**: Update npm scripts ([#&#8203;3210](https://github.com/tree-sitter/tree-sitter/pull/3210)) - **cli**: Bump unicode data to v15.1.0 - **cli**: Add debug build flag ([#&#8203;3279](https://github.com/tree-sitter/tree-sitter/pull/3279)) - **cli**: Attach helpful context when `grammar.json` cannot be found ([#&#8203;3405](https://github.com/tree-sitter/tree-sitter/pull/3405)) - **cli**: Add `--show-fields` flag to `test` command ([#&#8203;3502](https://github.com/tree-sitter/tree-sitter/pull/3502)) - **lib**: Add `ts_query_end_byte_for_pattern` ([#&#8203;3451](https://github.com/tree-sitter/tree-sitter/pull/3451)) - **lib**: Support no_std - **zig**: Update outdated path syntax ([#&#8203;3383](https://github.com/tree-sitter/tree-sitter/pull/3383)) ##### Bug Fixes - Always reset to the first language when iterating over language attributes ([#&#8203;3375](https://github.com/tree-sitter/tree-sitter/pull/3375)) - Better error when a supertype rule is invalid ([#&#8203;3400](https://github.com/tree-sitter/tree-sitter/pull/3400)) - Intern a sequence or choice of a single element the same as the element itself - Do not "absorb" rules that consist of a single terminal if the rule is hidden ([#&#8203;2577](https://github.com/tree-sitter/tree-sitter/pull/2577)) - **bindings**: Update go bindings ([#&#8203;3544](https://github.com/tree-sitter/tree-sitter/pull/3544)) - **cli**: Installation via authenticated proxy ([#&#8203;3414](https://github.com/tree-sitter/tree-sitter/pull/3414)) - **cli**: Dedup `preceding_auxiliary_symbols` ([#&#8203;3550](https://github.com/tree-sitter/tree-sitter/pull/3550)) - **dsl**: Improve error message when a rule function returns undefined ([#&#8203;3452](https://github.com/tree-sitter/tree-sitter/pull/3452)) - **generate**: Rename `cargo.toml` template ([#&#8203;3532](https://github.com/tree-sitter/tree-sitter/pull/3532)) - **go**: Update parser name in binding files, add to docs ([#&#8203;3547](https://github.com/tree-sitter/tree-sitter/pull/3547)) - **lib**: A null clock must have `tv_nsec` be 0 as well ([#&#8203;3372](https://github.com/tree-sitter/tree-sitter/pull/3372)) - **lib**: Restrict pattern_map optimization when a wildcard step has an immediate first child ([#&#8203;3440](https://github.com/tree-sitter/tree-sitter/pull/3440)) - **lib**: An empty root node should not precede an empty range ([#&#8203;3450](https://github.com/tree-sitter/tree-sitter/pull/3450)) - **lib**: Fix api header C++ interop ([#&#8203;3534](https://github.com/tree-sitter/tree-sitter/pull/3534)) - **make**: Fail properly on Windows ([#&#8203;3418](https://github.com/tree-sitter/tree-sitter/pull/3418)) - **rust**: Fetch `CARGO_MANIFEST_DIR` at runtime in build script ([#&#8203;3352](https://github.com/tree-sitter/tree-sitter/pull/3352)) - **rust**: Fix new clippy warnings ([#&#8203;3491](https://github.com/tree-sitter/tree-sitter/pull/3491)) - **test**: Multi-grammar corpus tests are now in the repo root ([#&#8203;3342](https://github.com/tree-sitter/tree-sitter/pull/3342)) - **wasm**: Update test ##### Performance - Hoist out common subexpressions in satisfies_text_predicates ([#&#8203;3397](https://github.com/tree-sitter/tree-sitter/pull/3397)) ##### Documentation - Update changelog - Remove duplicate pr # in changelog - Add note for bullet - Fix syntax highlighting unit testing example ([#&#8203;3434](https://github.com/tree-sitter/tree-sitter/pull/3434)) - Add tsserver annotation to example ([#&#8203;3460](https://github.com/tree-sitter/tree-sitter/pull/3460)) - Fix tree cursor documentation ([#&#8203;3324](https://github.com/tree-sitter/tree-sitter/pull/3324)) - Document rust library features ([#&#8203;3395](https://github.com/tree-sitter/tree-sitter/pull/3395)) - Clean up binding & parser lists ([#&#8203;3443](https://github.com/tree-sitter/tree-sitter/pull/3443)) ##### Refactor - Remove ansi_term dependency ([#&#8203;3387](https://github.com/tree-sitter/tree-sitter/pull/3387)) - Remove difference dependency ([#&#8203;3388](https://github.com/tree-sitter/tree-sitter/pull/3388)) - **scripts**: Clean up bash scripts ([#&#8203;3231](https://github.com/tree-sitter/tree-sitter/pull/3231)) ##### Testing - Modernize scanner files ([#&#8203;3340](https://github.com/tree-sitter/tree-sitter/pull/3340)) ##### Build System and CI - **deps**: bump wasmtime, cc, and wasmparser ([#&#8203;3529](https://github.com/tree-sitter/tree-sitter/pull/3529) - **bindings**: Use language version in soname ([#&#8203;3308](https://github.com/tree-sitter/tree-sitter/pull/3308)) - **lib**: Include the minor in the soname - **loader**: Make dependencies optional ([#&#8203;1638](https://github.com/tree-sitter/tree-sitter/pull/1638)) - **swift**: Declare header search path ([#&#8203;3474](https://github.com/tree-sitter/tree-sitter/pull/3474)) - **wasm**: Don't minify JS ([#&#8203;3380](https://github.com/tree-sitter/tree-sitter/pull/3380)) - **wasm**: Bump emscripten to 3.1.64 ([#&#8203;3497](https://github.com/tree-sitter/tree-sitter/pull/3497)) - **wasm**: Support big endian machines ([#&#8203;3492](https://github.com/tree-sitter/tree-sitter/pull/3492)) - **zig**: Git ignore updated Zig cache directory ([#&#8203;3408](https://github.com/tree-sitter/tree-sitter/pull/3408)) ##### Other - Swap `sprintf()` for `snprintf()` ([#&#8203;3430](https://github.com/tree-sitter/tree-sitter/pull/3430)) - Add `.build` to gitignore ([#&#8203;3498](https://github.com/tree-sitter/tree-sitter/pull/3498)) - Reset language when resetting wasm store ([#&#8203;3495](https://github.com/tree-sitter/tree-sitter/pull/3495)) - Clone wasm store engine ([#&#8203;3542](https://github.com/tree-sitter/tree-sitter/pull/3542)) - **bindings**: Fix indent & line endings ([#&#8203;3284](https://github.com/tree-sitter/tree-sitter/pull/3284)) ### [`v0.22.6`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.22.6) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.22.5...v0.22.6) #### \[0.22.6] — 2024-05-05 ##### Features - Improve handling of serialization buffer overflows ([#&#8203;3318](https://github.com/tree-sitter/tree-sitter/pull/3318)) - Reverse iteration through node parents ([#&#8203;3214](https://github.com/tree-sitter/tree-sitter/pull/3214)) - **cli**: Support `NO_COLOR` ([#&#8203;3299](https://github.com/tree-sitter/tree-sitter/pull/3299)) - **cli**: Add test listing and allow users to parse a specific test number ([#&#8203;3067](https://github.com/tree-sitter/tree-sitter/pull/3067)) - **grammar**: Add "inherits" field if available ([#&#8203;3295](https://github.com/tree-sitter/tree-sitter/pull/3295)) ##### Bug Fixes - Correctly load field data from wasm languages - Improve error message when the `tree-sitter` field is malformed - Don't error out on package.json lookup errors if `--no-bindings` is passed ([#&#8203;3323](https://github.com/tree-sitter/tree-sitter/pull/3323)) - **cli**: Keep default cc flags in build - **cli**: Properly account for multi-grammar repos when using docker to build a wasm parser ([#&#8203;3337](https://github.com/tree-sitter/tree-sitter/pull/3337)) - **generate**: Don't check arbitrarily named dirs - **generate**: Take `AsRef<Path>` for the path parameter to avoid clones ([#&#8203;3322](https://github.com/tree-sitter/tree-sitter/pull/3322)) - **highlight**: Correct signature of `ts_highlighter_add_language` - **lib**: Do not return field names for extras ([#&#8203;3330](https://github.com/tree-sitter/tree-sitter/pull/3330)) - **lib**: Advance the lookahead end byte by 4 when there's an invalid code point ([#&#8203;3305](https://github.com/tree-sitter/tree-sitter/pull/3305)) - **rust**: Update README example ([#&#8203;3307](https://github.com/tree-sitter/tree-sitter/pull/3307)) - **rust**: Use unix + wasi cfg instead of not windows for fd ([#&#8203;3304](https://github.com/tree-sitter/tree-sitter/pull/3304)) - **test**: Allow newlines in between test name and attribute - **wasm**: Correct `childrenFromFieldXXX` method signatures ([#&#8203;3301](https://github.com/tree-sitter/tree-sitter/pull/3301)) - **xtask**: Always bump every crate in tandem - **zig**: Make usable as a zig dependency ([#&#8203;3315](https://github.com/tree-sitter/tree-sitter/pull/3315)) ##### Documentation - Mention build command variables - Swap `\s` for `\\s` in query example - **highlight**: Typo ([#&#8203;3290](https://github.com/tree-sitter/tree-sitter/pull/3290)) ##### Refactor - **tests**: Migrate remaining `grammar.json` tests to `grammar.js` ([#&#8203;3325](https://github.com/tree-sitter/tree-sitter/pull/3325)) ##### Build System and CI - Add nightly rustfmt to workflow for linting ([#&#8203;3333](https://github.com/tree-sitter/tree-sitter/pull/3333)) - Fix address sanitizer step ([#&#8203;3188](https://github.com/tree-sitter/tree-sitter/pull/3188)) - **deps**: Bump cc from 1.0.92 to 1.0.94 in the cargo group ([#&#8203;3298](https://github.com/tree-sitter/tree-sitter/pull/3298)) - **deps**: Bump the cargo group with 6 updates ([#&#8203;3313](https://github.com/tree-sitter/tree-sitter/pull/3313)) - **xtask**: Bump `build.zig.zon` version when bumping versions ### [`v0.22.5`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.22.5) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.22.4...v0.22.5) #### \[0.22.5] — 2024-04-14 ##### Bug Fixes - Avoid generating unused character set constants - **cli**: Test parsing on windows ([#&#8203;3289](https://github.com/tree-sitter/tree-sitter/pull/3289)) - **rust**: Compilation on wasm32-wasi ([#&#8203;3293](https://github.com/tree-sitter/tree-sitter/pull/3293)) ### [`v0.22.4`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.22.4) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.22.3...v0.22.4) #### \[0.22.4] — 2024-04-12 ##### Bug Fixes - Fix sorting of transitions within a lex state - Include 2-character ranges in array-based state transitions ##### Build System and CI - Always bump at least the patch version in bump xtask ### [`v0.22.3`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.22.3) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.22.2...v0.22.3) ##### \[0.22.3] — 2024-04-12 ##### Features - Add strncat to wasm stdlib - Generate simpler code for matching large character sets ([#&#8203;3234](https://github.com/tree-sitter/tree-sitter/pull/3234)) - When loading languages via WASM, gracefully handle memory errors and leaks in external scanners ([#&#8203;3181](https://github.com/tree-sitter/tree-sitter/pull/3181)) ##### Bug Fixes - **bindings**: Add utf-8 flag to python & node ([#&#8203;3278](https://github.com/tree-sitter/tree-sitter/pull/3278)) - **bindings**: Generate parser.c if missing ([#&#8203;3277](https://github.com/tree-sitter/tree-sitter/pull/3277)) - **bindings**: Remove required platforms for swift ([#&#8203;3264](https://github.com/tree-sitter/tree-sitter/pull/3264)) - **cli**: Fix mismatched parenthesis when accounting for `&&` ([#&#8203;3274](https://github.com/tree-sitter/tree-sitter/pull/3274)) - **lib**: Do not consider childless nodes for ts_node_parent ([#&#8203;3191](https://github.com/tree-sitter/tree-sitter/pull/3191)) - **lib**: Properly account for aliased root nodes and root nodes with children in `ts_subtree_string` ([#&#8203;3191](https://github.com/tree-sitter/tree-sitter/pull/3191)) - **lib**: Account for the root node of a tree cursor being an alias ([#&#8203;3191](https://github.com/tree-sitter/tree-sitter/pull/3191)) - **lib**: Use correct format specifier in log message ([#&#8203;3255](https://github.com/tree-sitter/tree-sitter/pull/3255)) - **parser**: Fix variadic macro ([#&#8203;3229](https://github.com/tree-sitter/tree-sitter/pull/3229)) - render: Proper function prototypes ([#&#8203;3277](https://github.com/tree-sitter/tree-sitter/pull/3277)) - **windows**: Add `/utf-8` flag for parsers using unicode symbols ([#&#8203;3223](https://github.com/tree-sitter/tree-sitter/pull/3223)) - Add a semicolon after SKIP macros ([#&#8203;3264](https://github.com/tree-sitter/tree-sitter/pull/3264)) - Add back `build-wasm` temporarily ([#&#8203;3203](https://github.com/tree-sitter/tree-sitter/pull/3203)) - Add lifetime to matches function ([#&#8203;3254](https://github.com/tree-sitter/tree-sitter/pull/3254)) - Default output directory for `build --wasm` should use current_dir ([#&#8203;3203](https://github.com/tree-sitter/tree-sitter/pull/3203)) - Fix sorting of wasm stdlib symbols - Insert "tree-sitter" section in current directory's package.json if it exists ([#&#8203;3224](https://github.com/tree-sitter/tree-sitter/pull/3224)) - Tie the lifetime of the cursor to the query in `QueryCursor::captures()` ([#&#8203;3266](https://github.com/tree-sitter/tree-sitter/pull/3266)) - Wrong flag check in `build.rs` ##### Performance - **cli**: Reduced the compile time of generated parsers by generating C code with fewer conditionals ([#&#8203;3234](https://github.com/tree-sitter/tree-sitter/pull/3234)) ##### Documentation - Add NGINX grammar ##### Refactor - **parser**: Make REDUCE macro non-variadic ([#&#8203;3280](https://github.com/tree-sitter/tree-sitter/pull/3280)) - **js**: Misc fixes & tidying - **rust**: Misc fixes & tidying ##### Testing - Add regression test for node parent + string bug ([#&#8203;3191](https://github.com/tree-sitter/tree-sitter/pull/3191)) - **test**: Allow colons in test names ([#&#8203;3264](https://github.com/tree-sitter/tree-sitter/pull/3264)) ##### Build System and CI - Upgrade wasmtime - Update emscripten version ([#&#8203;3272](https://github.com/tree-sitter/tree-sitter/pull/3272)) - **dependabot**: Improve PR labels ([#&#8203;3282](https://github.com/tree-sitter/tree-sitter/pull/3282)) ### [`v0.22.2`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.22.2) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.22.1...v0.22.2) ##### \[0.22.2] — 2024-03-17 ##### Breaking - **cli**: Add a separate build command to compile parsers ##### Features - **bindings/rust**: Expose `Parser::included_ranges` - Lower the lib's MSRV ([#&#8203;3169](https://github.com/tree-sitter/tree-sitter/pull/3169)) - **lib**: Implement Display for Node ([#&#8203;3177](https://github.com/tree-sitter/tree-sitter/pull/3177)) ##### Bug Fixes - **bindings/wasm**: Fix `Parser.getIncludedRanges()` ([#&#8203;3164](https://github.com/tree-sitter/tree-sitter/pull/3164)) - **lib**: Makefile installation on macOS ([#&#8203;3167](https://github.com/tree-sitter/tree-sitter/pull/3167)) - **lib**: Makefile installation ([#&#8203;3173](https://github.com/tree-sitter/tree-sitter/pull/3173)) - **lib**: Avoid possible UB of calling memset on a null ptr when 0 is passed into `array_grow_by` ([#&#8203;3176](https://github.com/tree-sitter/tree-sitter/pull/3176)) - **lib**: Allow hiding symbols ([#&#8203;3180](https://github.com/tree-sitter/tree-sitter/pull/3180)) ##### Documentation - Fix typo ([#&#8203;3158](https://github.com/tree-sitter/tree-sitter/pull/3158)) - **licensfe**: Update year ([#&#8203;3183](https://github.com/tree-sitter/tree-sitter/pull/3183)) ##### Refactor - Remove dependency on which crate ([#&#8203;3172](https://github.com/tree-sitter/tree-sitter/pull/3172)) - Turbofish styling ##### Testing - Fix header writes ([#&#8203;3174](https://github.com/tree-sitter/tree-sitter/pull/3174)) ##### Build System and CI - Simplify workflows ([#&#8203;3002](https://github.com/tree-sitter/tree-sitter/pull/3002)) - **lib**: Allow overriding CFLAGS on the commandline ([#&#8203;3159](https://github.com/tree-sitter/tree-sitter/pull/3159)) ### [`v0.22.1`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.22.1) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.22.0...v0.22.1) ##### Changelog ##### \[0.22.1] — 2024-03-10 ##### Bug Fixes - Cli build script behavior on release ### [`v0.22.0`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.22.0) [Compare Source](https://github.com/tree-sitter/tree-sitter/compare/v0.21.0...v0.22.0) ##### Changelog ##### \[0.22.0] — 2024-03-10 ##### Breaking - Remove top-level `corpus` dir for tests The cli will now only look in `test/corpus` for tests - Remove redundant escape regex & curly brace regex preprocessing ([#&#8203;2838](https://github.com/tree-sitter/tree-sitter/pull/2838)) - **bindings**: Convert node bindings to NAPI ([#&#8203;3077](https://github.com/tree-sitter/tree-sitter/pull/3077)) - **wasm**: Make `current*`, `is*`, and `has*` methods properties ([#&#8203;3103](https://github.com/tree-sitter/tree-sitter/pull/3103)) - **wasm**: Keep API in-line with upstream and start aligning with node ([#&#8203;3149](https://github.com/tree-sitter/tree-sitter/pull/3149)) ##### Features - Add xtasks to assist with bumping crates ([#&#8203;3065](https://github.com/tree-sitter/tree-sitter/pull/3065)) - Improve language bindings ([#&#8203;2438](https://github.com/tree-sitter/tree-sitter/pull/2438)) - Expose the allocator and array header files for external scanners ([#&#8203;3063](https://github.com/tree-sitter/tree-sitter/pull/3063)) - Add typings for the node bindings - Replace `nan` with `node-addon-api` and conditionally print logs - **bindings**: Add more make targets - **bindings**: Add peerDependencies for npm - **bindings**: Add prebuildify to node - **bindings**: Remove dsl types file ([#&#8203;3126](https://github.com/tree-sitter/tree-sitter/pull/3126)) - **node**: Type tag the language ([#&#8203;3109](https://github.com/tree-sitter/tree-sitter/pull/3109)) - **test**: Add attributes for corpus tests ##### Bug Fixes - Apply some `scan-build` suggestions (unused assignment/garbage access) ([#&#8203;3056](https://github.com/tree-sitter/tree-sitter/pull/3056)) - Wrap `||` comparison in parentheses when `&&` is used ([#&#8203;3070](https://github.com/tree-sitter/tree-sitter/pull/3070)) - Ignore unused variables in the array macros ([#&#8203;3083](https://github.com/tree-sitter/tree-sitter/pull/3083)) - `binding.cc` overwrite should replace `PARSER_NAME` ([#&#8203;3116](https://github.com/tree-sitter/tree-sitter/pull/3116)) - Don't use `__declspec(dllexport)` on windows ([#&#8203;3128](https://github.com/tree-sitter/tree-sitter/pull/3128)) - Parsers should export the language function on windows - Allow the regex `v` flag ([#&#8203;3154](https://github.com/tree-sitter/tree-sitter/pull/3154)) - **assertions**: Case shouldn't matter for comment node detection - **bindings**: Editorconfig and setup.py fixes ([#&#8203;3082](https://github.com/tree-sitter/tree-sitter/pull/3082)) - **bindings**: Insert `types` after `main` if it exists ([#&#8203;3122](https://github.com/tree-sitter/tree-sitter/pull/3122)) - **bindings**: Fix template oversights ([#&#8203;3155](https://github.com/tree-sitter/tree-sitter/pull/3155)) - **cli**: Only output the sources with `--no-bindings` ([#&#8203;3123](https://github.com/tree-sitter/tree-sitter/pull/3123)) - **generate**: Add `.npmignore`, populate Swift's exclude list ([#&#8203;3085](https://github.com/tree-sitter/tree-sitter/pull/3085)) - **generate**: Extern allocator functions for the template don't need to be "exported" ([#&#8203;3132](https://github.com/tree-sitter/tree-sitter/pull/3132)) - **generate**: Camel case name in `Cargo.toml` description ([#&#8203;3140](https://github.com/tree-sitter/tree-sitter/pull/3140)) - **lib**: Include `api.h` so `ts_set_allocator` is visible ([#&#8203;3092](https://github.com/tree-sitter/tree-sitter/pull/3092)) ##### Documentation - Add GitHub user and PR info to the changelog - Add css for inline code ([#&#8203;2844](https://github.com/tree-sitter/tree-sitter/pull/2844)) - Document test attributes - Add `Ohm` language parser - Remove duplicate `the`'s ([#&#8203;3120](https://github.com/tree-sitter/tree-sitter/pull/3120)) - Add discord and matrix badges ([#&#8203;3148](https://github.com/tree-sitter/tree-sitter/pull/3148)) ##### Refactor - Rename TS_REUSE_ALLOCATOR flag ([#&#8203;3088](https://github.com/tree-sitter/tree-sitter/pull/3088)) - Remove extern/const where possible - **array**: Use pragma GCC in clang too - **bindings**: Remove npmignore ([#&#8203;3089](https://github.com/tree-sitter/tree-sitter/pull/3089)) ##### Testing - Don't use TS_REUSE_ALLOCATOR on Darwin systems ([#&#8203;3087](https://github.com/tree-sitter/tree-sitter/pull/3087)) - Add test case for parse stack merging with incorrect error cost bug ([#&#8203;3098](https://github.com/tree-sitter/tree-sitter/pull/3098)) ##### Build System and CI - Improve changelog settings ([#&#8203;3064](https://github.com/tree-sitter/tree-sitter/pull/3064)) - Unify crate versions via workspace ([#&#8203;3074](https://github.com/tree-sitter/tree-sitter/pull/3074)) - Update `cc` to remove annoying debug output ([#&#8203;3075](https://github.com/tree-sitter/tree-sitter/pull/3075)) - Adjust dependabot settings ([#&#8203;3079](https://github.com/tree-sitter/tree-sitter/pull/3079)) - Use c11 everywhere - Add uninstall command - Don't skip tests on failing lint ([#&#8203;3102](https://github.com/tree-sitter/tree-sitter/pull/3102)) - Remove unused deps, bump deps, and bump MSRV to 1.74.1 ([#&#8203;3153](https://github.com/tree-sitter/tree-sitter/pull/3153)) - **bindings**: Metadata improvements - **bindings**: Make everything c11 ([#&#8203;3099](https://github.com/tree-sitter/tree-sitter/pull/3099)) - **dependabot**: Update weekly instead of daily ([#&#8203;3112](https://github.com/tree-sitter/tree-sitter/pull/3112)) - **deps**: Bump the cargo group with 1 update ([#&#8203;3081](https://github.com/tree-sitter/tree-sitter/pull/3081)) - **deps**: Bump the cargo group with 1 update ([#&#8203;3097](https://github.com/tree-sitter/tree-sitter/pull/3097)) - **deps**: Bump deps & lockfile ([#&#8203;3060](https://github.com/tree-sitter/tree-sitter/pull/3060)) - **deps**: Bump the cargo group with 4 updates ([#&#8203;3134](https://github.com/tree-sitter/tree-sitter/pull/3134)) - **lint**: Detect if `Cargo.lock` needs to be updated ([#&#8203;3066](https://github.com/tree-sitter/tree-sitter/pull/3066)) - **lint**: Make lockfile check quiet ([#&#8203;3078](https://github.com/tree-sitter/tree-sitter/pull/3078)) - **swift**: Move 'cLanguageStandard' behind 'targets' ([#&#8203;3101](https://github.com/tree-sitter/tree-sitter/pull/3101)) ##### Other - Make Node.js language bindings context aware ([#&#8203;2841](https://github.com/tree-sitter/tree-sitter/pull/2841)) They don't have any dynamic global data, so all it takes is just declaring them as such - Fix crash when attempting to load ancient languages via wasm ([#&#8203;3068](https://github.com/tree-sitter/tree-sitter/pull/3068)) - Use workspace dependencies for internal crates like Tree-sitter ([#&#8203;3076](https://github.com/tree-sitter/tree-sitter/pull/3076)) - Remove vendored wasmtime headers (https://github.com/tree-sitter/tree-sitter/pull/3084) When building rust binding, use wasmtime headers provided via cargo by the wasmtime-c-api crate. - Fix invalid parse stack recursive merging with mismatched error cost ([#&#8203;3086](https://github.com/tree-sitter/tree-sitter/pull/3086)) Allowing this invalid merge caused an invariant to be violated later on during parsing, when handling a later error. - Fix regression in `subtree_compare` ([#&#8203;3111](https://github.com/tree-sitter/tree-sitter/pull/3111)) - docs: Add `Ohm` language parser ([#&#8203;3114](https://github.com/tree-sitter/tree-sitter/pull/3114)) - Delete `binding_files.rs` ([#&#8203;3106](https://github.com/tree-sitter/tree-sitter/pull/3106)) - **bindings**: Consistent wording ([#&#8203;3096](https://github.com/tree-sitter/tree-sitter/pull/3096)) - **bindings**: Ignore more artifacts ([#&#8203;3119](https://github.com/tree-sitter/tree-sitter/pull/3119)) ### [`v0.21.0`](https://github.com/tree-sitter/tree-sitter/releases/tag/v0.21.0) ##### Changelog ##### \[0.21.0] - 2024-02-21 ##### Breaking - Remove the apply-all-captures flag, make last-wins precedence the default **NOTE**: This change might cause breakage in your grammar's highlight tests. Just flip the order around of the relevant queries, and keep in mind that the last query that matches will win. ##### Features - Use lockfiles to dedup recompilation - Improve error message for files with an unknown grammar path (https://github.com/tree-sitter/tree-sitter/pull/2475) - Implement first-line-regex (https://github.com/tree-sitter/tree-sitter/pull/2479) - Error out if an empty string is in the `extras` array - Allow specifying an external scanner's files (https://github.com/tree-sitter/tree-sitter/pull/3031) - Better error info when a scanner is missing required symbols - **cli**: Add an optional `grammar-path` argument for the playground (https://github.com/tree-sitter/tree-sitter/pull/3014) - **cli**: Add optional `config-path` argument (https://github.com/tree-sitter/tree-sitter/pull/3050) - **loader**: Add more commonly used default parser directories ##### Bug Fixes - Prettify xml output and add node position info (https://github.com/tree-sitter/tree-sitter/pull/2970) - Inherited grammar generation - Properly error out when the word property is an invalid rule - Update schema for regex flags (https://github.com/tree-sitter/tree-sitter/pull/3006) - Properly handle Query.matches when filtering out results (https://github.com/tree-sitter/tree-sitter/pull/3013) - Sexp format edge case with quoted closed parenthesis (https://github.com/tree-sitter/tree-sitter/pull/3016) - Always push the default files if there's no `externals` - Don't log NUL characters (https://github.com/tree-sitter/tree-sitter/pull/3037) - Don't throw an error if the user uses `map` in the grammar (https://github.com/tree-sitter/tree-sitter/pull/3041) - Remove redundant imports (https://github.com/tree-sitter/tree-sitter/pull/3047) - **cli**: Installation via a HTTP tunnel proxy (https://github.com/tree-sitter/tree-sitter/pull/2824) - **cli**: Don't update tests automatically if parse errors are detected (https://github.com/tree-sitter/tree-sitter/pull/3033) - **cli**: Don't use `long` for `grammar_path` - **test**: Allow writing updates to tests without erroneous nodes instead of denying all of them if a single error is found - **test**: Edge case when parsing `UNEXPECTED`/`MISSING` nodes with an indentation level greater than 0 - **wasm**: Remove C++ mangled symbols (https://github.com/tree-sitter/tree-sitter/pull/2971) ##### Documentation - Create issue template (https://github.com/tree-sitter/tree-sitter/pull/2978) - Document regex limitations - Mention that `token($.foo)` is illegal - Explicitly mention behavior of walking outside the given "root" node for a `TSTreeCursor` (https://github.com/tree-sitter/tree-sitter/pull/3021) - Small fixes (https://github.com/tree-sitter/tree-sitter/pull/2987) - Add `Tact` language parser (https://github.com/tree-sitter/tree-sitter/pull/3030) - **web**: Provide deno usage information (https://github.com/tree-sitter/tree-sitter/pull/2498) ##### Refactor - Extract regex check into a function and lower its precedence - `&PathBuf` -> `&Path` (https://github.com/tree-sitter/tree-sitter/pull/3035) - Name anonymous types in api.h (https://github.com/tree-sitter/tree-sitter/pull/1659) ##### Testing - Add quotes around bash variables (https://github.com/tree-sitter/tree-sitter/pull/3023) - Update html tests ##### Build System and CI - Only create release for normal semver tags (https://github.com/tree-sitter/tree-sitter/pull/2973) - Add useful development targets to makefile (https://github.com/tree-sitter/tree-sitter/pull/2979) - Remove minimum glibc information in summary page (https://github.com/tree-sitter/tree-sitter/pull/2988) - Use the native m1 mac runner (https://github.com/tree-sitter/tree-sitter/pull/2995) - Add editorconfig (https://github.com/tree-sitter/tree-sitter/pull/2998) - Remove symbolic links from repository (https://github.com/tree-sitter/tree-sitter/pull/2997) - Move common Cargo.toml keys into the workspace and inherit them (https://github.com/tree-sitter/tree-sitter/pull/3019) - Remove reviewers when drafting or closing a PR (https://github.com/tree-sitter/tree-sitter/pull/2963) - Enable creating changelogs with git-cliff (https://github.com/tree-sitter/tree-sitter/pull/3040) - Cache fixtures (https://github.com/tree-sitter/tree-sitter/pull/3038) - Don't cancel jobs on master (https://github.com/tree-sitter/tree-sitter/pull/3052) - Relax caching requirements (https://github.com/tree-sitter/tree-sitter/pull/3051) - **deps**: Bump clap from 4.4.18 to 4.5.0 (https://github.com/tree-sitter/tree-sitter/pull/3007) - **deps**: Bump wasmtime from v16.0.0 to v17.0.1 (https://github.com/tree-sitter/tree-sitter/pull/3008) - **deps**: Bump wasmtime to v18.0.1 (https://github.com/tree-sitter/tree-sitter/pull/3057) - **sanitize**: Add a timeout of 60 minutes (https://github.com/tree-sitter/tree-sitter/pull/3017) - **sanitize**: Reduce timeout to 20 minutes (https://github.com/tree-sitter/tree-sitter/pull/3054) ##### Other - Document preferred language for scanner (https://github.com/tree-sitter/tree-sitter/pull/2972) - Add java and tsx to corpus tests (https://github.com/tree-sitter/tree-sitter/pull/2992) - Provide a CLI flag to open `log.html` (https://github.com/tree-sitter/tree-sitter/pull/2996) - Some more clippy lints (https://github.com/tree-sitter/tree-sitter/pull/3010) - Remove deprecated query parsing mechanism (https://github.com/tree-sitter/tree-sitter/pull/3011) - Print out full compiler arguments ran when it fails (https://github.com/tree-sitter/tree-sitter/pull/3018) - Deprecate C++ scanners (https://github.com/tree-sitter/tree-sitter/pull/3020) - Add some documentation to the playground page (https://github.com/tree-sitter/tree-sitter/pull/1495) - Update relevant rust tests (https://github.com/tree-sitter/tree-sitter/pull/2947) - Clippy lints (https://github.com/tree-sitter/tree-sitter/pull/3032) - Error out when multiple arguments are passed to `token`/`token.immediate` (https://github.com/tree-sitter/tree-sitter/pull/3036) - Tidying - Prefer turbofish syntax where possible (https://github.com/tree-sitter/tree-sitter/pull/3048) - Use published wasmtime crates - Cleaner cast - Update Cargo.lock - Get rid of `github_issue_test` file (https://github.com/tree-sitter/tree-sitter/pull/3055) - **cli**: Use spawn to display `emcc`'s stdout and stderr (https://github.com/tree-sitter/tree-sitter/pull/2494) - **cli**: Warn users when a query path needed for a subcommand isn't specified in a grammar's package.json - **generate**: Dedup and warn about duplicate or invalid rules (https://github.com/tree-sitter/tree-sitter/pull/2994) - **test**: Use different languages for async tests (https://github.com/tree-sitter/tree-sitter/pull/2953) - **wasm**: Use `SIDE_MODULE=2` to silence warning (https://github.com/tree-sitter/tree-sitter/pull/3003) </details> <details> <summary>tree-sitter/tree-sitter-json (tree-sitter-json)</summary> ### [`v0.24.8`](https://github.com/tree-sitter/tree-sitter-json/releases/tag/v0.24.8) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.24.7...v0.24.8) **NOTE:** Download `tree-sitter-json.tar.xz` for the *complete* source code. ### [`v0.24.7`](https://github.com/tree-sitter/tree-sitter-json/releases/tag/v0.24.7) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.24.5...v0.24.7) **NOTE:** Download `tree-sitter-json.tar.xz` for the *complete* source code. ### [`v0.24.5`](https://github.com/tree-sitter/tree-sitter-json/releases/tag/v0.24.5) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.24.4...v0.24.5) **NOTE:** Download `tree-sitter-json.tar.xz` for the *complete* source code. ### [`v0.24.4`](https://github.com/tree-sitter/tree-sitter-json/compare/v0.24.3...v0.24.4) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.24.3...v0.24.4) ### [`v0.24.3`](https://github.com/tree-sitter/tree-sitter-json/compare/v0.24.2...v0.24.3) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.24.2...v0.24.3) ### [`v0.24.2`](https://github.com/tree-sitter/tree-sitter-json/compare/v0.23.0...v0.24.2) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.23.0...v0.24.2) ### [`v0.23.0`](https://github.com/tree-sitter/tree-sitter-json/compare/v0.21.0...v0.23.0) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.21.0...v0.23.0) ### [`v0.21.0`](https://github.com/tree-sitter/tree-sitter-json/compare/v0.20.2...v0.21.0) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.20.2...v0.21.0) ### [`v0.20.2`](https://github.com/tree-sitter/tree-sitter-json/compare/v0.20.1...v0.20.2) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/v0.20.1...v0.20.2) ### [`v0.20.1`](https://github.com/tree-sitter/tree-sitter-json/compare/5d992d9dd42d533aa25618b3a0588f4375adf9f3...v0.20.1) [Compare Source](https://github.com/tree-sitter/tree-sitter-json/compare/5d992d9dd42d533aa25618b3a0588f4375adf9f3...v0.20.1) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNjAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjQyNC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
kjuulh added 1 commit 2023-07-23 13:05:48 +02:00
kjuulh force-pushed renovate/all from 02f43426ad to eee3548904 2024-02-21 20:53:32 +01:00 Compare
kjuulh changed title from chore(deps): update dependency prettier to v3 to chore(deps): update all dependencies 2024-02-21 20:53:34 +01:00
kjuulh force-pushed renovate/all from eee3548904 to 41e9664933 2024-02-21 22:13:35 +01:00 Compare
kjuulh force-pushed renovate/all from 41e9664933 to 03cc772e98 2024-03-10 22:29:57 +01:00 Compare
kjuulh force-pushed renovate/all from 03cc772e98 to c652c22b16 2024-03-10 23:14:08 +01:00 Compare
kjuulh force-pushed renovate/all from c652c22b16 to f1cb4ae9ac 2024-03-17 13:14:40 +01:00 Compare
kjuulh force-pushed renovate/all from f1cb4ae9ac to 42e89794d3 2024-04-07 21:39:37 +02:00 Compare
kjuulh force-pushed renovate/all from 42e89794d3 to afc5e20736 2024-04-13 01:26:31 +02:00 Compare
kjuulh force-pushed renovate/all from afc5e20736 to 931f112032 2024-04-13 02:37:47 +02:00 Compare
kjuulh force-pushed renovate/all from 931f112032 to f5d44361a4 2024-04-14 20:00:55 +02:00 Compare
kjuulh force-pushed renovate/all from f5d44361a4 to 7e8d9612f0 2024-05-05 23:31:55 +02:00 Compare
kjuulh force-pushed renovate/all from 7e8d9612f0 to 778343c75f 2024-05-23 22:35:12 +02:00 Compare
kjuulh changed title from chore(deps): update all dependencies to fix(deps): update all dependencies 2024-05-23 22:35:14 +02:00
kjuulh force-pushed renovate/all from 778343c75f to 55573ce5e5 2024-08-21 23:44:39 +02:00 Compare
kjuulh force-pushed renovate/all from 55573ce5e5 to 39f13d2095 2024-08-26 15:56:53 +02:00 Compare
kjuulh force-pushed renovate/all from 39f13d2095 to 35e6b11024 2024-08-28 15:17:43 +02:00 Compare
kjuulh force-pushed renovate/all from 35e6b11024 to 76afd87df5 2024-09-03 02:58:13 +02:00 Compare
kjuulh force-pushed renovate/all from 76afd87df5 to d4127714a0 2024-10-01 03:16:16 +02:00 Compare
kjuulh force-pushed renovate/all from d4127714a0 to 3ce50db5c7 2024-10-02 03:13:57 +02:00 Compare
kjuulh force-pushed renovate/all from 3ce50db5c7 to 189f88634e 2024-10-04 03:07:18 +02:00 Compare
kjuulh force-pushed renovate/all from 189f88634e to cc6f288aa5 2024-10-04 06:55:59 +02:00 Compare
kjuulh force-pushed renovate/all from cc6f288aa5 to 7587a81af5 2024-10-05 03:02:00 +02:00 Compare
kjuulh force-pushed renovate/all from 7587a81af5 to 6a5e368aa0 2024-10-06 03:02:58 +02:00 Compare
kjuulh force-pushed renovate/all from 6a5e368aa0 to f06453868f 2024-10-10 03:15:21 +02:00 Compare
kjuulh force-pushed renovate/all from f06453868f to 4a25e8b382 2024-10-11 03:10:56 +02:00 Compare
kjuulh force-pushed renovate/all from 4a25e8b382 to 66fd647af3 2024-10-11 07:01:18 +02:00 Compare
kjuulh force-pushed renovate/all from 66fd647af3 to 6e8493b878 2024-10-12 03:06:01 +02:00 Compare
kjuulh force-pushed renovate/all from 6e8493b878 to dce91b74b3 2024-11-09 03:07:34 +01:00 Compare
kjuulh force-pushed renovate/all from dce91b74b3 to 04632d9798 2024-11-10 07:08:39 +01:00 Compare
kjuulh force-pushed renovate/all from 04632d9798 to f3a5bc50e6 2024-11-11 02:58:05 +01:00 Compare
kjuulh force-pushed renovate/all from f3a5bc50e6 to 5cd16c2fe3 2024-11-12 03:00:13 +01:00 Compare
kjuulh force-pushed renovate/all from 5cd16c2fe3 to 7429a03015 2024-11-13 03:34:56 +01:00 Compare
kjuulh force-pushed renovate/all from 7429a03015 to a2db103836 2024-11-20 03:00:22 +01:00 Compare
kjuulh force-pushed renovate/all from a2db103836 to ca0515d3f9 2024-11-26 07:22:00 +01:00 Compare
kjuulh force-pushed renovate/all from ca0515d3f9 to f6ab438813 2024-11-27 04:09:02 +01:00 Compare
kjuulh force-pushed renovate/all from f6ab438813 to d6f8f52703 2024-11-30 03:47:50 +01:00 Compare
kjuulh force-pushed renovate/all from d6f8f52703 to 7d702e3558 2024-12-05 03:14:27 +01:00 Compare
kjuulh force-pushed renovate/all from 7d702e3558 to 4cd5025a22 2024-12-12 03:08:53 +01:00 Compare
This pull request can be merged automatically.
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/all:renovate/all
git checkout renovate/all
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kjuulh/tree-sitter-hurl#3
No description provided.