- PVSM.RU - https://www.pvsm.ru -

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

FAQ: Что такое OS Inferno и зачем она нужна? [1]

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

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

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

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

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

inferno-opt-setup [15]: скрипты для «установки» (точнее, bind-а) 3rd-party проектов расположенных в /opt.
inferno-opt-mkfiles [16]: набор mkfile-ов, разработанных специально для упрощения разработки обычных и /opt-проектов, поддерживают сборку и тестирование проекта как внутри инферно, так и в host os, генерирование man-страниц из документации в формате asciidoc [17], etc.
inferno-opt-skel [18]: пример проекта с приложением, библиотекой, тестами, документацией — для использования в качестве примера и шаблона для быстрого старта новых проектов.
inferno-contrib-tap [19]: библиотека для лимбо, позволяющая легко писать тесты с выводом результата в формате 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

Автор: powerman

Источник [20]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/vim/22410

Ссылки в тексте:

[1] Что такое OS Inferno и зачем она нужна?: http://habrahabr.ru/post/145993/

[2] Acme IDE: http://research.swtch.com/acme

[3] limbo: http://powerman.name/Inferno/Limbo.html

[4] mk: http://powerman.name/Inferno/man/1/mk.html

[5] Vim: http://www.vim.org/

[6] limbo: http://www.vim.org/scripts/script.php?script_id=3894

[7] sh: http://www.vim.org/scripts/script.php?script_id=4350

[8] mk (mkfile): http://www.vim.org/scripts/script.php?script_id=4343

[9] viewdoc: http://www.vim.org/scripts/script.php?script_id=3893

[10] lists(2): http://powerman.name/Inferno/man/2/lists.html

[11] Syntastic: http://www.vim.org/scripts/script.php?script_id=2736

[12] limbo.vim: http://powerman.name/download/vim/syntax_checkers/limbo.vim

[13] SnipMate: http://www.vim.org/scripts/script.php?script_id=2540

[14] limbo.snippets: http://powerman.name/download/vim/snippets/limbo.snippets

[15] inferno-opt-setup: http://code.google.com/p/inferno-opt-setup/

[16] inferno-opt-mkfiles: http://code.google.com/p/inferno-opt-mkfiles/

[17] asciidoc: http://www.methods.co.nz/asciidoc/

[18] inferno-opt-skel: http://code.google.com/p/inferno-opt-skel/source/detail?r=c13f46c1f8fc3bb7b4a23f73e3a86e437b231316

[19] inferno-contrib-tap: http://code.google.com/p/inferno-contrib-tap/

[20] Источник: http://habrahabr.ru/post/162287/