Как подключить компилятор FASM к Sublime Text
Как подключить компилятор FASM к Sublime Text
После прикручивания синтаксиса Assembler к редактору Sublime Text 3, возникла необходимость добавить к нему и поддержку компилятора Flat Assembler (FASM). Задача немного осложнилась тем, что требовалось сделать два варианта компиляции: просто сборка исполняемого файла и сборка с последующим запуском. В результате получился небольшой плагин (package), с помощью которого компилятор Flat Assembler подключается к Sublime Text. Для установки распакуйте архив с плагином в папку редактора \Data\Packages с сохранением структуры каталогов. Горячие клавиши: Ctrl+B - компиляция, Ctrl+Shift+B - компиляция с последующим запуском (только для exe-файлов). В папке \Flat Assembler\FASM находится модифицированный компилятор Flat Assembler и все файлы из папки \INCLUDE официального дистрибутива. Вы можете обновлять эти файлы самостоятельно по мере необходимости. Также в файле \Default (Windows).sublime-keymap можно заменить кнопки запуска и компиляции на более привычные комбинации F9 и Ctrl+F9, как это сделано в FASM IDE.
Если используете расширение Package Control, то добавьте в него ссылку на мой репозиторий и устанавливайте расширение Flat Assembler через него. В этом случае все следующие обновления компилятора будут устанавливаться автоматически. Репозиторий:
https://www.manhunter.ru/autoupdate/packages.json
В репозитории всегда находится актуальная версия компилятора, тогда как здесь плагин может обновляться с некоторой задержкой.
Плагин для подключения компилятора FASM к Sublime Text 3
FASM.Compiler.for.Sublime.Text.3.zip (255,352 bytes)
FASM.Compiler.for.Sublime.Text.3.zip (255,352 bytes)
Просмотров: 14791 | Комментариев: 23
Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(01.06.2022 в 20:07):
Пиздец... ссылка в первом абзаце.
em0ji
(01.06.2022 в 20:04):
Огромное спасибо за компилятор! Еще бы подсветку синтаксиса :)
Eka
(25.02.2019 в 12:10):
Так, разобрался.
Есть же главная картинка этого поста :)
Для тех, у кого образ мышления еще не совсем Ассемблер :
Tools->Build System-> Flat Assembler
И будет вам счастье :)
Есть же главная картинка этого поста :)
Для тех, у кого образ мышления еще не совсем Ассемблер :
Tools->Build System-> Flat Assembler
И будет вам счастье :)
Eka
(25.02.2019 в 11:48):
Посмотрел в Packeges через Preferences->Browse Packages для Flat Assembler указан путь:
C:\Users\$MyUserName\AppData\Roaming\Sublime Text 3\Packages\Flat Assembler
C:\Users\$MyUserName\AppData\Roaming\Sublime Text 3\Packages\Flat Assembler
Eka
(25.02.2019 в 10:39):
По нажатию Ctrl-b пишет "No build system" хотя все сделал как написал Андрей (06.12.2017 в 15:11)
Подскажите, пожалуйста, что надо изменить ?
Подскажите, пожалуйста, что надо изменить ?
Андрей
(06.12.2017 в 15:11):
Тем кто не знает как устанавливать это расширение - пошаговая инструкция:
Чтобы установить расширение Package Control....
Заходим в прогу и открываем консоль View->Show Console.
Идём на страницу https://packagecontrol.io/installation, копируем там код :
(Код я уже скопировал, но он может устареть)
import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
Вставляем его в консоль. Enter.
Открываем Preferences->Package Control->Add Repository и добавляем репозиторий
http://www.manhunter.ru/autoup...ackages.json
Открываем Preferences->Package Control->Install Package и выбираем Flat Assembler от ManHunter`a.
Должно открыться новое окно с информацией о расширении.
Всё.
Чтобы установить расширение Package Control....
Заходим в прогу и открываем консоль View->Show Console.
Идём на страницу https://packagecontrol.io/installation, копируем там код :
(Код я уже скопировал, но он может устареть)
import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
Вставляем его в консоль. Enter.
Открываем Preferences->Package Control->Add Repository и добавляем репозиторий
http://www.manhunter.ru/autoup...ackages.json
Открываем Preferences->Package Control->Install Package и выбираем Flat Assembler от ManHunter`a.
Должно открыться новое окно с информацией о расширении.
Всё.
ManHunter
(24.01.2017 в 12:46):
Проверил на чистой установке, все нормально. Синтаксис и подсветку тоже надо подключать.
Андрей
(23.01.2017 в 11:39):
Здравствуйте!
Подскажите как поставить этот package?
Папки \Data\Packages я не нашёл. Есть только \Packages. Куда там распаковывать - не понятно. Тогда я поставил расширение Package Control.
Добавил ссылку в репозиторий. Установил через Install Package ваш плагин и ... ничего не изменилось. В Tools\Build System\ ассемблера не появилось.
Что я делаю не так?
Подскажите как поставить этот package?
Папки \Data\Packages я не нашёл. Есть только \Packages. Куда там распаковывать - не понятно. Тогда я поставил расширение Package Control.
Добавил ссылку в репозиторий. Установил через Install Package ваш плагин и ... ничего не изменилось. В Tools\Build System\ ассемблера не появилось.
Что я делаю не так?
ManHunter
(12.10.2016 в 10:25):
В пакет из репозитория добавлены сообщения с изменениями версий. Они будут отображаться при установке обновлений. На сайте компилятор больше обновлять не буду, все обновления только через Package Control.
ManHunter
(04.07.2016 в 13:47):
Компилятор обновлен до версии 1.71.54. Добавлен репозиторий для автоматической установки и обновления плагина через Package Control.
ManHunter
(11.03.2015 в 10:54):
Не считаю нужным этого делать.
Kirill
(11.03.2015 в 10:07):
ManHunter, а почему Вы не выкладываете свои наработки для редактора на http://packagecontrol.io? Учитывая, что Вы продолжаете обновлять свои наработки, не все могут узнать об обновлениях. Вот случайно наткнулся, что 1 марта плагин обновился. А так он бы прилетел сам через Package Control
ManHunter
(12.07.2014 в 12:16):
Большое обновление. Добавлен тихий режим компиляции и подсветка ошибок в консоли, для этого ОБЯЗАТЕЛЬНО нужно обновить подсветку синтаксиса Ассемблера.
user
(25.06.2014 в 01:59):
Значит, был неправ.
ManHunter
(24.06.2014 в 17:28):
Угу. Особенно если сравнить скорость загрузки и работы ST с какой-нибудь PHP-шной IDE типа PHPStorm или NuSphere PhpED.
Компилирую файл с ошибкой, в консоли подробный отчет компилятора:
http://pichosting.net/images/2...mkq3u7qj.png
Нажимаю F4 и мгновенно перехожу на строку с ошибкой. Если до этого файл с ошибкой не был открыт, он загружается в редактор. Что я делаю не так?
Надо же сперва изучить инструмент, только потом судить о его недостатках.
user
(24.06.2014 в 16:32):
Напомнило топик:
_http://exelab.ru/f/index.php?action=vthread&forum=3&topic=228 50
По-честному, в этом сублиме впечатляет только уменьшенный макет текста программы, тот что справа, для быстрой навигации.
А так - тяжёлая программа..
P.S. - Ссылку побило. "228 50" - без пробела.
Вообще эти споры "удобно-неудобно" неуместны.
А так - в подобных редакторах сильно не хватает разбора сообщений об ошибках компилятора и быстрой навигации по строкам программы, где эти ошибки.
_http://exelab.ru/f/index.php?action=vthread&forum=3&topic=228 50
По-честному, в этом сублиме впечатляет только уменьшенный макет текста программы, тот что справа, для быстрой навигации.
А так - тяжёлая программа..
P.S. - Ссылку побило. "228 50" - без пробела.
Вообще эти споры "удобно-неудобно" неуместны.
А так - в подобных редакторах сильно не хватает разбора сообщений об ошибках компилятора и быстрой навигации по строкам программы, где эти ошибки.
darkz
(24.06.2014 в 16:00):
Цветной ide http://fasm.moy.su/load/2-1-0-8
ManHunter
(24.06.2014 в 09:03):
Очередной холивар. Кому что нравится, тот тем и пользуется. Под мои задачи ST удобнее, я в любой момент могу сам дописать к нему весь необходимый функционал и именно в том виде, как мне надо. И задачи эти почти всегда находятся далеко за рамками домашних страничек из пары html-файлов.
Что касается моей рабочей среды. Для всех часто используемых конструкций давно написаны необходимые сниппеты, подключены файлы документации под рабочие языки программирования, включена подсветка синтаксиса. А отказ от автозавершения выглядит, мягко говоря, странно. Это же не напоминание программисту какой он тупой, это _значительное_ ускорение его работы как раз за счет исключения ненужной рутины.
Про необходимость открывать файлы по ссылке тоже впервые слышу. Загружается проект целиком, а в коде вообще отсутствует необходимость что-то инклудить, все вынесено в классы и грузится через __autoload.
Что касается моей рабочей среды. Для всех часто используемых конструкций давно написаны необходимые сниппеты, подключены файлы документации под рабочие языки программирования, включена подсветка синтаксиса. А отказ от автозавершения выглядит, мягко говоря, странно. Это же не напоминание программисту какой он тупой, это _значительное_ ускорение его работы как раз за счет исключения ненужной рутины.
Про необходимость открывать файлы по ссылке тоже впервые слышу. Загружается проект целиком, а в коде вообще отсутствует необходимость что-то инклудить, все вынесено в классы и грузится через __autoload.
UNDYING
(24.06.2014 в 00:36):
Немного оффтопик.
Ну "двухкрестовый блокнот" это отдельная "песня". А как сам ST3? ЕМНИП, у него "идеология" - "код и ничего лишнего". Возможности вставки шаблонов, макросов, открытие файлов по ссылке (напр. "инклудов") - существуют ли и удобны ли?
Я, напимер, считаю автодополнение вешью лишней (что-то вроде - "я и так знаю что писать, не пытайтесь угадать за меня"). "Оно" может быть и полезно на итапе изучения, каких-нибудь "делфей" или "очередного вижуал студио", но, в основном, (для меня) вредно.
А подсветку синтаксиса, наоборот, - вполне себе удобной и нужной вещью.
Вставка шаблонов (под функцию, например) - удобно иметь такую возможность, но не обязательно ей пользоваться всегда и везде.
М.б., если будет время и желание, опишите свой "workplace"?
Ну "двухкрестовый блокнот" это отдельная "песня". А как сам ST3? ЕМНИП, у него "идеология" - "код и ничего лишнего". Возможности вставки шаблонов, макросов, открытие файлов по ссылке (напр. "инклудов") - существуют ли и удобны ли?
Я, напимер, считаю автодополнение вешью лишней (что-то вроде - "я и так знаю что писать, не пытайтесь угадать за меня"). "Оно" может быть и полезно на итапе изучения, каких-нибудь "делфей" или "очередного вижуал студио", но, в основном, (для меня) вредно.
А подсветку синтаксиса, наоборот, - вполне себе удобной и нужной вещью.
Вставка шаблонов (под функцию, например) - удобно иметь такую возможность, но не обязательно ей пользоваться всегда и везде.
М.б., если будет время и желание, опишите свой "workplace"?
ManHunter
(23.06.2014 в 15:53):
В моем варианте нет привязки к путям, все необходимое находится внутри пакета. Можно компилить хоть с флешки на любом компе.
Анатолий
(23.06.2014 в 15:47):
Как раз после первого упоминания о Sublime в вашем блоге, окончательно на него перешел с npp, ничуть не жалею, т.к. тут всё выбрито и красивенько :D
Тоже был встал вопрос о компиляции, решил так: "New Build System" и в нём:
{
"cmd": ["E:\\FASM\\FASM.EXE", "$file"],
"working_dir":"E:\\FASM\\INCLUDE"
}
Компилит по "F7" и "Ctrl + B".
Спасибо за каркас с горячими клавишами, пойду апдейтить :)
Тоже был встал вопрос о компиляции, решил так: "New Build System" и в нём:
{
"cmd": ["E:\\FASM\\FASM.EXE", "$file"],
"working_dir":"E:\\FASM\\INCLUDE"
}
Компилит по "F7" и "Ctrl + B".
Спасибо за каркас с горячими клавишами, пойду апдейтить :)
ManHunter
(23.06.2014 в 13:55):
По сравнению с Sublime двухкрестовый Блокнот убогий чуть менее, чем полностью. Перешел с него и забыл как страшный сон.
voila
(23.06.2014 в 13:53):
о. боже, мастер, возвращайтесь на блоконет два плюса, я Вас умоляю!
Вы еще и пишите такие няшные плаги к нему, оооо ....
этот убогий саблайм — зло в чистом своем унитазном виде, уверяю Вас!
Вы еще и пишите такие няшные плаги к нему, оооо ....
этот убогий саблайм — зло в чистом своем унитазном виде, уверяю Вас!
Добавить комментарий
Заполните форму для добавления комментария