View Issue Details

IDProjectCategoryView StatusLast Update
0002750WishesPlugins API.Editorpublic2020-02-04 09:19
ReporterJohnDoe Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status newResolutionopen 
Product Version3.0 
Summary0002750: Сессионные закладки: улучшить плагиновое АПИ
DescriptionИмеющееся АПИ сессионных закладок копирует часть(!) макрофункций.
Для полноценного использования плагинами непригодно:
- плагин не владеет собственными закладками, все закладки абсолютно общие
- всё основано на некой абстракции НИГДЕ не описанной явно. Известно что это подобие стека, но у плагина нет средств даже для контроля текущего его состояния.

Для плагинов это неприемлемо.
АПИ должно быть простое и прямолинейное.
Плагин должен иметь полный контроль над своими закладками, два плагина не должны конфликтовать.
И над всем этим плагину будет _элементарно_ надстроить любую абстракцию стека, или хоть чёрта с рогами.

Предлагаемые улучшения описаны ниже.
Additional InformationПрежде всего, стек и понятие "текущая закладка" следует отменить.

Команда ECTL_GETSESSIONBOOKMARKS и соответственно структура EditorBookmarks не нужны. Получение закладок происходит по одной, для информации о закладке можно использовать структуру EditorSetPosition http://api.farmanager.com/ru/structures/editorsetposition.html

Всё АПИ может состоять из 3х функций.

(1) ECTL_GETSESSIONBOOKMARK Param1: Id закладки, информацию о которой требуется получить. Param2: указывает на структуру EditorSetPosition.
Возвращает NULL, если закладка с указанным Id не существует.

(2) ECTL_DELETESESSIONBOOKMARK Param1: Id закладки, которую требуется удалить.

(3) ECTL_ADDSESSIONBOOKMARK Param2:структура EditorSetPosition или NULL для текущей позиции редактора.
Возвращает Id новой закладки.

Позиционирование осуществляется с помощью ECTL_SETPOSITION.

Всё.
Остальные имеющиеся функции не нужны (ECTL_CLEARSESSIONBOOKMARKS ECTL_NEXTSESSIONBOOKMARK ECTL_PREVSESSIONBOOKMARK)
Tagsbookmarks
Build

Activities

JohnDoe

2014-07-25 13:13

updater   bugnote:0012797

>у плагина нет средств для даже для контроля текущего его состояния.
Об этом подробнее:

Есть некая виртуальная величина - "текущая закладка", физический смысл которой не ясен.
От её значения зависит действие ВСЕХ функций, при этом саму величину получить через АПИ невозможно!
Действие ECTL_PREVSESSIONBOOKMARK в зависимости от обстоятельств может по совместительству добавлять новую закладку!
При этом все закладки общие!
И макросы имеют больше контроля над закладками!

Issue History

Date Modified Username Field Change
2014-07-25 13:12 JohnDoe New Issue
2014-07-25 13:13 JohnDoe Note Added: 0012797
2020-01-30 15:30 JohnDoe Tag Attached: bookmarks
2020-02-04 09:19 JohnDoe Description Updated View Revisions