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


moderator


Пост N: 1393
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.19 12:33. Заголовок: SergKis пишет: Може..


SergKis пишет:

 цитата:
Может, :OnKey, сможет определить возврат (команды) из :bOnKey и выполнить плагины и др. не исполняемые сейчас команды ?


:onKey() отрабатывает после того, как будет разобран hKeyMap и переопределенные клавиши преобразуются в предопределенные. :onKey() получает предопределенные в программе клавиши - такова логика программы. Alt-L и прочие определены в ini-файле, :onKey() о них ничего не знает.

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


Пост N: 1394
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.19 12:41. Заголовок: Andrey пишет: Можно..


Andrey пишет:

 цитата:
Можно сделать переход на редактирование сразу в меню ?


Не понял, что означает "переход на редактирование" ? "Попасть в редактирование этой настройки" - тоже не понял, что имеется ввиду.

 цитата:
Ещё по умолчанию хотелось бы иметь выход из редактора по Alt+X и Alt+Q (с сохранением всех файлов) как в ME7.


Вы можете переопределить клавиши в ini-файле:
Alt-X=>F10

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


Пост N: 1395
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.19 12:46. Заголовок: Andrey пишет: В ME7..


Andrey пишет:

 цитата:
В ME7 очень удобное меню по правому Ctrl+Enter
В нём можно сделать свои настройки по компиляции и запуску проекта.
...


В hbedit для таких вещей есть плагины. Напишите свой плагин, который реализует такое меню (помогу, если надо) и пропишите его в ini-файле с нужной горячей клавишей.

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


Пост N: 1396
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.19 12:56. Заголовок: SergKis пишет: Можн..


SergKis пишет:

 цитата:
Можно сделать, чтобы edi_SeleFile() понимала массив на входе ?


Я так понимаю, что нужен массив масок, а не путей?

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


Пост N: 1397
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.19 12:57. Заголовок: SergKis пишет: При ..


SergKis пишет:

 цитата:
При выделенном блоке Shift+стрелки, Ctrl+C и вставка в Far этого блока, происходит искажение данных,


А что искажается? Я из вашего примера ничего не увидел.

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


Пост N: 1398
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.19 12:59. Заголовок: SergKis пишет: На о..


SergKis пишет:

 цитата:
На окне "Open file" может есть клавиши, для вызова списка файлов ?
Как то удобно хвататься за мышь


Ctrl+стрелка вниз.

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



Пост N: 2899
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.09.19 13:56. Заголовок: alkresin пишет Я так..


alkresin пишет
 цитата:
Я так понимаю, что нужен массив масок, а не путей?


Со списком масок не надо, т.к. кроме строк от масок, можно подсунуть ключевые слова и после меню их отрабатывать. Скорее, общий вариант вызова меню на массив с поиском, какой это будет массив, от путей полученный или др. способом, это не важно. Надо что бы он формировался по координатам от max длины строк и кол-ва строк массива, не выходя за пределы MaxRow(), MaxCol(). К примеру у меня будет (если дойдет до этого по планам) hbedit.cfg формата ini utf8 кодировки, с языковыми секциями и секциями, которые хочет Андрей на Ctrl+Enter, т.е. Название пункта меню и что выполнить (bat,cmd,...) и как выполнить типа RunWait или Run

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


По мне, плагин тут не нужен, нужно просто меню выше описанное, команда меню и гор. клавиша.

 цитата:
Ctrl+стрелка вниз.


Понял, а то жму все время стрелку вверх (типа получить пред. значение) или F4.
По стрелке вниз идет переключение фокуса (это еще надо увидеть - не очень наглядно) на [^] и надо еще жать SPACE для получения списка, по мне лишнее тело движение. В задачах делаю Enter на пустом поле или F5 -> сразу список.

 цитата:
А что искажается? Я из вашего примера ничего не увидел


Искажалась подсветка Row, Col при первом входе и переключении окон Crtl-Tab. После любого перемещения подсветка становилась правильной. Сейчас это исправлено, новыми вариантами из WriteTopPane (у меня был вариант из первых версий)

 цитата:
Вы можете переопределить клавиши в ini-файле:
Alt-X=>F10


Имеется ввиду алгоритм выхода из всех загруженных окон сразу

 цитата:
:onKey() отрабатывает после того, как будет разобран hKeyMap и переопределенные клавиши преобразуются в предопределенные. :onKey() получает предопределенные в программе клавиши - такова логика программы. Alt-L и прочие определены в ini-файле, :onKey() о них ничего не знает.


Может можно перестроить, сначала исполнить :bOnKey и потом возврат и исполнение того о чем написали.

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


Пост N: 1400
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.19 14:04. Заголовок: Обновлен hbedit. Доб..


Обновлен hbedit.
Добавлена опция keywords5 и еще разные исправления и улучшения, сделанные за прошедшее время.

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


Пост N: 1401
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 20.09.19 14:17. Заголовок: SergKis пишет: Имее..


SergKis пишет:

 цитата:
Имеется ввиду алгоритм выхода из всех загруженных окон сразу


В vim-режиме для этого есть команды ZZ (выход из всех окон с сохранением) и ZQ (без сохранения).
Можно добавить в keymap в ini, например:
Alt-F10=>Ctrl-Q|Z|Z
Ну и разрешить активацию vim-режима, конечно.

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



Пост N: 2902
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.09.19 16:10. Заголовок: alkresin пишет Добав..


alkresin пишет
 цитата:
Добавлена опция keywords5


Спасибо, работает

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



Пост N: 2903
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.09.19 17:02. Заголовок: alkresin Поправьте ..


alkresin
Поправьте у себя
 
METHOD WriteTopPane( lClear ) CLASS TEdit

LOCAL y := ::y1 - 1, nCol := Col(), nRow := Row(), nF9 := 0
LOCAL cLen := Ltrim(Str(Len(::aText))), nchars := Len(cLen)

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
Eval( ::bWriteTopPane, Self, lClear, y )
ELSE
IF ::lTopPane
DispBegin()
// Scroll( y, ::x1, y, ::x2 )

IF Empty( lClear )


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



Пост N: 2904
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.09.19 22:26. Заголовок: PS или так IF ::b..


PS
или так
 
IF ::bWriteTopPane != Nil
IF ::lTopPane
Scroll( y, ::x1, y, ::x2 )
ENDIF

Eval( ::bWriteTopPane, Self, lClear, y )
ELSE


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



Пост N: 2905
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.09.19 00:36. Заголовок: alkresin SergKis пи..


alkresin
SergKis пишет:
 цитата:
При выделенном блоке Shift+стрелки, Ctrl+C и вставка в Far этого блока, происходит искажение данных,


alkresin пишет
 цитата:
А что искажается? Я из вашего примера ничего не увидел.


  
Far выделенный блок
kod provodki na pribilj LV
kod provodki na pribilj ES
kod provodki na pribilj OT
kod provodki Pvn

hbedit строки
LOCAL cProvPr := gProp( ProvPr ) //
LOCAL cProvPrE := gProp( ProvPrE ) //
LOCAL cProvPrO := gProp( ProvPrO ) //
LOCAL cProvPvn := gProp( ProvPvn ) //
блок из Far по Ctrl+V вставляем за первым // и получаем
LOCAL cProvPr := gProp( ProvPr ) // kod provodki na pribilj LV
kod provodki na pribilj ES
kod provodki na pribilj OT
kod provodki Pvn

LOCAL cProvPrE := gProp( ProvPrE ) //
LOCAL cProvPrO := gProp( ProvPrO ) //
LOCAL cProvPvn := gProp( ProvPvn ) //

должно быть
LOCAL cProvPr := gProp( ProvPr ) // kod provodki na pribilj LV
LOCAL cProvPrE := gProp( ProvPrE ) // kod provodki na pribilj ES
LOCAL cProvPrO := gProp( ProvPrO ) // kod provodki na pribilj OT
LOCAL cProvPvn := gProp( ProvPvn ) // kod provodki Pvn

синим цветом искажение, строки вставки справа за // разорвали последовательность 4х строк, образовав новые строки

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



Пост N: 2906
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.09.19 00:42. Заголовок: PS Akelpad, Notepad3..


PS
Akelpad, Notepad3 делают операцию правильно + в Far блок выделенный, как выше, из них переносится тоже правильно, т.е. получаем строки как "должно быть" без искажений

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



Пост N: 2907
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.09.19 00:53. Заголовок: PPS Far между собой,..


PPS
Far между собой, по F4 делает правильно, в hbedit, akelpad, notepad3 переносит искажая
hbedit искажает и между собой, 2а запуска hbedit, и в akelpad, notepad3, far переносит искажая

Спасибо: 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 час. Хитов сегодня: 221
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет