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"
Всё, что Вы увидите в этой теме - заготовка под статью о редакторе 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"