Published on

PyCharm에서 File Watcher를 활용해 ruff 자동 적용하기

Authors

Python 프로젝트를 개발할 때 코드 스타일을 자동으로 정리해주는 도구는 생산성과 코드의 일관성을 유지하는 데 매우 중요합니다. 특히 ruff는 매우 빠르고 다양한 lint 규칙을 한 번에 처리할 수 있는 포매터로 각광받고 있습니다.

이 글에서는 PyCharm의 File Watcher 기능을 활용하여 ruff를 저장 시 자동으로 실행하도록 설정하는 방법을 기록 합니다.

1. 사전 준비

ruff 설치 (가상환경 기준):

pip install ruff

PyCharm에서 해당 Python 가상환경이 프로젝트에 설정되어 있어야 합니다.

PyCharm File Watcher 설정 방법 Preferences (Settings) > Tools > File Watchers 메뉴로 이동합니다.

2. 설정

아래와 같이 설정합니다.(하단에 환경변수 복사 가능한 코드블럭이 있습니다.)

PyCharm에서_File_Watcher를_활용해_ruff_자동_적용하기

2.1 Files to Watch

Name: 자유롭게 작성 합니다.

File Type: Python

Scope: Project Files

2.2 Tool to Run on Changes

2.2.1 Program

$PyInterpreterDirectory$/ruff

2.2.2 Arguments

format $FileDir$

2.2.3 Output paths to refresh

$FileDir$

2.2.4 Working directory

적용할 디렉토리의 경로를 설정합니다. 예를 들어, 프로젝트 루트 디렉토리라면 $ProjectFileDir$를 사용합니다.

3. 작동 확인 및 참고 사항

위와 같이 설정하면 Python 파일을 저장할 때마다 ruff format 명령어가 실행되어 해당 디렉토리 내의 파일들이 자동으로 포매팅됩니다.

ruff는 black이나 isort처럼 사용법이 간단하면서도, 하나의 도구로 linting과 포맷팅을 동시에 처리할 수 있다는 점에서 특히 유용합니다.

FileDirFileDir를 인자로 넣은 이유는 저장 중인 파일이 포함된 디렉토리 전체를 포맷하기 위함입니다. 개별 파일만 포맷하고 싶다면 FileNameFileName을 사용해도 됩니다.

PyInterpreterDirectoryPyInterpreterDirectory는 현재 설정된 Python 인터프리터의 경로를 자동으로 가져오기 때문에 별도의 절대 경로 설정 없이 ruff를 실행할 수 있습니다.

4. black isort 적용

예전에 black과 isort를 적용하는 방법을 포스팅한 적이 있습니다. 이와 유사하게 File Watcher를 설정하면 됩니다.

  • hongreat 블로그의 글을 봐주셔서 감사합니다!^^
  • 내용에 잘못된 부분이나 의문점이 있으시다면 댓글 부탁 & 환영 합니다~!
  • (하단의 버튼을 누르시면 댓글을 보거나 작성할 수 있습니다.)
Buy Me A Coffee