Интеграция текстового редактора (Text Editor Integration)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Ren'Py использует текстовый редактор, позволяющий редактировать скрипт игры из Ren'Py Launcher и сообщающий пользователю об ошибках. По умолчанию Ren'Py использует jEdit в качестве текстового редактора при запуске из Ren'Py Launcher, при иных обстоятельствах Ren'Py использует системный редактор, выбираемый пользователем по умолчанию. При необходимости системный редактор может быть настроен пользователем.

Редактор настраивается путём создания класса Editor в файле .edit.py. Этот класс включает методы, вызываемые для управления редактированием текста.

При непосредственном запуске Ren'Py сначала анализирует переменную среды RENPY_EDIT_PY, чтобы найти файла edit.py, который будет использоваться. Если Ren'Py может найти один подобный файл, то он использует класс Editor, определенный в этом файле. Иначе Ren'Py использует встроенный класс редактора, который запускает редактор в специфической для системы манере.

При запуске Ren'Py Launcher сканирует подкаталоги директории проектов и директорию Ren'Py, чтобы найти файлы вида name.edit.py. Например, он найдет launcher/jEdit.edit.py и myeditor/MyEditor.edit.py. Последний редактор с заданным name будет представлен создателю визуальных новелл, как часть настроек Ren'Py Launcher. Лаунчер также устанавливает RENPY_EDIT_PY для выбранного файла, так что игры, запускаемые из Ren'Py Launcher, будут использовать выбранный редактор.

Создание файла .edit.py (Writing an .edit.py File)[править | править код]

Файл edit.py представляет собой файл Python (не Ren'Py), который должен определить единственный класс с именем Editor. Ren'Py вызовет методы вышеуказанного класса, чтобы вызвать редактирование.

Использование редактора выполняется в рамках транзакции редактора, которая группирует взаимосвязанные операции. Например, если транзакция редактора просит открыть новое окно, все файлы в этой транзакции должны быть открыты в том же новом окне. Транзакция редактора начинается с вызова метода begin, может содержать один или несколько вызовов к операционным методам и заканчивается вызовом метода end. Файл edit.py должен импортировать renpy.editor, а класс Editor должен унаследовать renpy.editor.Editor. Поскольку к методам класса Editor могут быть добавлены дополнительные именованные аргументы, каждый метод, который вы определяете, должен игнорировать неизвестные именованные аргументы. Поскольку предполагается, что вы должны определить свой собственный подкласс класса Editor, то ниже представлены методы с параметром self.

class Editor
begin(self, new_window=False, **kwargs)
Запускает транзакцию редактора.
Если new_window принимает значение True, редактор должен попытаться открыть новое окно. Иначе он должен попытаться выполнить транзакцию в существующем окне редактора.
end(self, **kwargs)
Завершает транзакцию.
open(self, filename, line=None, **kwargs)
Открывает filename в редакторе.
Если line принимает значение не None, параметр пытается расположить курсор редактирования в line.

Источник[править | править код]

  1. Статья "Text Editor Integration" на английском языке
  2. Помощь при переводе статьи "Text Editor Integration" на русский язык: "Launchpad: editor"

На главную страницу Официальная документация движка Вернуться к началу статьи