View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002750 | Wishes | Plugins API.Editor | public | 2014-07-25 13:12 | 2020-02-04 09:19 |
Reporter | JohnDoe | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | new | Resolution | open | ||
Product Version | 3.0 | ||||
Summary | 0002750: Сессионные закладки: улучшить плагиновое АПИ | ||||
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) | ||||
Tags | bookmarks | ||||
Build | |||||
|
>у плагина нет средств для даже для контроля текущего его состояния. Об этом подробнее: Есть некая виртуальная величина - "текущая закладка", физический смысл которой не ясен. От её значения зависит действие ВСЕХ функций, при этом саму величину получить через АПИ невозможно! Действие ECTL_PREVSESSIONBOOKMARK в зависимости от обстоятельств может по совместительству добавлять новую закладку! При этом все закладки общие! И макросы имеют больше контроля над закладками! |