iLoco
Пишу плагины за печеньки 🍪🍪🍪
- Сообщения
- 2,265
- Реакции
- 1,323
Всем привет, хочу поделится информацией о том, как можно компилировать плагины прямо в VS Code в пару нажатий кнопок.
Данный способ отличается от [vscode] Компилируем не отходя от кассы лишь тем, что не нужно создавать дополнительных папок/файлов, исходный файл может быть в любом месте на пк, и так, начнём:
1. Нажимаем Win + R или Выполнить в Пуске и вставляем это: %appdata%/Code/User
2. Создаём если нету файл tasks.json и открываем его через любой текстовый редактор, VS Code тоже сойдёт
3. Вставляем это в файл tasks.json и настраиваем
Подробности о аргументах можно найти тут
4. Для удобства, меняем сочетание клавиш для Выполнить задачу сборки на F8, или другую, удобную кнопку
5. В редакторе открываем нужный .sp файл и компилируем нажатием F8 (Ctrl + Shift + B по дефоту), если выпадает меню, то выбираем нужный компилятор и ждём окончения компиляции, после чего скомпилированный плагин будет лежать в той-же директории что и .sp
Бонус:
Можно установить расширение Error Lens, которое позволяет видеть проблемные участки кода прямо в строках

Вопрос - ответ:
Q - Что за подсведка кода?
A - Расширение Dark+ Material и синтаксис сурспавна
Q - Как сделать так, что бы скомпилированый плагин кидало в какую-то папку, к примеру исходник лежит в sourcemod/scripts а нужно скомпилировать исходник в sourcemod/plugins?
A - Нужно в tasts.json в блок Command заменить часть кода в конце на
Пример:
Люди, которые дали мне знать что можно компилировать в VS Code:
@HolyHender
Данный способ отличается от [vscode] Компилируем не отходя от кассы лишь тем, что не нужно создавать дополнительных папок/файлов, исходный файл может быть в любом месте на пк, и так, начнём:
1. Нажимаем Win + R или Выполнить в Пуске и вставляем это: %appdata%/Code/User
2. Создаём если нету файл tasks.json и открываем его через любой текстовый редактор, VS Code тоже сойдёт
3. Вставляем это в файл tasks.json и настраиваем
C-подобный:
{
"version": "2.0.0",
"tasks": [
{
"label": "SM 1.10", // Название в выпадающем меню
"type": "shell",
"command": [
"<путь к компилятору spcomp.exe> ${file} -i \"<путь к папке с инклюдами>\" -O2 -t4 -v2 -o ${fileDirname}/../plugins/${fileBasenameNoExtension}.smx"
// Пример: "C:/Users/admin/Desktop/scripting/spcomp.exe ${file} -i \"C:/Users/admin/Desktop/scripting/include\" -O2 -t4 -v2 --o \"${fileDirname}\\${fileBasenameNoExtension}\""
],
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"reveal": "always", // Определяет то, как будет показан терминал. always - всегда будет показан, never - никогда не будет показан, silent - показан только если есть ерроры
"echo": false,
"showReuseMessage": false,
"clear": true,
"focus": true
},
"problemMatcher": "$msCompile"
}
]
}
C-подобный:
-a Выходной код ассемблера
-D <путь> Путь к активному каталогу
-e <имя> Установить имя файла с ошибкой (тихая компиляция)
-H <hwnd> Дескриптор окна для отправки уведомления о завершении
-h Показать включенные пути к файлам
-i <имя> Путь к папке с инклюдами
-l Создать файл списка (только предварительная обработка)
-o <name> Установить базовое имя выходного файла
-O <число> Уровень оптимизации (по умолчанию = -O2)
0 Без оптимизации
2 Полные оптимизации
-p <имя> Установить имя файла "префикса"
-t <num> Размер отступа TAB (в позициях символов, по умолчанию = 8)
-v <число> Уровень детализации; 0 = тихо, 1 = нормально, 2 = подробный (по умолчанию = 1)
-w <num> Отключить конкретное предупреждение по его номеру
-z <число> Уровень сжатия, по умолчанию = 9 (0 = нет, 1 = худший, 9 = лучший)
-E Рассматривать предупреждения (warning) как ошибки (error)
- \ Используйте '\' для escape-символов
- ^ Используйте '^' для escape-символов
-; <+/-> Требуется точка с запятой в конце каждого оператора (по умолчанию = -)
sym = val Определяет константу «sym» со значением «val»
sym = Определить константу "sym" со значением 0
4. Для удобства, меняем сочетание клавиш для Выполнить задачу сборки на F8, или другую, удобную кнопку
5. В редакторе открываем нужный .sp файл и компилируем нажатием F8 (Ctrl + Shift + B по дефоту), если выпадает меню, то выбираем нужный компилятор и ждём окончения компиляции, после чего скомпилированный плагин будет лежать в той-же директории что и .sp
Бонус:
Можно установить расширение Error Lens, которое позволяет видеть проблемные участки кода прямо в строках

Вопрос - ответ:
Q - Что за подсведка кода?
A - Расширение Dark+ Material и синтаксис сурспавна
Q - Как сделать так, что бы скомпилированый плагин кидало в какую-то папку, к примеру исходник лежит в sourcemod/scripts а нужно скомпилировать исходник в sourcemod/plugins?
A - Нужно в tasts.json в блок Command заменить часть кода в конце на
-o ${fileDirname}/../plugins/${fileBasenameNoExtension}.smx
, при этом папка plugins должнать быть заранее создана, иначе компилятор крашнется!Пример:
C:/Users/admin/Desktop/scripting/spcomp.exe ${file} -i \"C:/Users/admin/Desktop/scripting/include\" -O2 -t4 -v2 -o ${fileDirname}/../plugins/${fileBasenameNoExtension}.smx
Люди, которые дали мне знать что можно компилировать в VS Code:
@HolyHender
Последнее редактирование: