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





Пост N: 2351
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 14.04.19 23:54. Заголовок: alkresin Привычно ..


alkresin
Привычно
Ctrl+Home - на начало, в hbedit Ctrl+PgUp
Ctrl+End - в конец, в hbedit Ctrl+PgDn
Ctrl+Z восстановить изменения, сделанные ранее, в hbedit вкл. какой то режим отличный от текущего
Может есть таблица соответствия для клавиш и процедур, для управления ?

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


Пост N: 1181
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.04.19 09:45. Заголовок: SergKis пишет: 1. Н..


SergKis пишет:

 цитата:
1. Не определяет автоматом файлы utf-8 с BOM


Теперь определяет.

 цитата:
3. F3 нажимаем выделяем данные в строке, жмем F3, получаем список Clipboard (так понимаю ситуацию), жму Esc и apps.err:


Исправлено. Бинарники на сайте обновлены.
Кстати, чтобы пояснить: F3 как завершение выделения с копированием выделенного в один из буферов по выбору может быть нажато и в том случае, если выделение начиналось без F3, а любым другим способом.

 цитата:
2. Нет выделения вертикального блока Shift+Alt+ стрелки


Да, пока нет. Буду делать.

 цитата:
4. Как при запуске уст. позицию каретки <строка>, <колонка>


Как и другие опции редактора, это можно сделать между вызовами :New() и :Edit() - для этого эти методы и разделены:
oEdit := TEdit():New( cText, cFileName ) 
oEdit:nRow := 10
oEdit:nCol := 18
oEdit:Edit()

Здесь :nRow и :nCol - абсолютная позиция курсора на экране, так что если окно редактора выведено не с 0,0, то надо сделать соответствующие вычисления ( + ::y1, + ::x1 ). Можно установить также :nyFirst, :nxFirst - смещение текста, если его вывод начинается не с самого начала.

 цитата:
5. Понял, что параметры экрана ставим через ini. Если вариантов параметров несколько (внешний запуск)
25, 80
25, 40
25, 120


Не понял, в чем вопрос, но на всякий случай поясню:
у нас есть класс TEdit(), который можно встроить в свое приложение, и редактор hbedit, как самостоятельное приложение (в исходниках это один файл hbedit.prg, в котором содержится обработка параметорв, чтение ini и вызов TEdit().Hbedit читает и использует только секцию screen из hbedit.ini, TEdit - все остальные. Было бы странно, если бы встроенный редактор вдруг менял настройки экрана. Т.е., количество строк/колонок экрана и пр. устанавливает вызывающее TEdit() приложение (hbedit, например). Координаты окна редактора на экране могут быть заданы при вызове :New():

oEdit := TEdit():New( cText, cFileName, y1, x1, y2, x2, cColor )

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


Пост N: 1182
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.04.19 09:50. Заголовок: SergKis пишет: Как ..


SergKis пишет:

 цитата:
Как получить вариант виндосовской раскраски белый фон, черный\синий текст ?


Если речь о TEdit(), то установкой :cColor, :cColorSel цвет выделенного текста), :cColorPane (цвет панели состояния).
Если об HbEdit - я этот момент как-то упустил, надо будет добавить опции в ini-файл.

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


Пост N: 1183
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.04.19 09:56. Заголовок: Vlad04 пишет: 1)А н..


Vlad04 пишет:

 цитата:
1)А насчёт возможности закоментировать ( снять комент ) строку, блок типа
Желательно, чтобы была возможность ?


Не понял, о чем вы. Если о поддержке выделения другим цветом комментариев, то она есть.

 цитата:
2)История сохраненных файлов вроде сохраняется в файле hbedit.his, а как
к ней получить доступ из программы ?


"Open file" из меню, или F4 - появляются опции "New file", "Open file" - вызывает диалог для ввода имени файла с возможностью выбора из дерева каталогов, и список из hbedit.his.

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


Пост N: 1184
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.04.19 10:06. Заголовок: SergKis пишет: Прив..


SergKis пишет:

 цитата:
Привычно
Ctrl+Home - на начало, в hbedit Ctrl+PgUp
Ctrl+End - в конец, в hbedit Ctrl+PgDn


Вообще-то в Far и Ctrl+PgUp, Ctrl+PgDn аналогично работают, я ими и пользуюсь обычно. Впрочем, можно и Ctrl+Home, Ctrl+End

 цитата:
Ctrl+Z восстановить изменения, сделанные ранее, в hbedit вкл. какой то режим отличный от текущего

добавить.
Здесь используется Alt-Backspace, я его в большинстве известных мне редакторов использую, в том числе и в Far.
А этот "какой-то" режим - попытка реализовать некоторые возможности Vim. Если предложите какое-нибудь другое достаточно удобное сочетание клавиш для него, можно пообсуждать. Я сначала хотел Ctrl-Space, но потом обнаружил, что в Линукс-системах это сочетание недоступно, т.к. используется чем-то другим.

 цитата:
Может есть таблица соответствия для клавиш и процедур, для управления ?


Так в hbedit.help все есть (вызывается по F1), и в меню (F9) расписаны многие клавиши.

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



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


alkresin пишет
 цитата:
Как и другие опции редактора, это можно сделать между вызовами :New() и :Edit() - для этого эти методы и разделены


То, что можно сделать свою сборку, встроить в прогу - понятно, но, скажу так, не хочется, т.к. вполне достаточно, у клиента, run редактора. У Far есть возможность запускать редактор с параметрами уст. каретки. Ранее выкладывал Notepad3, в нем целый список полезных параметров командной стоки (см. в "Справке").
 
Использование:
Notepad3 [/?] […[Кодировка]] […[Окончания строк]] [/e] [/g] [/m] [/l]
[/q] [/d] [/h] [/x] [/c] [/n] [/r| [/p] [/t] [/o]
[/f] [/v] [/vd] [/z] [[диск:][путь]имя[…]]

файл Должен быть последним аргументом, изначально без пробелов.
+ Несколько аргументов файлов (с кодированными пробелами).
- Один аргумент файла (без кодированнных пробелов).

Параметры:
/? Показать это окно.
… Кодировка (/ansi, /unicode, /unicodebe, /utf8, /utf8sig).
… Формат окончаний строк (/crlf, /cr, /lf).
/e Исходная кодировка файла.
/g Перейти к указанной позиции (/g -1 конец файла).

/m Найти указанный текст (/m- последний, /mr regex,
/mb обратная косая черта).
/l Автообновление измененных файлов.
/q Форсировать создание новых файлов без запроса.
/s Выбрать схему синтаксиса.
/d Выбрать схему текста по умолчанию.
/h Выбрать схему Web Source Code.
/x Выбрать схему XML Document.
/c Открыть новое окно и вставить содержимое буфера обмена.
/b Открыть новое окно для сбора изменений буфера обмена.
/n Всегда открывать новое окно (/ns один экземпляр файла).

/r Переиспользовать окно (/rs один экземпляр файла).
/p Задать положение и размер окна (/p0, /ps, /pf,l,t,r,b,m).
/t Задать заголовок окна.

/i Запустить иконкой в области уведомлений.
/o Поверх других окон.
/f Указать ini-файл (/f0 без ini-файла).

/u Запуск с повышенными полномочиями.
/v Распечатать файл немедленно и выйти.
/vd Распечатать файл (открыть диалог печати).

/z Пропустить следующий (применимо для поиска
с регулярным выражением).

Примеры:
Notepad3 /utf8sig /crlf d:\temp\Test.txt
… Новый файл: "Test.txt" Кодировка=UTF-8-BOM, Окончания=CRLF.
Notepad3 /v d:\temp\Test.txt
… Распечатать: "Test.txt" немедленно.

Выделенное очень полезно.

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



Пост N: 2354
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 10:21. Заголовок: SergKis пишет 5. Пон..


SergKis пишет
 цитата:
5. Понял, что параметры экрана ставим через ini. Если вариантов параметров несколько (внешний запуск)
25, 80
25, 40
25, 120


alkresin пишет
 цитата:
Не понял, в чем вопрос


Вопрос установки Mode(...) для экрана, т.к. для небольших данных достаточно 15 row height, 40 Col width и нужна позиция окна Y, X

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



Пост N: 2355
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 10:34. Заголовок: alkresin пишетКстати..


alkresin пишет
 цитата:
Кстати, чтобы пояснить: F3 как завершение выделения с копированием выделенного в один из буферов по выбору может быть нажато и в том случае, если выделение начиналось без F3, а любым другим способом.


Возможно, для кого то, 10 Clipboard очень нужная опция, но по мне, она лишняя, т.к. в списке буферов текст не определяет однозначно что там (видно ~ 30-40 символов). Потом надо заниматься постоянной очисткой номерного Clipboard, что тоже удовольствия не доставляет, еще раз подчеркну, для меня.
Режим Notepd3 /b Открыть новое окно для сбора изменений буфера обмена.
Лучше решает поставленную задачу по 10 Clipboard
По мне

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



Пост N: 2356
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 10:51. Заголовок: alkresin пишет А это..


alkresin пишет
 цитата:
А этот "какой-то" режим - попытка реализовать некоторые возможности Vim


Даже не знаю, что это за возможности. Может через ini уст. есть такой режим или нет.
Для аналога MemoEdit() у клиента, наверно, это не нужно

 цитата:
Так в hbedit.help все есть (вызывается по F1), и в меню (F9) расписаны многие клавиши.


Я о таблице Hash в hbedit, где код нажатой клавиши соответствует, к примеру, блоку кода исполнения.
Что бы можно было переставить под себя те же Ctrl+PgUp\PgDn на Ctrl+Home\End
Норошо бы иметь и цвета в Hash, чтобы отсылаться на них (задавать в ini)

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



Пост N: 2357
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 11:17. Заголовок: alkresin пишет у нас..


alkresin пишет
 цитата:
у нас есть класс TEdit(), который можно встроить в свое приложение


Не куда встраивать - все Windows hmg. Разговор о использовании вместо EDITBOX.
Сейчас исп. Notepat3 (ранее был Notepad2). Минус у него, надо делать изменения в текстах и сборку, для изменения цветов и ключевых слов (не вынесено в ini) + прыгание каретки по концам строк+клавиши не привычно, приходится переназначать в текстах (Вы тоже предлагаете такой же механизм пересборки в основе).
Плюс у него большая скорость при работе с большими файлам log. Клиенту нравится работать с одним большим файлом лог за год и больше (фрагментация по кварталам\месяцам не нравится), выбирая оттуда данные для разных справок в Excel\Word ...

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



Пост N: 2358
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 12:35. Заголовок: alkresin пишет Бинар..


alkresin пишет
 цитата:
Бинарники на сайте обновлены.


Бяка при вводе новой строки из первой (позиции до текста в текущей line) позиции
 
до
:Excel := upper(gIniC(:cCfg, [COM], 'Excel', 'Yes'))
:Lang := upper(gIniC(:cCfg, [COM], 'Lang' , 'LV'))
If ! :Lang $ 'LV,EN'; :Lang := 'LV'
после Enter перед :Lang
:Excel := upper(gIniC(:cCfg, [COM], 'Excel', 'Yes'))

:Lang := upper(gIniC(:cCfg, [COM], 'Lang' , 'LV'))
If ! :Lang $ 'LV,EN'; :Lang := 'LV'
должно быть
:Excel := upper(gIniC(:cCfg, [COM], 'Excel', 'Yes'))

:Lang := upper(gIniC(:cCfg, [COM], 'Lang' , 'LV'))
If ! :Lang $ 'LV,EN'; :Lang := 'LV'


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



Пост N: 2359
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 12:40. Заголовок: PS Вопрос\замеча..


PS
Вопрос\замечание. Зачем снимать выделение после Ctrl+C ?
Если переключусь на др. текст, там сделаю (поправлю себя) Ctrl+C, вставлю в др. текст,
вернусь в самый первый для повтора Ctrl+C, а он сброшен.
Снимать предлагаю по клавишам перемещения или исключая Ctrl+C

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



Пост N: 2362
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 14:43. Заголовок: PS К Ctrl+C Если сде..


PS
К Ctrl+C
Если сделал Ctrl+C и обнаружил, что не дотянул 1,2 строки, а все сбросилось, начинай сначала выделять - не айс

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


Пост N: 1185
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.04.19 16:22. Заголовок: Пожалуй, соглашусь, ..


Пожалуй, соглашусь, что Ctrl-Z лучше оставить для Undo. Переключение режима переведу на Ctrl-Q.
SergKis пишет:

 цитата:
У Far есть возможность запускать редактор с параметрами уст. каретки.


Как? Разве Far'овский редактор запускается отдельно из командной строки?

 цитата:
/g Перейти к указанной позиции (/g -1 конец файла)


Под позицией понимается номер строки?

 цитата:
Вопрос установки Mode(...) для экрана, т.к. для небольших данных достаточно 15 row height, 40 Col width и нужна позиция окна Y, X


Номер строки, размер - это все нетрудно сделать, а вот позиция окна - это вряд ли возможно сделать средствами gt - редактор-то консольный. Да и зачем?

 цитата:
в списке буферов текст не определяет однозначно что там (видно ~ 30-40 символов). Потом надо заниматься постоянной очисткой номерного Clipboard, что тоже удовольствия не доставляет, еще раз подчеркну, для меня.
Режим Notepd3 /b Открыть новое окно для сбора изменений буфера обмена.
Лучше решает поставленную задачу по 10 Clipboard


Полностью текст в списке и не нужен - вы же знаете, что туда помещали. И зачем очищать - не понял. Окно для сбора изменений - идея интересная, но вот насколько это удобно? Впрочем, не пробовал, не знаю.

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


Пост N: 1186
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 15.04.19 16:55. Заголовок: SergKis пишет: Даже..


SergKis пишет:

 цитата:
Даже не знаю, что это за возможности. Может через ini уст. есть такой режим или нет.


Vim - редактор по умолчанию в Линукс консоли, редактор отличный, хоть и своеобразный). Но менеджеру/экономисту это действительно не нужно - так что опция в ini, отключающая его, вполне уместна.

 цитата:
Я о таблице Hash в hbedit, где код нажатой клавиши соответствует, к примеру, блоку кода исполнения.


В Harbour консоли это не так просто, поскольку с возвращаемыми inkey() кодами надо еще работать - они могут быть одинаковыми для разных сочетаний клавиш. Но я буду иметь ввиду такой вариант.

 цитата:
Бяка при вводе новой строки из первой (позиции до текста в текущей line) позиции


Да, вижу - autoindent некорректно срабатывает, надо будет исправить.

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



Пост N: 2363
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 16:58. Заголовок: alkresin пишет Разв..


alkresin пишет
 цитата:
Разве Far'овский редактор запускается отдельно из командной строки?


Раньше точно было, использовал для просмотра aef файлов VO без установленного VO, причем можно уст. и line и col

 цитата:
Полностью текст в списке и не нужен - вы же знаете, что туда помещали


К сожалению нужен, был в работе такой редактор (прям очень похоже список давал), т.к. как прваило идут тексты
If ... elseIf ... Else или DO CASE ... CASE ... и если учесть windows словоблудие и длину слов, то имея 10 похожих строк, фиг поймешь что где лежит и куда хотел деть. В реале работал с одним Clipboard.

 цитата:
Под позицией понимается номер строки?


Да, номер строки, позиция 1 всегда

 цитата:
а вот позиция окна - это вряд ли возможно сделать средствами gt - редактор-то консольный. Да и зачем


Если пойдет консольный, то wvt, наверно, сделать можно. Там использовать Main menu и StatusBar.
На замену Notepad3, hb править легче, чем C с прибамбасами.

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



Пост N: 2364
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 17:28. Заголовок: alkresin пишетОкно д..


alkresin пишет
 цитата:
Окно для сбора изменений - идея интересная, но вот насколько это удобно? Впрочем, не пробовал, не знаю.


Очень удобно. Запускаем Notepad3 /f0 /b _Tmp.txt
Теперь запускаем prg Farом, другой prg Akelpadом, Notepad3 и ходим по prg, помечаем строки и при Ctrl+C
строки появляются в окне сборщике, дописываясь в конец.
Так можно программу новую набрать или куски и потом из этого окна применить.
Ctrl+A, Ctrl+X и все по новой
Отлавливает текст в Clipboard и из др. программ

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



Пост N: 2365
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 17:44. Заголовок: alkresin пишетgt - р..


alkresin пишет
 цитата:
gt - редактор-то консольный. Да и зачем?


Возможность запустить данные с карточек (нескольких) по координатам, к примеру, справа друг под другом.
Если координат нет, только ини, в который запоминаются координаты, размеры где работали, то 2а, 3и таких ини и 3 запуска с параметром ини, так же позволит смотреть одновременно несколько данных вместо EditBox.
Параметр /t задаст заголовок окна. В итоге - все прекрасно

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


Пост N: 824
Зарегистрирован: 13.10.05
ссылка на сообщение  Отправлено: 15.04.19 18:01. Заголовок: SergKis Так, вроде,..


SergKis

 цитата:
Так, вроде, ставятся\снимаются коменты // и /* */



Как ? Ручками каждую строку ?
Я имею ввиду - выделил блок и какой -то командой закоментировал
или снял коментарии, как в Far е (и в 1с) , где можно поставить или убрать для блока

 цитата:
//



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



Пост N: 2366
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 15.04.19 18:15. Заголовок: Vlad04 пишет Я имею ..


Vlad04 пишет
 цитата:
Я имею ввиду - выделил блок и какой -то командой закоментировал
или снял коментарии, как в Far е (и в 1с) , где можно поставить или убрать для блока


Поставить вначале /* и в конце */ проще, чем тащить пометкой блок и вспоминать "какую то" команду.
А ставить автоматом в выделенном блоке в каждую стоку // ? Зачем ?
Но это по мне, как другим ... на любителя.

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

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