Pull to refresh

Удобная разработка для OS Inferno в Vim

Reading time 2 min
Views 5.4K
FAQ: Что такое OS Inferno и зачем она нужна?

Под инферно писать софт можно как внутри самой инферно (используя Acme IDE, компилятор limbo и mk для сборки), так и снаружи, в host os (используя любой редактор/IDE, и host os -версии limbo и mk) — при этом запускать инферно понадобится только для запуска тестов или отладки. Я подготовил несколько проектов/скриптов, которые предназначены упростить разработку под инферно вообще, и разработку используя Vim запущенный в host os в частности.

Подсветка синтаксиса для разных форматов файлов: limbo, sh, mk (mkfile). Если вы уже используете подсветку для лимбо — обновите файл, он был переписан и теперь полностью поддерживает текущий синтаксис лимбо.

Плагин для просмотра документации viewdoc теперь поддерживает инферновские man-страницы. Например, можно нажать <F1> на вызове функции delete в исходнике на лимбо, и будет открыта документация на соответствующий модуль lists(2).

Плагин для проверки синтаксиса через Syntastic: limbo.vim (сохраните в ~/.vim/syntax_checkers/).

Сниппеты для SnipMate (просто в качестве примера): limbo.snippets (сохраните в ~/.vim/snippets/).

inferno-opt-setup: скрипты для «установки» (точнее, bind-а) 3rd-party проектов расположенных в /opt.
inferno-opt-mkfiles: набор mkfile-ов, разработанных специально для упрощения разработки обычных и /opt-проектов, поддерживают сборку и тестирование проекта как внутри инферно, так и в host os, генерирование man-страниц из документации в формате asciidoc, etc.
inferno-opt-skel: пример проекта с приложением, библиотекой, тестами, документацией — для использования в качестве примера и шаблона для быстрого старта новых проектов.
inferno-contrib-tap: библиотека для лимбо, позволяющая легко писать тесты с выводом результата в формате TAP (Test Anything Protocol). При разработке в host os с использованием упомянутых выше mkfile-ов это позволяет запускать тесты используя очень удобную команду prove (входит в perl).

Чтобы всё работало, нужно установить переменную окружения $INFERNO_HOME в каталог host os который должен подключаться как ваш домашний каталог внутри инферно, и в host os всегда вызывать mk с параметром ROOT=/каталог/инферно — проще всего это обеспечить создав скрипт-обёртку ~/bin/mk:
#!/bin/bash
exec /usr/inferno/Linux/386/bin/mk "$@" ROOT=/usr/inferno
Tags:
Hubs:
+6
Comments 2
Comments Comments 2

Articles