PDA

Просмотр полной версии : [Урок] Редактор кода «Sublime Text 3» | Использование в Pawn (beta)



DeimoS
09.12.2016, 17:53
И снова здравствуйте.
Всё, что Вы увидите в этой теме - заготовка под статью о редакторе Sublime Text 3.
Статья ещё не закончена (хочу, как минимум, описать сниппеты ещё), поэтому пока выкладываю её в этом разделе.
Выкладываю её для того, чтоб те, кто пользуется этим редактором, могли внести свои замечания/подсказать по поводу того, о чём ещё стоит рассказать в данной статье.
У самого уже просто голова пухнет после всего описанного и это начинает сказываться на качестве статьи (некоторые могут заметить это под конец).
В общем, оцените и, по возможности, подкиньте идей.
Спасибо :blush2:







https://upload.wikimedia.org/wikipedia/en/4/4c/Sublime_Text_Logo.png
Sublime Text 3
текстовой редактор, способный практически на всё



Sublime Text 3 - "условно-платный" кроссплатформенный текстовый редактор, написанный на C++ и Python. Имеет приличный функционал прямо "из коробки" и, при этом, является довольно шустрым даже при работе с большими проектами (не говоря уже о SA-MP).




Официальный сайт
[sublimetext.com] (http://www.sublimetext.com/)


Русскоязычное сообщество
[sublimetext.ru] (http://sublimetext.ru/)


Скачать (http://www.sublimetext.com/3)



Описывать весь его функционал я не буду, ибо это уже сделали до меня. Более подробное его описание Вы можете прочитать на официальном сайте (ссылки выше)



Адрес сайта
Название статьи
Автор


habrahabr.ru
Sublime Text 2 (https://habrahabr.ru/post/147856/)
Зубашев Степан


dimox.name
Sublime Text - редактор кода, в который нельзя не влюбиться (http://dimox.name/sublime-text-editor-for-code/)
Dimox






В этой статье я хочу рассказать Вам о том, как сей трансформер можно адаптировать под написание скриптов для SA-MP.


Установка


Скачиваем редактор, перейдя по ссылке (http://www.sublimetext.com/3) и устанавливаем.
Внимание: путь до папки с редактором должен содержать исключительно латинские символы!

D:\Programs\Sublime Text 3 // Правильный путь

D:\Программы\Sublime Text 3 // Неправильный путь
Так же Вы должны понимать, что если в Вашем профиле в системе имеются русские символы, Вы можете столкнуться с некоторыми проблемами при использовании определённых плагинов (программа не умеет работать с кириллицей). Поэтому рекомендую заранее переименовать свой профиль и удостовериться, что папка профиля, в которой хранятся всяческие системные файлы и прочая информация) действительно переименовалась.



Переходим на сайт, выбираем подходящую для нас версию (у меня Windows 8.1 64 bit, поэтому я выберу ссылку для 64-битной версии) и скачиваем её.
http://ihost.pro-pawn.ru/image.php?di=H63R
Примечание: Вы так же можете скачать портативную версию, нажав на соответствующую надпись ("portable version") в каждой из версий. Отличие этой версии от обычной в том, что все папки с настройками и прочим будут храниться вместе с программой, а не в системных папках => Вы можете установить редактор, например, на флешку и пользоваться им, когда флешка вставлена в ПК.

Запускаем скачанный файл и нажимаем "Next"

Далее выбираем путь до места, куда будет установлен наш редактор и нажимаем "Next". Я установлю его в папку, где будут хранится все проекты, с которыми я в дальнейшем буду работать.
Напоминаю: путь до папки с редактором должен содержать исключительно латинские символы!
http://ihost.pro-pawn.ru/image.php?di=P541

Далее можно указать, нужно ли создавать ярлык в панели задач. Делаем свой выбор и нажимаем "Next"

Перепроверяем указанные данные и если всё верно, жмём "Install"

По завершению установки жмём "Finish".


Готово. Редактор установлен.


Запускаем его и видим следующее:
http://ihost.pro-pawn.ru/image.php?di=MH7P
Сейчас наш редактор девственно чист и максимально быстр. Попробуем исправить это недоразумение.




Настройка


Первое, о чём бы хотелось рассказать - это русификация.

Точнее, я хочу дать Вам ссылку на готовую статью, где об этом рассказали уже за меня.




Адрес сайта
Название статьи
Автор


dimox.name
Русификация меню для Sublime Text 2 и 3 (http://dimox.name/sublime-text-russian-menu/)
Dimox




Собственно, делаете всё так, как рассказано в той статье и у Вас должно получиться следующее:
http://ihost.pro-pawn.ru/image.php?di=J8VM
Если же появились какие-либо проблемы (например, в каждом из меню имеются как русские варианты пунктов, так и английские), значит Вы сделали что-то не так.
Решением будет удаление всех сделанных изменений, повторное внимательное прочтение статьи и выполнение всех инструкций.


Так же нам нужно установить удобное расширение, позволяющее удобно скачивать и устанавливать (а так же удалять/отключать и т.п.) плагины для нашего редактора - Package Control.




1. Переходим на официальный сайт (кликабельно) (https://packagecontrol.io/) этого расширения.


2. Жмём "Install Now (https://packagecontrol.io/installation)".


3. В открывшемся окне будет инструкция по установке расширения. Русифицированной версии на сайте нет, поэтому далее я предоставлю более подробную инструкцию.


3.1 Первый вариант установки - через консоль.

3.1.1 Открыть консоль можно с помощью меню



3.1.1.а Для английской версии:
View > Show Console
3.1.1.б Для русской версии:
Вид > Переключить консоль



3.1.2 Либо с помощью сочетания клавиш "Ctrl+`" (оно же: "Ctrl+ё")


3.1.3 Копируем предоставленный на сайте код
http://ihost.pro-pawn.ru/image.php?di=D7RY
вставляем его в консоль и жмём "Enter".
При успешной установке вы должны увидеть надпись

reloading plugin 0_package_control_loader.00-package_control


3.2 Второй вариант установки - ручная установка. (подойдёт для тех, у кого автоматическую установку через консоль будет блокировать антивирус)


3.2.1 Открываем папку с установленными расширениями


3.2.1.а Для английской версии:
Preferences > Browse Packages…
3.2.1.б Для русской версии:
Опции > Просмотр плагинов...




3.2.2 Выходим из открывшейся папки, переходя в родительский каталог "Sublime Text 3"
http://ihost.pro-pawn.ru/image.php?di=UIUV


3.2.3 В открывшемся каталоге выбираем папку "Installed Packages" и открываем её.


3.2.4 Скачиваем сам плагин (кликабельно) (https://packagecontrol.io/Package%20Control.sublime-package) и скидываем скачанный файл в открытую папку "Installed Packages" (Файл представляет из себя архив. Скидывать в папку нужно сам архив, а не его содержимое)


3.2.5 Если Sublime Text ещё открыт, закрываем его и запускаем повторно.


Если всё сделано правильно, в меню "Preferences" ("Опции") появится 2 пункта:
• Package Settings
• Package Control



Основное меню расширения можно вызвать двумя способами:
1) Через пункт "Package Control" в меню, о расположении которого я сказал в конце предыдущего спойлера с инструкцией по установке.
2) С помощью нажатия клавиш "Ctrl+Shift+P" (Для OS X: "cmd+Shift+P") вызовите фильтр доступных команд и введите название расширения: "Package Control".
В дальнейшем, когда разберётесь с основным функционалом расширения, к этой фразе можете приписывать нужную Вам команду.
Для вызова меню установки плагинов подойдут любые из перечисленных записей:

Package Control: Install

Package Install

Install

Фильтр оснащён "умным поиском" и будет искать указанные Вами слова среди всех плагинов/команд, что включены в редактор. Соответственно, чем больше плагинов, содержащих в себе указанные выше слова, Вы установите, тем больше вариантов будет выдавать фильтр.


В этом меню Вы можете увидеть следующий список возможных команд:

Package Control: Add Channel
(опция пригодиться далеко не всем, так что можете особо не забивать себе этим голову)
Добавляет еще один канал (https://msdn.microsoft.com/ru-ru/library/cc668804(v=vs.90).aspx), который содержит список репозиториев.
По умолчанию в Package Control имеется официальный канал (https://packagecontrol.io/browse), из которого и берутся все плагины для функции "Install Package". С помощью добавления своего канала Вы можете расширить список плагинов своими.

Package Control: Remove Channel
Удалить добавленный ранее канал.

Package Control: Add Repository
Добавляет репозиторий. Это позволяет устанавливать и автоматически обновлять пакеты из GitHub и BitBucket.
Чтобы добавить пакет, размещенный на GitHub, введите URL-адрес в виде

https://github.com/username/repository
Не включайте ".git" в конце!
Bitbucket Хранилища должны использовать формат

https://bitbucket.org/username/repository

Package Control: Remove Repository
Удалить добавленный ранее репозиторий.

Package Control: Discover Packages
Открывает страницу (https://packagecontrol.io/browse) со всеми доступными плагинами

Package Control: Install Package
Показывает список всех плагинов, которые доступны для установки. Список будет включать в себя все пакеты из канала по умолчанию (https://packagecontrol.io/browse), а также любые из каналов, которые добавили Вы.

Для поиска конкретного плагина достаточно вбить его название и нажать на нём. Установка произойдёт автоматически.

Package Control: Remove Package
Удалить добавленный ранее плагин.

Package Control: Enable Package
Включает загрузку любого из отключённых плагинов

Package Control: Disable Package
Отключает загрузку указанного далее плагина

Package Control: Upgrade Package
Отображает список плагинов, для которых доступны обновления.
При выборе определённого плагина произойдёт его обновление.

Package Control: Upgrade/Overwrite All Packages
Это позволит обновить ВСЕ плагины, в том числе те, которые не были установлены с помощью Package Control.
Если Вы разрабатываете пользовательскую копию плагины (внесли свои изменения в любой из установленных пакетов), Вам не следует использовать данную команду, так как Вы потеряете все изменения

Package Control: List Packages
Открывает список всех установленных плагинов

Package Control: Install Local Dependency
Производит поиск установочных файлов плагинов в директории "Packages/" и автоматически устанавливает те, что ещё не были установлены.

Package Control: Create Package File
Для разработчиков плагинов.
Открывает папку с плагинами и создаёт файл с расширением ".sublime-package", помещая в него содержимое текущего проекта с кодом плагина, написанного Вами.

Package Control: Create Binary Package File
Для разработчиков пакетов.
Действия команды аналогичны команде "Create Package File" за исключением того, что весь код хранится в виде байткода.
Это полезно для распространения плагинов на платной основе.



Основные команды, которыми Вы будете пользоваться:

Install Package – установка новых плагинов
Disable Package, Enable Package – включить или выключить плагин.
List Packages – список установленных плагинов.
Discover Packages – откроет в браузере страницу со списком плагинов. Здесь можно найти описание и документацию к плагинам.
Remove Package – удалить плагин.
Upgrade Package – обновить плагин.







Адаптация под Pawn


Первым делом нам нужно установить расширение, которое добавит в редактор поддержку синтаксиса языка Pawn и многих функций SA-MP, а так же в 2 клика позволит создать файл, через который мы научим редактор компилировать наши скрипты.



Открываем фильтр команд (Ctrl+Shift+P/cmd+Shift+P) и вписываем туда "Package Control: Install", нажимая на выданный пункт


Откроется фильтр самого Package Control со всеми доступными плагинами для установки. В него мы вводим фразу "Pawn Syntax" и устанавливаем это расширение (установка займёт считанные секунды при нормальном интернете).
О том, установилось ли расширение, можно понять, открыв меню "Preferences > Package Settings". Там должен появится новый пункт "Pawn Compiler Setting"

Данное расширение добавляет в редактор поддержку синтаксиса языка Pawn.
Что бы переключиться на этот синтаксис, нужно найти в правом нижнем углу надпись "Plain Text" (когда Вы измените синтаксис, надпись изменится на название синтаксиса) и в списке выбрать "Pawn". Всё, теперь текущий файл (текущее окно) открыт с поддержкой синтаксиса Pawn.
Для того, чтобы включить ассоциацию определённого расширения (".pwn", ".inc", ".txt" и т.п.), нужно открыть любой файл нужного вам расширения, после в открывшемся при нажатии на "Plain Text" списке выбрать надпись "Open all witch current exstension as...", которая находится в самом верху списка, и в новом списке выбрать нужный синтаксис. Всё, теперь редактор автоматически будет открывать все файлы с тем же расширением, какое было у текущего файла, с тем синтаксисом, что выбрали Вы.

Так же данное расширение добавляет возможность создавать build-файл, с помощью которого будет происходить компиляция скриптов (об этом позже).

Заодно это расширение добавляет сниппет "ALS", позволяющий создавать перехваты коллбэков/функций в несколько кликов.
pro-pawn.ru



Теперь нам нужно научить редактор компилировать наши скрипты.


Для этого сначала подготовим компилятор, к которому будет ссылаться редактор.
Если Вы читали инструкцию по установке самого редактора, Вы могли заметить, что я установил редактор в отдельную папку на диске "D", назвав её "projects". Своё объяснение я буду вести исходя из этой папки (путь до редактора сейчас: "D:/projects/Sublime Text 3"), а Вы уже адаптируйте его под себя.


Создадим новую папку для нашего компилятора в папке "projects" и назовём её "sa-mp". В эту папку мы будем помещать все наши скрипты, с которыми мы впоследствии будем работать.

Теперь в папке "sa-mp" создадим папку "compiler", в которую уже поместим наш компилятор. Путь до папки будет следующим: "D:/projects/sa-mp/compiler".


Теперь осталось скачать сам компилятор и поместить его в папку. Я предпочитаю компилятор от Zeex, в котором исправлено множество багов стандартного компилятора, но Вы можете использовать любой другой (например, скачать серверную сборку с sa-mp.com и взять нужные файлы из папки "Pawno").
Собственно, скачать компилятор от Zeex можно по данной ссылке (https://github.com/Zeex/pawn/releases). Так как у меня Windows, я буду качать файл "pawnc-3.10.20160907-windows.zip".

В архиве ищем папку "bin" и перекидываем её содержимое в нашу папку для компилятора.
http://i.imgur.com/N6VXIwa.png

Теперь осталось скачать серверную сборку с sa-mp.com и взять из архива папку с инклудами, которая находится по пути "Pawno/includes". Эту папку так же помещаем в папку "compiler".
В этой папке хранятся только стандартные инклуды (a_samp.inc и всё, что идёт вместе с ним)


[Готовая папка с компилятором от Zeex и инклудами для SA-MP 0.3.7 (https://www.dropbox.com/sh/liq1ns1phxlss5r/AABRn_iQ6HxTxnLd7cu3CC0ra?dl=0)]
Папка, что находится по ссылке, дана в обычном, не заархивированном, виде.
Для того, чтоб не качать все файлы по отдельности, внутри этой папки добавлен архив (compiler.rar (https://www.dropbox.com/sh/liq1ns1phxlss5r/AAC9HxNfv86KAnXnZsLSY8Fpa/compiler.rar?dl=0)), в котором хранятся все те же файлы.


После этого создадим новую систему сборки (файл с информацией, по которой редактор будет обращаться к компилятору). В расширении с синтаксисом Pawn, которое мы скачали ранее, уже предусмотрена заготовка под такую систему сборки. Ей мы и воспользуемся.


В меню выбираем "Preferences > Package Settings > Pawn Compiler Settings > Generate Build Settings File" ("Опции > Package Settings > Pawn Compiler Settings > Generate Build Settings File")


В появившемся снизу окне прописываем пусть до папки с компилятором (у меня это "D:/projects/sa-mp/compiler") и жмём "Enter"


Следующим действием редактор предложит сохранить получившийся файл. Мы отказываемся, нажимая "Отмена", но получившийся файл не закрываем (нам пригодится его содержимое).


Теперь вновь обращаемся к меню, перейдя по пути "Tools > Build System > New Build System" ("Инструменты > Система сборки > Новая система сборки...").


В открывшемся окне удаляем весь текст, что получится там, и перемещаем в это окно содержимое предыдущего окна (того, что мы получили из расширения с синтаксисом Pawn).
http://ihost.pro-pawn.ru/image.php?di=F5NL


{
"cmd": ["pawncc.exe", "$file", "-o$file_path/$file_base_name", "-;+", "-(+", "-d3"],
"file_regex": "(.*?)\\(([0-9]*)[- 0-9]*\\)",
"selector": "source.pwn",
"working_dir": "путь_до_файла"
}

Нажимаем "Ctrl+S" и сохраняем всё под именем "Pawn.sublime-build"

В меню переходим по пути "Tools > Build System" ("Инструменты > Система сборки") и ищем там "Pawn". Если находим - нажимаем на него. Нет - делаем всё по новой.


Откроем новое окно и вставим в него такой код

#include <a_samp>
main(){}

После этого нужно удостовериться, что Вы выбрали нужную систему сборки. Для этого переходим по пути "Tools > Build System" ("Инструменты > Система сборки"), ищем систему сборки "Pawn" и проверяем, стоит ли перед ней галочка. Если не стоит - нажимаем на "Pawn".

Теперь воспользуемся клавишей "F5", дабы вызвать нашу систему сборки (стандартно для вызова системы сборки используется сочетание клавиш "Ctrl+B", но расширение с синтаксисом Pawn, которое мы установили ранее, содержит в себе бинд клавиши "F5", из-за чего теперь мы можем вызывать нашу систему сборки таким образом). Должно появиться такое окно:
http://ihost.pro-pawn.ru/image.php?di=6ICY

Если появилось пустое окно, нужно перепроверить путь до папки с компилятором, что Вы указали в системе сборки.

Если Вы уже закрыли окно с кодом системы сборки, то нужно перейти в меню по пути "Preferences > Package Settings > Pawn Compiler Settings > Edit Built Settings (Pawn.sublime-build)" [SIZE=1]("Опции > Package Settings > Pawn Compiler Settings > Edit Built Settings (Pawn.sublime-build)")

Путь до папки указан в следующей строке:

"working_dir": "путь_до_папки"

Меняем его на правильный и пробуем вновь.

Напоминаю, что путь не должен содержать в себе кириллических символов!

Пример того, как выглядит мой путь до папки:

"working_dir": "D:/projects/sa-mp/compiler"



И в нём, как Вы могли понять, сообщается об ошибке. Эта ошибка означает то, что компилятор не может обнаружить исходный файл скрипта с расширением ".pwn". А всё потому, что сейчас наш скрипт существует лишь в памяти редактора.
Чтобы исправить эту проблему, нужно просто нажать "Ctrl+S" и сохранить наш файл в любое место (туда, где Вы потом сможете его найти и удалить), указав расширение ".pwn". Если в Вашей системе отключена возможность самостоятельного указания расширения файла, при сохранении выберите в графе "Тип файла" пункт "Pawn (*.p; *.pwn)".

После этого вновь нажимаем "F5" и должны увидеть окно, сообщающее об успешной компиляции:
http://ihost.pro-pawn.ru/image.php?di=EVIW

Если всё именно так, значит Вы правильно настроили систему сборки и можно приступать к следующему шагу.






Теперь нужно внести несколько настроек в сам редактор, дабы заранее избавить себя от ряда проблем.

Переходим по пути: "Preferences > Settings" ("Опции > Настройки") и видим 2 окна.
В левом окне перечислены все настройки редактора по умолчанию. Их изменить нельзя. Точнее, нельзя изменить прямо в этом файле. Для их изменения существует окно справа.
В окне справа перечислены все пользовательские настройки, которые будут "перекрывать" настройки по умолчанию. Вот это окно нам и нужно.


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

default_encoding": "Cyrillic (Windows 1251)",
"fallback_encoding": "Cyrillic (Windows 1251)",
"show_encoding": true,

{
"default_encoding": "Cyrillic (Windows 1251)",
"fallback_encoding": "Cyrillic (Windows 1251)",
"show_encoding": true,
"ignored_packages":
[
"Vintage"
],
}
И сохраняем.
Этим мы указали редактору на то, что все файлы нужно открывать в кодировке "Cyrillic (Windows 1251)", ибо именно с этой кодировкой работает SA-MP.
А так же добавили в правый нижний угол информацию о том, в какой кодировке открыт текущий файл
(в случае с скриптами для SA-MP, кодировка всегда должна быть "Cyrillic (Windows 1251)").

Если Вы желаете сделать редактор более похожим на Pawno, предлагаю Вам следующий ряд настроек:

{
"bold_folder_labels": true,// Эта настройка выделит жирным все папки в боковой панели (расскажу о ней позже)
"create_window_at_startup": true,// Редактор будет автоматически создавать новое окно при старте (если до этого не было открыто других окон)
"default_encoding": "Cyrillic (Windows 1251)",// Изменение кодировки по умолчанию
"fallback_encoding": "Cyrillic (Windows 1251)",// Это кодировка, которую редактор будет устанавливать при открытии файла с неизвестным для него расширением
"font_face": "Courier New",// Изменяем шрифт на такой же, какой используется в Pawno
"font_size": "10",// Изменяем размер шрифта на такой же, какой используется в Pawno
"highlight_modified_tabs": true,// Эта настройка подсветит вкладки с измененными файлами, чтобы привлечь к ним дополнительное внимание.
"ignored_packages":
[
"Vintage"
],
"rulers":// Этой настройкой мы добавим линейку длиной в 80 символов как в Pawno
[
80//,
//100// А это пример того, как добавить несколько линеек. Их можно добавить неограниченное количество
],
"show_encoding": true// Включаем отображение кодировки в правом нижнем углу
}


Так же Вы можете указать цветовую схему по умолчанию через опцию "color_scheme"
Например:

"color_scheme": "Packages/User/Color Highlighter/themes/base16-eighties.dark.tmTheme",
P.S. Схема не стандартная, а отредактированная мной, поэтому у Вас её не будет и редактор будет выплёвывать ошибку.



Теперь по поводу того, как подключать сторонние инклуды к скрипту.
Основная особенность того метода, что я описал выше, в том, что у Вас уже не получится подключать инклуды как обычно:

#include <имя_инклуда>
кроме стандартного "a_samp". А всё потому, что в системе сборки мы указали компилятору по умолчанию искать инклуды в той папке, где находится сам компилятор. Но что бы не делать из этой папки огромную свалку инклудов, можно сделать всё гораздо проще и эстетичнее.
А именно так:


Создаём в папке с сервером новую папку для наших инклудов и назовём её, например, "source" (вы можете назвать её иначе)


Помещаем все инклуды, используемые в моде (кроме стандартных!), в эту папку


Для подключения этих инклудов используем следующую форму

#include "../source/имя_инклуда.inc"
Например:

#include "../source/a_mysql.inc"


Всё.
Такой подход позволит использовать один редактор для разных скриптов, в каждом из которых будут использоваться разные инклуды
Ну представим, что Вы разрабатываете два проекта: один для 0.3е, а другой для 0.3.7.

Если использовать стандартный Pawno, Вам придётся постоянно держать открытыми 2 разных редактора и путаться между ними.
С таким же подходом Вы можете создать в каждом проекте по папке "include" и поместить в эти папки те инклуды, которые нужны вашим проектам.

И теперь Вам достаточно подключить все инклуды показанным выше образом, чтоб всё работало как надо.
То бишь, подключение будет выглядеть так:

#include "../include/a_mysql.inc"
#include "../include/streamer.inc
#include "../include/sscanf2.inc
#include "../include/dc_cmd.inc"

#include "../include/a_mysql.inc"
#include "../include/streamer.inc
#include "../include/sscanf2.inc
#include "../include/Pawn.CMD.inc"

TheMallard
12.12.2016, 14:26
У синтаксических файлов есть свой файл настроек Preferences -> Settings - More -> Syntax Specific - User. Лучше туда добавить параметр default_encoding. Тогда все остальные файлы можно будет открывать в UTF-8.

DeimoS
12.12.2016, 17:45
Нужно переписывать статью, дабы как-то "оптимизировать" её под дальнейшее добавление новой информации. Как только дойдут до этого руки - включу твою информацию в статью.

Seviel
06.01.2017, 21:36
У меня настройки не активны
http://imgur.com/Mlp8nWu

DeimoS
06.01.2017, 23:03
У меня меня настройки не активны
http://imgur.com/Mlp8nWu

Хмм, попробуй ещё раз всё установить. Есть лишь одна идея - не создался файл с настройками. Либо русификация криво встала.
В общем, переустанови и посмотри активность настроек без русификатора

Desulaid
09.02.2017, 18:20
Сначала ты льешь воду в статью, а потом начинаешь страдать от большого объёма символов. Где там моя кожаная плетка?

Я в работе с СТ3 не создавал лишней папки для компилятора, а работал по аналогии с Павно, $истользуя_такие_переменные$.

DeimoS
10.02.2017, 15:36
Сначала ты льешь воду в статью, а потом начинаешь страдать от большого объёма символов. Где там моя кожаная плетка?

Мне трудно писать такие объёмные статьи, расписывая всё подробно и, при этом, максимально сжато. Ту же статью с регистрацией я раза 3 или 4 полностью переписывал и постоянно делал какие-то правки, прежде чем она пришла к какому-то более-менее правильному виду.



Я в работе с СТ3 не создавал лишней папки для компилятора, а работал по аналогии с Павно, $истользуя_такие_переменные$.

Всё зависит от того, как ты структурируешь своё "рабочее пространство". Мне удобнее помещать компилятор в отдельную папку, а в других папках держать моды, с которыми я работаю, ссылаясь на этот компилятор.

wAx
25.03.2017, 15:34
после печально известной проблемы с исчезновением кода из .pwn, решил сменить редактор, нашел твою тему и.. И я влюбился в него, правда пользуюсь всего день, но это пока что самый лучший из редакторов (по ресурсам и конечно же внешнему виду, что не мало важно). Настройка заняла всего 5 минут, огромное спасибо за тему.

DeimoS
25.03.2017, 16:03
после печально известной проблемы с исчезновением кода из .pwn, решил сменить редактор, нашел твою тему и.. И я влюбился в него, правда пользуюсь всего день, но это пока что самый лучший из редакторов (по ресурсам и конечно же внешнему виду, что не мало важно). Настройка заняла всего 5 минут, огромное спасибо за тему.

Можешь ещё плагин "AutoBackups (https://github.com/akalongman/sublimetext-autobackups)" поставить для пущей уверенности :) Он будет автоматом делать бэкап при каждом сохранении/компиляции файла, если тот был изменён. С ним можно легко откатить разработку до желаемого момента

Nurick
21.05.2017, 02:10
Скачал русификатор, распаковал по пути D:\Program Files\Sublime Text 3\Packages\Default\ Но текст как был на EU так и остался

DeimoS
21.05.2017, 02:18
Скачал русификатор, распаковал по пути D:\Program Files\Sublime Text 3\Packages\Default\ Но текст как был на EU так и остался

А теперь перейди на страницу русификатора и посмотри путь до папки, куда следовало распаковывать всё :)

Nurick
21.05.2017, 09:15
Извиняюсь, моя глупость

rich
18.02.2018, 15:46
Compilation aborted.

Pawn compiler 3.10.6 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
[Finished in 0.9s with exit code 1]
[cmd: ['pawncc.exe', 'C:\\Users\\ПК\\Desktop\\chw.pwn', '-oC:\\Users\\ПК\\Desktop/chw', '-;+', '-(+', '-d3']]
[dir: D:\projects\samp\compiler]
[path: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\ПК\AppData\Local\Microsoft\WindowsApps;]

ОШибка?

Разобрался

AgentDaun
07.04.2018, 14:43
Не показывает строчки ошибок, можно ли как то исправить?

DeimoS
07.04.2018, 18:12
Не показывает строчки ошибок, можно ли как то исправить?

Проверь, чтоб в пути до программы и мода не было русских символов в названиях папок.
Если пользователь назван русскими символами, придётся либо переименовывать его, либо можешь попробовать установить портативную версию

AgentDaun
07.04.2018, 20:51
Проверь, чтоб в пути до программы и мода не было русских символов в названиях папок.
Если пользователь назван русскими символами, придётся либо переименовывать его, либо можешь попробовать установить портативную версию

Спасибо, стояло русское название папки где находится мод. Не знал что от этого зависит. Извини за тупой вопрос)

DCPSHER
15.05.2018, 19:33
Приветствую!

Есть ли у вас опыт работы с инклудами внутри инклудов?
В частности, при попытке подключить YSI, возникают проблемы, т.к. в ней каждый инклуд тянет за собой другие инклуды, но для каждого вложенного инклуда, компилятор считает путь не относительно вызывающего инклуда, а относительно компилируемого pwn-файла, и в таком случае приходится везде переписывать их:
//#include "..\YSI_Coding\y_hooks"
#include "../includes/YSI_Includes/YSI_Coding/y_hooks.inc"
А для такой большой коллекции библиотек как YSI, это особенно неприятно.
Есть ли варианты решения? Отказываться от Sublime'а точно не буду, скорее уж лучше отредактирую все YSI-файлы.

DeimoS
16.05.2018, 10:34
Это проблема не Sublime Text, а компилятора от Zeex.
Есть 3 варианта:
1) Вручную отредактировать все пути, как это и начал делать ты
2) Отредактировать расположение самих файлов
3) прописать дополнительные пути для поиска инклудов в компилятор через "-iпуть_до_папки_с_инклудами"

DeimoS
16.05.2018, 14:53
Набросал систему сборки для Open-GTO. Авось кому пригодится

{
"cmd":
[
"$file_path\\..\\compiler\\pawncc.exe",// Поиск компилятора по пути "папка_с_модом/compiler/"
"-i$file_path\\..\\compiler\\includes",// Поиск инклудов по пути "папка_с_модом/compiler/includes/"
"-i$file_path",// Поиск инклудов по пути "папка_с_модом/sources/"
"$file",
"-d3",
"-o$file_path\\..\\gamemodes\\\\$file_base_name",// Помещение .amx файла в папку "папка_с_модом/gamemodes/"
"-;+",
"-(+"
],
"file_regex": "(.*?)[(]([0-9]*)[)]",
"selector": "source.pwn"
}
Пока проблем с компиляцией не обнаружил

UPD: Если Вы работаете с другими модами, у которых структура отлична от Open-GTO и приближена к стандартной структуре, можете сделать несколько систем сборки, забиндив их вызов на разные клавиши. Например:

[
{ "keys": ["f5"], "command": "build","args":
{
"build_system": "Packages/User/Pawn_main.sublime-build",
"variant": "Main"
}
},

{ "keys": ["ctrl+b"], "command": "build", "args":
{
"build_system": "Packages/User/Pawn_GTO.sublime-build",
"variant": "GTO"
}
}
]
При нажатии на F5 будет вызываться система сборки с именем "Pawn_main", рассчитанной на стандартную структуру, а Ctrl+B будет вызывать систему сборки для Open-GTO


{
"cmd":
[
"$file_path\\..\\pawno\\pawncc.exe",
"$file",
"-o$file_path\\\\$file_base_name",
"-;+",
"-(+",
"-R",
"-d3",
"-O1"
],
"file_regex": "(.*?)[(]([0-9]*)[)]",
"selector": "source.pwn"
}

DCPSHER
16.05.2018, 22:45
Это проблема не Sublime Text, а компилятора от Zeex.
Есть 3 варианта:
1) Вручную отредактировать все пути, как это и начал делать ты
2) Отредактировать расположение самих файлов
3) прописать дополнительные пути для поиска инклудов в компилятор через "-iпуть_до_папки_с_инклудами"

Действительно так. Думал, что в особенности сборки под Sublime.
Спасибо, что разъяснил.
Думаю, буду придерживаться все таки первого варианта, т.к. если библиотека и обновится, проще будет изменить еще раз все пути, нежели использовать третий вариант, и допустить возможные неправильные результаты путей, т.к. в YSI пути пишутся относительно вызывающего инклуда, а компилятор будет складывать их с нашей указанной директорией, а в папках YSI существуют файлы с одинаковым названием.

DeimoS
16.05.2018, 23:43
Скинь всю библиотеку YSI без своих изменений и покажи как их подключаешь. Посмотрю что можно сделать

VVWVV
17.05.2018, 16:17
Действительно так. Думал, что в особенности сборки под Sublime.
Спасибо, что разъяснил.
Думаю, буду придерживаться все таки первого варианта, т.к. если библиотека и обновится, проще будет изменить еще раз все пути, нежели использовать третий вариант, и допустить возможные неправильные результаты путей, т.к. в YSI пути пишутся относительно вызывающего инклуда, а компилятор будет складывать их с нашей указанной директорией, а в папках YSI существуют файлы с одинаковым названием.


//#include "..\YSI_Coding\y_hooks"
#include "../includes/YSI_Includes/YSI_Coding/y_hooks.inc"



#include "YSI\y_hooks" // обязательно с обратным слешом.

DCPSHER
28.05.2018, 01:02
DeimoS, Похоже, с компилятором от Zeex Все в порядке

У меня подключался y_hooks вот так из инклудов:
#include "../vendor/YSI_includes/YSI/y_hooks.inc"
Исправив один слеш / на \
#include "../vendor/YSI_includes/YSI\y_hooks.inc"
все заработало с относительными путями, предусмотренными Y_less'ом.
Т.е. по факту, нужно прописать полный путь лишь в моем подключающем y_hooks инклуде, а внутри YSI все соберется и по относительным путям.
Благо, я еще не стал исправлять все пути в YSI, сегодня обнаружил этот интересный момент, подключая y_utils напрямую, и обнаружив, что оказывается, в нем куча относительных путей не исправленных мной, но все вполне работает, т.к. я по случайности (или нет) написал путь с \ вместо привычных мне /. Бесит, когда их наклон влияет на нечто подобное довольно кардинально)

Забавно, что я натыкался на эту тему http://pro-pawn.ru/showthread.php?15303-%D0%9F%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-y_hook ранее, где YSI показывало предупреждение о слеше, однако тогда я еще не дошел до того, что изначально путь должен быть все равно абсолютным и ушел экспериментировать в ту сторону:

DCPSHER
28.05.2018, 14:25
VVWVV, черт возьми, не заходил в эту тему после 16го мая, а когда писал ответ DeimoS'у, делал это со 2й страницы топика, так и не увидев твоего ответа
Большое спасибо за ответ!

ORLADOK
17.08.2018, 20:14
Сейчас покопался в пакетах под ST3 и слюньки потекли после Console Exec (https://packagecontrol.io/packages/Console%20Exec)...

Только сегодня появилась идея о том, что запускать samp-server.exe было бы лучше из редактора, дабы не искать его в моем проекте (sublime projects - у меня тут web, cpp и pawn). Печатал в сборке, но результаты были так-се (например, можно запускать и без данного пакета. Правда, количество exe-шников будет постоянно расти, а выключить их можно спустя консоль и это не выход).

В общем, кому такая идея приходится боле-менее адекватной, то установки таких пакетов есть в этой статье. Просто добавьте в систему сборки строку:

"target": "console_exec"

В итоге у меня получился такой билдинг для запуска:

{
"name": "Run The Game",
"target": "console_exec",
"cmd": ["cd", "${project_path}/samp-server", "&&", "samp-server.exe"]
}

Вот, например, мой *.sublime-project (не судите строго))):

{
"folders":
[
{
"path": "."
}
],
"settings":
{
"tab_size": 4,
},
"build_systems":
[
{
"name": "ORLADOK: C++ Compiler",
"shell_cmd": "g++ \"${file}\" -o \"exec/${file_base_name}\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${project_path}",
"selector": "source.c, source.c++",

"variants":
[
{
"name": "Run",
"target": "console_exec",
"cmd": ["g++", "${file}", "-o", "${project_path}/exec/${file_base_name}", "&&", "${project_path}/exec/${file_base_name}"]
}
]
},
{
"name": "ORLADOK: Pawn Compiler",
"cmd": ["settings/pawn-compiler/pawncc.exe", "${file}", "-osamp-server/gamemodes/${file_base_name}.amx", "-;+", "-(+", "-d3"],
"file_regex": "(.*?)\\(([0-9]*)[- 0-9]*\\)",
"selector": "source.pwn",
"working_dir": "${project_path}",

"variants":
[
{
"name": "Run The Game",
"target": "console_exec",
"cmd": ["cd", "${project_path}/samp-server", "&&", "samp-server.exe"]
}
]
}
]
}


P.S. Похоже, что данный пакет работает с cmd.
P.P.S. Мне больше по душе shell_cmd, дабы он поддерживает working_dir (как я понял)

Seviel
20.12.2018, 02:53
Так-с, у меня тут проблема с Pawn syntax...
Впервые за почти 2 года пользования.
В общем не хочет он открывать мой мод со вчерашнего дня(и с трудом открывает прошлые версии моего мода, опять таки со вчерашнего дня).

Если я ставлю Plain Text, мгновенно открывает.

Я уже его и откатил, и пк перезагрузил, всё безрезультатно.

А если в c++ открывать, то тоже проблем нету. А как написано https://imgur.com/a/FNPi2QX он скопирован с крестов.

DeimoS
20.12.2018, 13:25
Попробуй найти файлы Pawn Syntax, вырезать их куда-нибудь и по новой поставить.
Но если мод большой, то это вполне нормально, ибо выделение синтаксиса обрабатывается "на лету" и на это так же тратится своё время. А с С++ разница, скорее всего, в том, что в Pawn Syntax есть дополнительные выделения всяких "foreach" и т.п.

Можешь для теста скачать Portable версию, накатить на неё Pawn Syntax и открыть через неё мод.

Seviel
20.12.2018, 22:50
Попробуй найти файлы Pawn Syntax, вырезать их куда-нибудь и по новой поставить.
Но если мод большой, то это вполне нормально, ибо выделение синтаксиса обрабатывается "на лету" и на это так же тратится своё время. А с С++ разница, скорее всего, в том, что в Pawn Syntax есть дополнительные выделения всяких "foreach" и т.п.

Можешь для теста скачать Portable версию, накатить на неё Pawn Syntax и открыть через неё мод.

Всё из-за одного foreach
Всего в одном месте добавил и перестал открывать файл.
Самое обидное что потерял цветовую схему что была у меня.

verteich
08.06.2019, 00:25
dell не выбрал билд

Vaneev
28.01.2024, 22:50
Добрый день. :hi:
Хочу узнать актуальное мнение более грамотных скриптеров, т.к. сам новичок в создании скриптов.

Sublime 3 сейчас лучше PAWNO? По отдельным скриншотам вижу только графические изменения.

punkochel
31.01.2024, 04:29
Добрый день. :hi:
Хочу узнать актуальное мнение более грамотных скриптеров, т.к. сам новичок в создании скриптов.

Sublime 3 сейчас лучше PAWNO? По отдельным скриншотам вижу только графические изменения.

SublimeText для меня это лучший текстовый редактор, который очень гибко настраивается.
Для pawn конечно никто не взялся написать LSP (протокол языкового сервера), но есть плагины PawnSyntax для разработки под samp и Pawn Kit для разработки под open.mp. Оба включают автодополнение имен функций, ну то есть, можно обойтись лишь одним из этих плагинов. Устанавливаются двумя кликами мыши из PackageControl.
Редактор pawno сейчас очень устарел и не актуален, хотя некоторые в нём пишут еще)
Есть конечно VSCode, Atom и другие.
Если опираться на мой опыт, то бери SublimeText. Почитай хотя-б поверхностно документацию, посмотри пару видео о его фишечках и он станет твоим незаменимым помощником как в наборе текста, так и в программировании на любом языке. И не слушай тех, кто говорит что на C++ нужно писать исключительно в VisualStudio.