DI_MEMOEDIT

Разработка Far.
Shmuel
Posts: 7217
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 627 times

DI_MEMOEDIT

Post by Shmuel »

Latest post of the previous page:

  1. Нахожусь в процессе продумывания API, есть разные варианты, пока ещё не пришёл к окончательному.
    (В far2l сделали простейший API, я его не стал перетягивать).
    Это должно занять некоторое время.
  2. Я перетянул это в far2m "как есть", и в процессе перетягивания, вникал в реализацию только частично.
    Насчёт синего фона, полагаю, что так было задумано, но возможно, что это управляемо (ещё раз - пока не было времени во всём разбираться).
User avatar
HaRT
Moderator
Posts: 11417
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 265 times
Been thanked: 412 times

DI_MEMOEDIT

Post by HaRT »

Т.е. поддержание и развитие идеи редакторов не на всё окно де-факто решили похоронить?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

DI_MEMOEDIT

Post by zg »

HaRT wrote: Tue 03 Feb, 2026 01:50Т.е. поддержание и развитие идеи редакторов не на всё окно де-факто решили похоронить?
а какие проблемы с редактором не на всё окно?
User avatar
HaRT
Moderator
Posts: 11417
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 265 times
Been thanked: 412 times

DI_MEMOEDIT

Post by HaRT »

zg wrote: Tue 03 Feb, 2026 03:05 какие проблемы с редактором не на всё окно?
Надеюсь, что в свете недавних изменений API для раскраски в редакторе при включенных номерах строк (что должно помочь и в редакторе не на всё окно), проблема остаётся только в плагинах, которые эти API используют не вполне правильно.
Я же имел в виду, что для ввода многострочного текста в диалогах, вероятно, можно было бы использовать редакторы (возможно, доработав). А реализованный DI_MEMOEDIT по сути представляет собой сильно урезанный и сильно упрощённый редактор с независимым API. Я предполагаю, что если бы традиционный редактор был доработан для использования в диалогах, то DI_MEMOEDIT не понадобился бы. А теперь мотивов для доработки будет ещё меньше, чем прежде.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14547
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 508 times
Contact:

DI_MEMOEDIT

Post by John Doe »

HaRT wrote: Tue 03 Feb, 2026 04:02 А реализованный DI_MEMOEDIT по сути представляет собой сильно урезанный и сильно упрощённый редактор с независимым API. Я предполагаю, что если бы традиционный редактор был доработан для использования в диалогах, то DI_MEMOEDIT не понадобился бы.
  1. Реализован пока что только под Линукс.
  2. Насколько я понимаю, прочитав тему с начала, MEMOEDIT реализован поверх вполне себе полноценного редактора, но не обременённого файловыми функциями, строками состояния и функциональных клавиш. И потенциально можно использовать апи редактора.
  3. "Традиционный" FileEditor основан на том же Editor, что и MemoEdit. И "доработать" его для использования в диалогах означало бы отбросить всё что привнёс FileEditor, т.е. по сути вернуться к Editor. Что похоже и сделано.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 7217
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 627 times

DI_MEMOEDIT

Post by Shmuel »

John Doe wrote: Mon 02 Feb, 2026 23:19 Планируется ли возможность управлять этим редакторными функциями?
Уже есть.
John Doe wrote: Mon 02 Feb, 2026 23:19 То что пустые строки имеют синий фон это баг или так задумано?
Это так задумано, но можно переопределить в диалоге плагина или макроса.
Также работает подсветка синтаксиса, но пока это не совсем штатная фича (нужно подсунуть плагину подсветки фейковое имя файла, либо указать синтаксис в 1-й строке).
User avatar
John Doe
Бюрократ
Posts: 14547
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 508 times
Contact:

DI_MEMOEDIT

Post by John Doe »

Shmuel wrote: Thu 05 Feb, 2026 17:50Уже есть.
Нельзя ли поподробнее какие конкретно решения были приняты (или планируются)?
Можно ли будет вызывать редакторные макросы (и плагины по F11), и как они поймут с чем имеют дело?
Если MEMOEDIT не образует окна, то где взять EditorID для управления?
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 7217
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 627 times

DI_MEMOEDIT

Post by Shmuel »

John Doe wrote: Thu 05 Feb, 2026 21:00 Если MEMOEDIT не образует окна, то где взять EditorID для управления?
Вот это уже сделано.
DM_GETMEMOEDITID: Param1: dialog item position (1-based) Result: integer on success, *false* on failure Note: the returned value can be used as EditorID in editor.xxx functions
Что касается остальных вопросов, пока ещё не решены.
User avatar
John Doe
Бюрократ
Posts: 14547
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 508 times
Contact:

DI_MEMOEDIT

Post by John Doe »

Некоторые мысли по поводу.
  • Если плагину надо получать редакторные события из MEMOEDIT своего диалога, то он должен экспортировать ProcessEditorEvent, и фильтровать собственный редактор по Id, который ему следует получить вызвав DM_GETMEMOEDITID в DN_INITDIALOG.
    Более удобной альтернативой было бы передавать ProcessEditorEvent как свойство MEMOEDIT. Или хотя бы в DialogInit.
  • В EditorInfo сейчас передаётся фиктивное имя, что разумно, для совместимости с произвольными редакторными плагинами.
    Его можно задать в свойствах MEMOEDIT?
    • Но как отличить MEMOEDIT от настоящего редактора?
      Возможно стоит добавить в структуру Id диалога?
  • Полагаю MEMOEDIT нет смысла управлять через DM_GET-/DM_SETEDITPOSITION, и они не реализованы?
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14547
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 508 times
Contact:

DI_MEMOEDIT

Post by John Doe »

В текущей реализации MEMOEDIT "запирает" курсор внутри себя, т.е. например находясь в первой строке и нажав Up не перейдёшь на предыдущий элемент диалога.
https://t.me/FarManager — Telegram чат
Shmuel
Posts: 7217
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 627 times

DI_MEMOEDIT

Post by Shmuel »

Для переходов работают Tab и ShiftTab.
Лично я предпочёл бы этим ограничиться, чтобы поведение было больше редакторным, а не диалоговым.
А то ещё потребуется по Down на последней строке переходить на следующий элемент диалога.
Это моё субъективное мнение.
User avatar
John Doe
Бюрократ
Posts: 14547
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 508 times
Contact:

DI_MEMOEDIT

Post by John Doe »

Shmuel wrote: Sun 08 Feb, 2026 15:01 А то ещё потребуется по Down на последней строке переходить на следующий элемент диалога.
Да, почему нет.
Контрол переделали на MEMOEDIT, он стал намного удобнее за счёт полноценной связи строк.
Но в остальном ведь до переделки его поведение всех устраивало (например в UserMenu).
Т.е. это изменение не будет соответствовать ожиданиям пользователя.

Однако MEMOEDIT всё-таки отличается от прежнего, и может обладать скроллингом.
Поэтому возможно поведение изменено заслуженно, я лично не уверен, потому и обращаю внимание всех заинтересованных.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11417
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 265 times
Been thanked: 412 times

DI_MEMOEDIT

Post by HaRT »

Shmuel wrote: Sun 08 Feb, 2026 15:01 Лично я предпочёл бы этим ограничиться, чтобы поведение было больше редакторным, а не диалоговым.
Присоединяюсь (в надежде, что когда-нибудь реализация докатится и до обычного Фара).
Впрочем, если реализовать так, чтобы переход по Up/Down из первой/последней строки к предыдущему/следующему контролу происходил только при уникальном (т.е. не автоповторённом) нажатии, возражать не стану.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Shmuel
Posts: 7217
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 627 times

DI_MEMOEDIT

Post by Shmuel »

Появился первый плагин, основанный на MemoEdit.
Попробовал, понравилось. Наверное повторю в виде макроса.
User avatar
John Doe
Бюрократ
Posts: 14547
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 508 times
Contact:

DI_MEMOEDIT

Post by John Doe »

Коротко: это простой плагин «Memo» для far2l/Far Manager — мультистраничный текстовый блокнот с 10 «мемо»-страницами, которые автоматически сохраняются в файлы и между запусками восстанавливаются.

Что делает (функциональность для пользователя)

https://t.me/FarManager — Telegram чат
Shmuel
Posts: 7217
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 48 times
Been thanked: 627 times

DI_MEMOEDIT

Post by Shmuel »

Shmuel wrote: Fri 27 Feb, 2026 00:28 Наверное повторю в виде макроса.
Повторил.
Получилось в 2.1 раза меньше строк, чем в оригинале и компилировать не надо :)
Last edited by Shmuel on Thu 05 Mar, 2026 22:21, edited 2 times in total.
Post Reply

Return to “Development”