Автор | Сообщение |
alkresin
|
| moderator
|
Пост N: 1174
Зарегистрирован: 06.07.06
|
|
Отправлено: 04.04.19 14:37. Заголовок: Hbedit - текстовый редактор
Довел, наконец, свой текстовый редактор до того состояния, когда можно показать его общественности. Я начал писать его сначала как замену 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
|
| постоянный участник
|
Пост N: 2454
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.04.19 11:56. Заголовок: SergKis пишет В прим..
SergKis пишет цитата: | В примере ini выше секции заполняю руками |
| Секции [Window], [Browse] заполняются программой - это координаты куда разместили окно и browse под него, т.к. проектов много, то и окна работы с проектом и окна об ошибках можно располагать удобно
|
|
|
alkresin
|
| moderator
|
Пост N: 1216
Зарегистрирован: 06.07.06
|
|
Отправлено: 23.04.19 12:40. Заголовок: SergKis пишет: запо..
SergKis пишет: цитата: | заполнение руками строк в файле проекта руками через запрос Get-ами или в ini. |
| Ничего не понял). Т.е., вообще ничего - и, в частности, что за пункты все-таки. В любом случае, делать специальный файл проекта нового формата я не предполагаю. У нас есть .hbp и он прекрасно справляется со своими задачами. Он содержит, в частности, список файлов проекта - а это именно то, что нужно редактору: можно и общий список функций составить, и глобальный поиск по проекту сделать. Если для файлов нужны алиасы (пояснения), то их можно поместить в .hbp как комментарии - над строкой с именем файла. Чтобы не спутать их с другими комментариями, можно, например, маркировать их как ##. Библиотеки, объектники, опции сборки - это все редактору не нужно - он просто запустит hbmk2 и тот сделает свою работу.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2455
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.04.19 15:03. Заголовок: alkresin пишет Ничег..
alkresin пишет цитата: | Ничего не понял). Т.е., вообще ничего - и, в частности, что за пункты все-таки. |
| Расшифровка пунктов ini проекта Скрытый текст
[APP] Utf8=No ; prg файлы в Utf8 с BOM или нет, если Yes, то ; файлы prg проверяются на BOM и переводятся в Utf8, если его нет ; Сборка проекта в однобайтовом режиме, через дол. каталог ; куда prg файлы перекидываются для сборки Utf8 переводится в нужную ; CodePage Title=HMG 19.01 ; Title окна MDI Notepad=\BK32\Notepad3.exe ; какой редактор запускать. Akelpad отдельной ;AkelPad=\BK32\BIN\AkelPad ; строкой, т.к. номер строки передается ему через реестр Default=01 ; проект (MdiChild окно) открыть по умолчанию при запуске Res=.\RES ; каталог ресурсов проекта CmdComp=_hb_.cmd ; запуск cmd файла для сборки модуля (компилируются толь измененные prg) CmdRun= ; имя cmd файла для запуска модуля на исполнение LibName= ; имя либы, создаваемой одновременно с exe, prg с Func Main не входит в либ [01] ; секция первого проекта (MdiChild окно) Title=Проект MiniGui. PRG. ; название проекта, вводим руками PathApp=.\SOURCE ; каталог с prg файлами проекта PathExe=.\ ; путь куда созданный EXE модуль NameExe= ; имя exe модуля Include=*.prg ; включаемые файлы в проект из каталога PathApp Exclude= ; файлы, исключаемые из списка файлов в проект [02] ; секция второго проекта (MdiChild окно) Title=Проект MiniGui. C. ; название проекта, вводим руками PathApp=.\SOURCE ; каталог с prg файлами проекта PathExe=.\ ; путь куда созданный EXE модуль NameExe= ; имя exe модуля Include=*.c ; включаемые файлы в проект из каталога PathApp Exclude= ; файлы, исключаемые из списка файлов в проект [03] ; секция трктьего проекта (MdiChild окно) Title=Проект MiniGui. TsBrowse. ; название проекта, вводим руками PathApp=.\SOURCE\TsBrowse ; каталог с prg файлами проекта PathExe=.\ ; путь куда созданный EXE модуль NameExe= ; имя exe модуля Include=*.prg,*.c ; включаемые файлы в проект из каталога PathApp Exclude= ; файлы, исключаемые из списка файлов в проект [04] ; и т.д. [05] ; секции проектов запуска [06] [07] [08] [09] [Common] ; секция задания параметра фонтов и FontName=Arial ; параметров для работы перевода FontSize=10 ; размера из dlu в pixel SizeScale=100,100 ; в hmg есть класс для этого Dlu2Pixel [Window] ; Form_1Form_1=0,0,1229,727, ; секции програмной фиксации wErrorwError=591,0,776,192, ; размеров окон [Browse] ; и brwProg=304,87,87,87,604, ; Browse 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] ; секция задания цвета фонта по Entiti 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] ; секция задания ключевых фраз и слов для выделения Entiti 01=FUNC ; по ним создается список Browse (как плагин по функциям prg) 02=FUNCTION ; так же создается список всех Entiti проекта с поиском 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_... ; для отображения в списке всех команд WM_CLOSE, WM_ACTION ...
|
|
|
|
alkresin
|
| moderator
|
Пост N: 1217
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.04.19 09:28. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлены пара плагинов для Golang (запуск на выполнение и форматирование). В ini, секция [LANG_...], теперь можно указывать спец.плагин для этого типа файлов - он будет запускаться при открытии файлов этого типа и играет для него ту же роль, что и стартовый плагин в [START]. В ini добавден [LANG_HBP] Кое-что подправлено с подсветкой.
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 826
Зарегистрирован: 13.10.05
|
|
Отправлено: 24.04.19 11:21. Заголовок: Как сделать: 1) Чтоб..
Как сделать: 1) Чтобы при открытии , окно было распахнуто 2) По умолчанию стоял какой-то ранее выбранный синтаксис, к примеру, prg Кодовая страница вроде ставится
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2456
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.04.19 11:52. Заголовок: alkresin Для удален..
alkresin Для удаления выделенного текста, еще используется Ctrl+X, этого нет в hbedit
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2457
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.04.19 12:08. Заголовок: PS 1. Open file окно..
PS 1. Open file окно, при пустом поле и нажатии enter открывать окно списка файлов 2. На окнах поиск, поиск-замена, переход на запись, сохранять последние данные в Selected режиме. 3. На, вышеуказанных, окнах добавить F<n> клавишу для вызова истории набранных данных ранее, не только кликая мышой
|
|
|
alkresin
|
| moderator
|
Пост N: 1218
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.04.19 13:08. Заголовок: Vlad04 пишет: 1) Чт..
Vlad04 пишет: цитата: | 1) Чтобы при открытии , окно было распахнуто |
| В смысле, на весь экран? Могу добавить в hbedit.ini такую опцию, если надо. цитата: | 2) По умолчанию стоял какой-то ранее выбранный синтаксис, к примеру, prg |
| Так при открытии файла .prg автоматом устанавливается соответствующий синтаксис...
|
|
|
alkresin
|
| moderator
|
Пост N: 1219
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.04.19 13:15. Заголовок: SergKis пишет: Для ..
SergKis пишет: цитата: | Для удаления выделенного текста, еще используется Ctrl+X, этого нет в hbedit |
| Ok. цитата: | 1. Open file окно, при пустом поле и нажатии enter открывать окно списка файлов 3. На, вышеуказанных, окнах добавить F<n> клавишу для вызова истории набранных данных ранее, не только кликая мышой |
| Открыть список файлов или историю можно и без мышки двумя способами: 1) перейти на соседнюю кнопку (стрелка вниз или Tab) и нажать пробел 2) нажать Ctrl + стрелка вниз. цитата: | 2. На окнах поиск, поиск-замена, переход на запись, сохранять последние данные в Selected режиме. |
| В смысле, выделять найденную строку? В поиск/замена она выделяется. А при переходе по номеру строки что выделять?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2458
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.04.19 13:33. Заголовок: alkresin пишет В смы..
alkresin пишет цитата: | В смысле, выделять найденную строку? В поиск/замена она выделяется. А при переходе по номеру строки что выделять? |
| В истории есть последнее значение поиска, поиска-замены, переход на ... (списки выдвигаются же) При открытии окна (соответствующего) заполнять этими значениями соответствующие поля окна с Selected для - замены новыми, тогда сбрасываются и вводятся новые - стрелками перемещения Selected сбрасываем и правим, что было - сразу для повторения поиска по enter
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2459
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.04.19 13:36. Заголовок: PS как Far делает..
PS как Far делает
|
|
|
|
alkresin
|
| moderator
|
Пост N: 1220
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.04.19 15:37. Заголовок: Теперь понятно, буду..
Теперь понятно, буду иметь ввиду.
|
|
|
alkresin
|
| moderator
|
Пост N: 1221
Зарегистрирован: 06.07.06
|
|
Отправлено: 25.04.19 08:53. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлен новый плагин для hbp - предварительная версия. Он прописан в ini в секции [LANG_HBP], поэтому запускается автоматически при открытии .hbp файла. Он подменяет панель статуса на простенькое меню, в котором пока две опции: список файлов проекта (можно выбрать любой для редактирования) и сборка проекта - в дальнейшем после сборки планируется открыть дпполнительное окно со списком ошибок. Добавлен Ctrl-X для cut selected. В секцию [START] ini-файла добавлена опция maximize: если On, то редактор при старте раскрывается на весь экран.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2460
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.04.19 11:20. Заголовок: alkresin пишет Добав..
alkresin пишет цитата: | Добавлен новый плагин для hbp - предварительная версия |
| Может этот плагин учесть кодировку части (всех) prg в utf8, а сборка не уникодная в указанной CodePage ? Или его переписывать надо, под себя ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2461
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.04.19 11:27. Заголовок: PS В секции можно о..
PS В секции [START] можно определить загружаемый файл и если это hbp, возможность сразу выдать список по Ctr+F ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2462
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.04.19 11:31. Заголовок: PPS Возможно ли, доб..
PPS Возможно ли, добавить в hbp, через спец. коментарий, добавляемые другие файлы в список Ctrl+F ? Это ini, cfg, текстовые шаблоны, ..., относящиеся к работе с проектом.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2463
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.04.19 11:39. Заголовок: PPS Возможность имет..
PPS Возможность иметь в hbp добавить спец. коментарий, как SEPARATOR, для визуального разделения в меню файлов по Ctrl+F
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2464
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.04.19 12:53. Заголовок: SergKis пишет В секц..
SergKis пишет цитата: | В секции [START] можно определить загружаемый файл и если это hbp, возможность сразу выдать список по Ctr+F ? |
| В реальности загружать файл hbp не надо, надо только список, желательно, с комментарием, добавленным к prg и датой последней модификации. Попробовал у себя создать схему своей работы - файлы в utf8 - сборка не уникодная - список файлов проекта выходит, если делаю ext=.hbp.hbi , т.е hbi - файл проекта для меню, hbp для сборки в др. месте (подкаталоги) cmd делаю с перемещением utf8 prg -> Codepage, т.е. программа делает перекодировку, если prg utf8 или перезапись если нет и только потом работа hbmr2 или другого вызываемого cmd Т.е. хочу сказать, желательно иметь (что бы не писать свои исполнители для перекодировки) в hbedit ключи "тихого" пакетного исполнения для перезаписи с кодировкой
|
|
|
alkresin
|
| moderator
|
Пост N: 1222
Зарегистрирован: 06.07.06
|
|
Отправлено: 25.04.19 16:40. Заголовок: SergKis пишет: Може..
SergKis пишет: цитата: | Может этот плагин учесть кодировку части (всех) prg в utf8, а сборка не уникодная в указанной CodePage ? |
| Честно говоря, даже думать на эту тему не хочется). Если надо, добавьте это туда для себя. цитата: | В секции [START] можно определить загружаемый файл и если это hbp, возможность сразу выдать список по Ctr+F ? |
| Файл - да, можно. Учитывая, что ini может быть из текущего каталога, в этом есть определенная логика. Можно и список файлов там (в ini) указать. Но вот выводить автоматом список файлов при старте мне не нравится. Может, я просто отредактировать этот hbp хочу, или мне надо начать с поиска... цитата: | Возможно ли, добавить в hbp, через спец. коментарий, добавляемые другие файлы в список Ctrl+F ? ... Возможность иметь в hbp добавить спец. коментарий, как SEPARATOR |
| Думаю, да. цитата: | В реальности загружать файл hbp не надо, надо только список |
| В реальности hbedit - это текстовый редактор и он должен уметь отредактировать hbp.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2465
Зарегистрирован: 17.02.12
|
|
Отправлено: 25.04.19 18:00. Заголовок: alkresin пишет Но во..
alkresin пишет цитата: | Но вот выводить автоматом список файлов при старте мне не нравится. Может, я просто отредактировать этот hbp хочу, или мне надо начать с поиска... |
| Возможно в [START] это, действительно, не очень нужно (хотя запуск без параметров со стартовым списком файлов удобен), а вот в параметрах запуска - вполне. В Far на F2 меню несколько пунктов с разными файлами (меню) проектов создать для запуска нужного в работе, то же удобно. цитата: | В реальности hbedit - это текстовый редактор и он должен уметь отредактировать hbp. |
| Но у него хорошие возможности быть больше чем редактором (редакторов достаточно). На своей схеме работы показал, что файл hbp и реальный файл проекта (по списку файлов) это разные вещи. Т.е. для меню использовал копию hbp -> hbi Врляд ли стоит забивать мусором реальный hbp, (У Андрея, в простом примере только 20 строк файлов). У меня средний проект (модуль) содержит 3.5 экрана browse x 27 строк на экране и это только prg. Таких модулей в задаче 10, причем используют либу, создаваемую главным модулем. Модуль - это список типа hbp. цитата: | Честно говоря, даже думать на эту тему не хочется). Если надо, добавьте это туда для себя. |
| В hbedit уже все есть для перекодировки, нет только параметров запуска. Вариант простой - на входе utf8 -> перекодируем в Codepage указанный, имена файлов на входе, выходе - на входе CodePage -> перекодируем в Utf8, т.е. перекодировки CodPage1 -> CodePage2 через Utf8 - можно добавить параметр -dt , по которому переписывать с кодировкой, если время, дата файлов не равны, после перезаписи устанавливать время,дату выходного равную входному С такими командами в cmd можно городить любые сборки, для языковых программ.
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|