On-line: Haz, гостей 1. Всего: 2 [подробнее..]
АвторСообщение
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)

Если есть идеи для реализации - буду рад услышать.

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]


SergKis
постоянный участник




Пост N: 2825
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 08.09.19 09:10. Заголовок: alkresin Можно вызо..


alkresin
Можно вызов меню выбора кодовых страниц, сделать на клавиши и комбинацию их задавать в ini ?

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2827
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.09.19 11:37. Заголовок: alkresin В параметр..


alkresin
В параметры командной строки можно добавить кодовую страницу для файла (из списка ini указанные)

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2828
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.09.19 18:07. Заголовок: alkresin Добавил в ..


alkresin
Добавил в параметры командной строки (своя сборка)
-cp=<кодовая страница>
-his=<режим savehis = 0>
Это понадобилось при подключении hbedit в проектах вместо Akelpad, дополнительно к Far Alt+F4 режиму.
Возможно, похожее надо в вашей сборке hbedit.exe ?
К примеру, когда prg файлы в кодировках RU866, RU1251, Utf8

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2829
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.09.19 18:11. Заголовок: PS Far Alt+F4 режим ..


PS
Far Alt+F4 режим работает с savehis=1 и cp=RU1251, а запуски из проекта savehis=0 и cp=LV866, при этом prg Utf8 с bom отлично понимаются.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2830
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.09.19 20:40. Заголовок: alkresin Можно ли у..


alkresin
Можно ли уст. palette из параметра командной строки ?
Например в ini
palette=solarized light
из командной строки поставить far или notepad

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 1374
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 10.09.19 09:20. Заголовок: SergKis пишет: отсу..


SergKis пишет:

 цитата:
отсутствие каталога мешает нормальной работе hbedit в др. кусках кода


Отсутствие каталога plugins/ мешает только работе плагинов. В обсуждаемом случае это вызов плагина по горячей клавише.

 цитата:
Можно вызов меню выбора кодовых страниц, сделать на клавиши и комбинацию их задавать в ini ?


Так ведь Shift-F8 для этого предназначен - в help'е и на сайте про это написано. Ну а комбинацию эту можно переназначить в ini, если надо.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2831
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.09.19 09:30. Заголовок: alkresin пишет Так в..


alkresin пишет
 цитата:
Так ведь Shift-F8 для этого предназначен - в help'е и на сайте про это написано


Пропустил, не увидел. Все работает.
Спасибо.
 цитата:
Отсутствие каталога plugins/ мешает только работе плагинов


Понятно

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 1375
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 10.09.19 09:33. Заголовок: По поводу добавления..


По поводу добавления новых параметров командной строки:
сделать-то можно, но, по моему, более универсальным решением было бы просто указать в командной строке другой ini - так можно задать любую комбинацию нужных параметров.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2832
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.09.19 09:45. Заголовок: alkresin пишет По по..


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


В проектах свои ini и в них все есть. Размножать доп. ini не очень хочется.
Попробовал 2а каталога с hbedit и запуски в Far с одного, в проектах с другого. Уже не очень удобно, т.к. чувствую где то понадобится savehis=2.
Смотрел на замену Palete, вроде, на уровне TEdit сложновато получается. Если не делать в вашей сборке (может кроме меня никому не нужно), то перекиньте FUNCTION edi_IniRead( cFileName ) в файл falert.prg. Буду делать подмену на этом уровне (разбор строк в секциях)

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 1376
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 10.09.19 13:00. Заголовок: Хорошо, добавлю. Смо..


Хорошо, добавлю.

 цитата:
Смотрел на замену Palete, вроде, на уровне TEdit сложновато получается. Если не делать в вашей сборке (может кроме меня никому не нужно), то перекиньте FUNCTION edi_IniRead( cFileName ) в файл falert.prg.


Я пока не вижу проблемы с объявлением в комадной строке palette (вы ведь об этом?). А вот edi_IniRead() нельзя - она пользуется статическими переменными.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2836
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.09.19 14:04. Заголовок: alkresin пишет edi_..


alkresin пишет
 цитата:
edi_IniRead() нельзя - она пользуется статическими переменными.


Нельзя edi_ReadIni( xIni ) из fedit.prg, edi_iniRead() из ffiles.prg там нет статик переменных

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2837
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.09.19 14:28. Заголовок: PS Для Palette парам..


PS
Для Palette параметра начал набирать (не доделал пока) так, сам параметр -clr=0\1\2\3\4
по именам секций [PALETTE_0], ..., [PALETTE_4], что бы не привязываться к длинным именам
Значение palette=far секции [OPTIONS] брать из name=... [PALETTE_?]

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 1377
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 10.09.19 15:21. Заголовок: Зачем так сложно-то?..


Зачем так сложно-то?
Добавил я три параметра (залил на github):
-cp=
-his=
-pal=

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2838
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 10.09.19 16:09. Заголовок: alkresin пишет Зачем..


alkresin пишет
 цитата:
Зачем так сложно-то?


По мне, наоборот, просто. Не надо помнить длинные названия.
Тут текст мой (сделал как у вас -pal=<только тут число>) Скрытый текст


 цитата:
Добавил я три параметра (залил на github):


Спасибо, буду использовать.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2845
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.09.19 08:33. Заголовок: alkresin Нарушилась..


alkresin
Нарушилась прорисовка разделения окна по Ctrl-w,s, Ctrl-w,v (вся клиентская область в работе edit)
Добавка из пред. версии в METHOD WriteTopPane( lClear ) Скрытый текст

восстановила прорисовку только горизонтальное разделения
при вертикальном, прорисовка делается и убирается, видно мелькание

Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 1378
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 11.09.19 09:54. Заголовок: Там просто вертикаль..


Там просто вертикальный разделитель не прорисовывался . Поправил.

Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2848
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.09.19 10:54. Заголовок: alkresin пишет Там п..


alkresin пишет
 цитата:
Там просто вертикальный разделитель не прорисовывался . Поправил.


Вертикальный разделитель прорисовался, а горизонтальный нет, пропал
Моих правок нет. :New такой и StbLine() - пустышка пока
 
TEdit():bNew := {|oe| iif( oe:y1 == oe:aRectFull[1]+1, ( oe:lTopPane := .F., oe:y1-- ), ), ;
oe:bWriteTopPane := {|o,l,y| StbLine(o,l,y) } }


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2849
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.09.19 12:12. Заголовок: PS добавил, вроде, с..


PS
добавил, вроде, стало прорисовывать как надо
 
SetColor( ::cColorPane )
IF ::lTopPane
Scroll( y, ::x1, y, ::x2 )
ENDIF

IF ::oParent != Nil .AND. ::x1 == ::oParent:x2 + 2
Scroll( ::y1, ::x1-1, ::y2, ::x1-1 )
ENDIF

IF ::bWriteTopPane != Nil


Спасибо: 0 
Профиль
alkresin
moderator


Пост N: 1379
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 11.09.19 12:32. Заголовок: SergKis пишет: TEdi..


SergKis пишет:

 цитата:
TEdit():bNew := {|oe| iif( oe:y1 == oe:aRectFull[1]+1, ( oe:lTopPane := .F., oe:y1-- ), ), ;
oe:bWriteTopPane := {|o,l,y| StbLine(o,l,y) } }


Вы берете прорисовку панели статуса на себя, но функция соответствующая у вас пустая...
Вставьте в нее хотя бы
IF ::lTopPane  
Scroll( y, ::x1, y, ::x2 )
ENDIF


Спасибо: 0 
Профиль
SergKis
постоянный участник




Пост N: 2850
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 11.09.19 12:57. Заголовок: alkresin пишет Вы бе..


alkresin пишет
 цитата:
Вы берете прорисовку панели статуса на себя, но функция соответствующая у вас пустая...


В функции будет вывод в windows StatusBar по item-ам, а прорисовка разделителей экрана (полос) - как бы свойство TEdit.
Что выводить в StatusBar и сколько item-ов не определился пока, т.к. нет загрузок нескольких файлов (всегда 1) для работы и переключения между окнами по Ctrl+TAB (исп. только при разделении окна на части для работы в др. местах загруженного текста). Сейчас пробую вывод полного имени и cdp в Title окна - вроде неплохо
Строки
 
IF ::lTopPane
Scroll( y, ::x1, y, ::x2 )

повторяться будут и в блоке кода и без блока, потому вынес эти строки к вашим

Спасибо: 0 
Профиль
Ответов - 300 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 167
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет