On-line: rvu, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
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 
ПрофильЦитата Ответить
Ответов - 215 , стр: 1 2 3 4 5 6 7 8 9 10 11 All [только новые]





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


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

Спасибо: 0 
ПрофильЦитата Ответить



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


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить



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


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

Спасибо: 0 
ПрофильЦитата Ответить
moderator


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


SergKis пишет:

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


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

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


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

Спасибо: 0 
ПрофильЦитата Ответить



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


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


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


Понятно

Спасибо: 0 
ПрофильЦитата Ответить
moderator


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


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить
moderator


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


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

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


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить
moderator


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


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

Спасибо: 0 
ПрофильЦитата Ответить



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


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


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


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


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

Спасибо: 0 
ПрофильЦитата Ответить



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


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

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

Спасибо: 0 
ПрофильЦитата Ответить
moderator


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


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить
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 
ПрофильЦитата Ответить



Пост 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 
ПрофильЦитата Ответить
Ответов - 215 , стр: 1 2 3 4 5 6 7 8 9 10 11 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 340
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет