SciTE в качестве IDE для masm64

Тема в разделе "IDE. Интегрированные среды разработки", создана пользователем Mikl___, 30 апр 2023.

  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.786
    SciTE (Scintilla based Text Editor) — кроссплатформенный, компактный текстовый редактор с реализованным сворачиванием кода (для многих языков, но для ассемблера я не смог настроить, поставьте в известность если у кого-то получится), подсветкой синтаксиса и другими полезными функциями. SciTe — переносимое приложение. Просто распакуйте 64-разрядную переносимую версию для Windows, что было нужно, я уже настроил.

    Интерфейс

    Интерфейс SciTE однооконный, многодокументный, с использованием вкладок для переключения между открытыми файлами. Присутствуют меню, панель инструментов, панель вкладок и панель статуса. Существуют файлы локализации для нескольких десятков языков, в том числе русского. Новые файлы локализации создаются переводом файла «locale.properties».

    Настройка

    SciTE настраивается редактированием файлов конфигурации через раздел меню «Настройки». Графический интерфейс настройки отсутствует, за исключением настроек отступа.
    Также возможности SciTE могут быть расширены с помощью скриптов на языке Lua, которые выполняются с помощью встроенного интерпретатора Lua 5.1.

    Работа с файлами

    SciTE позволяет открывать и сохранять файлы как в системной кодировке, так и в Unicode (UTF-8 и UTF-16).
    Возможен экспорт файлов в форматах HTML, RTF, PDF, LaTeX, XML с сохранением подсветки синтаксиса;
    Существует возможность сохранять и загружать сессию — набор открытых файлов. Это позволяет использовать SciTE для работы с различными проектами, состоящими из большого числа файлов.
    Существует ограничение на количество одновременно открытых файлов: максимальное значение задаётся в настройках и не может превышать 100.

    Редактирование текста

    Особенности реализации отображения текста в SciTE:
    • возможность буферизации графики, чтобы избежать мерцания при прорисовке символов;
    • одновременное использование различных, в том числе и пропорциональных, шрифтов;
    • быстрое изменение размера шрифтов;
    • отображение номеров строк;
    • подсветка синтаксиса для большого количества языков программирования;
    • фолдинг, то есть сворачивание и разворачивание структурных блоков текста (классов, функций, циклов и т. п.);
    Особенности реализации редактирования:
    • автоматическая установка отступов;
    • подсветка парных или непарных (незакрытых) скобок;
    • автодополнение (автоматическое завершение) используемых в файле имён типов, функций, переменных;
    • всплывающие подсказки о параметрах функций;
    • установка закладок;
    • быстрый поиск по файлу и фиксируемое цветовое выделение выражения под курсором, клавиатурная навигация по выделенным фрагментам;
    • подсветка всех видимых копий слова под курсором;
    • поиск и замена текста с использованием регулярных выражений во всех открытых файлах (вместе с 2 предыдущими пунктами — инструменты упрощения рефакторинга);

    Подключение внешних программ

    Обработка сообщений компилятора в SciTE

    SciTE позволяет вызывать внешние программы для обработки открытых файлов (например, компиляторы) с помощью команд из раздела меню «Сервис». Команды могут быть настроены пользователем и различаются в зависимости от типа обрабатываемого файла.
    Результаты работы отображаются в окне консоли, которое появляется в нижней (или правой) части окна SciTE. При этом сообщения об ошибках выделяются цветом. С помощью щелчка по сообщению можно перейти к соответствующей строке в редактируемом файле.
    Настраиваем меню на русский язык, для этого открываем SciTE, через меню «Options Open Global Options File», открываем и редактируем файл «SciTEGlobal.properties»:
    • найти строку #locale.properties=locale.de.properties
    • после этой строки добавить locale.properties=locale.ru.1251.properties
    Содержимое asm.bat
    Код (Text):
    1. set masm64_path=диск:\папка1\подпапка2\...\masm64\ <-- путь к вашему masm64
    2. set filename=%~n1
    3. %masm64_path%bin\ml64 /Cp /c /I"%masm64_path%Include" %filename%.asm
    4. if errorlevel 1 exit
    5. if exist %1.rc (
    6. %masm64_path%bin\RC /r /i"%masm64_path%Include" %filename%.rc )
    7. if errorlevel 1 exit
    8. call :read_settings
    9. goto %kind_of_file%
    10. :CONSOLE
    11. if exist %1.res (
    12. %masm64_path%bin\link /LIBPATH:"%masm64_path%Lib" /LARGEADDRESSAWARE:NO /BASE:0x400000 ^
    13. /STUB:%masm64_path%bin\stubby.exe /entry:main /fixed /nocoffgrpinfo %filename%.obj ^
    14. %filename%.res
    15. if exist %1.res del %1.res
    16. ) else (
    17. %masm64_path%bin\link /SUBSYSTEM:CONSOLE /LIBPATH:"%masm64_path%Lib" ^
    18. /entry:main %filename%.obj /LARGEADDRESSAWARE:NO /BASE:0x400000 ^
    19. /STUB:%masm64_path%\bin\stubby.exe
    20. )
    21. if errorlevel 1 exit
    22. goto exit1
    23. :GUI
    24. if exist %1.res (
    25. %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:"%masm64_path%Lib" /LARGEADDRESSAWARE:NO ^
    26. /BASE:0x400000 /STUB:%masm64_path%bin\stubby.exe /entry:WinMain /fixed /nocoffgrpinfo ^
    27. %filename%.obj %filename%.res
    28. if exist %1.res del %1.res
    29. ) else (
    30. %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:"%masm64_path%Lib" /LARGEADDRESSAWARE:NO ^
    31. /BASE:0x400000 /STUB:%masm64_path%bin\stubby.exe /entry:WinMain /fixed /nocoffgrpinfo ^
    32. %filename%.obj
    33. )
    34. if errorlevel 1 exit
    35. goto exit1
    36. :DLL
    37. if exist %1.res (
    38. %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:%masm64_path%lib /ENTRY:DllMain /DLL ^
    39. /section:.bss,S /section:.data,S /stub:%masm64_path%bin\stubby.exe %filename%.obj %filename%.res ^
    40. /DEF:%filename%.def
    41. if exist %1.res del %1.res
    42. ) else (
    43. %masm64_path%bin\link /SUBSYSTEM:WINDOWS /LIBPATH:%masm64_path%lib /ENTRY:DllMain /DLL ^
    44. /section:.bss,S /section:.data,S /stub:%masm64_path%bin\stubby.exe %filename%.obj ^
    45. /DEF:%filename%.def
    46. )
    47. if errorlevel 1 exit
    48. del %filename%.exp
    49. :exit1
    50. del %filename%.obj
    51. exit
    52. :read_settings
    53. for /f "eol=# tokens=2-3" %%A in (%filename%.asm) do (
    54. set kind_of_file=%%A
    55. if %%B == # exit /b )
    56. exit /b
    В файле asm.properties поправьте строку
    Код (Text):
    1. masm64=d:\masm39
    на ваш путь к masm64
    06.jpg
    Структура папки masm64 на моем компьютере
    Кусок файла asm.properties отвечающий за компиляцию (Ctrl+F7), запуск на исполнение exe-файла (F5), запуск x64dbg и exe-файла (Ctrl+0), запуск ResHacker (Ctrl+1)
    Код (Text):
    1. command.compile.$(file.patterns.asm)=$(masm64)\bin\asm.bat $(FileName)
    2. command.go.$(file.patterns.asm)=cmd /c cd $(FileDir) && start $(FileName).exe
    3. command.name.0.$(file.patterns.asm)=x64dbg
    4. command.0.$(file.patterns.asm)=$(masm64)\x64\x64dbg $(FileDir)\$(FileName).exe
    5. command.name.1.$(file.patterns.asm)=Resource Hacker
    6. command.1.$(file.patterns.asm)=$(masm64)\ResourceHacker\ResHacker $(FileDir)\$(FileName).exe
    100.jpg
     

    Вложения:

    • SciTE.zip
      Размер файла:
      712,8 КБ
      Просмотров:
      142
    Последнее редактирование: 30 апр 2023
    Application и mantissa нравится это.