Форум » [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 пишет хоть я и не помню, чтобы вы говорили об этом раньше SergKis пишет Потом, если вводятся типы файлов LANG_PRG, LANG_C,..., LANG_TXT, ... то должен быть набор свойств\функций для работы с ним. Набор должен работать в автомате - не через меню плагин (это доп. режим). Так по мне. his - это история работы с файлом или применительно к prg - это список файлов проекта, т.е. в каталоге может быть куча файлов, но файлами his раскладываются на проекты. Зачем тут писать plugin, достаточно иметь галочку, как в Far на меню F2. Нужно запустить hbedit с галочкой или именем his. В том же Far создаем несколько пунктов для проектов, с параметром file.his. Альтернативное имя пункта меню. К примеру, у меня в проекте, она берется из первой строки // ... или /* ... */ и добавляется к имени prg (без путей) Для сборки проекта надо запускать cmd, желательно именно на данный список his prg или hbmk2 с hbp Файл his это где мы были, что по списку файлов совпадает с файлом проекта. Попытка сэкономить. Конечно файл проекта лучше

alkresin: Обновлен hbedit. Теперь список нужных кодовых страниц можно определить в hbedit.ini, секция [CODEPAGES]. Доступны все кодовые страницы, поддерживаемые Harbour, список поместил в readme.md. Реализованы Lower/Upper и, соответственно, case insensitive поиск для utf8.

SergKis: alkresin переместил hbedit.exe в BIN каталог (без ini и плагинов, они в текущем, т.е. по проектам условным) 0. Плагины не подключаются 1.Запустил на текущий рабочий в котором ini и his есть - такой вариант не работает (создает в bin ini и his) 2. .\bin\hbedit -f .\hbedit.ini ... - работает (создает в bin his) 3. .hbedit.ini дописал к hbbedit. \bin\hbedit ... - работает (создает в bin his) Если hbedit.exe поместить на флешку с защитой записи или CD (portable вариант), то ...


SergKis: PS читать 0. Плагины не подключаются везде

SergKis: PPS Отключить his можно ? Никогда не использовал при работе с проектом (история совпадает с проектом). За пределы проекта работа - другой запуск (др. средства\программы)

SergKis: alkresin пишет (help) Выделив нужный текст, вы можете использовать следующие горячие клавиши: ... Del, d удалить текст; Ctrl+X надо добавить

alkresin: SergKis пишет: 0. Плагины не подключаются везде plugins/, hbedit.ini, hbedit.help должны быть в одном каталоге с hbedit.exe.

alkresin: Обновлен hbedit. Реализована замена (Search&Replace) по Ctrl-F7. В ini, секция [OPTIONS], добавлен параметр savehis: 0 - не сохранять историю, 1(по умолчанию) - сохранять в каталоге с hbedit.exe, 2 - сохранять в текущем каталоге.

SergKis: alkresin пишет plugins/, hbedit.ini, hbedit.help должны быть в одном каталоге с hbedit.exe. Но набор плагинов может быть разным функционально. Если есть в текущем каталог plugins, подключать его, нет у hbedit.exe

SergKis: PS ini и help так же может, как комплект, быть привязан к плагинам (создаются динамически) и разработкой тек. каталога

alkresin: В принципе можно проверять сначала наличие этих файлов в текущем каталоге, и, если их нет, то в базовом, хотя я не рекомендовал бы использовать такую возможность на практике слишком активно - запутаться можно.

SergKis: alkresin пишет запутаться можно. Запутаться можно и в трех соснах, а так будет гибкость и новые возможности. В Fox 2.1 не путались же

alkresin: Что касается файлов проекта, то, думаю, не надо плодить новые сущности - лучше всего использовать .hbp от hbmk2. Он кросс-платформенный, содержит всю необходимую информацию и может быть непосредственно использован для сборки.

SergKis: alkresin пишет лучше всего использовать .hbp от hbmk2. Он кросс-платформенный С этим не поспоришь. Вопрос файла проекта, т.е. список файлов в виде меню для перехода на него (загрузка для работы) Что то вроде такого Demo.prg "Main window бла бла бла " 2019.04.10 10:30:10 (last модификация+длина файла) FuncMisc1.prg "Дополнительные функции к выборке 1". 2019.04.22 23:01:45 (last модификация+длина файла) FuncMisc2.prg "Дополнительные функции к выборке 2". 2019.04.22 19:31:10 (last модификация+длина файла) ... Demo.hbp Demo.rc Demo.ini Demo.cfg ... Получать по кнопке или на входе

SergKis: PS Это оч. похоже на his по сути, т.е. открыли 1 файл, другой и т.д., набрался файл с одной стороны his, с другой список файлов проекта (в др. и не зайдешь в этом проекте). Структуру записи his расширить, сто руками заполнять, что программно, если что тов нем лишнее, зашел удалил. Для файла проекта, конечно, надо ведение, т.е. набор пунктов и т.д.

alkresin: Обновлен hbedit. Добавлена подсветка директив препроцессора, существенно пополнен набор команд Vim-режима (см.help), hbedit.ini и plugins/ теперь могут находится и в текущеи каталоге - при старте hbedit ищет их там, а потом уже в базовом каталоге.

SergKis: SergKis пишет Для файла проекта, конечно, надо ведение, т.е. набор пунктов и т.д. Для информации, от своей проги ведения проектов, для MiniGui [pre2] [APP] Utf8=No Title=HMG 19.01 Notepad=\BK32\Notepad3.exe ;AkelPad=\BK32\BIN\AkelPad Default=01 Res=.\RES CmdComp=_hb_.cmd CmdRun= LibName= [01] Title=Проект MiniGui. PRG. PathApp=.\SOURCE PathExe=.\ NameExe= Include=*.prg Exclude= [02] Title=Проект MiniGui. C. PathApp=.\SOURCE PathExe=.\ NameExe= Include=*.c Exclude= [03] Title=Проект MiniGui. TsBrowse. PathApp=.\SOURCE\TsBrowse PathExe=.\ NameExe= Include=*.prg,*.c Exclude= [04] [05] [06] [07] [08] [09] [Common] FontName=Arial FontSize=10 SizeScale=100,100 [Window] Form_1Form_1=0,0,1229,727, wErrorwError=591,0,776,192, [Browse] brwProg=304,87,87,87,604, brwEntiti=179,479,434,87, brwEntAll=173,346,346,87,216, [Obj] 1=\BK32\OBJ\ErrSysHMG_.obj %O%\%P%.obj [Lib] 1=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 2=advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib Vfw32.lib 3=odbc32.lib odbccp32.lib comctl32.lib ShLwapi.lib WinMM.lib 4=ws2_32.lib WSock32.Lib ImageHlp.lib htmlhelp.lib MSImg32.lib 5=/nologo /incremental:no /pdb:%O%\%P%.pdb /SUBSYSTEM:WINDOWS 6=/machine:I386 /out:%W%\%P%.exe 7=hbdebug.lib hbvm.lib hbrtl.lib hblang.lib hbrdd.lib rddfpt.lib 8=rddntx.lib rddcdx.lib hbmacro.lib hbpp.lib hbsix.lib hbcommon.lib 9=hbcplr.lib hbgt.lib hbcpage.lib hbct.lib hbmemio.lib 10=hbmisc.lib hbwin.lib 11=bk32_c.lib MiniGui32_c.lib MiniGui32_c2.lib 12=MiniGui32_2.lib gtwin.lib gtgui.lib [FColor] 1 ={"CLASS" , "R"} 2 ={"ACCESS", "V"} 3 ={"ASSIGN", "V"} 4 ={"METHOD", "M"} 5 ={"DEFINE", "H"} 6 ={"STATIC", "B"} 7 ={"Static", "B"} 8 ={"Define", "H"} 9 ={"define", "H"} 10={"static", "B"} 11={"Method", "M"} [Entiti] 01=FUNC 02=FUNCTION 03=PROC 04=PROCEDURE 05=CLASS 06=ACCESS 07=ASSIGN 08=METHOD 09=DEFINE WINDOW 10=INIT WINDOW 11=INIT DIALOG 12=STAT FUNC 13=STATIC FUNC 14=STATIC FUNCTION 15=STAT PROC 16=STATIC PROC 17=STATIC PROCEDURE 18=HB_FUNC( 19=INIT PROC 20=INIT PROCEDURE 21=EXIT PROC 22=EXIT PROCEDURE 23=CASE WM_... [/pre2] Секции [Obj\, [Lib] исп. для сборки своих проектов через свой bat (без hbmk2, давно делался 2010 год). В hmg есть свой cmd сборки. В проект вкл. только одна секция из подкаталога source\TsBrowse, т.к. другие не использую в работе

SergKis: PS Протокол ошибок сборки выдаю на Browse и если есть строки со ссылкой на строки prg, при выборе запускаю Akelpad\Notepad3 с установкой на стр. из протокола

alkresin: SergKis пишет: Для файла проекта, конечно, надо ведение, т.е. набор пунктов и т.д. Что вы имеете ввиду?

SergKis: alkresin пишет Что вы имеете ввиду? заполнение руками строк в файле проекта руками через запрос Get-ами или в ini. В примере ini выше секции заполняю руками в редакторе (для простоты)



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