-
-
Notifications
You must be signed in to change notification settings - Fork 88
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs(ja): translate gritql page (#1615)
- Loading branch information
Showing
2 changed files
with
109 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
--- | ||
title: GritQL [実験的機能] | ||
description: Biome における GritQL の基本的な使い方 | ||
--- | ||
|
||
GritQL は、ソースコードの構造検索を実行するためのクエリ言語です。 | ||
つまり、空白や、文字列で使用される引用符の種類などの些細な情報は、検索クエリでは無視されます。 | ||
さらに、スニペット、マッチング、ネスト、変数など、構文構造をクエリできる多くの機能も提供します。 | ||
|
||
GritQL は[オープンソース](https://github.com/getgrit/gritql/)であり、[Grit.io](https://grit.io/)によって作成されました。 | ||
|
||
Biome は GritQL を 2 つの目的で統合しています: | ||
|
||
- IDE 拡張機能にも拡張したいと考えている、[`biome search`](/reference/cli/#biome-search) コマンド | ||
- 現在進行中の、プラグインへの取り組み | ||
|
||
## パターン | ||
|
||
GritQL クエリは _パターン_ を通じて機能します。 | ||
最もよく見られるパターンは、バッククォートで囲まれた通常のソースコードのように見えるコードスニペットです。 | ||
|
||
```grit | ||
`console.log('Hello, world!')` | ||
``` | ||
|
||
このパターンは、文字列 `'Hello, world!'` が渡された全ての `console.log()` の呼び出しに一致します。 | ||
ただし、GridQLは _構造的_ マッチングを行うため、format の詳細には関心がありません。 | ||
これもマッチします: | ||
|
||
```js | ||
console.log ( | ||
'Hello, world!' | ||
) | ||
``` | ||
|
||
そして、これもマッチします(引用符が変化したことに注目してください): | ||
|
||
```js | ||
console.log("Hello, world!") | ||
``` | ||
|
||
:::note | ||
ほとんどのシェルはバッククォートをコマンド呼び出しとして解釈しますが、これは GritQL のコードスニペットと競合します。 | ||
そのため、`biome search` コマンドを使用する場合は、 Grit クエリを _シングルクォート_ で囲むのが最適です: | ||
|
||
```shell | ||
biome search '`console.log($message)`' # 全ての `console.log()` 呼び出しを検索 | ||
``` | ||
::: | ||
|
||
## 変数 | ||
|
||
GritQL クエリでは変数も使用できます。 | ||
次のクエリは渡されるメッセージに関係なく、全ての `console.log()` 呼び出しに一致します。 | ||
|
||
```grit | ||
`console.log($message)` | ||
``` | ||
|
||
これは、`console` オブジェクトの任意のメソッドに一致します: | ||
|
||
```grit | ||
`console.$method($message)` | ||
``` | ||
|
||
同じ変数名が 1 つのスニペット内で複数回出現することもできます。 | ||
|
||
```grit | ||
`$fn && $fn()` | ||
``` | ||
|
||
これは `foo && foo()` や、`foo.bar && foo.bar()` にもマッチしますが、`foo && bar()` にはマッチしません。 | ||
|
||
## 条件 | ||
|
||
`where` 演算子を使用してパターンに条件を追加できます。 | ||
これは通常、`<:` マッチ演算子と一緒に使用されます: | ||
|
||
```grit | ||
`console.$method($message)` where { | ||
$method <: `log` | ||
} | ||
``` | ||
|
||
このクエリは先ほど見た `console.log($message)` パターンと同じですが、他の演算子を追加するとすぐに、さらに興味深いものになります: | ||
|
||
```grit | ||
`console.$method($message)` where { | ||
$method <: or { `log`, `info`, `warn`, `error` } | ||
} | ||
``` | ||
|
||
## 言語ドキュメント | ||
|
||
GritQL とその構文については、公式の [GritQL 言語ドキュメント](https://docs.grit.io/language/overview)を参照してください。 | ||
|
||
Biome は Grit の全ての機能を(まだ)サポートしていないことに注意してください。 | ||
|
||
## 統合状況 | ||
|
||
Biome は GritQL サポートに積極的に取り組んでいます。 | ||
多くの機能がすでに動作していますが、バグがまだ発生することが予想され、一部の機能はまだ完全に欠落しています。 | ||
|
||
サポートされている GritQL の機能と、まだ進行中の機能の詳細な概要については、GitHub の Issue を参照してください: https://github.com/biomejs/biome/issues/2582 | ||
|
||
プラグインの取り組みの方向性を示す詳細な RFC もあります: https://github.com/biomejs/biome/discussions/1762 | ||
|
||
**まとめ**: 私たちは、純粋な GritQL プラグイン、または GritQL を使用して操作したいコードを選択する JS/TS プラグインのいずれかをサポートするプラグインに取り組んでいます。お楽しみに! |