Форум » [x]Harbour » Hbedit - текстовый редактор » Ответить

Hbedit - текстовый редактор

alkresin: Довел, наконец, свой текстовый редактор до того состояния, когда можно показать его общественности. Я начал писать его сначала как замену Memoedit(), но потом увлекся) и решил сделать что-то помощнее, как нормальный редактор для повседневного использования. Мне приходится в течение дня работать и под виндами, и под Линуксом - использую Far и mc, соответственно. Иногда Vim - но к некоторым вещам в нем так и не привык. Но хочется иметь что-то одно для всех платформ - не слишком навороченный, но чтоб было все что надо. Сегодня выложил на github: https://github.com/alkresin/hbedit. F9 (или мышкой по соответствующей надписи) - главное меню. В ближайших планах: - Lower/Upper для utf8 - новые режимы подсветки ( директивы препроцессора и пр. ) - скобки - подсветка парных и переход на парные - undo - решить проблемы с табуляцие - сохранение истории открытых файлов, поиска - написать help (hbedit.help) Если есть идеи для реализации - буду рад услышать.

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

SergKis: PS Вырезка из ini Notepad3 по типам [pre2] [Default Text] [2nd Default Text] [ANSI Art] [Apache Config Files] [Assembly Script] [AutoHotkey Script] [AutoHotkey_L Script] [AutoIt3 Script] [AviSynth Script] [Awk Script] [Batch Files] [C# Source Code] [C/C++ Source Code] [Cmake Script] [Coffeescript] [Configuration Files] [CSS Style Sheets] [D Source Code] [Diff Files] [Go Source Code] [Inno Setup Script] [Java Source Code] [JavaScript] [HARBOUR Source Code] Default=size:+2 [JSON] [LaTeX Files] [Lua Script] [Makefiles] [Markdown] [MATLAB] [Nim Source Code] [NSIS Script] [Pascal Source Code] [Perl Script] [PowerShell Script] [Python Script] [Registry Files] [Resource Script] [R-S-SPlus Statistics Code] [Ruby Script] [Rust Source Code] [Shell Script] [SQL Query] [Tcl Script] [VBScript] [VHDL] [Visual Basic] [Web Source Code] [XML Document] [YAML] [/pre2]

SergKis: alkresin пишет Если вам так нужно свое постоянное меню, то есть еще вот такое решение Меню и строку состояния как в дос в wvt не используем. Уже писал, товарищ по работе, меняет wvt добавляя main menu и StatusBar, т.е. вся площадь окна - рабочая область. Исп. ф-ии (это еще hb 2.0) wvt_CreateMenu( [lMain] ) -> hMenu ... wvt_AppendMenu(hMenu, cCaption, nKey, [cFlags] ) Добавить пункт в меню cCaption - Текст меню В тексте работает символ Chr(9) nKey - Этот код будет послан в очередь Наш обработчик ловит nKey и запускает из массива или hash по ключу блок кода. Я не работаю с wvt давно, подзабыл детали и пример не нашел, убрал куда то Хорошо бы вашему обработчику послать сообщение, что выполнить (список всех исполнителей ?) cFlag - строка символов в любой комбинации регистр не имеет значение 'B' - Bold выделеный пункт меню 'C' - Cheked Помечен галочкой 'D' - Disable Серый не работающий 'N' - Начинается новая колонка 'H' - При первом открытии меню курсор стоит на этой позиции Еще условия : - надо кодировку LV866 (EN,LV,RU) ее нет в hb standart - hb 3.2 unicode с LV866 сделан под vc2017 (не переведены еще часть используемых C lib) - hbedit тексты должны быть utf8 + все ini (BOM) + работа с ними внутри utf8 - все меню hbedit, переведены в main menu Что бы браться за это для hbedit, надо очень веские причины, т.к. сейчас Notepad3 с LV866, клавиши и режимы приведены "нормальным" действиям. Изменения Notepad3 только новой пересборкой, но особо уже ничего не надо, так по мелочи есть по покраске, наберется, пересоберется

SergKis: PS Вспомнил, свой обработчик, это установленные SetKey( nKey, {|| ...})


Vlad04: По-моему вы пытаетесь скрестить ежа и ужа. Как известно редакторы предназначенные для Юзеров ( просмотр текста, печать и ещё что-то) отличаются по функционалу от редакторов предназначенных для написания кода. А судя по вводной в начале темы alkresin и собирался создать ВТОРОЙ - не слишком навороченный, но чтоб было все что надо. . Но SergKis пытается из него сделать редактор для ПОЛЬЗОВАТЕЛЕЙ, при чем не сильно продвинутых Вот пользователю это совсем не нужно (даже запоминать не будет, будет звонить). Ему надо кнопку, tooltip, меню ...

SergKis: Vlad04 пишет По-моему вы пытаетесь скрестить ежа и ужа Почитайте самое начало темы, разговор о сделанном MemoEdit() и на его базе, более мощное hbedit, который по смыслу полностью совпадает с Notepad3 (C вариант) и Far. Если с Far понятно, "вас тут много, а я один - делайте плагины, когда нужно, чего нет". В hbedit такая метода мне не понравилась, для отладки нового алгоритма - хорошо, для работы повседневной, не очень, по мне. В отличии от notepad3, hbedit (MemoEdit()) можно встроить в прогу, вот я и прикидывал как это сделать. Консольный hbedit => wwt hbedit, но вариант похожий на windows По поводу вопросов по "Вот пользователю это совсем не нужно ..." Интерфейсов консольных и wvt в стиле clipper не осталось, всем надо и понимают что и как для windows интерфейса. Меню hbedit после клика F9 вызовет полное недоумение у нынешних пользователей, а нажать клавишу F9 большая половина не поймет ... и будут звонить - "как получить что то ... вы показывали". Это почти не утрировано.

alkresin: Vlad04 пишет: Но SergKis пытается из него сделать редактор для ПОЛЬЗОВАТЕЛЕЙ Проблема в том, что ему нужен, как я понимаю, не просто редактор для пользователей, а программа на базе редактора, с функциями, редактору общего назначения не свойственными, специализированная для нужд конкретного клиента. В принципе, эта задача вполне решаема с помощью плагинов. SergKis пишет: Консольный hbedit => wwt hbedit, но вариант похожий на windows С помощью своего плагина - пожалуйста. Редактор мультиплатформенный, консольный (чтобы и по ssh можно было работать), поэтому включать в основную программу чисто виндовские элнменты - не вариант. Интерфейсов консольных и wvt в стиле clipper не осталось, ... Меню hbedit после клика F9 вызовет полное недоумение у нынешних пользователей Вы явно недооцениваете пользователей. Буквально на прошлой недели я поставил небольшую консольную программу на завод в маленьком поселке - как раз со старым Клипперовским меню, без поддержки мыши. Первой реакцией было недоумение - на что нажимать, как работать, но после 5-минутной консультации по телефону все стало на свои места. Неделю уже работают, никаких вопросов.

alkresin: Еще раз обновил редактор. Кое-что исправлено, добавлен плагин - список функций для С. Добавлена возможность задавать в ini цвета подсветки и для конкретного языка.

SergKis: alkresin пишет Вы явно недооцениваете пользователей. Реальность в Латвии такова, что остались только мы (два динозавра), пишущих на Clipper\Harbour Проблема в том, что ему нужен, как я понимаю, не просто редактор для пользователей, а программа на базе редактора, с функциями, редактору общего назначения не свойственными, специализированная для нужд конкретного клиента. В принципе не нужна в предлагаемом виде, все на плагинах (Far достаточно со своими, но и им давно не пользуюсь, только в качестве источника для Clipboard). Notepad3 полностью обеспечивает работу с мемо полями и текстами док., шаблонами (вместо worda, т.к. нужна лицензия). Его запустил с ini, изменил размеры окна до нужного и позицию - сохранилось все в ini, след. запуск с ini размещает где хотели. Таких несколько ini обеспечивают одновременную работу с несколькими карточками. Это аналог работы в окне STANDARD с EDITBOX. Title окна задается (номер карточки или еще что) /t Nr.1234567. по кнопке можно запустить распечатку файла немедленно или с запросом свойств печати. Кстати, кодировка LV866 в нем соответствует RU866 и устанавливается в меню выбором кодировки 866. Лат. буквы в местах псевдографики. Можно попробовать

SergKis: PS для prg, кроме подсветки (hb+hmg) есть автозавершение и режим уст. длинной строки с прорисовкой линии, в этом режиме до линии добавляются строки пробелами и курсор не прыгает (это уже наши правки), при добавлении новых строк это ломается, но не смертельно (F2, F5) исправляет. Линия в 0 - обычный режим Notepad3

SergKis: alkresin При большом списке функций, методов, ... (кончились цифры+буквы у пунктов FMenu), просится - сортировка списка по наименованию - поиск в списке по наименованию планируется ли такое ?

alkresin: SergKis пишет: планируется ли такое ? Может быть. Пока не думал.

alkresin: Что-то странное в этом апрельском воздухе)... Зашел сегодня на Harbour Users посмотреть, чем народ дышит, а там в апреле среди прочих два сообщения о разработке консольного текстового редактора, одно из них - от Линареса: [url=https://groups.google.com/forum/#!topic/harbour-users/gXH7fwucSAA]https://groups.google.com/forum/#!topic/harbour-users/gXH7fwucSAA[/url] [url=https://groups.google.com/forum/#!topic/harbour-users/gBhBpgl13LA]https://groups.google.com/forum/#!topic/harbour-users/gBhBpgl13LA[/url] А вы говорите, "интерфейсов консольных и wvt в стиле clipper не осталось". Новый тренд пошел).

SergKis: alkresin пишет А вы говорите, "интерфейсов консольных и wvt в стиле clipper не осталось". Новый тренд пошел). Так это в нашей деревне. У вас Linuks (типа своя ось) должен вперед двигаться, после ограничений по windows. Потому консоль, wvt должны рулить

SergKis: alkresin пишет Может быть. Пока не думал. Для пробы взял h_tbrowse.prg из hmg, 379 entity, 15340 line

SergKis: PS Включаю в Entity кроме CLASS и END CLASS, чтобы в списке видеть, где кончаются объявления методов и их INLINE, BLOCK конструкции, для перехода в конец класса.

alkresin: Обновлен hbedit. Добавлены: кодоблок :bNew - он отрабатывает при вызове метода TEdit():New(), что позволяет выполнять свой код при открытии файла; кодоблок :bEdit - он отрабатывает перед началом редактирования (метод TEdit():Edit()) - там можно, в частности, установить свою область в окне редактора; кодоблок :bOnKey - он отрабатывает после нажатия клавиши или щелчка мышью и позволяет, таким образом, перехватывать события. '. (в режиме Vim) и Alt-'. (в режиме редактирования) - переход к месту последнего изменения. В ini добавлена подсветка .bat. Ну и кое-какие исправления.

ММК: alkresin пишет: А вы говорите, "интерфейсов консольных и wvt в стиле clipper не осталось". Новый тренд пошел). Да, ретро периодически привлекает. Вот даже еще "круче" - из DOS'а в WEB. http://forums.fivetechsupport.com/viewtopic.php?f=3&t=36990&sid=45770993eb5f74b9c7cc74dd013baec8&start=30 Что касается Линариса, то его вряд ли интересует такой редактор. Во всяком случае в FW достаточно небольших примеров включая "виндовые", что для пользователя интереснее. А все предназначенное для разработчиков плавно перетекает в среду разработки. Это уже другая песня... alkresin пишет: два сообщения о разработке консольного текстового редактора, одно из них - от Линареса: Помог человеку. Предложил вариант "подсветки" . И далее интересно ( не Линарис) - Now we may have to find a way to utilize it (hbEditor class) into something more useful.. than a mere sample

alkresin: ММК пишет: Да, ретро периодически привлекает. Вот даже еще "круче" - из DOS'а в WEB. Ретро - это MSDOS в любой упаковке, а консольный интерфейс - это не ретро, а один из способов организации интерфейса, активно использующийся наряду с графическим и сегодня, все зависит от конкретной задачи и, конечно, от вкусов пользователя. Я, например, тоже пользователь, и во многих случаях предпочитаю именно консольный интерфейс (Far, текстовые редакторы, ...). И я не один такой, тот же Vi/Vim до сих пор остается одним из самых популярных программистских (и не только) редакторов, и в последние годы его популярность даже выросла. Что касается Линариса, то его вряд ли интересует такой редактор. Во всяком случае в FW достаточно Не знаю, какой редактор использует Антонио, при случае спрошу). Но то, что он автор FW ничего не говорит о его предпочтениях, точно так же. как и то, что я - автор HwGui и др. GUI инструментов ничего не говорит о моих.

SergKis: ММК пишет А все предназначенное для разработчиков плавно перетекает в среду разработки. Это уже другая песня... Почему другая ? Я воспринял hbedit как такой элемент и стал наседать с вопросами. Для prg добавить - файл проекта (вполне пойдет his) - CmdRun для сборки модуля - Список функций (как сейчас по одному prg) по prg из файла проекта в такой схеме пройдут и др. языки Для txt групповая поиск\замена (может подходить для всех типов)

alkresin: SergKis пишет: Я воспринял hbedit как такой элемент и стал наседать с вопросами. Для prg добавить - файл проекта (вполне пойдет his) - CmdRun для сборки модуля - Список функций (как сейчас по одному prg) по prg из файла проекта Предложение интересное (только his тут ни при чем), хоть я и не помню, чтобы вы говорили об этом раньше. Можно объявить в ini новый тип файла и сделать плагин/группу плагинов для него.



полная версия страницы