Ответ 1
Как настроить SML с помощью Sublime Text 2
Для тех, кто предпочитает Sublime Text вместо Emacs в качестве редактора для выбора SML, следующее руководство описывает, как настроить Sublime Text для работы с SML.
Для этого руководства для работы вы уже установили smlnj.
Шаг 1: установите высочайший текст и управление пакетами
Начать с Загрузка Sublime Text 2. Обязательно загрузите версию 2, потому что поддержка синтаксиса SML еще не работает с версией 3.
Sublime Text поддерживает удивительный набор пакетов (например плагинов), которые вы можете установить отдельно. Один из этих пакетов называется Package Control. Вы должны сначала Установить управление пакетами, чтобы иметь возможность устанавливать другие пакеты непосредственно из редактора. Предоставленная ссылка объясняет, что вам нужно сделать, чтобы установить этот пакет.
Шаг 2: установите SML и Sublime REPL
Теперь, когда у вас установлен пакет управления пакетами, будет очень легко установить другие пакеты. Есть два пакета, которые мы должны установить сейчас: SML для поддержки функций подсветки синтаксиса для языка программирования и SublimeREPL, который, как вы можете догадаться, представляет собой пакет, который добавляет возможности REPL для многих языков программирования в Sublime Text.
Чтобы установить эти пакеты, вы должны перейти в меню и найти Инструменты → Палитра команд и ввести "Установить пакет". В окне поиска вы пишете имя пакета, который хотите установить, выберите свой пакет из найденного списка и нажмите enter, чтобы установить его. Сделайте это для двух упомянутых выше пакетов: "SML" и "SublimeREPL"
Как только вы установили пакет SML, если вы откроете файл SML, вы должны получить возможности выделения синтаксиса в редакторе. Он даже предоставляет тему Sublime Text, называемую Son of Obsidian, которую вы можете включить в настройках → Цветовая схема → SML → Son of Obsidian. Но вы не обязаны включать тему для работы с SML, это только предпочтение.
После установки пакета SublimeREPL вы сможете перейти в меню Tools → SublimeREPL → SML и открыть сеанс SML REPL, который будет поддерживать подсветку синтаксиса с использованием пакета SML, а также историю команд, редактирование строк и автозаполнение, Вы можете сделать вашу жизнь очень легкой, если вы откроете две бок о бок вкладки, а на левой вкладке вы можете иметь свой код SML-кода, а справа - сеанс SML REPL. Вы можете сделать это, используя параметры View → Layout.
Шаг 3: Горячие клавиши
Теперь добавьте несколько быстрых клавиш для работы с REPL. Пакет SublimeREPL предлагает небольшую конфигурацию клавиатуры, и те, которые были предоставлены, вероятно, не будут хорошо работать с SML REPL. Так вот что я обычно делаю.
- Сначала перейдите в Настройки → Обзор пакетов
- Перейдите в подпапку SublimeREPL/config/SML.
-
Отредактируйте файл
Default.sublime-commands
в Sublime Text. Этот файл содержит текущие параметры меню SML в меню Tools → SublimeREPL. Итак, теперь мы изменим его, чтобы создать второй вариант, который может запускать существующий файл в новом сеансе REPL SML. Мой отредактированный файл выглядит так, как показано ниже. Обратите внимание на поле "id". Мы можем определить столько разных команд, сколько хотим, предоставляя им другой идентификатор. На следующем шаге мы определим, что делает каждая команда.[ { "caption": "SublimeREPL: SML", "command": "run_existing_window_command", "args": { "id": "repl_sml", "file": "config/SML/Main.sublime-menu" } }, { "caption": "SublimeREPL: SML - Run File", "command": "run_existing_window_command", "args": { "id": "repl_sml_run", "file": "config/SML/Main.sublime-menu" } } ]
-
Теперь, в том же каталоге, что и в предыдущем файле, отредактируйте файл
Main.sublime-menu
. Этот файл содержит сведения о том, что должны делать каждая указанная выше команда. Мой отредактированный файл определяет две команды, описанные выше, один для простого открытия REPL и один для открытия текущего файла в REPL. Он выглядит следующим образом:[ { "id": "tools", "children": [{ "caption": "SublimeREPL", "mnemonic": "r", "id": "SublimeREPL", "children": [{ "caption": "SML", "id": "SML", "children": [ {"command": "repl_open", "caption": "SML", "id": "repl_sml", "args": { "type": "subprocess", "encoding": "utf8", "cmd": ["sml"], "cwd": "$file_path", "external_id": "sml", "syntax": "Packages/SML (Standard ML)/sml.tmLanguage" } }, {"command": "repl_open", "caption": "SML - Run Current File", "id": "repl_sml_run", "args": { "type": "subprocess", "encoding": "utf8", "cmd": ["sml", "$file_basename"], "cwd": "$file_path", "external_id": "sml", "syntax": "Packages/SML (Standard ML)/sml.tmLanguage" } } ] }] }] } ]
-
Последний шаг - добавить сочетания клавиш для этих двух команд. Перейдите в раздел "Настройки" → "Ключи привязки" и отредактируйте файл со следующими двумя дополнительными командами. Не стесняйтесь менять свои ключи и использовать любые другие сочетания клавиш, которые вам подходят, если они не используются для других функций.
[ { "keys":["ctrl+alt+j","k"], "command": "repl_open", "args": { "type": "subprocess", "encoding": "utf8", "cmd": ["sml"], "cwd": "$file_path", "syntax": "Packages/SML (Standard ML)/sml.tmLanguage", "external_id": "sml" } } , { "keys":["ctrl+alt+j","m"], "command": "repl_open", "args": { "type": "subprocess", "encoding": "utf8", "cmd": ["sml", "$file_basename"], "cwd": "$file_path", "syntax": "Packages/SML (Standard ML)/sml.tmLanguage", "external_id": "sml" } } ]
И все готово. Теперь вы можете открыть SML REPL, просто нажав CTRL + J, K (это нажмите Ctrl + Alt + J, затем отпустите клавиши и нажмите K). И если вы сейчас работаете в SML файле, вы можете нажать CTRL + J, M, чтобы отправить его на новый сеанс REPL. SML.
Шаг 4: Сборка системы
Sublime Text предоставляет конфигурации, которые позволяют анализировать ваш файл кода и определять, что-то не так, и сообщить вам, где именно проблема. Для этого мы должны настроить "систему сборки". Конфигурация - это просто файл, который сообщает возвышенному тексту, какую команду запускать и как интерпретировать вывод. Если sml-парсер не сможет проанализировать или выполнить вашу программу, тогда на выходе указывается, где проблема. Система сборки позволяет нам определить регулярное выражение для синтаксического анализа такого вывода и помочь Sublime text найти строку и столбец, содержащие эту проблему.
Перейдите в раздел "Настройки" → "Обзор пакетов" и в папке "Пользователь" создайте новый файл с именем SML.sublime-build
и определите файл следующим образом:
{
"cmd": ["/usr/local/bin/sml","$file"],
"selector": "source.sml",
"working_dir": "$file_path",
"file_regex": "^(.*\\.sml):(\\d+)\\.(\\d+)(\\-(\\d+)\\.(\\d+))?\\s(.*)$"
}
Обязательно замените путь команды на допустимый путь в вашей системе. После того, как вы сохранили файл, вы можете перейти в меню и выбрать Инструменты → Система сборки → SML. Затем, чтобы проверить ваш файл, вы можете сделать Инструменты → Сборка, чтобы проанализировать ваш файл и найти какие-либо ошибки. И используя опцию меню "Инструменты" → "Результат сборки" → "Следующий результат" и "Предыдущий результат", вы можете перемещаться между ошибками, обнаруженными параметром системы сборки, а Sublime Text позиционирует курсор в точном месте ошибки, как сообщает компилятор SML.
Мое регулярное выражение выше может быть не лучшим, поэтому не стесняйтесь улучшать его, как вы сочтете нужным.
И что это. Вы в значительной степени готовы начать кодирование с помощью SML и Sublime Text.