Настройка Sublime Text для Unity
Эта заметка больше для разработчиков использующих OS X (Mac OS уже). Потому как, разница между Visual Studio и MonoDevelop, просто разительна, как и скорость работы.
Но есть отличное решение — Sublime Text (ST). Установив несколько плагинов, и без того быстрый и многофункциональный ST, прекрасно подойдет для разработки на C# в Unity. После настройки, вы получите:
- Автодополнение кода — autocompletion
- Переход к функции — go to definition
- Подсветка ошибок и синтаксиса
- Сворачивание фрагментов кода — code folding
- XML документирование
Установка Mono
Сначала нужно поставить Mono — open-source реализация .NET фреймворка, он нужен для компиляции и запуска C# скриптов на маке. Его можно установить, например, с помощью Brew:
brew install mono
Установка Package Control для Sublime
Если в вашем ST еще не установлен пакетный менеджер, то сделать это очень просто: нужно открыть консоль внутри ST, вставить кусок кода и нажать Enter.
Установка Omnisharp
Основной плагин который позволит ST работать с C#. Для установки: открывает пакетный менеджер (cmd+shift+p → Install Package), ищем Omnisharp и устанавливаем.
Настройка проекта
Теперь надо создать Sublime Project и связать его с Unity проектом. Для этого: открываем в ST корневую папку с проектом и идем в меню Project → Save Project As.... Сохраняем файл проекта рядом с *.sln файлом для удобства.
Открываем только что созданный файл MyProject.sublime-project в текстовом редакторе, можно в том же ST и редактируем его:
{
"folders":
[
{
"path": ".",
"file_exclude_patterns": ["*.meta"],
},
],
"solution_file": "./MyProject.sln"
}
Тут немного объясню:
- path — путь до папки со скриптами, в данном случае корневая папка, но вы можете написать например Scripts, или ту где у вас лежат скрипты
- file_exclude_patterns — файлы с какими расширениями не показывать в проекте
- solution_file — самое главное, тут должно быть название вашего SLN файла проекта
Устанавливаем плагины
Для документирования устанавливаем плагин — XmlDocs, для сворачивания кода — SyntaxFold. Устанавливаем также, через пакетный менеджер. Чтобы задокументировать код: вводим три слеша и жмем табуляцию — (/// + tab). А для настройки сворачивания кода, после установки плагина, нажмите shit+f5 и выберите C#.
Последние штрихи
Чтобы автодополнение кода работало не только по ctrl+space, а каждый раз когда вы ставите точку, в конфиг надо добавить правки. Убедитесь, что у вас открыт C# файл, и выбран синтаксис C# (в правом нижнем углу), далее идем в меню: Sublime Text → Preferences → Settings — More → Syntax Specific — User и вставляем этот код:
{
"auto_complete": true,
"auto_complete_selector": "source - comment",
"auto_complete_triggers": [ {"selector": "source.cs", "characters": ".<"} ],
}
Если вдруг автодополнение кода не заработало, перезагрузить ваш SLN файл: жмем cmd+shift+p, и выбираем OmniSharpSublime: Reload Solution.
Еще момент: это настройка ST для редактирования уже имеющего проекта. И мы не делаем его редактором по-умолчанию. Т. е. если вы откроете файл двойным кликом из Unity, то Omnisharp сервер не запустится. Для «корректного» открытия проекта, нужно в ST выбрать меню: Project → Open Project... и выбрать MyProject.sublime-project файл.
Готово
Теперь можно быстро и комфортно писать C# код для Unity на маке. Конечно, можно поставить еще плагинов, тут уже на ваше усмотрение. Например, есть плагин со сниппетами для C#, ищется в пакетном менеджере по словам C# Snippets.
Только для любителей Sublime Text :) Удачи!
Сделал все по инструкции, единственное mono поставил вручную, скачав с офф сайта.
При вызове автодолнения пишет ошибку в консоль саблайма:
«HTTPConnectionPool(host=’localhost’, port=57405): Max retries exceeded with url: /autocomplete (Caused by ProtocolError(’Connection aborted.’, ConnectionRefusedError(61, ’Connection refused’)))»
Не знаю как решить проблему.
Я так настраивал не один раз и на маке и на виндоус, все работает, в том числе и автодополнение. Возможно не запустился omnisharp сервер. https://github.com/OmniSharp/omnisharp-sublime/issues/135
Спасибо за ответ, я уже решил проблему, установкой Visual Studio Code )) и настройкой его для автодополнения.
Нужно устанавливать моно через брю иначе не будет работать.