View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001981 | Wishes | Plugins API.Editor | public | 2012-01-12 11:21 | 2013-02-03 00:33 |
Reporter | NightRoman | Assigned To | zg | ||
Priority | normal | Severity | feature | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Summary | 0001981: Добавить EE_ADDLINE и EE_DELETELINE | ||||
Description | Юз-кейс - плагин PowerShellFar во время редактирования PowerShell скрипта мог бы по этим событиям корректировать позиции уставленных в данном скрипте точек останова отладчика (или удалять их, если удалены именно строки с брекпойнтами). В общем же случае для плагинов - нужна возможность отслеживать свои "закладки" в редакторе. По нажатию клавиш отслеживать как-то криво получается. Много клавиш надо отслеживать - это раз (да и все равно не ясно как быть со вставкой из буфера, например). Текст может меняться и не клавишами, а плагинами - это два (и это не редкость в моем случае, например, переформатирование скрипта и т.п.). Кажется, что внутри Фара что-то подобное есть, закладки редактора же обновляются по мере редактирования текста. Брекпойнты в юз-кейсе - аналог закладок, их тоже надо обновлять аналогично закладкам. Предлагается добавить события EE_ADDLINE и EE_DELETELINE и вызывать их предположительно тогда же, когда Фар обновляет свои закладки редактора. Параметры событий: индекс первой вставляемой/удаляемой строки и количество строк, охваченных этой операцией. Forum http://forum.farmanager.com/viewtopic.php?f=8&t=6858 | ||||
Tags | No tags attached. | ||||
Build | 0 | ||||
|
Может лучше так: одно событие EE_CHANGELINES, с параметрами 1. Номер первой строки. 2. Количество строк до операции. 3. Количество строк после операции. Резон: операция замена блока из N строк на блок из M строк. |
|
Да, это, наверное, лучше. Но внутри это, возможно, будет проще реализовать в 2 шага-события удалить Х1 строк, вставить Х2 строк. Иными словами - и так, и так можно достичь желаемого результата. Как удобнее разработчикам, так пусть и будет. |
|
Но EE_CHANGELINES подход может быть весь эффективнее, да. Так что если все равно, то лучше этим путем пойти, конечно. |
|
На форуме от HaRT впрочем и другой подход прозвучал. Ориентироваться именно на подход с полноценными закладками (как в Фаре, т.е. с позицией с строке и с учетом сдвижек в строке). Тогда событие должно быть типа EE_CHANGE и описывать регион до и после ("от и до" до и после). RegionType (rectangular or stream) + LineTopBefore, ColumnLeftBefore, LineBottomBefore, ColumnRightBefore + LineTopAfter, ColumnLeftAfter, LineBottomAfter, ColumnRightAfter (впрочем, Left Top возможно всегда один и тот же) Такое событие позволит плагинам все сдвижки своих "закладок" учесть. Но если это слишком сложно и потому вообще не будет сделано, но лучше остановиться хотя бы на простом варианте со строками. |
|
Думаю, можно закрывать, ибо 3.0.2442 все реализует практически, как предлагалось. А я уже реализовал обновление брекпойнтов, как и собирался с этой фичей, то есть все в целом прекрасно работает. Тормозов я не вижу (было некоторое опасение). Есть шероховатости с тем, что Фар иногда посылает неожиданные номера строк в событие EE_CHANGE, ну что ж, селяви... это можно потом отдельной темой открыть, пока и так сойдет. Спасибо zg за полезную фичу. |
Date Modified | Username | Field | Change |
---|---|---|---|
2012-01-12 11:21 | NightRoman | New Issue | |
2012-01-12 11:28 | max rusov | Note Added: 0008387 | |
2012-01-12 11:40 | NightRoman | Note Added: 0008388 | |
2012-01-12 11:43 | NightRoman | Note Added: 0008389 | |
2012-01-13 11:14 | NightRoman | Note Added: 0008411 | |
2012-02-07 13:00 | NightRoman | Note Added: 0008548 | |
2012-02-07 13:00 | NightRoman | Status | new => resolved |
2012-04-26 07:56 | vskirdin | Build | => 0 |
2012-04-26 07:56 | vskirdin | Status | resolved => closed |
2012-04-26 07:56 | vskirdin | Assigned To | => zg |
2012-04-26 07:56 | vskirdin | Resolution | open => fixed |
2013-02-03 00:33 | alexy | Severity | minor => feature |