# Как кодить
Для удобной работы с нашим кодом вам понадобятся следующие инструменты:
* [Unity](https://unity.com/download). Серьёзно.
* [VSCode](https://code.visualstudio.com/download). Легковесный и работает достаточно быстро.
* [GitHub Desktop](https://desktop.github.com). Хрень, но с чесноком пойдёт.
### Получаем билд правильным путём
Предположим, что вы уже установили [**Git**](https://hackmd.io/@KOCM0HABT/HkpmB-3bh). Тут всё очень просто:
1. Ищём любое удобное место у себя на диске.
2. Жмём **ПКМ** по свободному месту в желаемом месте...
3. Выбираем **Git Bash Here**. Откроется терминал в этой папке.
4. Пишем довольном простую команду:
`git clone --depth=1 https://github.com/nebula-in-space/...`
Это создаст папку с названием репозитория. Можете дописать в конце команды через пробел любое другое название, если желаете. Также позволит загрузить билд не качая всю историю коммитов, а только последнюю версию, что **значительно уменьшает** время загрузки билда.
5. Открываем **GitHub Desktop**, в меню **File** жмём  и выбираем папку куда загрузили билд.
Это не всё. Если вы хотите внести изменения, то придётся перейти к следующему пункту.
### Настройка VS Code
Для Использования .NET Core в Visual Studio Code:
1. Установите [.NET Core SDK](https://dotnet.microsoft.com/download), который включает в себя саму среду выполнения и команду `dotnet`.
1. [Windows] Выйдите из системы или перезагрузите Windows, чтобы изменения `%PATH%` вступили в силу.
1. Установите [C# расширение](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) из маркета VS-Code.
### Редктор по умолчанию в Unity
Открой в **Unity** панель **`Preferences`**, и в отрывшемся меню **`External Tools`**, затем укажи файл от Visual Studio Code в настройках: **`External Script Editor`**.
[](#)
> Исполняемый файл Visual Studio Code можно найти по адресу `/Applications/Visual Studio Code.app` в macOS, `%localappdata%\Programs\Microsoft VS Code\Code.exe` по умолчанию в Windows.
**Сразу порекомендую от себя несколько плагинов:**
* **Russian Language Pack for Visual Studio Code** - Без комментариев, *"Oh, sir, are you from England, by any chance?"*.
* **Git Graph** - Позволит визуализировать древо коммитов в гите, невероятно упрощает задачу просмотра хронологии "что-куда-откуда".
* **Git Lens** - Позволяет просматривать различые изменения одного файла, просто листая иммено его история, а не искать его в ветках и коммитах.
* **Todo Tree** - Подствечивает определенные слова в коментариях по типу **FIXME**.
* **Color Region** - Любые вариации сойдут, на выбор найдеться что посмотреть.
### Создание Pull Requests
Для этого нам потребуются следующие вещи:
* Аккаунт на [GitHub](http://github.com/join). Куда ж без него.
* Сам **GitHub Desktop** или его аналоги.
* Собственно, сами изменения в коде/картинках/звуках/чём угодно.
Всё имеется? Продолжим. Допустим, у нас есть изменение в файле `asset/code/shitcode/move.cs` и мы хотим видеть его в основном репозитории. Создаём коммит с изменениями тогда:
1. Открываем **GitHub Desktop**. Видим изменения в левой части экрана, галочкой выбираем то, что будем коммитить (по дефолту всё выделено).
2. Жмём прекрасную кнопочку **Commit to master**. Коммит готов.
Теперь нам нужно выгрузить куда-то это всё. Если вы делали всё по нашей инструкции, то понадобится ещё сделать собственную ветку репозитория:
1. Открываем папку с билдом, жмём **ПКМ** внутри и выбираем **Git Bash Here**.
1. Создаем собственную вертку в локальном репозитории.
`git push myfork master`
(там где **YOURNICKNAME** ставим свой вариант).
Изменения будут в вашем форке. Теперь нужно открыть **Pull Request** для запроса внесения ваших правок в основной репозиторий:
1. Открываем ваш форк и жмём сюда: 
2. Жмём сюда: 
3. В поле **Title** пишем понятное и короткое описание того, что вы хотели бы впилить.
4. На вкладке **Write** тоже заполняем всё. Комментарии можете не убирать, их всё равно не будет видно. На вкладке **Preview** можете посмотреть как будет выглядеть готовая версия.
5. Жмём , если всё готово.
**Важная заметка!** Все коммиты, которые вы делаете в ваш форк, также будут **автоматически** добавлены в ваш **Pull Request**. Не нужно создавать новый после каждого коммита, если существует текущий.

Самый мощный инструмент экономящий тонну времени из всей пачки. Выделим несколько особенностей при работе с ним:
* Открыть директорию с билдом. Это делается простым сочетанием клавиш **CTRL+O**.
* На вкладке **Extensions** появятся рекомендованные расшения, которые нужно обязательно поставить без исключений. Обязательно перезапустить **VSCode** после установки.
* В правом нижнем углу есть кнопочка отвечающая за "галочку" на файле: **Ticked** - файл с галочкой; **Unticked** - без галочки. Переключается нажатием на эту кнопку, не забываем сохранять **.dme** файл (вкладка всплывёт для этого).
* Кнопка в левой нижней части под названием **tgstation** (или какой у вас там билд), перезапустит анализатор кода и покажет ошибки и предупреждения, если они есть.
* Комбинация **CTRL+SHIFT+B** и затем **Enter** запустят компиляцию кода. Удобно?
* **CTRL+Клик** по какой-то переменной или чему угодно, что подсвечивается при удерживании **CTRL** приведут вас к родительскому элементу. Экономит время неплохо.
* **CTRL+SHIFT+F** поможет быстро найти что-то в коде и при желании -- заменить. Работает в разы быстрее тормознутого бьёндовского поиска.
*  в левой нижней части автоматически обновит текущий репозиторий в котором вы работаете, если вы используете **Git**.
* *И это только часть особенностей, про остальное ищите информацию на страницах расширений.*
> [time= 14:11, 6 april, 2023]