Please replace any old information with up-to-date information (this may include rewriting code for compatibility changes).
Отладочная консоль — инструмент Scribunto, который позволяет тестировать какую-то часть когда в реальном времени. Они работает только в пространстве имён "Модуль" (Module).
Отладочная консоль предназначена только для тестирования логики (таблицы, методы и примитивы), поэтому у неё есть некоторые ограничения:
- Нет подсветки синтаксиса и проверок ошибок на стороне пользователя.
- Переменные Lua не могут быть выведены в понятном для человека формате (без дополнительных инструментов).
См. #Ограничения для работы с этими ограничениями.
Цели
Консоль предназначена для отладки одного и более модулей без надобности покидать страницу с ними, а также сохранения страницы. Хорошая инструкция по Lua доступна на Wikiversity (на английском).[1]
Использование
Существует 2 метода взаимодействия с консолью: написание кода в области с консолью и вызов функций из редактора кода.
Напрямую
Самый простой способ использовать консоль — писать код прямо в ней и выполнять его по нажатию клавиши ↵ Enter. Результат может потребовать некоторое время, т.к. он возвращается с сервера вики.
Пример
print (5 * 6)
- Вывод
30
Из редактора кода
Другим методом является написание кода в редакторе кода и вызов его в отладочной консоли (сохранять модуль не нужно). Это бывает полезно для тестирования большого количества кода чтобы не заполнять отладочную консоль.
--Редактор кода
local p = {}
function p.morning()
return "С добрым утром тебя!"
end
return p
--Консоль
print(p.morning())
Другие функции из внешних модулей
Вызов функций из других модулей тоже возможен, используя следующую конструкцию:
--Модуль:Утро
local p = {}
function p.morning()
return "С добрым утром тебя!"
end
--Консоль
local storedModule = require("Модуль:Утро")
print(storedModule.morning())
- Вывод
С добрым утром тебя!
Глобальные модули
Модули, хранящиеся в центральном репозитории (dev.fandom.com) тоже можно вызывать при помощи подобной конструкции:
local storedModule = require("Dev:Morning")
print(storedModule.morning())
Ограничения
- Просмотр объектов недоступен.
- Консоль статична. Она не может отобразить функции, примитивы, таблицы и их метатаблицы.
- Метамодуль Inspect может помочь в работе с консолью, отображая их в формате, понятном для человека.
- Консоль не поддерживает подсветку синтаксиса.
Советы
Можно добавить частоиспользуемые функции в консоли на страницу MediaWiki:Scribunto-console-intro. Тогда их можно будет быстро копировать.