Fandom Developers Wiki
Advertisement

Замените любую старую информацию актуальной (это может подразумевать переписывание кода для изменений совместимости).

Consoledebug

Отладочная консоль — инструмент Scribunto, который позволяет тестировать какую-то часть когда в реальном времени. Они работает только в пространстве имён "Модуль" (Module).

Отладочная консоль предназначена только для тестирования логики (таблицы, методы и примитивы), поэтому у неё есть некоторые ограничения:

  • Нет подсветки синтаксиса и проверок ошибок на стороне пользователя.
  • Переменные Lua не могут быть выведены в понятном для человека формате (без дополнительных инструментов).

См. #Ограничения для работы с этими ограничениями.

Цели[]

Консоль предназначена для отладки одного и более модулей без надобности покидать страницу с ними, а также сохранения страницы. Хорошая инструкция по Lua доступна на Wikiversity (на английском).[1]

Использование[]

Существует 2 метода взаимодействия с консолью: написание кода в области с консолью и вызов функций из редактора кода.

Напрямую[]

Debugusage

Самый простой способ использовать консоль — писать код прямо в ней и выполнять его по нажатию клавиши ↵ Enter. Результат может потребовать некоторое время, т.к. он возвращается с сервера вики.

Пример[]

print (5 * 6)
Вывод
30

Из редактора кода[]

ConsoleDemo1

Другим методом является написание кода в редакторе кода и вызов его в отладочной консоли (сохранять модуль не нужно). Это бывает полезно для тестирования большого количества кода чтобы не заполнять отладочную консоль.

--Редактор кода 
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())

Ограничения[]

  1. Просмотр объектов недоступен.
    • Консоль статична. Она не может отобразить функции, примитивы, таблицы и их метатаблицы.
    • Метамодуль Inspect может помочь в работе с консолью, отображая их в формате, понятном для человека.
  2. Консоль не поддерживает подсветку синтаксиса.

Советы[]

Можно добавить частоиспользуемые функции в консоли на страницу MediaWiki:Scribunto-console-intro. Тогда их можно будет быстро копировать.

См. также[]

Примечания[]

Advertisement