---
title: Rules
description: All Oxlint rules provided by `@tai-kun/vp-lint-plugins`.
---

`@tai-kun/vp-lint-plugins` provides custom Oxlint rules for Vite+. Add the plugin to `lint.jsPlugins` in `vite.config.ts` to enable rules under the `tai-kun/` prefix.

## Setup [#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",
    },
  },
});
```

Reference each rule as `tai-kun/<rule-name>`. Most rules only insert minimal whitespace and leave final formatting to Oxfmt.

:::note
`jsdoc-tag-order`, `jsdoc-param-order`, `member-ordering`, and `explicit-member-accessibility` are report-only and do not auto-fix.
:::

## Comments [#comments]

| Rule                                                                    | Description                                                                | Auto-fix                       |
| ----------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------ |
| [`spaced-comment`](/vp-lint-plugins/en/rules/spaced-comment)                               | Require whitespace after the comment marker and before the closing marker. | Yes                            |
| [`comment-one-sentence-per-line`](/vp-lint-plugins/en/rules/comment-one-sentence-per-line) | Enforce one sentence per comment line and collapse simple block comments.  | Partial (joins and collapsing) |
| [`comment-japanese-spacing`](/vp-lint-plugins/en/rules/comment-japanese-spacing)           | Require a half-width space between Japanese and half-width characters.     | Yes                            |

## JSDoc [#jsdoc]

| Rule                                            | Description                                                       | Auto-fix |
| ----------------------------------------------- | ----------------------------------------------------------------- | -------- |
| [`jsdoc-tag-lines`](/vp-lint-plugins/en/rules/jsdoc-tag-lines)     | Normalize blank lines between a JSDoc description and tag groups. | Yes      |
| [`jsdoc-tag-order`](/vp-lint-plugins/en/rules/jsdoc-tag-order)     | Enforce a consistent order of JSDoc tags.                         | No       |
| [`jsdoc-param-order`](/vp-lint-plugins/en/rules/jsdoc-param-order) | Require `@param` tags to follow the order of function parameters. | No       |

## Blank lines [#blank-lines]

| Rule                              | Description                                                              | Auto-fix |
| --------------------------------- | ------------------------------------------------------------------------ | -------- |
| [`blank-line`](/vp-lint-plugins/en/rules/blank-line) | Require blank lines between statements, class members, and switch cases. | Yes      |

## Layout [#layout]

| Rule                                                                        | Description                                                              | Auto-fix |
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------ | -------- |
| [`object-properties-newline`](/vp-lint-plugins/en/rules/object-properties-newline)             | Enforce multiline object literals when they have two or more properties. | Yes      |
| [`type-literal-properties-newline`](/vp-lint-plugins/en/rules/type-literal-properties-newline) | Enforce multiline type literals when they have two or more members.      | Yes      |

## Imports [#imports]

| Rule                                    | Description                                                             | Auto-fix |
| --------------------------------------- | ----------------------------------------------------------------------- | -------- |
| [`merge-imports`](/vp-lint-plugins/en/rules/merge-imports) | Merge consecutive import declarations that import from the same module. | Yes      |

## Sorting [#sorting]

| Rule                                                                    | Description                                                        | Auto-fix |
| ----------------------------------------------------------------------- | ------------------------------------------------------------------ | -------- |
| [`sort-object-properties`](/vp-lint-plugins/en/rules/sort-object-properties)               | Sort object properties by name length and then by name.            | Yes      |
| [`sort-type-members`](/vp-lint-plugins/en/rules/sort-type-members)                         | Sort type literal members by name length and then by name.         | Yes      |
| [`sort-jsx-props`](/vp-lint-plugins/en/rules/sort-jsx-props)                               | Sort JSX props by group, name length, and name.                    | Yes      |
| [`sort-import-export-specifiers`](/vp-lint-plugins/en/rules/sort-import-export-specifiers) | Sort import and export specifiers by group, name length, and name. | Yes      |

## Classes and functions [#classes]

| Rule                                                                    | Description                                                                        | Auto-fix |
| ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -------- |
| [`overload-signatures-adjacent`](/vp-lint-plugins/en/rules/overload-signatures-adjacent)   | Require overload signatures to be adjacent to each other and their implementation. | Yes      |
| [`member-ordering`](/vp-lint-plugins/en/rules/member-ordering)                             | Enforce a consistent order of class members.                                       | No       |
| [`explicit-member-accessibility`](/vp-lint-plugins/en/rules/explicit-member-accessibility) | Require accessibility modifiers for class members except `#` private members.      | No       |

## Tests [#tests]

| Rule                                              | Description                                                                        | Auto-fix |
| ------------------------------------------------- | ---------------------------------------------------------------------------------- | -------- |
| [`no-await-in-expect`](/vp-lint-plugins/en/rules/no-await-in-expect) | Require `await expect(...).resolves` or `.rejects` instead of `expect(await ...)`. | Yes      |
