---
title: ルール
description: パッケージ `@tai-kun/vp-lint-plugins` が提供する Oxlint ルールの一覧です。
---

`@tai-kun/vp-lint-plugins` は、Vite+（Oxlint）向けの独自ルールをまとめたプラグインです。`vite.config.ts` の `lint.jsPlugins` に追加すると、`tai-kun/` プレフィックスのルールを有効にできます。

## セットアップ [#setup]

```ts vite.config.ts
import { defineConfig } from "vite-plus";

export default defineConfig({
  lint: {
    jsPlugins: [
      {
        name: "tai-kun",
        specifier: "@tai-kun/vp-lint-plugins",
      },
    ],
    rules: {
      "tai-kun/spaced-comment": "error",
    },
  },
});
```

各ルールは `tai-kun/<ルール名>` で指定します。ルールの多くはレイアウト用で、最小限の空白や改行を挿入したあと、最終的な整形は Oxfmt に任せます。

:::note
`jsdoc-tag-order`、`jsdoc-param-order`、`member-ordering`、`explicit-member-accessibility` は報告のみで、自動修正は行いません。
:::

## コメント [#comments]

| ルール                                                                  | 内容                                                              | 自動修正                  |
| ----------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------- |
| [`spaced-comment`](/vp-lint-plugins/rules/spaced-comment)                               | コメントの開始記号の直後と終了記号の直前に空白を要求します。      | あり                      |
| [`comment-one-sentence-per-line`](/vp-lint-plugins/rules/comment-one-sentence-per-line) | コメントを 1 行 1 文にし、単純なブロックコメントを 1 行化します。 | 一部（行の結合と 1 行化） |
| [`comment-japanese-spacing`](/vp-lint-plugins/rules/comment-japanese-spacing)           | 日本語と半角文字の間に半角スペースを 1 つ要求します。             | あり                      |

## JSDoc [#jsdoc]

| ルール                                          | 内容                                                            | 自動修正 |
| ----------------------------------------------- | --------------------------------------------------------------- | -------- |
| [`jsdoc-tag-lines`](/vp-lint-plugins/rules/jsdoc-tag-lines)     | JSDoc の description とタグ、タググループの間の空行を揃えます。 | あり     |
| [`jsdoc-tag-order`](/vp-lint-plugins/rules/jsdoc-tag-order)     | JSDoc タグの順序を統一します。                                  | なし     |
| [`jsdoc-param-order`](/vp-lint-plugins/rules/jsdoc-param-order) | `@param` タグが関数の引数の順序に従うことを要求します。         | なし     |

## 空行 [#blank-lines]

| ルール                            | 内容                                                          | 自動修正 |
| --------------------------------- | ------------------------------------------------------------- | -------- |
| [`blank-line`](/vp-lint-plugins/rules/blank-line) | 文・クラスメンバー・switch の case の境界に空行を要求します。 | あり     |

## レイアウト [#layout]

| ルール                                                                      | 内容                                                               | 自動修正 |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------ | -------- |
| [`object-properties-newline`](/vp-lint-plugins/rules/object-properties-newline)             | 2 つ以上のプロパティーを持つオブジェクトリテラルを複数行にします。 | あり     |
| [`type-literal-properties-newline`](/vp-lint-plugins/rules/type-literal-properties-newline) | 2 つ以上のメンバーを持つ型リテラルを複数行にします。               | あり     |

## インポート [#imports]

| ルール                                  | 内容                                                          | 自動修正 |
| --------------------------------------- | ------------------------------------------------------------- | -------- |
| [`merge-imports`](/vp-lint-plugins/rules/merge-imports) | 同じモジュールを指す連続した import 宣言を 1 つにまとめます。 | あり     |

## 並び替え [#sorting]

| ルール                                                                  | 内容                                                                      | 自動修正 |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------- | -------- |
| [`sort-object-properties`](/vp-lint-plugins/rules/sort-object-properties)               | オブジェクトのプロパティーを名前の長さ順、次に名前順に並べます。          | あり     |
| [`sort-type-members`](/vp-lint-plugins/rules/sort-type-members)                         | 型リテラルのメンバーを名前の長さ順、次に名前順に並べます。                | あり     |
| [`sort-jsx-props`](/vp-lint-plugins/rules/sort-jsx-props)                               | JSX の props をグループ順、名前の長さ順、名前順に並べます。               | あり     |
| [`sort-import-export-specifiers`](/vp-lint-plugins/rules/sort-import-export-specifiers) | import/export の specifier をグループ順、名前の長さ順、名前順に並べます。 | あり     |

## クラス・関数 [#classes]

| ルール                                                                  | 内容                                                   | 自動修正 |
| ----------------------------------------------------------------------- | ------------------------------------------------------ | -------- |
| [`overload-signatures-adjacent`](/vp-lint-plugins/rules/overload-signatures-adjacent)   | オーバーロード署名と実装の間の空行を禁止します。       | あり     |
| [`member-ordering`](/vp-lint-plugins/rules/member-ordering)                             | クラスメンバーの順序を統一します。                     | なし     |
| [`explicit-member-accessibility`](/vp-lint-plugins/rules/explicit-member-accessibility) | `#` 以外のクラスメンバーにアクセス修飾子を要求します。 | なし     |

## テスト [#tests]

| ルール                                            | 内容                                                                                    | 自動修正 |
| ------------------------------------------------- | --------------------------------------------------------------------------------------- | -------- |
| [`no-await-in-expect`](/vp-lint-plugins/rules/no-await-in-expect) | `expect(await ...)` の代わりに `await expect(...).resolves` / `.rejects` を要求します。 | あり     |

## 命名 [#naming]

| ルール                                        | 内容                                                               | 自動修正               |
| --------------------------------------------- | ------------------------------------------------------------------ | ---------------------- |
| [`catch-param-name`](/vp-lint-plugins/rules/catch-param-name) | `catch` の引数名に `e` / `err` / `error` / `reason` を禁止します。 | なし（サジェストあり） |
