---
# System prepended metadata

title: Как кодить

---


# Как кодить

Для удобной работы с нашим кодом вам понадобятся следующие инструменты:

* [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** жмём ![Шиза](https://i.imgur.com/vlzNiD5.png) и выбираем папку куда загрузили билд.

Это не всё. Если вы хотите внести изменения, то придётся перейти к следующему пункту.

### Настройка 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`**.

[![Unity Preferences](https://media.githubusercontent.com/media/microsoft/vscode-docs/main/docs/other/images/unity/Unity_Preferences_External_Script_Editor.gif)](#)

> Исполняемый файл 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. Открываем ваш форк и жмём сюда: ![Я съел бомжа](https://i.imgur.com/wQeWvqx.png)
2. Жмём сюда: ![Прикол](https://i.imgur.com/2tp4hFi.png)
3. В поле **Title** пишем понятное и короткое описание того, что вы хотели бы впилить.
4. На вкладке **Write** тоже заполняем всё. Комментарии можете не убирать, их всё равно не будет видно. На вкладке **Preview** можете посмотреть как будет выглядеть готовая версия.
5. Жмём ![](https://i.imgur.com/pEpjvVI.png), если всё готово.

**Важная заметка!** Все коммиты, которые вы делаете в ваш форк, также будут **автоматически** добавлены в ваш **Pull Request**. Не нужно создавать новый после каждого коммита, если существует текущий.

![Интерфейс программы](https://i.imgur.com/bD3WsJj.png)

Самый мощный инструмент экономящий тонну времени из всей пачки. Выделим несколько особенностей при работе с ним:

* Открыть директорию с билдом. Это делается простым сочетанием клавиш **CTRL+O**.
* На вкладке **Extensions** появятся рекомендованные расшения, которые нужно обязательно поставить без исключений. Обязательно перезапустить **VSCode** после установки.
* В правом нижнем углу есть кнопочка отвечающая за "галочку" на файле: **Ticked** - файл с галочкой; **Unticked** - без галочки. Переключается нажатием на эту кнопку, не забываем сохранять **.dme** файл (вкладка всплывёт для этого).
* Кнопка в левой нижней части под названием **tgstation** (или какой у вас там билд), перезапустит анализатор кода и покажет ошибки и предупреждения, если они есть.
* Комбинация **CTRL+SHIFT+B** и затем **Enter** запустят компиляцию кода. Удобно?
* **CTRL+Клик** по какой-то переменной или чему угодно, что подсвечивается при удерживании **CTRL** приведут вас к родительскому элементу. Экономит время неплохо.
* **CTRL+SHIFT+F** поможет быстро найти что-то в коде и при желании -- заменить. Работает в разы быстрее тормознутого бьёндовского поиска.
* ![Неведомая шиза из разума дизайнеров майкрософта](https://i.imgur.com/yGaHXos.png) в левой нижней части автоматически обновит текущий репозиторий в котором вы работаете, если вы используете **Git**.
* *И это только часть особенностей, про остальное ищите информацию на страницах расширений.*

> [time= 14:11, 6 april, 2023]

