Blog. Just Blog

Подсветка синтаксиса Assembler для Sublime Text 3

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Мои программы | Автор: ManHunter
Подсветка синтаксиса Assembler для Sublime Text 3
Подсветка синтаксиса Assembler для Sublime Text 3

Для личного использования сделал подсветку синтаксиса языка Assembler (диалект FASM с поддержкой многострочных комментариев) для редактора Sublime Text 3. В разных интернетах я уже встречал несколько готовых вариантов ассемблерной подсветки, в том числе и FASM, но они все или неполные, или некорректные. Цветовая гамма подобрана для использования с темой Notepad++ для Sublime Text 3. Для установки синтаксиса распакуйте архив в папку \Packages.

Если используете расширение Package Control, то добавьте в него ссылку на мой репозиторий и устанавливайте расширение Assembler через него. В этом случае все следующие обновления плагина будут устанавливаться автоматически. Репозиторий:

https://www.manhunter.ru/autoupdate/packages.json
Кроме подсветки синтаксиса сделана навигация по исходнику (Ctrl+R), добавлены сниппеты для основных структур языка и автозавершение для основных функций WinAPI.

Подсветка синтаксиса Assembler для Sublime Text 3Подсветка синтаксиса Assembler для Sublime Text 3

Assembler.Color.Scheme.for.Sublime.Text.3.zip (133,298 bytes)


Поделиться ссылкой ВКонтакте
Просмотров: 21548 | Комментариев: 32

Метки: Sublime Text
Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
ManHunter (10.09.2022 в 18:24):
Добавил, спасибо за дельное замечание. Обнова в репе.
tmp (10.09.2022 в 17:39):
Можете в подсветку синтаксиса фасма добавить возможность навигации по именам во всплывающем окошке, где они определяются, и где на них ссылаются?
Это всего лишь добавить несколько scope

Скриншот того, что имею ввиду: https://ibb.co/tsvfrHj

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

77 строка
      scope: entity.name.function.proc.assembler proc.assembler
83 строка
      scope: meta.function-call.assembler variable.function.assembler proc.assembler


Так можно по идее и с метками, и переменными сделать. Тогда легче будет навигация по коду
user (12.12.2020 в 13:24):
А, ну да. Уже заметил.
В общем, обновился нормально.

И к слову, в упоминавшемся FASM Editor'e навигация сделана   
намного капитальнее, в виде отдельного окна навигации слева от окна редактирования. Как концепция довольно удачно.
Но он абсолютно не универсален, заточен только под FASM.
ManHunter (12.12.2020 в 10:44):
Там любая версия нуждается в поправках. Разница только в том, что dev-версии без ключа даже не запустятся, а финальные версии запустятся, но периодически будут показывать окно при сохранении файла. Ограничений по времени нет.
user (12.12.2020 в 02:37):
Тоже скачал "портабле" версию.
Но на WinXP/SP2 она не работала по причине импорта GetLogicalProcessorInformation(). А это WinXP/SP3+.
Ну,после уговоров таки запустилась и работает.

Кстати, а что там эта новая версия, нуждается в поправках
в смысле регистрации, или можно нормально пользоваться нерегистрированной?
ManHunter (11.12.2020 в 10:01):
Инсталлятор там вообще не нужен. Всегда пользовался портативными версиями
http://www.sublimetext.com/3
Просто распаковывается в нужное место, хоть на винт, хоть на флешку, там же и живет, никуда не лезет. Если используется ломаный файл из моего релиза, то можно даже обновления проверять, ничего не слетит. Хотя 3-я линейка уже остановилась, автор ее уже давно не обновляет. Но в ST4 разломали автокомплит и еще всякого по мелочи, чем я привык пользоваться. Потихоньку допиливают до терпимого результата, но что-то уж очень потихоньку. Поэтому портативный ST3 - это топчик, особенно если грамотно его упаковать :) Много ли можно назвать IDE, где одинаково комфортно и одновременно работать в PHP/CSS/HTML/JS и Ассемблером, чтобы это все подсвечивалось, компилировалось и запускалось.
user (11.12.2020 в 08:09):
-- Добавлено --
Навигация по тексту да, работает.
user (11.12.2020 в 07:48):
Фтопку.
Update installer скомпилирован для Vista+.

Такие программы, какие бы они чудесные ни были, не годятся.
Сам факт неработоспособности на WinXP это показатель некоей тупорвлости софта.
А то куды ж там - задрипанный редактор текстов требует Win7. Ага..

Это патчится, но. Зачем же.
user (10.12.2020 в 23:21):
Да просто скачал себе и захомячил тогда ту версию, ещё в 14-м  году.
Кстати, её пришлось ещё и поправить от нага при запуске,
предлагавшего обновляться. Так оно и лежало, на всякийй случай.
А теперь, выходит, можно бахать тот архив
ManHunter (10.12.2020 в 10:36):
А использование старой версии ST3 - это реальная техническая необходимость или что-то религиозное? Насколько я помню, у него неплохая обратная совместимость по операционкам. По крайней мере, когда я его запускал на XP, то он там прекрасно работал.
user (10.12.2020 в 10:28):
Новая схема 2016 года не работает с версией SUBLIME3 v.3059 (2013).
Старая, 2014-го года, запускается с ним нормально.
ManHunter (02.09.2016 в 20:43):
Конечно опечатка. Копипаст - зло :) Спасибо!
addhaloka (02.09.2016 в 20:03):
Спасибо! Навигация по Ctrl+R и поддержка Package Control особо порадовали. :-)

p.s. В статье опечатка, наверно надо так: "устанавливайте расширение Assembler через него"?
ManHunter (15.08.2016 в 15:10):
Подсветка полностью переписана на YAML, добавлены сниппеты, навигация, комментарии, автоотступы, новые функции WinAPI, ключевые слова выверены с учетом новых команд, и еще сделано много-много другого. Добавлено обновление через репозиторий.
ManHunter (24.01.2016 в 19:02):
Crtl+Пробел решает все проблемы с автодополнением.
albatros (24.01.2016 в 16:56):
Такая же проблема как и у darkz. После invoke при вводе начала имени функции всплывающий список не появляется
ManHunter (13.06.2015 в 10:34):
Очередное обновление. Добавлены настройки определения синтаксиса для последних версий ST, небольшие доработки в подсветке, добавлены новые функции WinAPI, добавлены сниппеты для разных конструкций языка. Рекомендую обновить цветовую схему Notepad++ для ST, кто ей пользуется.
ManHunter (25.07.2014 в 18:40):
Начинаешь набирать команду, список появляется.
darkz (25.07.2014 в 18:38):
ManHunter,Приветствую!
У меня почему-то нет всплывающего листа WinApi функций, после команды invoke(.
Скажите Так и должно быть,или это у меня глюк?
ManHunter (12.07.2014 в 12:12):
Большое обновление. Добавлена подсветка консоли компиляции, автокомплит для WinAPI, правила для автоотступов, комментарии по Ctrl+/ и Ctrl+Shift+/, исправления в подсветке и новые функции WinAPI.
ManHunter (25.06.2014 в 13:39):
ЦитатаА в нем возможно запилить подобно NppExec подсветку ошибок?

Изучил вопрос поглубже. Можно. В архиве \Packages\Default.sublime-package есть файлик exec.py, в котором находится функция, ответственная за запуск компиляторов и т.п. У нее есть недокументированные параметры, например, "quiet": true будет подавлять сообщение типа "[Finished in 0.1s]" в конце лога компилятора. Еще есть интересный параметр "syntax" : "Packages/Text/Plain text.tmLanguage", который отвечает за подсветку синтаксиса консоли компилятора. Вместо "Plain text.tmLanguage" можно подставить свой файл расцветки. Затем все это собираешь в .sublime-build файл и наслаждаешься цветной консолькой.

Пруф: http://pichosting.net/images/2...hf587nra.png
ManHunter (24.06.2014 в 13:47):
Добавлены функции avicap32.dll, архив полной версии обновлен.
ManHunter (23.06.2014 в 13:41):
Это не баг, это от дублей надо почистить. Выкрою время - займусь.
Ну и до кучи: http://msdn.microsoft.com/en-u...s.85%29.aspx

Почистил автозаменой, немного дублей осталось, но их придется чистить вручную.
Василий (23.06.2014 в 13:39):
баги! наверное))) сначала идёт выборка (A|W)?, а чуть дальше просто W и иногда ExExW
LogonUserEx(A|W)?|LogonUserExExW
AddConsoleAlias(A|W)?|AddConsoleAliasW
ManHunter (20.06.2014 в 19:02):
Добавлены функции gdiplus.dll, архив полной версии обновлен.
ManHunter (16.06.2014 в 15:57):
Синтаксис немного доработан, исправлены ошибки, архивы обновлены.
Григорий (23.04.2014 в 08:32):
unreal666, Package Control не нужен.
Василий (18.04.2014 в 01:06):
Вот это вещь! ManHunter спасибо огромное, наконец-то нормальный редактор для фасма)))
Анатолий, консоль относится к text.plain, если не жалко то это можно поправить в файле Packages\Text.sublime-package -> Plain text.tmLanguage
ManHunter (10.02.2014 в 12:02):
Вряд ли. Насколько я знаю, в Sublime нет никакой раскраски консоли.
Анатолий (10.02.2014 в 11:54):
Симпатичная штука.

А в нем возможно запилить подобно NppExec подсветку ошибок? - http://s019.radikal.ru/i638/14...faf125f5.png
ManHunter (07.02.2014 в 08:27):
Потому что мне удобнее распаковать один файл, чем выкладывать его куда-нибудь на гитхаб.
unreal666 (07.02.2014 в 07:57):
А почему установка не через Package Control?

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 2 (0.0019 сек.) / Память: 4.5 Mb
Наверх