12 декабря 2022

Новый ToolsAPI редактора кода Delphi 11.3

    Delphi еще во времена Borland имела большой набор программных интерфейсов (ToolsAPI), который позволял программистам расширять возможности IDE различными полезными функциями за счет создания для нее своих собственных плагинов. ToolsAPI постоянно развивается. Но десятки лет API редактора кода предоставлял доступ только к его canvas для рисования, а вся информация об элементах редактора была скрыта. Редактор Delphi 11.3 получил новый мощный API для рисования, запроса информации и отслеживания происходящих в нем событий.
    На сегодняшний день сторонние плагины, которые работают в редакторе кода, чтобы вызывать их собственный код вместо или перед кодом IDE, перехватывают ее методы, связанные с рисованием, запросом состояния и т.д. Это может привести к нестабильности IDE. Новый API редактора кода "официально" позволяет контролировать все этапы рисования элементов редактора, и даже каждой строки загруженного в него кода. Программисты могут перехватывать все, что делает IDE и реализовывать это по-своему. Обеспечен полный доступ к состоянию элементов редактора с предоставлением множества доступной о них информации.
    Некоторые функции редактора бета-версии RAD Studio 11.3 Malawi уже переведены на новый API. Например, Error Insight (отрисовка подчеркивания под сомнительными фрагментами кода) и добавленное в версии 11.2 выделение неактивного кода (прозрачная отрисовка кода, который не будет скомпилирован). Кроме того, с помощью этого API реализована совершенно новая функция редактора кода – подсветка совпадающих слов.
    На GitHub уже доступны исходные коды проектов на Delphi, которые демонстрируют работу с новым API редактора кода: CodeEditorBackgroundDemo.dpk, GutterEventDemo.dpk и CodeEditorPaintTextDemo.dpk.
Демонстрация использование нового API редактора кода Delphi 11.3
Демонстрация использование нового API редактора кода Delphi 11.3

В первую очередь в глаза бросается изменение фона редактора кода. Но если внимательно присмотреться, и обратить внимание на слово "Context", то мы видим демонстрацию добавленной в 11.3 подсветки совпадающих слов.
    Редактор кода RAD Studio 11.3 будет полностью переведен на новый API, а методы его старого API будут помечены в ToolsAPI как устаревшие. Поэтому рекомендуется всем, кто делает или планирует делать свои плагины для редактора кода, использовать новый API. Хотя обычно разработчики RAD Studio не удаляют интерфейсы из ToolsAPI, но они рассматривают возможность удаления старого API редактора кода в RAD Studio версии 12.0.

4 комментария:

  1. Анонимный09 января, 2023 16:10

    Embarcadero молодцы конечно, но в CNPack уже все подсветки и тд были давно реализованы. Без него работу в дельфи уже для себя не представляю, а вот будет ли он корректно работать в новом 11.3 большой вопрос.

    ОтветитьУдалить
    Ответы
    1. Анонимный10 января, 2024 01:15

      а какая версия сейчас самая стабильная для создания простых приложений?

      Удалить
    2. Анонимный10 января, 2024 16:02

      Думаю, что если версия Delphi не принципиальна, то лучше брать последнюю - 12 (в каждой версии фиксятся баги и теоретически IDE становится более стабильной). Но если волнует лицензионность, то Delphi 11 Community Edition.

      Удалить
    3. Анонимный12 января, 2024 11:53

      Cамая стабильная - Delphi 7 :)

      Удалить