VS Code 내에서 SQL 및 MyBatis Mapper XML 문서를 정렬하는 포매터 확장 프로그램입니다.
주요 기능
SQL 포맷팅:
- Oracle, MSSQL, MySQL, MariaDB 등의 주요 예약어 및 내장 함수 정렬을 지원합니다.
- 쉼표(Comma)의 정렬 위치(앞/뒤) 및 예약어 정렬 방향(Left/Right River Align) 옵션을 선택할 수 있습니다.
- 테이블 정의서를 통해서 SQL문의 컬럼 뒤에 컬럼 주석을 자동으로 삽입을 할수 있습니다.(선택사항)
MyBatis Mapper XML 지원:
- Mapper XML 구조 내에서
<select>, <insert>, <update>, <delete> 등의 SQL 구문만 감지하여 포맷을 수행합니다.
<if>, <where>, <foreach> 등의 동적 SQL 태그와 CDATA 영역의 원본 구문을 보호하고 들여쓰기를 정렬합니다.
- XML 특수문자
<, >를 <, >로 자동 변환을 할수 있습니다.(선택사항)
웹뷰 제어판:
- 에디터 외부에서 텍스트를 붙여넣어 실시간으로 포맷을 실행해 볼 수 있습니다.
- VS Code 파일 탐색기(
showOpenDialog)를 연동하여 로컬 파일을 입력창에 가져옵니다.
💾 에디터 적용 버튼을 클릭하면, 수정한 포맷 결과를 원본 파일에 덮어씁니다.
- 설정창에서 다양한 옵션을 설정할 수 있습니다.
- 변경한 옵션 값들은 VS Code 사용자 설정(
settings.json)에 동기화되어 저장됩니다.
VS Code 테마 연동:
- VS Code의 현재 테마(다크 모드 / 라이트 모드)를 감지하여 웹뷰 스타일을 자동으로 일치시킵니다.
Mapper 개발 문서 자동 생성:
- Mapper XML 내부에 작성된 설명 주석 및 입출력 주석(
[INPUT], [OUTPUT]) 정보를 파싱하여 동일한 경로에 마크다운(.md) 포맷의 개발 문서를 생성합니다.
- 입출력 주석이 없는 경우에도 내장 SQL 분석기가 쿼리 파라미터 및 SELECT 별칭 정보를 동적으로 분석하여 완성도 높은 마크다운 표 구조의 문서를 구성합니다.
명령어 및 단축키
단축키
- SQL 포맷팅 (Format SQL) 및 MyBatis SQL 포맷팅 (Format SQL (MyBatis)):
- Windows:
Ctrl + Alt + F
- macOS:
Cmd + Alt + F
- Mapper 개발 문서 생성 (.md):
- Windows:
Ctrl + Alt + M
- macOS:
Cmd + Alt + M
마우스 오른쪽 버튼 컨텍스트 메뉴
에디터 편집 화면이나 좌측 탐색기 파일 목록에서 마우스 오른쪽 버튼을 클릭하여 적합한 포맷을 빠르게 실행할 수 있습니다:
- SQL 파일 (
.sql): 우클릭 시 Format SQL 메뉴가 노출되며, 즉시 해당 파일에 포맷을 적용하고 저장합니다.
- XML 파일 (
.xml): 우클릭 시 Format SQL (MyBatis) 및 문서 생성 (.md) 메뉴가 노출됩니다.
- Format SQL (MyBatis) 기능을 실행하면, 해당 파일에 포맷을 적용하고 저장합니다.
- 문서 생성 (.md) 기능을 실행하면, Mapper XML에 달린 설명 주석 및 입출력 주석(또는 쿼리 분석을 통해 자동 추론된 파라미터 정보) 기반으로, 동일한 경로에 해당 파일 명의 마크다운(
.md) 문서를 즉시 생성합니다.
하단 상태 표시줄 (Status Bar) 연동
- VS Code 우측 하단 상태 표시줄에
DevPro SQLFormatter 표시가 활성화됩니다.
- 이 표시를 클릭하면 언제든지
DevPro SQLFormatter 웹뷰 제어판 패널 화면을 간편하게 열 수 있습니다.
명령 팔레트 (Ctrl + Shift + P 또는 F1)
DevPro SQLFormatter: Format SQL: 현재 에디터 내용 혹은 선택 영역을 포맷합니다.
DevPro SQLFormatter: Format SQL (MyBatis): 현재 MyBatis XML 문서를 포맷합니다.
DevPro SQLFormatter: 문서 생성 (.md): 현재 MyBatis Mapper XML에 대응하는 마크다운 개발 문서를 생성합니다.
DevPro SQLFormatter: Copy Formatted SQL: 포맷한 결과를 클립보드에 복사합니다.
DevPro SQLFormatter: Open Webview: DevPro SQLFormatter 웹뷰 제어판을 엽니다.
사용자 설정 옵션 및 설정창 사용법
VS Code의 전역 설정 화면(Ctrl+,) 또는 settings.json을 통해 옵션을 제어할 수 있으며, 대화형 웹뷰 UI 우측 상단의 ⚙️ 설정 버튼을 클릭하여 통합 설정 모달창을 통해 편리하게 변경할 수 있습니다.
⚙️ 설정 모달창 주요 기능
- 일괄 설정 및 동기화: 8가지 포맷 옵션을 한 화면에서 설정하고
저장을 누르면 VS Code 사용자 설정(settings.json)에 즉각 자동 반영됩니다.
- 실시간 요약 표시: 웹뷰 헤더 영역에 핵심 포맷팅 스타일(쉼표 위치, 예약어 정렬, 대소문자 변환, 들여쓰기 크기)이 직관적인 한글 요약 문구로 상시 표시됩니다.
- 도움말 툴팁: 각 설정 옵션 옆의
? 아이콘에 마우스를 올리거나 클릭하면 옵션에 대한 상세 설명 및 예시가 담긴 말풍선 도움말이 제공됩니다.
설정 옵션 목록
설정 모달 UI에서 변경 가능한 옵션
| 설정 한글 명칭 |
설정 키 |
타입 |
기본값 |
설명 |
| 콤마 위치 |
devproSqlFormatter.commaPosition |
string |
"leading" |
SQL SELECT 절 등에서 콤마(,)의 정렬 위치를 결정합니다. ("leading": 앞 콤마, "trailing": 뒷 콤마) |
| 예약어 정렬 |
devproSqlFormatter.riverAlign |
boolean |
false |
true로 설정 시 SQL 키워드를 오른쪽으로 정렬(8자 고정폭 패딩)합니다. |
| 대소문자 변환 |
devproSqlFormatter.caseMode |
string |
"upper" |
예약어/함수의 대소문자 변환 설정 ("upper", "lower", "preserve") |
| 입출력 주석 자동 삽입 |
devproSqlFormatter.addInOutComments |
boolean |
true |
SQL 구문의 변수(INPUT)와 컬럼 별칭 및 주석(OUTPUT) 정보를 분석하여 쿼리 상단에 주석으로 자동 삽입합니다. (단, MyBatis Mapper XML의 SQL 블록에만 적용됩니다.) |
| 입출력 주석 위치 |
devproSqlFormatter.inOutCommentPosition |
string |
"outside" |
자동 생성된 입출력 주석을 SQL문 내부(Inside) 또는 MyBatis XML 태그 외부(Outside) 중 어디에 배치할지 결정합니다. |
| 저장 시 자동 포맷 |
devproSqlFormatter.formatOnSave |
boolean |
true |
파일을 저장할 때 자동으로 포맷팅을 실행합니다. 비활성화 시 명시적으로 우클릭 또는 명령어로만 작동합니다. |
| MyBatis SQL 추가 들여쓰기 |
devproSqlFormatter.mybatisIndent |
boolean |
true |
MyBatis XML 태그 내부의 SQL 블록에 대해 들여쓰기 한 수준(설정 크기)을 더 적용합니다. |
| XML 특수문자 치환 |
devproSqlFormatter.escapeXmlSymbols |
boolean |
false |
MyBatis XML Mapper 포맷팅 시 SQL 내부의 XML 문법 충돌 특수문자(<, >)를 XML Entity(<, >)로 자동 치환합니다. |
| 테이블 정의서 엑셀 경로 |
devproSqlFormatter.excelPath |
string |
"" |
테이블 정의서 엑셀 파일(.xlsx)의 상대 경로를 지정합니다. 설정 모달 내 파일 선택 다이얼로그로 지정하거나 직접 settings.json에 기재합니다. |
설정 모달에 미표시 — settings.json에서 직접 변경 가능한 옵션 (기본값으로 항상 활성화)
| 설정 한글 명칭 |
설정 키 |
기본값 |
설명 |
| MyBatis XML 지원 |
devproSqlFormatter.mybatisSupport |
true |
MyBatis XML 파일 내 동적 SQL 태그와 CDATA 영역을 감지하여 포맷팅을 지원합니다. |
| 들여쓰기 크기 |
devproSqlFormatter.indentSize |
4 |
SQL 및 XML 들여쓰기 적용 시 사용할 공백 칸 수를 지정합니다. |
| MyBatis XML 자동 감지 |
devproSqlFormatter.autoDetectMyBatis |
true |
XML 파일 열기 및 저장 시 MyBatis Mapper 파일인지 감지하여 포매터를 자동으로 연결합니다. |
| 상태 표시줄 표시 |
devproSqlFormatter.showStatusBar |
true |
VS Code 에디터 우측 하단 상태 표시줄에 DevPro SQLFormatter 피드백 상태 표시기를 노출합니다. (항상 활성화) |
| |