Skip to content

Oxfmt 설정 옵션

대부분의 옵션은 Prettier와 같지만 전부는 아닙니다. 또 일부 옵션은 Oxfmt 고유 확장입니다.

arrowParens

유형: "always" | "avoid"

단일 매개변수 화살표 함수에 괄호를 포함할지 여부입니다.

  • 기본값: "always"

bracketSameLine

유형: boolean

여러 줄 HTML(HTML, JSX, Vue, Angular) 요소에서 >를 다음 줄 단독이 아니라 마지막 줄 끝에 두세요(셀프 클로징 요소에는 적용되지 않음).

  • 기본값: false

bracketSpacing

유형: boolean

객체 리터럴 중괄호 안쪽에 공백을 출력할지 여부입니다.

  • 기본값: true

embeddedLanguageFormatting

유형: "auto" | "off"

파일 속 임베디드 구간(예: CSS-in-JS, Vue 속 JS 등)을 포맷할지 여부를 제어합니다.

참고: XXX-in-JS 지원은 아직 미완성입니다.

  • 기본값: "auto"

endOfLine

유형: "lf" | "crlf" | "cr"

적용할 줄 끝(end of line) 문자입니다.

참고: "auto"는 지원하지 않습니다.

  • 기본값: "lf"
  • .editorconfig.end_of_line보다 우선합니다.

htmlWhitespaceSensitivity

유형: "css" | "strict" | "ignore"

HTML, Vue, Angular, Handlebars에 대한 전역 공백 민감도입니다.

  • 기본값: "css"

ignorePatterns

유형: string[]

이 글로브 패턴에 맞는 파일을 무시합니다. 패턴은 Oxfmt 설정 파일 위치를 기준으로 합니다.

  • 기본값: []

insertFinalNewline

유형: boolean

파일 끝에 최종 줄바꿈을 넣을지 여부입니다.

  • 기본값: true
  • .editorconfig.insert_final_newline보다 우선합니다.

jsdoc

유형: object | boolean

JSDoc 주석 포맷을 켭니다.

켜면 JSDoc 주석을 정규화·재포맷합니다. 태그 별칭을 표준 형태로 바꾸고, 설명의 첫 글자를 대문자로 만들며, 긴 줄은 줄바꿈하고 짧은 설명은 한 줄로 합칩니다.

true나 객체를 넘기면 기본값으로 켜지고, 생략하거나 false로 두면 끕니다.

  • 기본값: 꺼짐

jsdoc.addDefaultToDescription

유형: boolean

@param 설명에 기본값을 덧붙입니다(예: "기본값은 value").

  • 기본값: true

jsdoc.bracketSpacing

유형: boolean

JSDoc 타입 중괄호 안에 공백을 넣습니다: {string}{ string }.

  • 기본값: false

jsdoc.capitalizeDescriptions

유형: boolean

태그 설명의 첫 글자를 대문자로 만듭니다.

  • 기본값: true

jsdoc.commentLineStrategy

유형: string

주석 블록을 어떻게 포맷할지 설정합니다.

  • "singleLine" — 가능하면 한 줄 /** 내용 */로 만듭니다.

  • "multiline" — 항상 여러 줄 형식을 씁니다.

  • "keep" — 원래 형식을 유지합니다.

  • 기본값: "singleLine"

jsdoc.descriptionTag

유형: boolean

인라인 설명 대신 @description 태그를 씁니다.

  • 기본값: false

jsdoc.descriptionWithDot

유형: boolean

설명 끝에 마침표를 붙입니다.

  • 기본값: false

jsdoc.keepUnparsableExampleIndent

유형: boolean

파싱 불가능한 @example 코드의 들여쓰기를 유지합니다.

  • 기본값: false

jsdoc.lineWrappingStyle

유형: string

printWidth에 맞춰 설명 줄을 줄바꿈할 전략입니다.

  • "greedy" — 항상 printWidth 안에 들어오도록 다시 줄을 맞춥니다.

  • "balance" — 모든 줄이 printWidth 안에 들어가면 원래 줄바꿈을 유지합니다.

  • 기본값: "greedy"

jsdoc.preferCodeFences

유형: boolean

언어 태그 없는 코드에 4칸 들여쓰기 대신 코드 펜스(` ``` `)를 씁니다.

  • 기본값: false

jsdoc.separateReturnsFromParam

유형: boolean

마지막 @param@returns 사이에 빈 줄을 둡니다.

  • 기본값: false

jsdoc.separateTagGroups

유형: boolean

서로 다른 태그 그룹 사이에 빈 줄을 둡니다(예: @param@returns 사이).

  • 기본값: false

jsxSingleQuote

유형: boolean

JSX에서 큰따옴표 대신 작은따옴표를 씁니다.

  • 기본값: false

objectWrap

유형: "preserve" | "collapse"

객체 리터럴을 한 줄에 넣을지 여러 줄로 나눌지에 대한 줄바꿈 방식입니다.

기본값은 첫 속성 직전에 줄바꿈이 있으면 여러 줄로 포맷하는 휴리스틱입니다. 저자가 문맥에 맞게 읽기 좋게 배치할 수 있지만 단점도 있습니다.

  • 기본값: "preserve"

overrides

유형: array

파일별 덮어쓰기입니다. 파일이 여러 override와 일치하면 배열 순서대로 나중 것이 우선합니다.

  • 기본값: []

overrides[n]

유형: object

overrides[n].excludeFiles

유형: string[]

이 override에서 제외할 글로브 패턴입니다.

overrides[n].files

유형: string[]

이 override에 매칭할 파일의 글로브 패턴입니다. 모든 패턴은 Oxfmt 설정 파일을 기준으로 상대 경로입니다.

overrides[n].options

유형: object

overrides[n].options.arrowParens

유형: "always" | "avoid"

단일 매개변수 화살표 함수에 괄호를 포함할지 여부입니다.

  • 기본값: "always"
overrides[n].options.bracketSameLine

유형: boolean

여러 줄 HTML(HTML, JSX, Vue, Angular) 요소에서 >를 다음 줄 단독이 아니라 마지막 줄 끝에 두세요(셀프 클로징 요소에는 적용되지 않음).

  • 기본값: false
overrides[n].options.bracketSpacing

유형: boolean

객체 리터럴 중괄호 안쪽에 공백을 출력할지 여부입니다.

  • 기본값: true
overrides[n].options.embeddedLanguageFormatting

유형: "auto" | "off"

파일 속 임베디드 구간(예: CSS-in-JS, Vue 속 JS 등)을 포맷할지 여부를 제어합니다.

참고: XXX-in-JS 지원은 아직 미완성입니다.

  • 기본값: "auto"
overrides[n].options.endOfLine

유형: "lf" | "crlf" | "cr"

적용할 줄 끝(end of line) 문자입니다.

참고: "auto"는 지원하지 않습니다.

  • 기본값: "lf"
  • .editorconfig.end_of_line보다 우선합니다.
overrides[n].options.htmlWhitespaceSensitivity

유형: "css" | "strict" | "ignore"

HTML, Vue, Angular, Handlebars에 대한 전역 공백 민감도입니다.

  • 기본값: "css"
overrides[n].options.insertFinalNewline

유형: boolean

파일 끝에 최종 줄바꿈을 넣을지 여부입니다.

  • 기본값: true
  • .editorconfig.insert_final_newline보다 우선합니다.
overrides[n].options.jsdoc

유형: object | boolean

JSDoc 주석 포맷을 켭니다.

켜면 JSDoc 주석을 정규화·재포맷합니다. 태그 별칭을 표준 형태로 바꾸고, 설명의 첫 글자를 대문자로 만들며, 긴 줄은 줄바꿈하고 짧은 설명은 한 줄로 합칩니다.

true나 객체를 넘기면 기본값으로 켜지고, 생략하거나 false로 두면 끕니다.

  • 기본값: 꺼짐
overrides[n].options.jsdoc.addDefaultToDescription

유형: boolean

@param 설명에 기본값을 덧붙입니다(예: "기본값은 value").

  • 기본값: true
overrides[n].options.jsdoc.bracketSpacing

유형: boolean

JSDoc 타입 중괄호 안에 공백을 넣습니다: {string}{ string }.

  • 기본값: false
overrides[n].options.jsdoc.capitalizeDescriptions

유형: boolean

태그 설명의 첫 글자를 대문자로 만듭니다.

  • 기본값: true
overrides[n].options.jsdoc.commentLineStrategy

유형: string

주석 블록을 어떻게 포맷할지 설정합니다.

  • "singleLine" — 가능하면 한 줄 /** 내용 */로 만듭니다.

  • "multiline" — 항상 여러 줄 형식을 씁니다.

  • "keep" — 원래 형식을 유지합니다.

  • 기본값: "singleLine"

overrides[n].options.jsdoc.descriptionTag

유형: boolean

인라인 설명 대신 @description 태그를 씁니다.

  • 기본값: false
overrides[n].options.jsdoc.descriptionWithDot

유형: boolean

설명 끝에 마침표를 붙입니다.

  • 기본값: false
overrides[n].options.jsdoc.keepUnparsableExampleIndent

유형: boolean

파싱 불가능한 @example 코드의 들여쓰기를 유지합니다.

  • 기본값: false
overrides[n].options.jsdoc.lineWrappingStyle

유형: string

printWidth에 맞춰 설명 줄을 줄바꿈할 전략입니다.

  • "greedy" — 항상 printWidth 안에 들어오도록 다시 줄을 맞춥니다.

  • "balance" — 모든 줄이 printWidth 안에 들어가면 원래 줄바꿈을 유지합니다.

  • 기본값: "greedy"

overrides[n].options.jsdoc.preferCodeFences

유형: boolean

언어 태그 없는 코드에 4칸 들여쓰기 대신 코드 펜스(` ``` `)를 씁니다.

  • 기본값: false
overrides[n].options.jsdoc.separateReturnsFromParam

유형: boolean

마지막 @param@returns 사이에 빈 줄을 둡니다.

  • 기본값: false
overrides[n].options.jsdoc.separateTagGroups

유형: boolean

서로 다른 태그 그룹 사이에 빈 줄을 둡니다(예: @param@returns 사이).

  • 기본값: false
overrides[n].options.jsxSingleQuote

유형: boolean

JSX에서 큰따옴표 대신 작은따옴표를 씁니다.

  • 기본값: false
overrides[n].options.objectWrap

유형: "preserve" | "collapse"

객체 리터럴을 한 줄에 넣을지 여러 줄로 나눌지에 대한 줄바꿈 방식입니다.

기본값은 첫 속성 직전에 줄바꿈이 있으면 여러 줄로 포맷하는 휴리스틱입니다. 저자가 문맥에 맞게 읽기 좋게 배치할 수 있지만 단점도 있습니다.

  • 기본값: "preserve"
overrides[n].options.printWidth

유형: integer

포맷터가 줄을 바꿀 줄 길이입니다.

Markdown에서 줄바꿈을 끄려면 proseWrap 옵션을 조정하세요.

  • 기본값: 100
  • .editorconfig.max_line_length보다 우선합니다.
overrides[n].options.proseWrap

유형: "always" | "never" | "preserve"

산문(prose) 줄바꿈 방식입니다.

기본값은 GitHub 댓글·Bitbucket처럼 줄바꿈에 민감한 렌더러를 쓰는 서비스를 고려하여 Markdown 본문 줄바꿈을 바꾸지 않습니다. printWidth에 맞춰 줄바꿈하려면 "always"로 바꾸세요. 모든 산문 블록을 한 줄로 강제하고 에디터·뷰어의 소프트 랩에 맡기려면 "never"를 쓸 수 있습니다.

  • 기본값: "preserve"
overrides[n].options.quoteProps

유형: "as-needed" | "consistent" | "preserve"

객체 속성 이름에 따옴표를 언제 쓸지 바꿉니다.

  • 기본값: "as-needed"
overrides[n].options.semi

유형: boolean

문 끝에 세미콜론을 출력할지 여부입니다.

  • 기본값: true
overrides[n].options.singleAttributePerLine

유형: boolean

HTML, Vue, JSX에서 속성을 한 줄에 하나씩 강제합니다.

  • 기본값: false
overrides[n].options.singleQuote

유형: boolean

큰따옴표 대신 작은따옴표를 씁니다.

JSX에는 jsxSingleQuote 옵션을 쓰면 됩니다.

  • 기본값: false
  • .editorconfig.quote_type보다 우선합니다.
overrides[n].options.sortImports

유형: object | boolean

Import 문을 정렬합니다.

알고리즘은 eslint-plugin-perfectionist/sort-imports와 유사합니다. 세부 내용은 각 필드 설명을 참고하세요.

true나 객체를 넘기면 기본값으로 켜지고, 생략하거나 false로 두면 끕니다.

  • 기본값: 꺼짐
overrides[n].options.sortImports.customGroups

유형: array

아주 특정한 import를 매칭할 사용자 정의 그룹을 정의합니다.

customGroups 목록은 순서가 있습니다: 요소와 처음으로 일치하는 정의가 사용됩니다. 미리 정의된 그룹보다 사용자 정의 그룹의 우선순위가 더 높습니다.

미리 정의된 그룹이 사용자 정의 그룹보다 우선해야 한다면, 미리 정의된 그룹과 동일하게 동작하는 사용자 정의 그룹 정의를 작성해 목록 맨 앞에 두어야 합니다.

elementNamePattern, selector, modifiers 등 여러 조건을 지정하면, import가 사용자 정의 그룹에 맞으려면 모든 조건을 만족해야 합니다(AND).

  • 기본값: []

####### overrides[n].options.sortImports.customGroups[n]

유형: object

######## overrides[n].options.sortImports.customGroups[n].elementNamePattern

유형: string[]

기본값: []

이 그룹에 맞춰 import 출처를 매칭할 글로브 패턴 목록입니다.

######## overrides[n].options.sortImports.customGroups[n].groupName

유형: string

기본값: ""

groups 옵션에서 쓰는 사용자 정의 그룹 이름입니다.

######## overrides[n].options.sortImports.customGroups[n].modifiers

유형: string[]

import 특성에 맞추기 위한 수정자(modifier)입니다. 지정한 수정자는 모두 있어야 합니다(AND).

가능한 값: "side_effect", "type", "value", "default", "wildcard", "named"

######## overrides[n].options.sortImports.customGroups[n].selector

유형: string

import 종류에 맞추는 선택자(selector)입니다.

가능한 값: "type", "side_effect_style", "side_effect", "style", "index", "sibling", "parent", "subpath", "internal", "builtin", "external", "import"

overrides[n].options.sortImports.groups

유형: array

정렬에 쓸 미리 정의된 import 그룹 목록입니다.

각 import에는 groups 옵션에 지정된 단일 그룹이 할당됩니다(없으면 unknown). groups 항목 순서가 그룹 순서를 결정합니다.

한 그룹 안에서는 type, order, ignoreCase 등의 옵션에 따라 멤버가 정렬됩니다.

배열 안에 여러 그룹을 두면 하나로 묶입니다. 그 배열 안의 그룹 순서는 중요하지 않습니다. 묶인 그룹의 모든 멤버는 마치 하나의 그룹인 것처럼 함께 정렬됩니다.

미리 정의된 그룹은 선택자 하나와 0개 이상의 수정자로 표현됩니다. 수정자는 어떤 순서로 적어도 되지만 선택자는 항상 마지막에 둡니다.

선택자 목록은 대략 중요도 순(높은 것→낮은 것)입니다:

  • type — TypeScript 타입 import
  • side_effect_style — 사이드 이펙트 스타일 import
  • side_effect — 사이드 이펙트 import
  • style — 스타일 import
  • index — 현재 디렉터리의 메인 파일
  • sibling — 같은 디렉터리 모듈
  • parent — 상위 디렉터리 모듈
  • subpath — Node.js 서브패스 import
  • internal — 내부 모듈
  • builtin — Node.js 빌트인 모듈
  • external — 프로젝트에 설치된 외부 모듈
  • import — 모든 import

수정자 목록은 중요도 순(높은 것→낮은 것)입니다:

  • side_effect — 사이드 이펙트 import

  • type — TypeScript 타입 import

  • value — 값 import

  • default — 기본(default) 지정자를 포함한 import

  • wildcard — 와일드카드(* as) 지정자를 포함한 import

  • named — 이름 지정(named) 지정자를 하나 이상 포함한 import

  • 기본값: 아래 참고

json
["builtin", "external", ["internal", "subpath"], ["parent", "sibling", "index"], "style", "unknown"]

또 특정 그룹 경계에 대해 전역 newlinesBetween을 덮어쓸 수 있습니다. groups 목록의 원하는 위치에 { "newlinesBetween": boolean } 마커 객체를 넣으면 됩니다.

####### overrides[n].options.sortImports.groups[n]

유형: object | array | string

######## overrides[n].options.sortImports.groups[n].newlinesBetween

유형: boolean

overrides[n].options.sortImports.ignoreCase

유형: boolean

대소문자를 구분해 정렬할지 여부입니다.

  • 기본값: true
overrides[n].options.sortImports.internalPattern

유형: string[]

내부 import를 식별하기 위한 접두사입니다.

자체 모듈과 외부 의존성을 구분할 때 유용합니다.

  • 기본값: ["~/", "@/"]
overrides[n].options.sortImports.newlinesBetween

유형: boolean

그룹 사이에 빈 줄을 넣을지 여부입니다.

false면 그룹 사이에 빈 줄을 넣지 않습니다.

  • 기본값: true
overrides[n].options.sortImports.order

유형: "asc" | "desc"

오름차순·내림차순 여부입니다.

  • 기본값: "asc"
overrides[n].options.sortImports.partitionByComment

유형: boolean

주석으로 import를 논리적 그룹으로 나눕니다.

true면 모든 주석을 구분자로 취해 파티션을 만듭니다.

js
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";
  • 기본값: false
overrides[n].options.sortImports.partitionByNewline

유형: boolean

빈 줄로 import 그룹을 나눕니다.

true면 그룹 사이에 빈 줄이 있을 때 formatter는 import를 정렬하지 않습니다. 논리적으로 나뉜 멤버 그룹의 정의 순서를 유지하는 데 도움이 됩니다.

js
import { b1, b2 } from "b";

import { a } from "a";
import { c } from "c";
  • 기본값: false
overrides[n].options.sortImports.sortSideEffects

유형: boolean

사이드 이펙트 import를 정렬할지 여부입니다.

기본적으로 보안상 사이드 이펙트 import 정렬은 꺼져 있습니다.

  • 기본값: false
overrides[n].options.sortPackageJson

유형: object | boolean

package.json 키를 정렬합니다.

이 알고리즘은 prettier-plugin-sort-packagejson호환되지 않습니다. 다만 우리는 더 명확하고 탐색하기 쉽다고 봅니다. 세부 내용은 각 필드 설명을 참고하세요.

  • 기본값: true
overrides[n].options.sortPackageJson.sortScripts

유형: boolean

scripts 필드를 알파벳 순으로 정렬합니다.

  • 기본값: false
overrides[n].options.sortTailwindcss

유형: object | boolean

Tailwind CSS 클래스를 정렬합니다.

prettier-plugin-tailwindcss와 동일한 알고리즘을 사용합니다. 원본 플러그인의 tailwind 접두사는 생략했습니다(예: tailwindConfig 대신 config). 세부 내용은 각 필드 설명을 참고하세요.

true나 객체를 넘기면 기본값으로 켜고, 생략하거나 false로 두면 끕니다.

  • 기본값: 꺼짐
overrides[n].options.sortTailwindcss.attributes

유형: string[]

class, className 외에 정렬할 속성 이름을 추가로 나열합니다(완전 일치).

참고: 정규식 패턴은 아직 지원하지 않습니다.

  • 기본값: []
  • 예: ["myClassProp", ":class"]
overrides[n].options.sortTailwindcss.config

유형: string

Tailwind CSS 설정 파일(v3) 경로입니다.

참고: 경로는 Oxfmt 설정 파일을 기준으로 해석됩니다.

  • 기본값: "tailwind.config.js" 자동 검색
overrides[n].options.sortTailwindcss.functions

유형: string[]

인자를 정렬해야 하는 사용자 정의 함수 이름 목록입니다(완전 일치).

참고: 정규식 패턴은 아직 지원하지 않습니다.

  • 기본값: []
  • 예: ["clsx", "cn", "cva", "tw"]
overrides[n].options.sortTailwindcss.preserveDuplicates

유형: boolean

중복 클래스를 유지합니다.

  • 기본값: false
overrides[n].options.sortTailwindcss.preserveWhitespace

유형: boolean

클래스 주변 공백을 유지합니다.

  • 기본값: false
overrides[n].options.sortTailwindcss.stylesheet

유형: string

Tailwind CSS 스타일시트(v4) 경로입니다.

참고: 경로는 Oxfmt 설정 파일을 기준으로 해석됩니다.

  • 기본값: 설치된 Tailwind CSS의 theme.css
overrides[n].options.tabWidth

유형: integer

들여쓰기 한 단계당 공백 개수입니다.

  • 기본값: 2
  • .editorconfig.indent_size보다 우선합니다(대체로 .editorconfig.tab_width).
overrides[n].options.trailingComma

유형: "all" | "es5" | "none"

여러 줄로 나뉜 쉼표로 구분된 구문 구조에서는 가능한 한 끝에 쉼표를 둡니다.

한 줄짜리 배열 등에는 끝 쉼표가 붙지 않습니다.

  • 기본값: "all"
overrides[n].options.useTabs

유형: boolean

스페이스 대신 탭으로 들여씁니다.

  • 기본값: false
  • .editorconfig.indent_style보다 우선합니다.
overrides[n].options.vueIndentScriptAndStyle

유형: boolean

Vue 파일에서 <script><style> 안 코드를 들여쓸지 여부입니다.

  • 기본값: false

printWidth

유형: integer

포맷터가 줄을 바꿀 줄 길이입니다.

Markdown에서 줄바꿈을 끄려면 proseWrap 옵션을 조정하세요.

  • 기본값: 100
  • .editorconfig.max_line_length보다 우선합니다.

proseWrap

유형: "always" | "never" | "preserve"

산문(prose) 줄바꿈 방식입니다.

기본값은 GitHub 댓글·Bitbucket처럼 줄바꿈에 민감한 렌더러를 쓰는 서비스를 고려하여 Markdown 본문 줄바꿈을 바꾸지 않습니다. printWidth에 맞춰 줄바꿈하려면 "always"로 바꾸세요. 모든 산문 블록을 한 줄로 강제하고 에디터·뷰어의 소프트 랩에 맡기려면 "never"를 쓸 수 있습니다.

  • 기본값: "preserve"

quoteProps

유형: "as-needed" | "consistent" | "preserve"

객체 속성 이름에 따옴표를 언제 쓸지 바꿉니다.

  • 기본값: "as-needed"

semi

유형: boolean

문 끝에 세미콜론을 출력할지 여부입니다.

  • 기본값: true

singleAttributePerLine

유형: boolean

HTML, Vue, JSX에서 속성을 한 줄에 하나씩 강제합니다.

  • 기본값: false

singleQuote

유형: boolean

큰따옴표 대신 작은따옴표를 씁니다.

JSX에는 jsxSingleQuote 옵션을 쓰면 됩니다.

  • 기본값: false
  • .editorconfig.quote_type보다 우선합니다.

sortImports

유형: object | boolean

Import 문을 정렬합니다.

알고리즘은 eslint-plugin-perfectionist/sort-imports와 유사합니다. 세부 내용은 각 필드 설명을 참고하세요.

true나 객체를 넘기면 기본값으로 켜지고, 생략하거나 false로 두면 끕니다.

  • 기본값: 꺼짐

sortImports.customGroups

유형: array

아주 특정한 import를 매칭할 사용자 정의 그룹을 정의합니다.

customGroups 목록은 순서가 있습니다: 요소와 처음으로 일치하는 정의가 사용됩니다. 미리 정의된 그룹보다 사용자 정의 그룹의 우선순위가 더 높습니다.

미리 정의된 그룹이 사용자 정의 그룹보다 우선해야 한다면, 미리 정의된 그룹과 동일하게 동작하는 사용자 정의 그룹 정의를 작성해 목록 맨 앞에 두어야 합니다.

elementNamePattern, selector, modifiers 등 여러 조건을 지정하면, import가 사용자 정의 그룹에 맞으려면 모든 조건을 만족해야 합니다(AND).

  • 기본값: []

sortImports.customGroups[n]

유형: object

sortImports.customGroups[n].elementNamePattern

유형: string[]

기본값: []

이 그룹에 맞춰 import 출처를 매칭할 글로브 패턴 목록입니다.

sortImports.customGroups[n].groupName

유형: string

기본값: ""

groups 옵션에서 쓰는 사용자 정의 그룹 이름입니다.

sortImports.customGroups[n].modifiers

유형: string[]

import 특성에 맞추기 위한 수정자(modifier)입니다. 지정한 수정자는 모두 있어야 합니다(AND).

가능한 값: "side_effect", "type", "value", "default", "wildcard", "named"

sortImports.customGroups[n].selector

유형: string

import 종류에 맞추는 선택자(selector)입니다.

가능한 값: "type", "side_effect_style", "side_effect", "style", "index", "sibling", "parent", "subpath", "internal", "builtin", "external", "import"

sortImports.groups

유형: array

정렬에 쓸 미리 정의된 import 그룹 목록입니다.

각 import에는 groups 옵션에 지정된 단일 그룹이 할당됩니다(없으면 unknown). groups 항목 순서가 그룹 순서를 결정합니다.

한 그룹 안에서는 type, order, ignoreCase 등의 옵션에 따라 멤버가 정렬됩니다.

배열 안에 여러 그룹을 두면 하나로 묶입니다. 그 배열 안의 그룹 순서는 중요하지 않습니다. 묶인 그룹의 모든 멤버는 마치 하나의 그룹인 것처럼 함께 정렬됩니다.

미리 정의된 그룹은 선택자 하나와 0개 이상의 수정자로 표현됩니다. 수정자는 어떤 순서로 적어도 되지만 선택자는 항상 마지막에 둡니다.

선택자 목록은 대략 중요도 순(높은 것→낮은 것)입니다:

  • type — TypeScript 타입 import
  • side_effect_style — 사이드 이펙트 스타일 import
  • side_effect — 사이드 이펙트 import
  • style — 스타일 import
  • index — 현재 디렉터리의 메인 파일
  • sibling — 같은 디렉터리 모듈
  • parent — 상위 디렉터리 모듈
  • subpath — Node.js 서브패스 import
  • internal — 내부 모듈
  • builtin — Node.js 빌트인 모듈
  • external — 프로젝트에 설치된 외부 모듈
  • import — 모든 import

수정자 목록은 중요도 순(높은 것→낮은 것)입니다:

  • side_effect — 사이드 이펙트 import

  • type — TypeScript 타입 import

  • value — 값 import

  • default — 기본(default) 지정자를 포함한 import

  • wildcard — 와일드카드(* as) 지정자를 포함한 import

  • named — 이름 지정(named) 지정자를 하나 이상 포함한 import

  • 기본값: 아래 참고

json
["builtin", "external", ["internal", "subpath"], ["parent", "sibling", "index"], "style", "unknown"]

또 특정 그룹 경계에 대해 전역 newlinesBetween을 덮어쓸 수 있습니다. groups 목록의 원하는 위치에 { "newlinesBetween": boolean } 마커 객체를 넣으면 됩니다.

sortImports.groups[n]

유형: object | array | string

sortImports.groups[n].newlinesBetween

유형: boolean

sortImports.ignoreCase

유형: boolean

대소문자를 구분해 정렬할지 여부입니다.

  • 기본값: true

sortImports.internalPattern

유형: string[]

내부 import를 식별하기 위한 접두사입니다.

자체 모듈과 외부 의존성을 구분할 때 유용합니다.

  • 기본값: ["~/", "@/"]

sortImports.newlinesBetween

유형: boolean

그룹 사이에 빈 줄을 넣을지 여부입니다.

false면 그룹 사이에 빈 줄을 넣지 않습니다.

  • 기본값: true

sortImports.order

유형: "asc" | "desc"

오름차순·내림차순 여부입니다.

  • 기본값: "asc"

sortImports.partitionByComment

유형: boolean

주석으로 import를 논리적 그룹으로 나눕니다.

true면 모든 주석을 구분자로 취해 파티션을 만듭니다.

js
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";
  • 기본값: false

sortImports.partitionByNewline

유형: boolean

빈 줄로 import 그룹을 나눕니다.

true면 그룹 사이에 빈 줄이 있을 때 formatter는 import를 정렬하지 않습니다. 논리적으로 나뉜 멤버 그룹의 정의 순서를 유지하는 데 도움이 됩니다.

js
import { b1, b2 } from "b";

import { a } from "a";
import { c } from "c";
  • 기본값: false

sortImports.sortSideEffects

유형: boolean

사이드 이펙트 import를 정렬할지 여부입니다.

기본적으로 보안상 사이드 이펙트 import 정렬은 꺼져 있습니다.

  • 기본값: false

sortPackageJson

유형: object | boolean

package.json 키를 정렬합니다.

이 알고리즘은 prettier-plugin-sort-packagejson호환되지 않습니다. 다만 우리는 더 명확하고 탐색하기 쉽다고 봅니다. 세부 내용은 각 필드 설명을 참고하세요.

  • 기본값: true

sortPackageJson.sortScripts

유형: boolean

scripts 필드를 알파벳 순으로 정렬합니다.

  • 기본값: false

sortTailwindcss

유형: object | boolean

Tailwind CSS 클래스를 정렬합니다.

prettier-plugin-tailwindcss와 동일한 알고리즘을 사용합니다. 원본 플러그인의 tailwind 접두사는 생략했습니다(예: tailwindConfig 대신 config). 세부 내용은 각 필드 설명을 참고하세요.

true나 객체를 넘기면 기본값으로 켜고, 생략하거나 false로 두면 끕니다.

  • 기본값: 꺼짐

sortTailwindcss.attributes

유형: string[]

class, className 외에 정렬할 속성 이름을 추가로 나열합니다(완전 일치).

참고: 정규식 패턴은 아직 지원하지 않습니다.

  • 기본값: []
  • 예: ["myClassProp", ":class"]

sortTailwindcss.config

유형: string

Tailwind CSS 설정 파일(v3) 경로입니다.

참고: 경로는 Oxfmt 설정 파일을 기준으로 해석됩니다.

  • 기본값: "tailwind.config.js" 자동 검색

sortTailwindcss.functions

유형: string[]

인자를 정렬해야 하는 사용자 정의 함수 이름 목록입니다(완전 일치).

참고: 정규식 패턴은 아직 지원하지 않습니다.

  • 기본값: []
  • 예: ["clsx", "cn", "cva", "tw"]

sortTailwindcss.preserveDuplicates

유형: boolean

중복 클래스를 유지합니다.

  • 기본값: false

sortTailwindcss.preserveWhitespace

유형: boolean

클래스 주변 공백을 유지합니다.

  • 기본값: false

sortTailwindcss.stylesheet

유형: string

Tailwind CSS 스타일시트(v4) 경로입니다.

참고: 경로는 Oxfmt 설정 파일을 기준으로 해석됩니다.

  • 기본값: 설치된 Tailwind CSS의 theme.css

tabWidth

유형: integer

들여쓰기 한 단계당 공백 개수입니다.

  • 기본값: 2
  • .editorconfig.indent_size보다 우선합니다(대체로 .editorconfig.tab_width).

trailingComma

유형: "all" | "es5" | "none"

여러 줄로 나뉜 쉼표로 구분된 구문 구조에서는 가능한 한 끝에 쉼표를 둡니다.

한 줄짜리 배열 등에는 끝 쉼표가 붙지 않습니다.

  • 기본값: "all"

useTabs

유형: boolean

스페이스 대신 탭으로 들여씁니다.

  • 기본값: false
  • .editorconfig.indent_style보다 우선합니다.

vueIndentScriptAndStyle

유형: boolean

Vue 파일에서 <script><style> 안 코드를 들여쓸지 여부입니다.

  • 기본값: false