Cursor에서 자동 코드 포맷팅
팁
Cursor는 프로젝트 전체에서 일관된 코드 스타일을 유지하는 데 도움이 되는 강력한 코드 포맷팅 기능을 제공합니다.
포맷터 설정하기
내장 포맷터
Cursor에는 여러 언어를 지원하는 내장 포맷터가 있습니다. 사용 방법:
- 명령 팔레트 열기(Ctrl/Cmd + Shift + P)
- "Format Document" 입력
- Enter 키 누르기
인기 있는 포맷터
- Prettier
- ESLint
# Prettier 설치
npm install --save-dev prettier
# 설정 파일 생성
echo {} > .prettierrc.json
# ESLint 설치
npm install --save-dev eslint
# ESLint 초기화
npx eslint --init
설정 파일
Prettier 설정
.prettierrc.json
{
"semi": true,
"trailingComma": "es5",
"singleQuote": true,
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"bracketSpacing": true,
"arrowParens": "avoid"
}
ESLint 설정
.eslintrc.json
{
"env": {
"browser": true,
"es2021": true
},
"extends": [
"eslint:recommended",
"prettier"
],
"rules": {
"indent": ["error", 2],
"linebreak-style": ["error", "unix"],
"quotes": ["error", "single"],
"semi": ["error", "always"]
}
}
저장 시 포맷팅
자동 포맷팅 활성화
.vscode/settings.json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
언어별 설정
{
"[python]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.python"
},
"[java]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "redhat.java"
}
}
키보드 단축키
기본 포맷팅 단축키:
동작 | Windows/Linux | macOS |
---|---|---|
문서 포맷팅 | Shift + Alt + F | Shift + Option + F |
선택 영역 포맷팅 | Ctrl + K Ctrl + F | Cmd + K Cmd + F |
고급 설정
파일 무시하기
.prettierignore
# 빌드 출력
dist/
build/
# 의존성
node_modules/
# 생성된 파일
*.generated.*
ESLint 통합
.eslintrc.json
{
"extends": [
"eslint:recommended",
"plugin:prettier/recommended"
],
"plugins": ["prettier"],
"rules": {
"prettier/prettier": "error"
}
}
사용자 정의 포맷팅 규칙
스타일 가이드 적용
.prettierrc.json
{
"overrides": [
{
"files": "*.component.ts",
"options": {
"printWidth": 120,
"singleQuote": true
}
},
{
"files": "*.spec.ts",
"options": {
"printWidth": 80,
"semi": true
}
}
]
}
프로젝트별 규칙
.editorconfig
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
indent_style = space
indent_size = 2
[*.{js,ts}]
quote_type = single
[*.py]
indent_size = 4