diff --git a/src/content/docs/ja/guides/editors/create-an-extension.mdx b/src/content/docs/ja/guides/editors/create-an-extension.mdx index 566f6fe5a..cf073aa94 100644 --- a/src/content/docs/ja/guides/editors/create-an-extension.mdx +++ b/src/content/docs/ja/guides/editors/create-an-extension.mdx @@ -41,6 +41,82 @@ Biomeは新しい出力(変更がない場合は元の出力)を[標準出 バイナリ名は `biome` または `biome.exe` で、ライブラリのルートディレクトリに配置されています。例:`@biomejs/cli-darwin-arm64/biome`、`@biomejs/cli-win32-x64/biome.exe` +### 拡張機能の設定 + +Biomeの言語サーバは以下の設定を公開しており、拡張機能はこれらをユーザーに公開できます。 + +:::note +以下の設定は**拡張機能開発者向け**であり、ユーザー向けではありません。 +拡張機能は、異なる名前や異なる形式で設定をユーザーに公開することができます。 + +例えば、Zed拡張機能は[`require_configuration`](#require-configuration)設定を、JSONCファイルで定義される`require_config_file`設定としてマッピングしています。 +::: + +#### `require_configuration` + +> 型: `boolean` +> デフォルト: `false` + +Biomeの言語サーバが設定ファイルを必要とするかどうか。`true`に設定すると、プロジェクトのルートに`biome.json`ファイルがあるまで、(パース以外の)ファイルの解析を行いません。 + +```json +{ + "require_configuration": true +} +``` + +#### `configuration_path` + +> 型: `string` +> デフォルト: `null` + +カスタム設定ファイルへのパス。パスは `biome.json` / `biome.jsonc` があるフォルダ、またはファイルへのパスを指定できます。 + +パスは相対パスまたは絶対パスで指定できます。Biomeの言語サーバは、この設定が指定された場合にのみ読み取ります。設定が *プロジェクトのサブフォルダにある* 場合にこの設定を使用してください。 + +```json +{ + "configuration_path": "./frontend/biome.json" +} +``` + +#### `inline_config` + +> 型: `object` +> デフォルト: `null` + +Biome設定のインラインバージョン。この設定のオプションは、ディスクから読み取られた `biome.json` ファイル(またはデフォルト値)のオプションを上書きします。 + +例えば、プロジェクトで `noConsole` ルールを `error` の重大度で有効にしているとします: + +```json title="biome.json" +{ + "linter": { + "rules": { + "suspicious": { + "noConsole": "error" + } + } + } +} +``` + +しかし、ローカル開発中は、このルールが便利で赤い波線を見たくないため、このルールを無効にしたいとします。`inline_config`には、次のように記述します: + +```json +{ + "inline_config": { + "linter": { + "rules": { + "suspicious": { + "noConsole": "off" + } + } + } + } +} +``` + ### バイナリとデーモンを使用する CLIを介してバイナリを使用するのは非常に効率的ですが、[ログ](#デーモンログ)をユーザーに提供することはできません。CLIを使用するとデーモンを起動し、デーモン経由でCLIコマンドを使用できます。 diff --git a/src/content/docs/ja/guides/editors/first-party-extensions.mdx b/src/content/docs/ja/guides/editors/first-party-extensions.mdx index 696c1e633..21c3b5afa 100644 --- a/src/content/docs/ja/guides/editors/first-party-extensions.mdx +++ b/src/content/docs/ja/guides/editors/first-party-extensions.mdx @@ -39,7 +39,7 @@ Biome IntelliJプラグインをインストールするには、[公式プラ **ディスクから:** 1. バージョンタブから拡張機能の .zipをダウンロードします。 -2. `⌘Cmd,`を押してIDE設定を開き、プラグインを選択します。 +2. +,(macOS)または Ctrl+Alt+S(Windows/Linux)を押してIDE設定を開き、プラグインを選択します。 3. 拡張機能ページで設定ボタンをクリックし、"ディスクからプラグインをインストール ..."を選択します。 ### Zed diff --git a/src/content/docs/ja/guides/editors/third-party-extensions.mdx b/src/content/docs/ja/guides/editors/third-party-extensions.mdx index 5be7b5826..2e57071d7 100644 --- a/src/content/docs/ja/guides/editors/third-party-extensions.mdx +++ b/src/content/docs/ja/guides/editors/third-party-extensions.mdx @@ -11,6 +11,7 @@ description: サードパーティの拡張機能の設定方法 - [`coc-biome`](https://github.com/fannheyward/coc-biome): [`coc.nvim`](https://github.com/neoclide/coc.nvim) 用のBiome拡張機能。 - [`sublime text`](https://www.sublimetext.com/): [`LSP-biome`](https://github.com/sublimelsp/LSP-biome) のインストール手順に従ってください。 - [`Emacs`](https://www.gnu.org/software/emacs/): [`lsp-mode`](https://github.com/emacs-lsp/lsp-mode) をインストールし、[`lsp-biome`](https://github.com/cxa/lsp-biome) のインストール手順に従って `lsp-mode` でBiomeサポートを有効にします。 +- [`Nova`](https://nova.app): [`Biome`](https://extensions.panic.com/extensions/besya/besya.biome/) 拡張機能をインストールし、指示に従ってください。 :::note ここに記載されていないエディタ用の拡張機能がありますか?ぜひPRを送ってください。リストに追加します。 diff --git a/src/content/docs/ja/guides/getting-started.mdx b/src/content/docs/ja/guides/getting-started.mdx index cc1909df9..7107c6151 100644 --- a/src/content/docs/ja/guides/getting-started.mdx +++ b/src/content/docs/ja/guides/getting-started.mdx @@ -3,95 +3,182 @@ title: はじめる description: Biomeと共に新しいプロジェクトを立ち上げる方法 --- -import DefaultConfiguration from "@/components/generated/DefaultConfiguration.mdx"; +import { Code, TabItem, Tabs } from "@astrojs/starlight/components"; import PackageManagerBiomeCommand from "@/components/PackageManagerBiomeCommand.astro"; import PackageManagerCommand from "@/components/PackageManagerCommand.astro"; -## インストール方法 +Biomeはプロジェクトの開発依存としてインストールするのが最適ですが、Node.jsを必要としない[スタンドアロン実行形式]としても利用可能です。 -Biomeをインストールする最も速い方法は、 `npm` またはお好みのパッケージマネージャーを使用することです。 -これにはNode.js v14.18以降が必要です。 - -Node.jsをインストールせずにBiomeを使用したい場合は、[スタンドアロン実行形式](/ja/guides/manual-installation)としてCLIを利用できます。 - -Biomeをインストールするには、 `package.json` ファイルが含まれるディレクトリで次のコマンドを実行します。 +[スタンドアロン実行形式]: /ja/guides/manual-installation -:::note -Biomeの正確なバージョンを固定するように、パッケージマネージャへ指示しています。 -これにより、プロジェクトに関わる全員が全く同じバージョンのBiomeを利用することを保証します。 -パッチリリースであっても、わずかに異なる動作を起こすことがあります。 -詳しくは、[バージョニング ページ](/ja/internals/versioning/)をご覧ください。 +:::note[バージョンの固定] +`-E` はパッケージマネージャがBiomeのバージョンを固定することを保証します。 +[バージョンの固定が重要な理由]についての詳細は、[バージョニングのページ](/ja/internals/versioning)をご覧ください。 ::: -## 設定 +[バージョンの固定が重要な理由]: /ja/internals/versioning#バージョンの固定が重要な理由 -プロジェクトごとに `biome.json` または `biome.jsonc`(設定ファイル)を作成することを推奨します。 -これにより、コマンドを実行するたびにCLIのオプションを繰り返し指定する必要がなくなり、エディタ上で同じ設定を適用できるようになります。 -もしBiomeのデフォルト設定に満足している場合は、新たに設定ファイルを作成する必要はありません。 +## 設定 -`biome.json` ファイルを作成するには、プロジェクトのルートディレクトリで `init` コマンドを実行します: +Biomeは設定なしでも動作しますが、プロジェクトのニーズに合わせていくつかの設定を調整したい場合は、次のコマンドを実行して `biome.json` 設定ファイルを生成できます。 -`--jsonc` オプションを渡すことで、 `biome.jsonc` ファイルを代わりに生成します。 +## 使い方 -`init` コマンドを実行すると、そのディレクトリに `biome.json` ファイルが新規作成されます: +プロジェクトでBiomeを使用する方法の概要を説明します。 - +### コマンドラインインターフェース -`linter.enabled: true` はリンタを有効にし、 `rules.recommended: true` は[推奨ルール](/linter/rules/)を有効にします。 -これはデフォルトの設定と対応しています。 +Biomeは、コードのフォーマット、リント、チェックを行うための[コマンドラインインターフェース]を提供します。 -この設定では、`formatter.enabled: false` で明示的にフォーマットを[無効化](/ja/reference/configuration/#formatterenabled)していないため、フォーマットは有効になっています。 +[コマンドラインインターフェース]: /reference/cli -## 使い方 +{/* */} + + + + +# すべてのファイルをリントし、安全な修正を適用 +npx @biomejs/biome lint --write + +# 特定のファイルをリントし、安全な修正を適用 +npx @biomejs/biome lint --write + +# すべてのファイルをフォーマット、リント、インポート整理 +npx @biomejs/biome check --write + +# 特定のファイルをフォーマット、リント、インポート整理 +npx @biomejs/biome check --write + `} lang="bash" /> + + + + +# すべてのファイルをリントし、安全な修正を適用 +pnpm exec biome lint --write + +# 特定のファイルをリントし、安全な修正を適用 +pnpm exec biome lint --write + +# すべてのファイルをフォーマット、リント、インポート整理 +pnpm exec biome check --write + +# 特定のファイルをフォーマット、リント、インポート整理 +pnpm exec biome check --write + `} lang="bash" /> + + + + +# すべてのファイルをリントし、安全な修正を適用 +bunx biome lint --write + +# 特定のファイルをリントし、安全な修正を適用 +bunx biome lint --write + +# すべてのファイルをフォーマット、リント、インポート整理 +bunx biome check --write + +# 特定のファイルをフォーマット、リント、インポート整理 +bunx biome check --write + `} lang="bash" /> + + + + +# すべてのファイルをフォーマット +deno run -A npm:@biomejs/biome format --write + +# すべてのファイルをリントし、安全な修正を適用 +deno run -A npm:@biomejs/biome lint --write + +# 特定のファイルをリントし、安全な修正を適用 +deno run -A npm:@biomejs/biome lint --write + +# すべてのファイルをフォーマット、リント、インポート整理 +deno run -A npm:@biomejs/biome check --write + +# 特定のファイルをフォーマット、リント、インポート整理 +deno run -A npm:@biomejs/biome check --write + `} lang="bash" /> + + + -[`format`](/reference/cli#biome-format) コマンドを `--write` オプションを指定し実行することで、ファイルやディレクトリをフォーマットできます。 +# すべてのファイルをリントし、安全な修正を適用 +yarn exec biome lint --write - +# 特定のファイルをリントし、安全な修正を適用 +yarn exec biome lint --write -[`lint`](/reference/cli#biome-lint) コマンドを `--write` オプションを指定し実行することで、ファイルやディレクトリに対してLintを実行し、[安全な修正](/ja/linter#安全な修正safe-fixes)を適用できます。 +# すべてのファイルをフォーマット、リント、インポート整理 +yarn exec biome check --write - +# 特定のファイルをフォーマット、リント、インポート整理 +yarn exec biome check --write + `} lang="bash" /> + + +{/* */} -[`check`](/reference/cli#biome-check) コマンドを実行することで、それら**両方**のコマンドを実行できます。 +### エディタ統合 - +Biomeはお気に入りのエディタでファーストパーティの拡張機能として利用可能です。 -`check` コマンドは複数のツールを一度に実行するためのコマンドです。現在は以下のことを行います。 +- [VS Code](/ja/guides/editors/first-party-extensions#vs-code) +- [IntelliJ](/ja/guides/editors/first-party-extensions#intellij) +- [Zed](/ja/guides/editors/first-party-extensions#zed) -- ファイルのフォーマット -- ファイルのリント -- インポートの整理 +**Vim**、**Neovim**、**Sublime Text**などの他のエディタ向けの[コミュニティ拡張機能](/ja/guides/editors/third-party-extensions)もあります。 -## エディタプラグインのインストール +### 継続的インテグレーション -Biomeの機能を最大限活用するために、エディタプラグインをインストールすることを推奨しています。[エディタのページ](/ja/guides/editors/first-party-extensions)を参照して、どのエディタがBiomeをサポートしているかを確認してください。 +チーム全体でコード品質と一貫性を保つために、CIパイプラインの一部として `biome ci` を実行します。これは `biome check` コマンドと同様に動作しますが、CI環境向けに最適化されています。 -## CIのセットアップ +- [GitHub Actions](/ja/recipes/continuous-integration#github-actions) +- [GitLab CI](/ja/recipes/continuous-integration#gitlab-ci) -Node.jsを使用している場合、BiomeをCIで実行するには、[お気に入りのパッケージマネージャ](/ja/guides/getting-started#インストール方法)を使用することが推奨されます。 -このようにすることで、CIパイプラインがエディタ上やローカルでCLIコマンドを実行するときと同じバージョンのBiomeを使用することを保証できます。 -代わりに、専用の[CIアクション](/recipes/continuous-integration)を利用することもできます。 +その他の例については、[継続的インテグレーション](/ja/recipes/continuous-integration)のレシピをご覧ください。 ## 次のステップ 成功です!これでBiomeを使う準備が整いました。🥳 -- [ESLintとPrettierと移行する](/guides/migrate-eslint-prettier) -- [Biomeの設定](/guides/configure-biome)について詳しく知る -- [Formatter](/ja/formatter)の使い方と設定方法について詳しく知る -- [Linter](/ja/linter)の使い方と設定方法について詳しく知る -- [CLIオプション](/reference/cli)を使いこなす +- [ESLintとPrettierから移行する](/ja/guides/migrate-eslint-prettier) +- [Biomeの設定方法](/ja/guides/configure-biome)について詳しく知る +- [フォーマッタ](/ja/formatter)の使い方と設定方法について詳しく知る +- [リンタ](/ja/linter)の使い方と設定方法について詳しく知る +- [CLIコマンドとオプション](/reference/cli)を使いこなす - [設定オプション](/ja/reference/configuration)を使いこなす - [Discordのコミュニティ](https://biomejs.dev/chat)に参加する diff --git a/src/content/docs/ja/guides/integrate-in-vcs.mdx b/src/content/docs/ja/guides/integrate-in-vcs.mdx index 969be333b..86161014b 100644 --- a/src/content/docs/ja/guides/integrate-in-vcs.mdx +++ b/src/content/docs/ja/guides/integrate-in-vcs.mdx @@ -20,8 +20,7 @@ VCS (バージョン管理システム)の統合は、**追加の**機能を ### 無視するファイルを設定する -`vcs.useIgnoreFile` を有効にすることで、VCSのignoreファイルに列挙されたすべてのファイルとディレクトリをBiomeが無視するようになります。 -現時点では、**作業ディレクトリのignoreファイルのみを取り込みます**。 +`vcs.useIgnoreFile` を有効にすることで、プロジェクトにあるVCSのignoreファイルと `.ignore` ファイルに列挙されたすべてのファイルとディレクトリをBiomeが無視するようになります。 ```json title="biome.json" ins={5} { diff --git a/src/content/docs/ja/guides/investigate-slowness.mdx b/src/content/docs/ja/guides/investigate-slowness.mdx index f244a7e85..a9929cc50 100644 --- a/src/content/docs/ja/guides/investigate-slowness.mdx +++ b/src/content/docs/ja/guides/investigate-slowness.mdx @@ -9,9 +9,9 @@ Biomeは高速であることを目指しています。_非常に高速です 深く掘り下げる前に、問題が以下のいずれかによって引き起こされているかどうかを確認するために、いくつかの手順を実行できます: -- `dist/`や`build/`フォルダに出力ファイルがある場合、またはその他の圧縮されたファイルを含むフォルダがある場合、[`files.includes`](https://biomejs.dev/reference/configuration/#interaction-with-the-scanner)で`!!`構文を使用してそれらを無視することで違いがあるかどうかを確認してください。 +- `dist/`や`build/`フォルダに出力ファイルがある場合、またはその他の圧縮されたファイルを含むフォルダがある場合、[`files.includes`](/ja/reference/configuration/#スキャナーとの相互作用)で`!!`構文を使用してそれらを無視することで違いがあるかどうかを確認してください。 - [プロジェクトルール](/linter/domains/#project)が有効になっていますか?これらは、より高度な分析と引き換えにパフォーマンスオーバーヘッドを引き起こすことが知られています。このトピックに関する[FAQエントリ](/ja/linter/#なぜbiomeリンタはv1と比べて遅いのですか)も参照してください。無効にすることで違いがあるかどうかを確認してください。 - - 無効にすることで改善するが、何が具体的に遅くしているのかを知りたい場合、最初のステップとして`**/node_modules`を[`files.includes`](https://biomejs.dev/reference/configuration/#filesincludes)に`!!`構文で追加することができます。 + - 無効にすることで改善するが、何が具体的に遅くしているのかを知りたい場合、最初のステップとして`**/node_modules`を[`files.includes`](/ja/reference/configuration/#filesincludes)に`!!`構文で追加することができます。 改善しましたか?素晴らしいです!ただし、依存関係からの型情報が利用できなくなるため、このままにしておきたくないでしょう。`files.includes`をさらに調整して、`node_modules/`フォルダ全体ではなく、特定の依存関係を無視することもできますが、どの依存関係を無視すべきかを特定するには、おそらく読み続ける必要があります。 上記のいずれも役に立たなかった場合、または役に立ったが、さらに深く掘り下げたい場合は、トレーシングを使用して、原因となっている可能性のある特定のファイルがあるかどうかを確認できます。 diff --git a/src/content/docs/ja/internals/architecture.mdx b/src/content/docs/ja/internals/architecture.mdx index 50b4c04af..53953b1cf 100644 --- a/src/content/docs/ja/internals/architecture.mdx +++ b/src/content/docs/ja/internals/architecture.mdx @@ -5,6 +5,35 @@ description: Biomeの内部動作 このドキュメントでは、 Biomeの内部機能の一部と、それらがプロジェクト内でどのように利用されているかについて説明します。 +## スキャナー + +Biomeには、プロジェクトに関する重要なメタデータを抽出するためにファイルシステムをクロールする責任を持つスキャナーがあります。具体的には、スキャナーは次の3つの方法で使用されます: + +- モノレポ内のネストされた `biome.json` / `biome.jsonc` ファイルを検出する +- [`vcs.useIgnoreFile`](/ja/reference/configuration/#vcsuseignorefile) 設定が有効な場合、ネストされた `.gitignore` ファイルを検出する +- [`project` ドメイン](/linter/domains/#project) のルールが有効な場合、 `package.json` マニフェストとプロジェクト内のソースファイルをインデックス化する + +### スキャナーのターゲット設定 + +プロジェクトルールが有効でない場合、スキャナーは特定のセッションに関連するフォルダのみを自動的にターゲットにします。 + +つまり、大規模なモノレポがあり、 `packages/foo/` フォルダ内から `biome check` を実行すると、そのフォルダが「ターゲット」になります。これは、以下のフォルダがネストされた設定ファイルやネストされたignoreファイルに対してスキャンされることを意味します: + +- リポジトリのルートフォルダ +- `packages/` フォルダ +- `packages/foo/` フォルダ +- `packages/foo/` の下に存在するすべてのフォルダ(`node_modules/` や設定で除外されたフォルダを除く([以下](#スキャナーの設定)を参照)) + +`packages/` または `packages/foo/` に隣接する他のフォルダは自動的にスキップされます。 + +同様に、リポジトリのルートから `biome format packages/bar/src/index.ts` を実行すると、スキャナーは `packages/bar/src/` フォルダをターゲットにします。 + +プロジェクトルールが有効な場合、これらの最適化は適用されません。 + +### スキャナーの設定 + +スキャナーは [`files.includes`](/ja/reference/configuration/#スキャナーとの相互作用) 設定を通じて設定できます。 + ## パーサーとCST パーサーのアーキテクチャは [rowan] の内部フォークによって更新されています。 diff --git a/src/content/docs/ja/internals/language-support.mdx b/src/content/docs/ja/internals/language-support.mdx index 4f71469f8..96351772a 100644 --- a/src/content/docs/ja/internals/language-support.mdx +++ b/src/content/docs/ja/internals/language-support.mdx @@ -56,7 +56,7 @@ BiomeはJavaScriptのテンプレートリテラル内に埋め込まれた以 ## TypeScriptのサポート -Biomeは、TypeScriptバージョン5.6をサポートしています。 +Biomeは、TypeScriptバージョン5.9をサポートしています。 ## JSONCサポート diff --git a/src/content/docs/ja/internals/people-and-credits.mdx b/src/content/docs/ja/internals/people-and-credits.mdx index b010fc8de..f75b139ba 100644 --- a/src/content/docs/ja/internals/people-and-credits.mdx +++ b/src/content/docs/ja/internals/people-and-credits.mdx @@ -4,10 +4,19 @@ description: これまでのコントリビューターとBiomeに影響を与 --- import Contributors from "@/components/generated/Contributors.astro"; +import CoreContributors from "@/components/CoreContributors.astro"; +import Maintainers from "@/components/Maintainers.astro"; import {Image} from "astro:assets" +## コアコントリビューター -## ロゴ + + +## メンテナー + + + +## ロゴ作成者
Alexandru-Ștefan GârleanuAlexandru-Ștefan Gârleanu diff --git a/src/content/docs/ja/internals/versioning.mdx b/src/content/docs/ja/internals/versioning.mdx index c1ad7629f..54c267fa5 100644 --- a/src/content/docs/ja/internals/versioning.mdx +++ b/src/content/docs/ja/internals/versioning.mdx @@ -41,3 +41,7 @@ Biomeは[セマンティックバージョニング](https://semver.org/)に従 Visual Studio Codeは、拡張機能について[プレリリースタグをサポートしていません](https://code.visualstudio.com/api/working-with-extensions/publishing-extension#prerelease-extensions)。そのため、Biomeは以下のバージョンスキーマを使用して安定版とプレビュー版を区別します: * 安定版リリースは偶数のバージョン番号を使用します:10, 12, 14, 16, ... * プレビュー版は奇数のバージョン番号を使用します:11, 13, 15, 17, ... + +## バージョンの固定が重要な理由 + +すべてのチームメンバーとCI環境で同じバージョンのBiomeを使用することを保証するために、 `package.json` でBiomeのバージョンを固定することが重要です。パッチリリースであっても、フォーマットやリントの結果がわずかに変わることがあります。 diff --git a/src/content/docs/ja/recipes/continuous-integration.mdx b/src/content/docs/ja/recipes/continuous-integration.mdx index 6aca41e43..5ba3b3816 100644 --- a/src/content/docs/ja/recipes/continuous-integration.mdx +++ b/src/content/docs/ja/recipes/continuous-integration.mdx @@ -5,6 +5,18 @@ description: CI環境でのBiomeの使用 CI環境でBiomeを動作させることは簡単です。以下の例を参考にしてください。 +### `biome check` VS `biome ci` + +Biomeは、すべてのチェックを実行するための2つのCLIコマンドを提供しています: `biome check` と `biome ci` です。ただし、CI(継続的インテグレーション)環境では後者を使用する必要があります。 + +`check` コマンドと比較して、 `ci` コマンドは: +- `--write` / `--fix` オプションを提供しません。 +- 特定のランナーとより良く統合します。たとえば、GitHubで実行すると、診断はGitHubアノテーションを使用して出力されます。 +- スレッド数を制御できます。 +- VCS統合が有効な場合、リモートリポジトリには「ステージされたファイル」の概念がないため、 `--staged` の代わりに `--changed` フラグを使用します。 + +時間の経過とともに、 `ci` コマンドはさらに多くの機能を受け取ります。 + ## GitHub Actions Biomeをランナーにセットアップするためのファーストパーティ[GitHub Action](https://github.com/marketplace/actions/setup-biome)を提供します。 @@ -35,6 +47,18 @@ jobs: run: biome ci . ``` +Biome設定に外部の依存関係がある場合(例:パッケージから設定を拡張している場合)、Biomeを実行する前にNode.jsをセットアップし、好みのパッケージマネージャーを使用して依存関係をインストールする必要があります: + +```yaml +- name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 # または好みのバージョン + cache: "npm" # または 'yarn', 'pnpm' +- name: Install dependencies + run: npm ci # または yarn install --frozen-lockfile, pnpm install --frozen-lockfile +``` + ### サードパーティーアクション 他のコミュニティによって維持されているアクションも使用できます: @@ -58,3 +82,30 @@ jobs: github_token: ${{ secrets.github_token }} reporter: github-pr-review ``` + +## GitLab CI + +以下は設定例です: + +```yaml title=".gitlab-ci.yml" +# パイプラインステージの定義 +stages: + - quality + +# Lintジョブの設定:Biomeを使用してコード品質チェックを実行 +lint: + image: + name: ghcr.io/biomejs/biome:latest # 最新のBiome Dockerイメージを使用 + entrypoint: [""] # GitLab CIでイメージを動作させるために必要 + stage: quality # qualityステージで実行 + script: + - biome ci --reporter=gitlab --colors=off > /tmp/code-quality.json + - cp /tmp/code-quality.json code-quality.json + artifacts: + reports: + codequality: + - code-quality.json # コード品質レポートのアーティファクトを収集 + rules: + - if: $CI_COMMIT_BRANCH # ブランチへのコミットに対してジョブを実行 + - if: $CI_MERGE_REQUEST_ID # マージリクエストに対してジョブを実行 +``` diff --git a/src/content/docs/ja/reference/configuration.mdx b/src/content/docs/ja/reference/configuration.mdx index 9be1e8e75..67f3da536 100644 --- a/src/content/docs/ja/reference/configuration.mdx +++ b/src/content/docs/ja/reference/configuration.mdx @@ -97,7 +97,7 @@ Biomeは、これらのパターンに一致するファイルやフォルダの #### スキャナーとの相互作用 -Biomeには[スキャナー](/internals/architecture/#scanner)があり、ネストされた設定ファイルや `.gitignore` ファイルを検出します。また、 +Biomeには[スキャナー](/ja/internals/architecture/#スキャナー)があり、ネストされた設定ファイルや `.gitignore` ファイルを検出します。また、 [プロジェクトドメイン](/linter/domains/#project)の1つ以上のルールが有効になっている場合、ソースファイルをインデックス化することもできます。 スキャナーは `files.includes` と `.gitignore` ファイルからの無視パターンの両方を尊重しますが、注意すべき2つの例外があります: diff --git a/src/content/docs/ja/reference/gritql.mdx b/src/content/docs/ja/reference/gritql.mdx index 3f730f253..bcff1f475 100644 --- a/src/content/docs/ja/reference/gritql.mdx +++ b/src/content/docs/ja/reference/gritql.mdx @@ -1,5 +1,5 @@ --- -title: GritQL [実験的機能] +title: GritQL description: BiomeにおけるGritQLの基本的な使い方 --- @@ -9,10 +9,18 @@ GritQLは、ソースコードの構造検索を実行するためのクエリ GritQLは[オープンソース](https://github.com/getgrit/gritql/)であり、[Grit.io](https://grit.io/)によって作成されました。 -BiomeはGritQLを2つの目的で統合しています: +## サポートされている言語 -- IDE拡張機能にも拡張したいと考えている、[`biome search`](/reference/cli/#biome-search) コマンド -- 現在進行中の、プラグインへの取り組み +BiomeのGritQLは現在、以下のターゲット言語をサポートしています: + +- **JavaScript/TypeScript**: `language js`(オプションのフレーバー:`typescript`、`jsx`) +- **CSS**: `language css` +- **JSON**: `language json` + +BiomeはGritQLを2つの目的で使用しています: + +- [アナライザープラグイン](/ja/linter/plugins) +- [`biome search`](/reference/cli/#biome-search)コマンド。これはIDE拡張機能にも拡張したいと考えています ## パターン @@ -90,6 +98,58 @@ GritQLクエリでは変数も使用できます。 } ``` +## Biomeの構文ノードとのマッチング + +より正確なクエリを行うために、Biome内部の構文ノードに直接マッチさせることができます。各ノードは一意の `PascalCase` 名で識別されます。 + +たとえば、すべてのJavaScript `if` 文を見つけるには、 `JsIfStatement` ノードとマッチさせることができます: + +```grit +engine biome(1.0) +language js(typescript,jsx) + +JsIfStatement() as $stmt where { + register_diagnostic( + span=$stmt, + message="Found an if statement" + ) +} +``` + +コードのノード名を調べるには、[Biome Playground](https://biomejs.dev/playground/)で構文ツリーを探索できます。利用可能なすべてのノードの完全なリストは、Biomeリポジトリの [`xtask/codegen`](https://github.com/biomejs/biome/tree/main/xtask/codegen) ディレクトリにある `.ungram` ファイルでも確認できます。 + +:::caution +Biomeの文法はバージョン間で変更される可能性があり、特に新しい言語では変更が多いです。これにより、ノード名が変更される可能性があり、パターンが壊れる可能性があります。Biomeをアップグレードする際は、クエリを更新する準備をしてください。 +::: + +## JSONパターン + +GritQLはJSONファイル内のパターンをマッチさせることができ、設定ファイルの検索と変換に役立ちます: + +```grit +language json + +`"foo": $value` +``` + +このパターンは、キー `"foo"` を持つ任意のJSONメンバーにマッチします。 + +より正確なマッチングには、BiomeのJSON構文ノードを直接使用できます: + +```grit +language json + +JsonMember(name = JsonMemberName(value = `"version"`)) +``` + +JSON GritQLは、既存のGritパターンとの互換性のために、TreeSitter互換のノードエイリアスもサポートしています: + +| Biome AST | TreeSitterエイリアス | +|-----------|------------------| +| `JsonMember` | `pair` | +| `JsonObjectValue` | `object` | +| `JsonArrayValue` | `array` | + ## 言語ドキュメント GritQLとその構文については、公式の [GritQL 言語ドキュメント](https://docs.grit.io/language/overview)を参照してください。 diff --git a/src/content/docs/ja/reference/vscode.mdx b/src/content/docs/ja/reference/vscode.mdx index 420355dfe..16a46a6c8 100644 --- a/src/content/docs/ja/reference/vscode.mdx +++ b/src/content/docs/ja/reference/vscode.mdx @@ -139,6 +139,40 @@ Biome拡張機能は、[サポートされているファイルタイプ](/ja/in この設定を有効にするには、`biome.enabled`設定を同じスコープで`true`(デフォルト)に設定する必要があります。 ::: +### `biome.inlineConfig` + +Biome設定のインラインバージョン。この設定のオプションは、ディスクから読み取られた `biome.json` ファイル(またはデフォルト値)のオプションを上書きします。 + +例えば、プロジェクトで `noConsole` ルールを `error` の重大度で有効にしているとします: + +```json title="biome.json" +{ + "linter": { + "rules": { + "suspicious": { + "noConsole": "error" + } + } + } +} +``` + +しかし、ローカル開発中は、このルールが便利で赤い波線を見たくないため、このルールを無効にしたいとします。 `inlineConfig` には、次のように記述します: + +```json title=".vscode/settings.json" +{ + "biome.inlineConfig": { + "linter": { + "rules": { + "suspicious": { + "noConsole": "off" + } + } + } + } +} +``` + ### `biome.lsp.bin` **デフォルト:** `undefined` | **スコープ:** `global`, `workspace`, `workspace folder` diff --git a/src/content/docs/ja/reference/zed.mdx b/src/content/docs/ja/reference/zed.mdx index 832bc7294..ff57ed9a9 100644 --- a/src/content/docs/ja/reference/zed.mdx +++ b/src/content/docs/ja/reference/zed.mdx @@ -7,17 +7,37 @@ description: BiomeのZed拡張機能 Zed >= **v0.131.0** が必要です。 -この拡張機能は、Zedエディタで利用できます。 `zed: extensions` を開き、 _Biome_ と検索してください。 +この拡張機能は、Zedエディタの拡張機能ビューで利用できます。 `zed: extensions` を開き、 _Biome_ を検索してください。内部でBiomeバイナリを実行し、以下の順序でBiomeのインストールを確認します: + +1. Zedの設定で指定されたパス、例えば: + ```json title='.zed/settings.json' + { + "lsp": { + "biome": { + "binary": { + "path": "/var/biome-2.2.3/bin/biome", + "arguments": [ + "lsp-proxy" + ] + } + } + } + } + ``` +2. `package.json` 経由でローカルにインストールされたBiome +3. `PATH` にシステム全体にインストールされたBiome + +いずれも存在しない場合、Biomeを `npm` でインストールして使用するようZedに依頼します。 ## 設定 -デフォルトでは、biome.jsonファイルは **ワークスペースのルート** に配置する必要があります。 +### `config_path` -それ以外の場合は、LSP設定を通じて構成できます。 +デフォルトでは、設定ファイルは**ワークスペースのルート**に配置する必要があります。 +それ以外の場合は、LSP設定を通じて構成できます: -```jsonc -// settings.json +```json5 title=".zed/settings.json" { "lsp": { "biome": { @@ -29,68 +49,156 @@ Zed >= **v0.131.0** が必要です。 } ``` -### フォーマット +### `require_config_file` -言語サーバーをフォーマッタとして使用するには、設定でbiomeをフォーマッタとして指定してください。 +プロジェクトに設定ファイルが含まれている場合にのみBiomeを有効にします: -```jsonc -// settings.json +> デフォルト: `false` + +```json5 title=".zed/settings.json" { - "formatter": { - "language_server": { - "name": "biome" + "lsp": { + "biome": { + "settings": { + "require_config_file": true + } } } } ``` -### biome.jsonが存在する場合にのみbiomeを有効にする +### `inline_config` -```jsonc -// settings.json +Biome設定のインラインバージョン。この設定のオプションは、ディスクから読み取られた `biome.json` ファイル(またはデフォルト値)のオプションを上書きします。 + +例えば、プロジェクトで `noConsole` ルールを `error` の重大度で有効にしているとします: + +```json title="biome.json" +{ + "linter": { + "rules": { + "suspicious": { + "noConsole": "error" + } + } + } +} +``` + +しかし、ローカル開発中は、このルールが便利で赤い波線を見たくないため、このルールを無効にしたいとします。 `inline_config` には、次のように記述します: + +```json title=".zed/settings.json" { "lsp": { "biome": { "settings": { - "require_config_file": true + "inline_config": { + "linter": { + "rules": { + "suspicious": { + "noConsole": "off" + } + } + } + } } } } } ``` -### プロジェクトベースの設定 -すべてのプロジェクトでbiomeの実行を除外したい場合は、次の手順に従ってください。 +## フォーマット -1. ユーザー設定でbiome言語サーバーを無効にする。 +言語サーバーをフォーマッタとして使用するには、設定で `biome` をフォーマッタとして指定してください: -```jsonc -// settings.json +```json5 title=".zed/settings.json" { - "language_servers": [ "!biome", "..." ] + "languages": { + "Astro": { "formatter": { "language_server": { "name": "biome" } } }, + "CSS": { "formatter": { "language_server": { "name": "biome" } } }, + "GraphQL": { "formatter": { "language_server": { "name": "biome" } } }, + "HTML": { "formatter": { "language_server": { "name": "biome" } } }, + "JSON": { "formatter": { "language_server": { "name": "biome" } } }, + "JSONC": { "formatter": { "language_server": { "name": "biome" } } }, + "JSX": { "formatter": { "language_server": { "name": "biome" } } }, + "JavaScript": { "formatter": { "language_server": { "name": "biome" } } }, + "Svelte": { "formatter": { "language_server": { "name": "biome" } } }, + "TSX": { "formatter": { "language_server": { "name": "biome" } } }, + "TypeScript": { "formatter": { "language_server": { "name": "biome" } } }, + "Vue.js": { "formatter": { "language_server": { "name": "biome" } } }, + } } ``` -2. そして、プロジェクトのローカル設定で有効にします。 +詳細については、[言語サポート](/ja/internals/language-support)を参照してください。 + +### biome.jsonが存在する場合にのみBiomeを有効にする -```jsonc -// /.zed/settings.json +```json5 title=".zed/settings.json" { - "language_servers": [ "biome", "..." ] + "lsp": { + "biome": { + "settings": { + "require_config_file": true + } + } + } +} +``` + +### フォーマット時にコードアクションを実行する: + +```json5 title=".zed/settings.json" +{ + "languages": { + "JavaScript": { + "formatter": { "language_server": { "name": "biome" } }, + "code_actions_on_format": { + "source.fixAll.biome": true, + "source.organizeImports.biome": true + } + }, + "TypeScript": { + "formatter": { "language_server": { "name": "biome" } }, + "code_actions_on_format": { + "source.fixAll.biome": true, + "source.organizeImports.biome": true + } + }, + "TSX": { + "formatter": { "language_server": { "name": "biome" } }, + "code_actions_on_format": { + "source.fixAll.biome": true, + "source.organizeImports.biome": true + } + } + } } ``` -また、[`languages`](https://zed.dev/docs/configuring-zed#languages)キーを使用して言語ごとに設定することもできます。 +[安全でない修正](/ja/linter/#安全でない修正-unsafe-fixes)を保存時に適用したい場合は、[ルールのコード修正を安全にする](/ja/linter/#コード修正を設定する)必要があります。 + +### プロジェクトベースの設定 + +これらの設定は、プロジェクトフォルダのルートにあるZedプロジェクト設定(`.zed/settings.json`)に含めるか、すべてのプロジェクトにデフォルトで適用されるZedユーザー設定(`~/.config/zed/settings.json`)に含めることができます。 + +#### 特定のプロジェクトでBiomeを無効にする -### フォーマット時にコードアクションを実行する +プロジェクトで特定の言語(例:GraphQL)のBiomeを除外できます: -```jsonc -// settings.json +```json5 title=".zed/settings.json" { - "code_actions_on_format": { - "source.fixAll.biome": true, - "source.organizeImports.biome": true + "languages": { + "GraphQL": { + "language_servers": [ "!biome", "..." ] + } } } ``` + +### グローバル設定 + +Zed settings.jsonのトップレベルの `language_servers`、`formatter`、または `code_actions_on_format` キーに `biome` を追加することは推奨されません。`language_server` または `formatter` として `biome` をグローバルに指定すると、Biomeがサポートしていない言語(Rust、Pythonなど)の機能が壊れる可能性があります。サポートされている言語の完全なリストについては、[言語サポート](/ja/internals/language-support)を参照してください。 + +このドキュメントでは以前、グローバル設定を推奨していました。Zedの設定を言語ごとにBiomeを明示的に設定するように切り替えてください。