텍스트 편집기 연동
Ren'Py는 텍스트 편집기를 사용해 런처에서 게임 스크립트를 편집하고 오류 위치를 보여 줍니다. 필요에 따라 사용할 편집기를 바꿀 수 있습니다.
.edit.py 파일에 Editor 클래스를 정의해 편집기를 설정합니다. 이 클래스에는 텍스트 편집을 제어할 때 호출하는 메서드가 들어 있습니다.
Ren'Py를 직접 실행하면 먼저 RENPY_EDIT_PY 환경 변수에서 사용할 .edit.py 파일을 찾습니다. 찾으면 그 파일의 Editor 클래스를 사용하고, 없으면 시스템에 맞는 방식으로 편집기를 여는 내장 클래스를 사용합니다.
Ren'Py 런처는 프로젝트 디렉터리와 Ren'Py 디렉터리의 하위 폴더에서 name.edit.py 형태의 파일을 찾습니다. 예를 들어 launcher/jEdit.edit.py나 myeditor/MyEditor.edit.py가 해당합니다. 같은 name의 편집기가 여러 개면 가장 최신 항목을 런처 옵션에 표시합니다. 런처는 선택한 파일을 RENPY_EDIT_PY에도 지정하므로, 런처에서 실행한 게임도 같은 편집기를 사용합니다.
.edit.py 파일 작성하기
edit.py는 Ren'Py 스크립트가 아닌 Python 파일이며, Editor라는 클래스 하나를 정의해야 합니다. Ren'Py는 이 클래스의 메서드를 호출해 편집 작업을 수행합니다.
관련 작업은 편집기 트랜잭션 하나로 묶입니다. 예를 들어 새 창을 요청한 트랜잭션의 파일은 모두 같은 새 창에 열어야 합니다. 트랜잭션은 begin 메서드 호출로 시작하고, 작업 메서드를 한 번 이상 호출한 뒤 end 메서드 호출로 끝냅니다.
edit.py에서는 renpy.editor를 가져오고, Editor 클래스는 renpy.editor.Editor를 상속해야 합니다. 이후 버전에서 메서드에 키워드 인수가 추가될 수 있으므로 알 수 없는 키워드 인수는 무시하도록 작성하세요. 직접 Editor 하위 클래스를 구현하는 용도이므로 아래 메서드 서명에는 self를 표시합니다.