언어 Language/파이썬 Python

Q. Pycharm에서 파이썬 Black 코드 포맷 자동 적용하는 방법은?

Tap to restart 2023. 4. 22. 14:00
반응형

A. File Wathcer에 등록하면 된다.

 
출처: Black documentation: PyCharm/IntelliJ IDEA As file watcher
Black 공식 문서에서는 black 적용 방법으로 As local server, As external tool, As file watcher 3가지 방법을 제시하고 있다. 이 중에서 File watcher가 자동 적용되어서 편하다.
 

black 설치

MacOS 기준이다. 윈도우도 큰 차이는 없으니 위 공식 문서를 참고하자.

$ pip install black
$ which black

black을 설치하고 which로 black 설치 위치를 확인할 수 있다.
 
내 경우는 파이썬 가상환경을 따로 만들어서 설치했기 때문에 아래와 같다.

/Users/taptorestart/workspace/playground/black/venv/bin/black

 

File watchers에 등록

이제 File watcher에 등록하자.
Settings > Tools > File Watchers가 있다.
 


File Watchers에 들어가면 아래와 같다. + 버튼을 누른다.


<custom>을 선택한다.


아래와 같은 화면이 나타난다.


Name에는 원하는대로 입력하고
File type: Python 선택한다.
Scope는 Project Files
Program은 which black으로 확인한 black 실행 파일 경로를 입력한다.
Arguments는 $FilePath$
Output paths to refresh 도 똑같이 $FilePath$를 입력하고
Working directory는 작업 디렉터리를 입력한다.
 
입력 예이다.

 
이제 black이 자동 적용된다.

text = 'hello world'

라고 입력하는 순간에 이미 자동으로 ' -> "로 바뀌는 모습을 목격하게 될 것이다.
 

black file watcher 적용 예

 

pyproject.toml 설정도 자동 적용

file watcher로 등록하면 pyproject.toml 설정도 잘 적용된다.

project 디렉터리에 pyproject.toml을 추가하자.

아래처럼 테스트를 위해서 line-length = 20이라고 추가하자.

[tool.black]
line-length = 20

자동으로 코드가 줄 바꿈되는 것을 확인할 수 있다.

 

Pycharm의 기본 줄바꿈 값은 120이다. 

Editor > Code Style에서 Hard wrap at: 120 숫자를 확인할 수 있다.

 

아래 맨 오른쪽에 일자로 표시된 선이 숫자 120개를 추가했을 때 도달한다.

 

 

pycharm 기본 설정과 똑같이 하고 싶다면 위 예처럼 line-length = 120으로 설정하면 된다.

 

자동으로 변경되는 것이 불편하다면

Auto-save edited files to trigger the watcher를 설정 해제하자. 

그러면 cmd + s 저장 단축키를 눌렀을 때 적용된다.

 

반응형