А возможна ли вообще свёртка строк в редакторе?

Хотите говорить о Far и не знаете, куда обратиться?
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

А возможна ли вообще свёртка строк в редакторе?

Post by John Doe »

Собственно речь о целом наборе разных, но связанных функциях:
  • Outlining (несколько строк -> одна строка)
  • Преенос строк (одна строка -> несколько строк)
  • Фильтр строк
  • ...
И любые другие функции, реализация которых предполагает неравенство понятий "строка" и "видимая строка".

Когда-то было сказано:
DrKnS wrote: 3. В фар можно и нужно внести нормальный word wrap, а не подпорки для костыльных плагинов.
И вот гложут меня сомнения по этому поводу.
Возможно ли внести нормальный word wrap не поломав при этом половину существующих плагинов?

Какиме же индексами будут оперировать функции редактора? Реальными или видимыми? В обоих случаях будут проблемы.
Не вижу как можно было бы разрулить ситуацию в рамках имеющегося АПИ.
Идеи?
User avatar
HaRT
Moderator
Posts: 10858
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

А возможна ли вообще свёртка строк в редакторе?

Post by HaRT »

Терминологическое уточнение: под свёрткой тут очевидно имеется в виду outlining (collapse/expand), а под переносом — word wrap.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

А возможна ли вообще свёртка строк в редакторе?

Post by John Doe »

HaRT wrote: outlining (collapse/expand)
А как это недвусмысленно сказать по-русски? (для ясности заменил пока на английский эквивалент)
User avatar
HaRT
Moderator
Posts: 10858
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

А возможна ли вообще свёртка строк в редакторе?

Post by HaRT »

John Doe wrote: как это недвусмысленно сказать по-русски?
Майкрософт предлагает „структура“, а отдельные кусочки — „сегменты“, но это хрен кто поймёт, мне кажется.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

А возможна ли вообще свёртка строк в редакторе?

Post by DrKnS »

John Doe wrote: Какиме же индексами будут оперировать функции редактора? Реальными или видимыми?
Функции редактора оперируют с номерами строк и позициями в строках.
А где и как именно эти строки отображаются - не имеет ни малейшего значения.
User avatar
HaRT
Moderator
Posts: 10858
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

А возможна ли вообще свёртка строк в редакторе?

Post by HaRT »

DrKnS wrote: Функции редактора оперируют с номерами строк и позициями в строках.
А где и как именно эти строки отображаются - не имеет ни малейшего значения.
Если бы это было так, не было бы необходимости различения Pos<—>RealPos.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

А возможна ли вообще свёртка строк в редакторе?

Post by DrKnS »

Ну так оно же уже есть. Как и LeftPos и TopScreenLine.
Если ваш гипотетический плагин всё это учитывает, то он не поломается.
За исключением, разве что, тех, кто сам обрабатывает мышь и рисует меню в позиции курсора, например.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

А возможна ли вообще свёртка строк в редакторе?

Post by John Doe »

DrKnS wrote: Если ваш гипотетический плагин всё это учитывает, то он не поломается.
Во-первых, речь не о гипотетических, о реальных, всех что были написаны до нашего гипотетического расширения апи. Они поломаются.
А для новых да, можно и новое апи выкатить.
DrKnS wrote: Ну так оно же уже есть. Как и LeftPos и TopScreenLine.
TopScreenLine есть. А Bottom (и всё остальное) всегда приходилось высчитывать, на основании TopScreenLine и WindowSizeY (CurLine сюда же).
И вот этого уже выходит недостаточно.

Или другая задача: работать в вертикальным выделением. Как теперь это сделать? Имеющегося апи недостаточно, чтобы описать многострочную свёрнутую строку.
User avatar
HaRT
Moderator
Posts: 10858
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

А возможна ли вообще свёртка строк в редакторе?

Post by HaRT »

DrKnS wrote: Если ваш гипотетический плагин всё это учитывает, то он не поломается.
Текущий API подразумевает, что одна строка в файле соответствует одной экранной. Соотношение «один ко многим» не предусмотрено.
К счастью, и EditorConvertPos, и EditorGetString расширяемы.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

Return to “Обсуждение Far Manager”