Форум » [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: alkresin текстовый файл из архива hbedit.ini tablen=3 tabtospaces=Off последняя колонка все ровненько, как и в Far (выравнивание сделано TAB символом) tabtospaces=On последняя колонка "скачет" начало слов, нет выравнивания при замене TAB пробелами. Если выровнять последнюю колонку (несколько строк), добавлением пробелов и посмотреть полученное в Far, то колонка скачет в нем. Может добавить еще режим физической замены TAB на пробелы (не сохраняя TAB) ?

SergKis: PS Если верт. выделенный блок больше, чем строк окна hbedit и нажимаем <- (переход в начало выделения), курсор уходит в начало выд. блока, а отображение остается прежним и курсора не видно - "потеряли". Перемещения стрелками покажет курсор только, когда он "вернется" по координатам на тек. отображение. Notepad3 возвращает курсор в начало выделенного блока и отображает окно как было при начале выделения.

alkresin: SergKis пишет: tabtospaces=Off ... tabtospaces=On ... У меня там не вполне корректно сделано преобразование tab to spaces и обратно - я просто заменяю tab на tablen пробелов. Это правильно работает для начала строки, а середине надо менять на значение щт 1 до tablen, в зависимости от положения tab. Надо будет поправить как-нибудь. Может добавить еще режим физической замены TAB на пробелы (не сохраняя TAB) ? Добавил опцию в диалог сохранения. Если верт. выделенный блок больше, чем строк окна hbedit и нажимаем < Исправил.


SergKis: alkresin hbedit от 12.08.2019 Список по Alt+L получается в 2х вариантах 1. Типа "маленький", кол-во функций от 0- t (есть второй экран списка) нумерация слева и нет возможности поиска по имени, надо высматривать листая нужную функцию 2. Нормальный вариант с поиском по имени Что сделать, что бы всегда был 2ой вариант ?

SergKis: PS Странно работает подсветка многострочного, создаваемого блока /* ... */ иногда засвечивает сразу после /*, но чаще нет после */ не засвечивает блок, надо сделать новые строки. иногда после ввода новой строки засветка срабатывает, иногда только после второй новой строки

alkresin: Обновлен hbedit. Кое-какие исправления, в т.ч. - подсветка многострочных комментариев. Список функций теперь выводится с опцией поиска при количестве ф-й больше трех.

SergKis: alkresin Если строка длинная и выходит за пределы окна, к примеру, на 10 символов и жмем Enter (new line), то курсор убегает в первые позиции и "теряется" из показа, т.к. мы остались на отображении конца строки. Надо, наверно, переместить показ.

SergKis: PS Можно сделать установку в ini для показа в заголовке окна (где hbedit) рабочий каталог (путь) загрузки 1го файла ? Что бы различать версии (по каталогам) одного и того же файла.

alkresin: SergKis пишет: Можно сделать установку в ini для показа в заголовке окна (где hbedit) рабочий каталог (путь) загрузки 1го файла ? Может, лучше менять режим отображения имени файла по щелчку по нему - тогда он будет изменен в конкретном окне и тогда, когда это надо?

alkresin: Обновлен Hbedit. Кое-какие исправления. Добавлен плагин для интеграции Git и Fossil - можно смотреть историю изменения файла, извлечь любую его версию, посмотреть изменения (diff) в специальном окне. Добавлен режим сравнения файлов. Это можно сделать двумя способами: 1) Открыть первый файл, потом при открытии второго указать опцию Diff. 2) hbedit -d file1 file2 В этом режиме можно переключать способ отображения во втором окне - только diff, full (весь текст с - и +), Version From (исходная версия файла).

SergKis: alkresin пишет Может, лучше менять режим отображения имени файла по щелчку по нему - тогда он будет изменен в конкретном окне и тогда, когда это надо? Не совсем удобно, имя файла одинаковое, разные пути и в полске где F9-Menu ... надо высматривать. В title окна удобнее смотреть. Повесил в Far hbedit на Alt+F4 и к примеру, смотрю TsBrowse.prg в 3х каталогах (версиях) одновременно в разных окнах 1 - C:MiniGui\SOURCE\TsBrowse\TsBrowse.prg // тек. версия 2 - C:MiniGui_1906_2\SOURCE\TsBrowse\TsBrowse.prg // предыдущая 3 - C:MiniGui_207\SOURCE\TsBrowse\TsBrowse.prg // рабочая версия т.е. есть в каждом окне текущий каталог, вот его бы и видеть в Title, т.к. взятые др. файлы в это окно так же будут из тек. каталога. Можно в команду запуска добавить параметр, не в ini. hbedit.exe -dir к примеру

SergKis: PS А щелкнуть по режиму <Edit> и сделать его <ReadOnly> (комбинация клавиш), было бы хорошо, т.к. из 3х править один надо, как правило.

SergKis: alkresin Вопрос по переназначению клавиш. Как переназначить для окна ? Ctrl-w, w=>Ctrl-1 Ctrl-w, s=>Ctrl-2 Ctrl-w, v=>Ctrl-3 в ini стоит keymap=Ctrl-N=>Shift-F4,Ctrl-O=>Ctrl-F4,Ctrl-F=>F7,Ctrl-G=>Alt-F8,Ctrl-R=>Ctrl-F7 и дописать в keymap

alkresin: Ok, сделаю в ini. А щелкнуть по режиму <Edit> и сделать его <ReadOnly> Что-то не нравится мне такой вариант. Вопрос по переназначению клавиш. Сейчас на клавишу можно повесить только одну клавишу, но можно будет сделать и для сочетания клавиш.

SergKis: alkresin пишет Что-то не нравится мне такой вариант. Это, скорее, образно " щелкнуть по режиму <Edit> и сделать его <ReadOnly>", лучше клавиши и меню. Сейчас перевести из Edit в ReadOnly загруженный текст нет возможности и попадался, что начинаешь править не тот текст.

SergKis: PS Команды можно добавить в меню "Windows" с клавишами, например Ctrl-w, r - ReadOnly Ctrl-w, e - Edit

SergKis: alkresin При вставке блока строк Ctrl+V в нижнюю часть окна hbedit, происходит передергивание показа после операции - курсор и строки показа перепрыгивают в верхнюю часть окна. Можно оставить показ в тех же координатах, как было перед вставкой (rкак в Far, к примеру) ?

alkresin: SergKis пишет: Можно оставить показ в тех же координатах Если курсор после вставки остается в пределах экрана - посмотрю.

alkresin: Обновлен hbedit. Поправлены ошибки. Изменен заголовок в окне сравнения. Добавлена возможность сравнивать фрагменты файлов. Для этого надо выделить и поместить в clipboard первый фрагмент, затем выделить второй, вызвать меню (F9 или m) и выбрать опцию "Compare" - появятся два новых окна с результатом сравнения. В ini добавлена опция pathinhead - если On, то в заголовке отображается полный путь к файлу. Как и некоторые др. опции, это можно поменять в командном режиме с помощью set pathinhead.

SergKis: alkresin До этой версии не собирал свою, использовал текущую hbedit.exe сp=RU1251 Пересобрал и у себя сделал для vwt так [pre2] hbedit.prg ------------ #include "hbgtinfo.ch" REQUEST HB_CODEPAGE_LV866 REQUEST MSGBOX, MSGINFO, MSGYESNO, MSGYESNOCANCEL, MESSAGEBOXINDIRECT #define GTWVT 1 ... #ifdef GTWVT ANNOUNCE HB_GTSYS REQUEST HB_GT_WVT REQUEST HB_GT_WVT_DEFAULT * ------------------------------------ hb_gtInfo( HB_GTI_CODEPAGE, 866 ) hb_cdpSelect( "LV866" ) * ------------------------------------ bkInit( cIniName ) #endif ... bkInit.prg ----------- #include "hbgtinfo.ch" FUNCTION bkInit( cIniName ) Local cPath := hb_curDrive() + ":\" + Curdir() + '\' Local cName := hb_ProgName(), cTmp Local cExe := Lower(hb_fnameName(cName)) LOCAL cCapt := cExe cTmp := Lower(gIniC7(cIniName, [OPTIONS], 'PathInHead', 'off')) If 'off' $ cTmp cCapt := cPath + '...' + space(2) + '-' + space(2) + cExe EndIf CLS hb_gtInfo( HB_GTI_WINTITLE, cCapt ) RETURN Nil [/pre2] Вроде нормальненько.



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