Дізнайтеся, як встановити Unison локально, щоб розвʼязувати вправи Exercism на власному компʼютері
Поточна версія Unison доступна для Mac OS X, 64-бітного Linux і Windows! Сподіваємося, що всі, хто пробує Unison, завітають поговорити з нами на форумі Exercism або в Unison Discord. Завітаймо поставити запитання й розповімо про проблеми, з якими можемо зіткнутися! Хочемо, щоб перші кроки були привітними та позитивними! 😊
Unison можна завантажити за допомогою homebrew, Nix або напряму як готові бінарні файли. Усі ці варіанти завантаження описано на сторінці з інструкціями зі встановлення на нашому сайті. Коли UCM буде встановлено, повернімося сюди!
Спершу встановімо homebrew, якщо його ще немає.
Потім у командному рядку виконаймо такі команди:
brew tap unisonweb/unison
brew install unison-language
Це встановить виконуваний файл менеджера кодових баз Unison, ucm. Якщо це оновлення з попередньої версії, достатньо виконати
brew upgrade unison-language.
Зауваження: якщо на цьому кроці система попросить імʼя користувача й пароль GitHub, переконаймося, що unisonweb/unison написано правильно.
Посилання для ручного встановлення в Linux і Mac наведено тут у відповідних розділах про ручне завантаження для Linux і Mac.
Ми виконаємо в оболонці команду, схожу на цю, але за посиланням вище буде найсвіжіший бінарний файл:
mkdir unisonlanguage
curl -L https://github.com/unisonweb/unison/releases/download/release_VERSION_NAME/ucm-YOUR_PLATFORM.tar.gz --output unisonlanguage/ucm.tar.gz
tar -xzf unisonlanguage/ucm.tar.gz -C unisonlanguage
./unisonlanguage/ucm
winget install --id Git.Git -e --source winget
ucm.exe
Перейдімо на https://github.com/ceedubs/unison-nix/#usage і виконаймо інструкції з readme.
Запустімо ucm, щоб ініціалізувати кодову базу Unison у $HOME/.unison. Тут Unison зберігатиме визначення функцій, типи, простори імен тощо. Типово менеджер кодових баз Unison (скорочено «UCM») почне завантажувати стандартну бібліотеку, що зветься base, яку будемо використовувати для написання коду Unison. Це може зайняти хвилинку! 🕰
Коли ми хочемо написати код Unison, ми виконуємо команду ucm, щоб запустити менеджер кодових баз. Далі UCM стежитиме за змінами в будь-якому файлі з розширенням .u у каталозі, з якого його викликано. Наприклад, ми можемо реалізовувати функції у файлі scratch.u у каталозі ~/exercism/unison/my-exercise/. Варто виконати cd у ~/exercism/unison/my-exercise/ і запустити ucm. Так UCM точно стежитиме за змінами у файлі scratch.u.
Якщо раптом незрозуміло, за яким каталогом ucm стежить, це написано на вітальному екрані під час запуску інтерфейсу командного рядка.
👀 I'm watching for changes to .u files under /Users/myUser/exercism/unison/my-exercise
Більше порад щодо робочого процесу тут!
Для написання файлів .u можна використовувати будь-який текстовий редактор. Unison має підтримку LSP, тож улюблена IDE допоможе з такими речами, як показ типів при наведенні та автодоповнення. Нижче наведено кілька популярних редакторів із підтримкою Unison:
За допомогою vim-plug:
vim-plug, якщо його ще немає.Plug 'unisonweb/unison', { 'branch': 'trunk', 'rtp': 'editor-support/vim' }
:PlugInstall.Докладніше: виконаймо :help unison
у vim або перегляньмо довідку онлайн.
У консолі виконаймо:
apm install unisonweb/atom-unison
Встановімо unison-mode.