Как настроить SML с возвышенным текстом 2
Для тех, кто предпочитает Sublime Text вместо Emacs в качестве редактора для программирования SML, в следующем руководстве описано, как настроить Sublime Text для работы с SML.
Чтобы это руководство работало для вас, у вас уже должна быть установлена smlnj .
Шаг 1. Установите Sublime Text и управление пакетами
Начните с Загрузка Sublime Text 2 . Обязательно загрузите версию 2, поскольку поддержка синтаксиса SML еще не работает с версией 3.
Sublime Text поддерживает удивительный набор пакетов (например, плагинов), которые вы можете установить отдельно. Один из таких пакетов называется Package Control. Сначала вы должны Установить пакет управления , чтобы иметь возможность устанавливать другие пакеты прямо из редактора. Приведенная ссылка объясняет, что вам нужно сделать, чтобы установить этот пакет.
Шаг 2: установить SML и Sublime REPL
Теперь, когда у вас установлен Package Control, будет очень легко установить другие пакеты. Сейчас мы должны установить два пакета: SML для поддержки функций подсветки синтаксиса для языка программирования и SublimeREPL, который, как вы можете догадаться, представляет собой пакет, который добавляет возможности REPL для многих различных языков программирования в Sublime Text.
Чтобы установить эти пакеты, вы должны перейти в меню и найти Сервис -> Палитра команд и ввести «Установить пакет». В поле поиска вы вводите название пакета, который хотите установить, выбираете пакет из найденного списка и нажимаете клавишу ВВОД, чтобы установить его. Сделайте это для двух упомянутых выше пакетов: «SML» и «SublimeREPL»
После установки пакета SML, если вы открываете файл SML, вы должны получить возможность выделения синтаксиса в редакторе. Он даже предоставляет Sublime Text Theme под названием Son of Obsidian, который вы можете включить в Предпочтения -> Цветовая схема -> SML -> Son of Obsidian. Но вы не обязаны включать тему для работы с SML, это всего лишь предпочтение.
После установки пакета SublimeREPL вы сможете перейти в меню Инструменты -> SublimeREPL -> SML и открыть сеанс SML REPL, который будет поддерживать выделение синтаксиса с использованием пакета SML, а также историю команд, редактирование строк и автозаполнение. , Вы можете сделать свою жизнь по-настоящему легкой, если откроете две соседние вкладки, а в левой вкладке у вас будет файл кода SML, а справа - сеанс SML REPL. Вы можете сделать это, используя параметры View -> Layout.
Шаг 3. Сочетания клавиш
Теперь давайте добавим несколько сочетаний клавиш для работы с REPL. Пакет SublimeREPL предлагает небольшую конфигурацию клавиатуры, и предоставленные, вероятно, не будут хорошо работать с SML REPL. Вот что я обычно делаю.
- Сначала перейдите в Настройки -> Обзор пакетов
- Перейдите в подпапку SublimeREPL / config / SML.
Редактировать файл Default.sublime-commands
в самом Sublime Text. Этот файл содержит текущие параметры меню SML в меню Сервис -> SublimeREPL. Итак, теперь мы изменим его, чтобы создать второй параметр, который может запускать существующий файл в новом сеансе SML REPL. Мой отредактированный файл выглядит так, как показано ниже. Обратите внимание на поле «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 , чтобы отправить его в новый сеанс SML REPL.
Шаг 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». Затем, чтобы проверить ваш файл, вы можете сделать Tools -> Build, чтобы проанализировать ваш файл и найти любые ошибки. А с помощью пункта меню Сервис -> Результат сборки -> Следующий результат и Предыдущий результат вы можете перемещаться между ошибками, обнаруженными параметром системы сборки, и Sublime Text установит курсор в точное положение ошибки, как сообщается компилятором SML. .
Мое регулярное выражение выше может быть не самым лучшим, поэтому не стесняйтесь улучшать его по своему усмотрению.
И это все. Вы в значительной степени готовы начать кодирование с SML и Sublime Text.