View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002572 | Wishes | Macro | public | 2014-01-23 10:20 | 2014-01-25 18:03 |
Reporter | JohnDoe | Assigned To | shmuel | ||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Product Version | 3.0 | ||||
Fixed in Version | 3.0 | ||||
Summary | 0002572: far.MakeMenuItems: добавлять в таблицу не только строковое представление, но и сами объекты | ||||
Description | В настоящий момент каждый элемент таблицы содержит { text=<string> }. Хочется чтобы также добавлялся и сам объект: { text=<string>, obj=select(i,...) } Это расширит сферу применения функции, т.к. возвращаемое значение будет содержать всё необходимое для полноценной обработки. | ||||
Tags | No tags attached. | ||||
Build | LMb274 | ||||
|
Связанное пожелание: 0002573 |
|
Опять-таки (как в 0002573), в случае многострочных элементов, добавлять ли объект в таблицу представления _каждой_ строки данного элемента? Оба этих предложения (0002573 и данное) выглядят логично, но наличие многострочных элементов портит картину. |
|
Мне кажется не портит, и тут вполне логично возвращать весь объект, а не выбранную строку. А если нужна именно выбранная строка, то она есть в поле text, плюс её номер (в большинстве случаев) находится в Pos. P.S. Если вы иного мнения, то давайте добавим ещё одно поле line. |
|
> тут вполне логично возвращать весь объект, а не выбранную строку. far.MakeMenuItems возвращает не строку, а список строк, помещённых в таблицы. И вы не ответили на мой вопрос. |
|
Отвечаю на вопрос: добавлять, обязательно. far.MakeMenuItems(1,"2","3\n4") Должна вернуть { {text="1| 1",obj=1}, {text="2| 2",obj="2"}, {text="3| 3",obj="3\n4"}, {text=" | 4",obj="3\n4"} } P.S. Обосновать? |
|
Меня интересует полезность этого, то-есть пример применения. |
|
Начнём с того, что такое эти многострочные элементы? Это просто хитрость, позволяющая наглядно отобразить многострочный текст. Т.е. по смыслу все эти строки представляют собой единый элемент, а разбит на части он лишь по причинам технического характера. Замысел данного тикета в том, чтобы получить быстрый способ выбора элемента из списка *разнотипных* значений. Многострочный текст тут - одно значение, и как оно разбито на айтемы (и разбито ли вообще) нас не интересует. По большому счёту мы даже не знаем многострочный ли там текст. Поэтому неважно какой из айтемов этого (потенциально) многострочного значения выбран, на выходе мы хотим видеть исходное значение. Никакого альтернативного решения я лично не вижу. Добавлять объект только в первую строку значения? Бессмысленно. В качестве объекта рассматривать выбранную строку? Бессмысленно (точнее это уже есть и без тикета) |
|
Не, это всё мне и так было понятно. Требуется "жизненный", не гипотетический пример использования far.MakeMenuItems или far.Show с новой функциональностью, демонстрирующий их полезность. |
|
local item = far.Show(some_function_call()) while (item and type(item.obj)=="table") do item = far.Show(unpack(item.obj)) end |
|
Этим примером проиллюстрировано 2 применения - выбор из значений возвращаемых функцией - выбор из массива Мне это нужно в нескольких скриптах. Возможно вы посчитаете это нетипичным использованием. Но как говорится - моё дело предложить... |
|
А может вместо 'obj' лучше 'arg' ? |
|
На ваше усмотрение. Почему бы и нет |
|
LuaMacro build 274. |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-01-23 10:20 | JohnDoe | New Issue | |
2014-01-23 10:31 | JohnDoe | Note Added: 0011741 | |
2014-01-24 10:48 | shmuel | Note Added: 0011764 | |
2014-01-24 10:53 | JohnDoe | Note Added: 0011765 | |
2014-01-24 10:56 | JohnDoe | Note Edited: 0011765 | |
2014-01-24 10:57 | JohnDoe | Note Edited: 0011765 | |
2014-01-24 10:58 | shmuel | Note Added: 0011766 | |
2014-01-24 11:06 | JohnDoe | Note Added: 0011767 | |
2014-01-24 11:07 | JohnDoe | Note Edited: 0011767 | |
2014-01-24 11:08 | JohnDoe | Note Edited: 0011767 | |
2014-01-24 11:10 | shmuel | Note Added: 0011768 | |
2014-01-24 12:46 | JohnDoe | Note Added: 0011769 | |
2014-01-24 12:52 | shmuel | Note Added: 0011770 | |
2014-01-24 12:57 | JohnDoe | Note Added: 0011771 | |
2014-01-24 13:00 | JohnDoe | Note Edited: 0011771 | |
2014-01-24 13:02 | JohnDoe | Note Edited: 0011771 | |
2014-01-24 14:45 | JohnDoe | Note Edited: 0011771 | |
2014-01-24 14:46 | JohnDoe | Note Edited: 0011771 | |
2014-01-24 14:46 | JohnDoe | Note Edited: 0011771 | |
2014-01-24 14:46 | JohnDoe | Note Added: 0011772 | |
2014-01-24 15:31 | shmuel | Note Added: 0011773 | |
2014-01-24 17:05 | JohnDoe | Note Added: 0011774 | |
2014-01-24 18:24 | shmuel | Note Added: 0011775 | |
2014-01-24 18:24 | shmuel | Assigned To | => shmuel |
2014-01-24 18:24 | shmuel | Status | new => feedback |
2014-01-25 13:13 | JohnDoe | Status | feedback => resolved |
2014-01-25 18:03 | shmuel | Build | => LMb274 |
2014-01-25 18:03 | shmuel | Status | resolved => closed |
2014-01-25 18:03 | shmuel | Resolution | open => fixed |
2014-01-25 18:03 | shmuel | Fixed in Version | => 3.0 |