Автор | Сообщение |
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
[только новые]
|
|
LYSK
|
| |
Пост N: 83
Зарегистрирован: 17.10.05
|
|
Отправлено: 08.04.19 10:30. Заголовок: Ссылку на бинарник м..
Ссылку на бинарник можно? Из исходников не получается у меня..
|
|
|
alkresin
|
| moderator
|
Пост N: 1175
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.04.19 11:24. Заголовок: LYSK пишет: Ссылку ..
LYSK пишет: цитата: | Ссылку на бинарник можно? Из исходников не получается у меня.. |
| Бинарник еще не выкладывал. Может, завтра, или сегодня попозже. А почему не получается собрать? Какие ошибки выдает?
|
|
|
Sergy
|
| |
Пост N: 654
Зарегистрирован: 08.07.06
|
|
Отправлено: 08.04.19 15:06. Заголовок: alkresin пишет: Есл..
alkresin пишет: цитата: | Если есть идеи для реализации - буду рад услышать. |
|
1) Во многих современных "программистских" реакторах есть отличная штука - автозавершение (syntax completion). Привык в редакторе для Far, но там какой-то баг - при редактировании "большого" файла (~30-60 Кб) и выходе из него в главное окно файла с вероятностью ~1/5 не запускается hbmk2. Причем чем дольше редактируешь и больше размер текста - тем вероятность выше. (( 2) Хотелось-бы свертку блоков. Хотя-бы для начала функций/процедур. 3) Очень удобная штука - анализ зависимостей. Т.е. выбираем имя переменной/функции, и "где-то сбоку" появляется удобный навигатор с быстрыми переходами к тексту функции, где встречается это имя. В Far тоже реализовано в виде расширения, но тоже, к сожалению, через ж... Готов помочь с реализацией, если сочтете нужным добавить такой функционал.
|
|
|
nick_mi
|
| |
Пост N: 217
Зарегистрирован: 19.05.05
|
|
Отправлено: 08.04.19 15:16. Заголовок: Не очень понятно, за..
Не очень понятно, зачем для текстового редактора библиотека RDDLETO.LIB
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2319
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.04.19 15:57. Заголовок: Sergy пишет Во многи..
Sergy пишет цитата: | Во многих современных "программистских" реакторах есть |
| Вот пример редактора (быстрого на больших файлах) с хотелками (как пример) https://TransFiles.ru/oxqxo Немного модифициорванный товарищем по работе: - 866 это LV866 - Ctrl+Y удаление строки (в меню это было Повтор записи) - раскраска синтаксиса hb+hmg (она встроена, к сожалению, автором в прогу)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2320
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.04.19 16:11. Заголовок: PS F2 - Save F5 - Пе..
PS F2 - Save F5 - Перечитать файл
|
|
|
alkresin
|
| moderator
|
Пост N: 1176
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.04.19 16:51. Заголовок: nick_mi пишет: Не о..
nick_mi пишет: цитата: | Не очень понятно, зачем для текстового редактора библиотека RDDLETO.LIB |
| Случайно попала, copy/paste с другого батника. Но я ее убрал еще пару дней назад. Обновите свою копию.
|
|
|
alkresin
|
| moderator
|
Пост N: 1177
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.04.19 17:04. Заголовок: Sergy пишет: 1) Во ..
Sergy пишет: цитата: | 1) Во многих современных "программистских" реакторах есть отличная штука - автозавершение |
| Да, автозавершение не помешало бы. цитата: | 2) Хотелось-бы свертку блоков. Хотя-бы для начала функций/процедур. |
| Вот к свертке не лежит у меня душа, предпочитаю навигацию по списку функций - ее я, кстати, сделал. Может, в силу привычки. цитата: | 3) Очень удобная штука - анализ зависимостей. |
| Так и не понял, что это. Как расширение называется?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2322
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.04.19 09:52. Заголовок: SergKis пишет Вот пр..
|
|
|
Sergy
|
| |
Пост N: 655
Зарегистрирован: 08.07.06
|
|
Отправлено: 09.04.19 15:46. Заголовок: alkresin пишет: Так..
alkresin пишет: цитата: | Так и не понял, что это. Как расширение называется? |
| Чуть позже отвечу. Нужно вспомнить, где это видел...
|
|
|
SadStar2019
|
| |
Пост N: 4
Зарегистрирован: 26.03.19
|
|
Отправлено: 10.04.19 04:11. Заголовок: На моей XP - "Не..
На моей XP - "Не является приложением Win32" На win7 запускается.
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2330
Зарегистрирован: 17.02.12
|
|
Отправлено: 10.04.19 08:43. Заголовок: SadStar2019 Если эт..
SadStar2019 Если это о Notepad3, то см. https://www.rizonesoft.com/downloads/notepad3/ DOWNLOAD Notepad3_5.19.108.1602_Setup.exe (80971 downloads) PORTABLE Notepad3_5.19.108.1602.zip (33932 downloads) VERSION 5.19.108.1602 UPDATED January 8, 2019 FILE SIZE 2 MB LICENSE Open Source REQUIREMENTS Windows® 7, 8 / 8.1, 10 (32 and 64 bit)
|
|
|
ММК
|
| постоянный участник
|
Пост N: 353
Зарегистрирован: 29.05.10
|
|
Отправлено: 10.04.19 10:55. Заголовок: alkresin пишет: Но ..
alkresin пишет: цитата: | Но хочется иметь что-то одно для всех платформ - не слишком навороченный, но чтоб было все что надо. |
|
alkresin пишет: цитата: | Если есть идеи для реализации - буду рад услышать. |
| Far хороший редактор. Его не надо тестировать , править и т.д. Компактный рабочий инструмент. Есть под винду, есть и под линукс. И есть возможность использования плагинов. С ним ( с фаром) все знакомы. Идея очень простая- напишите , если есть такая необходимость, плагин (плагины) . Если получится хороший это будет действительно не только интересно, но и полезно :))
|
|
|
alkresin
|
| moderator
|
Пост N: 1178
Зарегистрирован: 06.07.06
|
|
Отправлено: 10.04.19 14:11. Заголовок: ММК пишет: Far хоро..
ММК пишет: цитата: | Far хороший редактор. Его не надо тестировать , править и т.д |
| Это призыв не строить велосипеды) ? Я сам большой поклонник Far'а, это мой главный инструмент. Но вот его версия под Линукс... Пробовал года два назад - сейчас уже не помню, что за проблемы были, но они оказались достаточно серьезными, чтобы я его оттуда удалил и до сих пор не вспоминал, поэтому до сих пор приходится пользоваться mc. Кроме того, этот редактор (hbedit) можно встраивать в свои консольные приложения. Плагины, кстати, у меня тоже есть, и их можно будет компилировать из самого редактора, даже не имея под рукой компиляторов (hb_compileFromBuf() ).
|
|
|
MIKHAIL
|
| |
Пост N: 203
Зарегистрирован: 05.10.06
|
|
Отправлено: 13.04.19 15:31. Заголовок: Да, хорошего встроен..
Да, хорошего встроенного редактора не хватало.
|
|
|
alkresin
|
| moderator
|
Пост N: 1180
Зарегистрирован: 06.07.06
|
|
Отправлено: 14.04.19 17:00. Заголовок: Создал новую страниц..
Создал новую страницу у себя на сайте для hbedit: http://www.kresin.ru/hbedit.html, оттуда его можно скачать в собранном виде. Вот то, что сделано на сегодняшний день: - Мультирежимность - кроме основного режима редактирования есть режимы выделения, Vim - подобный и командный режимы. - Поддержка разных кодировок, в т.ч. Utf-8. - Возможность открытия произвольного количества окон. - Подсветка синтаксиса, в том числе подсветка парных скобок. - Поддержка закладок, поиск, переход на заданную строку и позицию в строке, переход на парные скобки. - Поддержка до 10 буферов Clipboard. - Неограниченное Undo. - Поддержка плагинов, написанных на Harbour и собранных в виде hrb-файлов. - Возможность компилировать и добавлять в редактор плагины прямо из редактора, причем для этого не требуется наличие Harbour или другого компилятора на компьютере. - Возможность помечать плагины как предназначенные для определенного типа файлов - чтобы они присутствовали в списке только для этих файлов (prg, c, xml, ...). - Возможность запускать на исполнение Harbour-код прямо из редактора.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2348
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.04.19 17:58. Заголовок: alkresin пишет оттуд..
alkresin пишет цитата: | оттуда его можно скачать в собранном виде. |
| 1. Не определяет автоматом файлы utf-8 с BOM 2. Нет выделения вертикального блока Shift+Alt+ стрелки 3. F3 нажимаем выделяем данные в строке, жмем F3, получаем список Clipboard (так понимаю ситуацию), жму Esc и apps.err: 04/14/19 17:47:09 Error BASE/1132 Bound error: array access Called from MNU_F3(1732) Called from TEDIT:ONKEY(829) Called from TEDIT:EDIT(279) Called from MAIN(72) 04/14/19 17:51:45 Error BASE/1132 Bound error: array access Called from MNU_F3(1732) Called from TEDIT:ONKEY(829) Called from TEDIT:EDIT(279) Called from MAIN(72) 4. Как при запуске уст. позицию каретки <строка>, <колонка> 5. Понял, что параметры экрана ставим через ini. Если вариантов параметров несколько (внешний запуск) 25, 80 25, 40 25, 120
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2349
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.04.19 18:07. Заголовок: PS Как получить вари..
PS Как получить вариант виндосовской раскраски белый фон, черный\синий текст ?
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 823
Зарегистрирован: 13.10.05
|
|
Отправлено: 14.04.19 21:48. Заголовок: alkresin 1)А насчёт..
alkresin 1)А насчёт возможности закоментировать ( снять комент ) строку, блок типа Желательно, чтобы была возможность ? 2)История сохраненных файлов вроде сохраняется в файле hbedit.his, а как к ней получить доступ из программы ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2350
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.04.19 22:54. Заголовок: Vlad04 пишет А насчё..
Vlad04 пишет цитата: | А насчёт возможности закоментировать ( снять комент ) |
| Так, вроде, ставятся\снимаются коменты // и /* */
|
|
|
SergKis
|
| постоянный участник
|
Пост 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 вкл. какой то режим отличный от текущего Может есть таблица соответствия для клавиш и процедур, для управления ?
|
|
|
|
alkresin
|
| 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 )
|
|
|
alkresin
|
| moderator
|
Пост N: 1182
Зарегистрирован: 06.07.06
|
|
Отправлено: 15.04.19 09:50. Заголовок: SergKis пишет: Как ..
SergKis пишет: цитата: | Как получить вариант виндосовской раскраски белый фон, черный\синий текст ? |
| Если речь о TEdit(), то установкой :cColor, :cColorSel цвет выделенного текста), :cColorPane (цвет панели состояния). Если об HbEdit - я этот момент как-то упустил, надо будет добавить опции в ini-файл.
|
|
|
alkresin
|
| 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.
|
|
|
alkresin
|
| 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) расписаны многие клавиши.
|
|
|
SergKis
|
| постоянный участник
|
Пост 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" немедленно. Выделенное очень полезно.
|
|
|
SergKis
|
| постоянный участник
|
Пост 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
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2355
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.04.19 10:34. Заголовок: alkresin пишетКстати..
alkresin пишет цитата: | Кстати, чтобы пояснить: F3 как завершение выделения с копированием выделенного в один из буферов по выбору может быть нажато и в том случае, если выделение начиналось без F3, а любым другим способом. |
| Возможно, для кого то, 10 Clipboard очень нужная опция, но по мне, она лишняя, т.к. в списке буферов текст не определяет однозначно что там (видно ~ 30-40 символов). Потом надо заниматься постоянной очисткой номерного Clipboard, что тоже удовольствия не доставляет, еще раз подчеркну, для меня. Режим Notepd3 /b Открыть новое окно для сбора изменений буфера обмена. Лучше решает поставленную задачу по 10 Clipboard По мне
|
|
|
SergKis
|
| постоянный участник
|
Пост 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)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2357
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.04.19 11:17. Заголовок: alkresin пишет у нас..
alkresin пишет цитата: | у нас есть класс TEdit(), который можно встроить в свое приложение |
| Не куда встраивать - все Windows hmg. Разговор о использовании вместо EDITBOX. Сейчас исп. Notepat3 (ранее был Notepad2). Минус у него, надо делать изменения в текстах и сборку, для изменения цветов и ключевых слов (не вынесено в ini) + прыгание каретки по концам строк+клавиши не привычно, приходится переназначать в текстах (Вы тоже предлагаете такой же механизм пересборки в основе). Плюс у него большая скорость при работе с большими файлам log. Клиенту нравится работать с одним большим файлом лог за год и больше (фрагментация по кварталам\месяцам не нравится), выбирая оттуда данные для разных справок в Excel\Word ...
|
|
|
SergKis
|
| постоянный участник
|
Пост 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'
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2359
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.04.19 12:40. Заголовок: PS Вопрос\замеча..
PS Вопрос\замечание. Зачем снимать выделение после Ctrl+C ? Если переключусь на др. текст, там сделаю (поправлю себя) Ctrl+C, вставлю в др. текст, вернусь в самый первый для повтора Ctrl+C, а он сброшен. Снимать предлагаю по клавишам перемещения или исключая Ctrl+C
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2362
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.04.19 14:43. Заголовок: PS К Ctrl+C Если сде..
PS К Ctrl+C Если сделал Ctrl+C и обнаружил, что не дотянул 1,2 строки, а все сбросилось, начинай сначала выделять - не айс
|
|
|
alkresin
|
| 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 |
| Полностью текст в списке и не нужен - вы же знаете, что туда помещали. И зачем очищать - не понял. Окно для сбора изменений - идея интересная, но вот насколько это удобно? Впрочем, не пробовал, не знаю.
|
|
|
alkresin
|
| moderator
|
Пост N: 1186
Зарегистрирован: 06.07.06
|
|
Отправлено: 15.04.19 16:55. Заголовок: SergKis пишет: Даже..
SergKis пишет: цитата: | Даже не знаю, что это за возможности. Может через ini уст. есть такой режим или нет. |
| Vim - редактор по умолчанию в Линукс консоли, редактор отличный, хоть и своеобразный). Но менеджеру/экономисту это действительно не нужно - так что опция в ini, отключающая его, вполне уместна. цитата: | Я о таблице Hash в hbedit, где код нажатой клавиши соответствует, к примеру, блоку кода исполнения. |
| В Harbour консоли это не так просто, поскольку с возвращаемыми inkey() кодами надо еще работать - они могут быть одинаковыми для разных сочетаний клавиш. Но я буду иметь ввиду такой вариант. цитата: | Бяка при вводе новой строки из первой (позиции до текста в текущей line) позиции |
| Да, вижу - autoindent некорректно срабатывает, надо будет исправить.
|
|
|
SergKis
|
| постоянный участник
|
Пост 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 с прибамбасами.
|
|
|
SergKis
|
| постоянный участник
|
Пост 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 и из др. программ
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2365
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.04.19 17:44. Заголовок: alkresin пишетgt - р..
alkresin пишет цитата: | gt - редактор-то консольный. Да и зачем? |
| Возможность запустить данные с карточек (нескольких) по координатам, к примеру, справа друг под другом. Если координат нет, только ини, в который запоминаются координаты, размеры где работали, то 2а, 3и таких ини и 3 запуска с параметром ини, так же позволит смотреть одновременно несколько данных вместо EditBox. Параметр /t задаст заголовок окна. В итоге - все прекрасно
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 824
Зарегистрирован: 13.10.05
|
|
Отправлено: 15.04.19 18:01. Заголовок: SergKis Так, вроде,..
SergKis цитата: | Так, вроде, ставятся\снимаются коменты // и /* */ |
| Как ? Ручками каждую строку ? Я имею ввиду - выделил блок и какой -то командой закоментировал или снял коментарии, как в Far е (и в 1с) , где можно поставить или убрать для блока
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2366
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.04.19 18:15. Заголовок: Vlad04 пишет Я имею ..
Vlad04 пишет цитата: | Я имею ввиду - выделил блок и какой -то командой закоментировал или снял коментарии, как в Far е (и в 1с) , где можно поставить или убрать для блока |
| Поставить вначале /* и в конце */ проще, чем тащить пометкой блок и вспоминать "какую то" команду. А ставить автоматом в выделенном блоке в каждую стоку // ? Зачем ? Но это по мне, как другим ... на любителя.
|
|
|
alkresin
|
| moderator
|
Пост N: 1187
Зарегистрирован: 06.07.06
|
|
Отправлено: 16.04.19 11:01. Заголовок: Обновил Hbedit. Тепе..
Обновил Hbedit. Теперь Ctrl-Z как и Alt-BS делает Undo, Ctrl-Q меняет режим, Ctrl-Home И Ctrl-End работают как и Ctrl-PgUp, Ctrl-PgDn. Пофиксено кое-что. Добавлены параметры командной строки: -xy=xPos, yPos - установка в пикселях начального положения окна редактора (только для Windows) -f iniFileName - имя ini-файла вместо hbedit.ini
|
|
|
|
alkresin
|
| moderator
|
Пост N: 1188
Зарегистрирован: 06.07.06
|
|
Отправлено: 16.04.19 11:05. Заголовок: Vlad04 пишет: Я име..
Vlad04 пишет: цитата: | Я имею ввиду - выделил блок и какой -то командой закоментировал |
| Теперь понятно. Надо просто написать соответствующий плагин. Они здесь пишутся на чистом Harbour, компилируются и устанавливаются прямо из редактора. Могу оказать методическую помощь).
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2367
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 12:15. Заголовок: alkresin fedit.prg ..
alkresin fedit.prg line 215 ::aText := hb_ATokens( cText, Chr(10) ) ::cEol := Iif( Right( ::aText[1],1 ) == Chr(13), Chr(13) + Chr(10), Chr(10) ) не точное определение, есть файлы prg (в hmg несколько штук оказалось), где смесь и Chr(13) + Chr(10) и Chr(10) Не факт что aText[1] будет содержать Chr(13) Надо привести к одному Chr(10) в работе, к примеру ::aText := hb_ATokens( CtrTran(cText, Chr(13)), Chr(10) ) или с анализом If Chr(13) $ cText
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2368
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 12:16. Заголовок: PS StrTrans( конечно..
PS StrTrans( конечно же
|
|
|
alkresin
|
| moderator
|
Пост N: 1189
Зарегистрирован: 06.07.06
|
|
Отправлено: 16.04.19 13:13. Заголовок: SergKis пишет: есть..
SergKis пишет: цитата: | есть файлы prg (в hmg несколько штук оказалось), где смесь и Chr(13) + Chr(10) и Chr(10) |
| Если там смесь, то, вообще говоря, неизвестно, какой правильный. Надо будет (давно собираюсь) добавить в диалог сохранения файла опцию, принудительно устанавливающую тот или иной eol.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2369
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 13:51. Заголовок: alkresin пишет доба..
alkresin пишет цитата: | добавить в диалог сохранения файла опцию, принудительно устанавливающую тот или иной eol. |
| Может, достаточно в ini ? CRLF=Y\N
|
|
|
alkresin
|
| moderator
|
Пост N: 1190
Зарегистрирован: 06.07.06
|
|
Отправлено: 16.04.19 14:37. Заголовок: SergKis пишет: Може..
SergKis пишет: цитата: | Может, достаточно в ini ? |
| Если в ini, то все файлы, независимо от их изначального eol будут принудительно и молча сохраняться с определенным eol, что, вообще говоря, неправильно. С третьей стороны, если у вас в файле смесь eol'ов, то какая вам разница, с каким он сохранится?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2370
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 15:20. Заголовок: alkresin пишет С тре..
alkresin пишет цитата: | С третьей стороны, если у вас в файле смесь eol'ов, то какая вам разница, с каким он сохранится |
| Есть hb_OsNewLine(), вроде так называется, по сути это и есть CRLF для оси. Ее и применять при CRLF=Y или в ini писать EOL=CRLF\LF Кода смесь, то лучше, что ось дает.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2371
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 15:26. Заголовок: alkresin Плавающая ..
alkresin Плавающая ошибка, точно не смог определить появление Скрытый текст
04/16/19 15:07:09 Error BASE/1132 Bound error: array access Called from FMENU(64) Called from SPIS1(37) Called from HB_HRBDO(0) Called from MNU_PLUGINS(1980) Called from TEDIT:ONKEY(871) Called from TEDIT:EDIT(283) Called from MAIN(97) 04/16/19 15:08:29 Error BASE/1132 Bound error: array access Called from FMENU(64) Called from SPIS1(37) Called from HB_HRBDO(0) Called from MNU_PLUGINS(1980) Called from TEDIT:ONKEY(871) Called from TEDIT:EDIT(283) Called from MAIN(97) 04/16/19 15:09:14 Error BASE/1132 Bound error: array access Called from FMENU(64) Called from SPIS1(37) Called from HB_HRBDO(0) Called from MNU_PLUGINS(1980) Called from TEDIT:ONKEY(871) Called from TEDIT:EDIT(283) Called from MAIN(97) 04/16/19 15:10:08 Error BASE/1132 Bound error: array access Called from FMENU(64) Called from SPIS1(37) Called from HB_HRBDO(0) Called from MNU_PLUGINS(1980) Called from TEDIT:ONKEY(871) Called from TEDIT:EDIT(283) Called from MAIN(97) 04/16/19 15:11:24 Error BASE/1132 Bound error: array access Called from FMENU(64) Called from SPIS1(37) Called from HB_HRBDO(0) Called from EXEC(1980) Called from FMENU(102) Called from TEDIT:ONKEY(859) Called from TEDIT:EDIT(283) Called from MAIN(97)
| Работал следующее как через меню, так и нажатием клавиш (чередовал раз через меню, несколько раз только клавиши и ...) F9 -> "Plugins F11" -> "0. Function list" -> <Список ...>
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2372
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 15:35. Заголовок: SergKis пишет Кода с..
SergKis пишет цитата: | Кода смесь, то лучше, что ось дает. |
| Если CRLF или EOL нет в ini, то Default :Eol := hb_OsNewLine(), если есть, то от установки
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2373
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 15:40. Заголовок: SergKis пишет Работа..
SergKis пишет цитата: | Работал следующее как через меню, так и нажатием клавиш |
| Может важно, когда проделывал указанные действия, в самом тексте ничего не делал по перемещению\изменению. Только перемещение при помощи плагина
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2375
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 16:29. Заголовок: alkresin Запуск hbe..
alkresin Запуск hbedit.exe -xy=10,10 main.prg ini screen_width=40 screen_height=15 Меню F9 уходит за пределы она, центруясь по старым координатам Его бы от левого угла или иметь возможность отключить показ\вызов F9 меню, для текстов в таких размерах не очень надо меню
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2376
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 16:46. Заголовок: alkresin Получил ст..
|
|
|
alkresin
|
| moderator
|
Пост N: 1191
Зарегистрирован: 06.07.06
|
|
Отправлено: 16.04.19 17:09. Заголовок: SergKis пишет: Полу..
SergKis пишет: цитата: | Получил стабильное сваливание hbedit.exe |
| Это я уже нашел, там в плагине ошибка - завтра обновлю.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2377
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 18:08. Заголовок: alkresin Попробовал..
alkresin Попробовал расширить commands= ... добавил toolbar splitbox with window label button getbox buttonex checkbox comboboxex combo listbox image RadioGroup textbox main modal child mdichild action tbrowse super frame Все здорово А нельзя ввести группы на команды и соответствующий цвет для группы? К примеру commands2=<те которые добавил в commands> по умолчанию тот же цвет, что и у commands, но что бы можно было установить из ini
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2378
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.04.19 18:10. Заголовок: PS может несколько г..
PS может несколько групп ? commands3=
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2379
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 09:07. Заголовок: alkresin По языковы..
alkresin По языковым текстам меню и т.д.. Может сразу их вынести в Utf8 ? Встанет же вопрос языка. К примеру hbedit.ini utf8 кодировка и секция с текстами (кому как надо, правильно переведет с EN), не связываясь раздельно с EN, RU, DE, FR, ...
|
|
|
alkresin
|
| moderator
|
Пост N: 1192
Зарегистрирован: 06.07.06
|
|
Отправлено: 17.04.19 09:24. Заголовок: SergKis пишет: Если..
SergKis пишет: цитата: | Если CRLF или EOL нет в ini, то Default :Eol := hb_OsNewLine(), если есть, то от установки |
| Сделал в ini eol=0 (автоопределение как сейчас - по умолчанию), 1 - Линукс, 2 - Дос. Ставить в зависимости от ОС (hb_OsNewLine()) - не вариант. Часто бывает нужно под одной ОС редактировать файлы, сделанные под или для другой ОС. цитата: | А нельзя ввести группы на команды и соответствующий цвет для группы? К примеру commands2=<те которые добавил в commands> по умолчанию тот же цвет, что и у commands, но что бы можно было установить из ini |
| Да, я планирую расширение модуля подсветки. Цвета подсветки, кстати, можно установить в ini и сейчас - секция HILIGHT. цитата: | По языковым текстам меню и т.д.. |
| Еще не думал на эту тему.
|
|
|
alkresin
|
| moderator
|
Пост N: 1193
Зарегистрирован: 06.07.06
|
|
Отправлено: 17.04.19 09:32. Заголовок: Обновлен Hbedit. Исп..
Обновлен Hbedit. Исправлены ошибки. Добавлены опции командной строки: - -gN - goto line N; If N is negative it is a number of lines before the end - [-size=nCols,nRows] - number of columns and rows in an editor window Добавлено определение цветов в ini, секция OPTIONS: colormain, colorsel, colorpane(панель слстояния), colorbra(подсветка парных скобок). Туда же добавлены eol (0,1,2) и trimspaces (on,off) - удаление конечных пробелов при сохранении файла. Команды режима Vim b,B, e,E, w,W приведены в соответствие со стандартом Vim. Добавлена команда Alt-b - переход на предыдущую ( после поиска и пр. ) позицию. Возврат назад, короче. После Ctrl-C, Ctrl=Ins, Ctrl-Tab выделение теперь не убирается.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2380
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 09:56. Заголовок: alkresin пишет Еще н..
alkresin пишет цитата: | Еще не думал на эту тему. |
| Это понятно, пока мысли в другом. Это я смотрю, как править "под себя" в wvt У нас подправлена, товарищем, wvt для работы с main menu и statusbar, поэтому строка с F9-menu ... в таком виде не нужна, т.е. работа по клаве остается, а меню и выполнение пунктов надо перенести в main menu + тексты перевести в LV. Вот и смотрю тексты с такого угла (что отключить, что оставить из режимов), потому что уже сейчас почти все устраивает (может не доделано и ...)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2381
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 10:12. Заголовок: PS С текстами, приме..
PS С текстами, примерно, так делаю hText := { 1 => ..., 2 => ..., ... <полный набор текстов в EN (к примеру)>} в ini (utf8) секция [TEXT], в ней ключ = текст языковый. Какие ключи есть, переносим в hText. Для меню массив или hash 01.00 = текст горизонтальный в main menu 01.01 = ... -> popup ... 02.01 = ... -> popup ... Выполнение меню hash 01.01, {|..| ... } ... это просто для информации
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2382
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 11:18. Заголовок: alkresin Еще такая ..
alkresin Еще такая фишка для ini his - добавить в строку истории параметр текстовый, меняющий в меню имя файла на указанный текст - вход в hbedit с отображением меню истории (с текстами) Тогда можно делать шаблоны каких то данных под именами файлов и культурно предлагать сразу при запуске выбрать для работы нужный
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2383
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 11:22. Заголовок: PS В hbedit.ini имет..
PS В hbedit.ini иметь имя ini his для работы
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2384
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 12:31. Заголовок: alkresin Еще предло..
alkresin Еще предложение, пакетный поиск с заменой из ini [REPL] <ключ как написан>=<значение (в том числе и пустое)> к примеру [REPL] ^1=my text 1 ^2=мой текст 1 $DokNr$=ABC 12345 ... в плагин, по мне, выносить не стоит, т.к. уже есть\будет режим поиск - замена, то использовать рекурсивно по ini добавить команду -repl=<имя ini> и можно в ini his параметром к альтернативному тексту названия все ini utf8
|
|
|
alkresin
|
| moderator
|
Пост N: 1194
Зарегистрирован: 06.07.06
|
|
Отправлено: 17.04.19 13:32. Заголовок: SergKis пишет: У на..
SergKis пишет: цитата: | У нас подправлена, товарищем, wvt для работы с main menu и statusbar, ... а меню и выполнение пунктов надо перенести в main menu + тексты перевести в LV. |
| Ничего не понял). Какое wvt подправлено? Харборовский драйвер gtwvt? Что такое LV?
|
|
|
alkresin
|
| moderator
|
Пост N: 1195
Зарегистрирован: 06.07.06
|
|
Отправлено: 17.04.19 13:45. Заголовок: По вашим предложения..
По вашим предложениям с ini his и заменой, определенной в ini ( это ведь имеется ввиду, что в ini будет прописано что на что менять и hbedit должен при открытии любого файла производить пакетно такую замену, я правильно понял? ). Мне это представляется несколько экзотическим - в том смысле, что такие фичи носят слишком узкоспециализированный характер и вряд ли будут полезны для большинства пользователей. Я предлагаю более универсальное решение - это возможность прописать в ini-файле имя плагина, который должен выполняться при старте редактора, можно также имя плагина, выполняющегося при открытии файла, можно разные плагины в зависимости от типа (расширения) файла. Вам остается написать сам плагин для своих нужд - таким образом вы сможете реализовать и эти свои два предложения, и много чего еще.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2385
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 14:39. Заголовок: alkresin пишет По ва..
alkresin пишет цитата: | По вашим предложениям с ini his и заменой, определенной в ini ( это ведь имеется ввиду, что в ini будет прописано что на что менять и hbedit должен при открытии любого файла производить пакетно такую замену, я правильно понял? ) |
| В целом, да. Добавив опцию Save = 0\1\2 0 - как есть по имени файла 1 - добавить к имени _дату_время 2 - добавить к имени (версия\номер) Мы получаем без внешних программ рабочее место на базе шаблонов с "нормальным" названием в his Если запросили в параметрах, то список his высветился, выбрали, если есть repl - выполнили Если в параметрах не задавали, через ини, получаем his не автоматом, а через меню идем в his и т.д. по списку Из программы из карточки создаем данные repl и по шаблону получаем письмо\справку\..., которую можно поправить\добавить и сохранить по режиму Save, Далее отослать куда надо полученное Если предусмотреть в repl продолжение строк (как есть), то можно код программы набрать по шаблонам (заготовленным заранее label, button,...) цитата: | Я предлагаю более универсальное решение - это возможность прописать в ini-файле имя плагина |
| По мне, тут он лишний, в цикле прочитанного в hash [repl] прогнать существ. процедуру поиск-замена без сообщений Да и ставить клиенту лишние файлы и следить за их целостностью, не всегда, целесообразно Писать плагины, на данный момент, для экномич. работ не вижу смысла [quote]`
|
|
|
alkresin
|
| moderator
|
Пост N: 1196
Зарегистрирован: 06.07.06
|
|
Отправлено: 17.04.19 17:09. Заголовок: SergKis пишет: По м..
SergKis пишет: Плагины для того и предназначены, чтобы расширять функциональность программы, чтобы добавлять в нее дополнительные, предназначенные для нужд конкретной реализации возможности. Программа общего назначения, какой является текстовый редактор, не должна содержать такого рода узкоспециализированные, заточенные под конкретного потребителя функции, она должна только предоставлять возможность для расширения, для модификации ее под конкретные нужды. Такой возможностью и являются плагины.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2386
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 19:46. Заголовок: alkresin пишетПрогра..
alkresin пишет цитата: | Программа общего назначения, какой является текстовый редактор, не должна содержать такого рода узкоспециализированные, заточенные под конкретного потребителя функции |
| Вообще то были редактора\программы (даже в dos) с параметрами найти и заменить все. Надо было писать записи в bat nn раз что бы выполнить замену. Считать замену в тексте по картинке с запросом "Что найти" "На что поменять" с уточнениями "Найти предыдущую", "Найти следующую", "Заменить", "Заменить все" + галочки с уточнениями. Это считается нормальным. То же проделать "Заменить все" списком из файла (вместо 30 окон запросов) - узкоспециализированным. Странно по мне. Плагины, сейчас представленные, относятся к prg типу файлов, по мне, это компоненты программы - не плагины, без них это обычный txt файл, как в notepad. Т.е. введенные типы файлов, кроме подсветки, автоматом, должны давать что то больше чем, к примеру, Notepad3
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2387
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 20:10. Заголовок: alkresin пишет Вам о..
alkresin пишет цитата: | Вам остается написать сам плагин для своих нужд - таким образом вы сможете реализовать и эти свои два предложения, и много чего еще. |
| В программе все так и делается, выгружается в txt, заменяется, подается в notepad3 с ini в размерное окно и полученный файл после, если надо, переименовывается и перекидывается куда нибудь, если надо. Таскается это все из проги в прогу через либы.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2388
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.04.19 20:36. Заголовок: alkresin пишет По ва..
alkresin пишет цитата: | По вашим предложениям с ini his и заменой, определенной в ini ( это ведь имеется ввиду, что в ini будет прописано что на что менять и hbedit должен при открытии любого файла производить пакетно такую замену, я правильно понял? ). |
| Если задан файл и -repl в параметрах - выполняется замена при запуске Если задан his, то при запуске активируется меню his (как меню F2 в Far, может активироваться при запуске) для выбора пункта, если у выбранного стоит repl, то выполнить этот repl перед загрузкой
|
|
|
alkresin
|
| moderator
|
Пост N: 1197
Зарегистрирован: 06.07.06
|
|
Отправлено: 18.04.19 09:26. Заголовок: SergKis пишет: Вооб..
SergKis пишет: цитата: | Вообще то были редактора\программы (даже в dos) с параметрами найти и заменить все. |
| Программы были и есть - например, моя snr), но для редактора это все же нетипичная функция. А мне странно, что вы не хотите себе, для своих же нужд, написать маленький плагин. цитата: | Если задан файл и -repl в параметрах - выполняется замена при запуске Если задан his, то при запуске активируется меню his... |
| Все это легко реализуется с помощью плагина. Помещаете hrb в plugins/, прописываете его имя в ini - и дело сделано.
|
|
|
alkresin
|
| moderator
|
Пост N: 1198
Зарегистрирован: 06.07.06
|
|
Отправлено: 18.04.19 09:31. Заголовок: Обновлен hbedit Тепе..
Обновлен hbedit Теперь для подсветки вместо commands, funcs указываются keywords1, keywords2, keywords3, keywords4. Добавлена возможность указать в ini плагин, запускаемый автоматически при старте программы (секция START). Еще какие-то мелочи - уже не помню).
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2390
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.04.19 10:33. Заголовок: alkresin пишет Все э..
alkresin пишет цитата: | Все это легко реализуется с помощью плагина. Помещаете hrb в plugins/, прописываете его имя в ini - и дело сделано. |
| Этого мало. Для эксплуатации этого мало. Надо в меню "культурно" назвав вставить, не в список плагинов, это внутреннее дело программы, а клиенту надо только его и на его языке. Вы отказались от строки меню и строки статуса\подсветки - это уже лишнее нажатие F9\мыши. Все запищат от такого. Потом для редактора mode 24 row, 80 col ... это не используется давно, 32x120 как минимум (точно не помню соотношения, т.к. давно не использую консоль\wvt, товарищ wvt использует). Наличие меню, дает возможность набирать пункты - для клиента это важно. Подсветка полного имени файла, как правило не нужно (опционно) достаточно имени, т.к. большинство работ с выбранным ini в одном каталоге. Сравниваю с Notepad3, который устанавливаем с программами у всех клиентов + сами используем, правда с оболочкой проекта, пока тенденция не в пользу hbedit, к сожалению.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2391
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.04.19 11:16. Заголовок: SergKis пишет Потом ..
SergKis пишет цитата: | Потом для редактора mode 24 row, 80 col |
| Извините, ошибся, стоит 30x100. Подумал 24x80 т.к. на своих текстах много не видно и совмещение меню со статус строкой показалось экономия строк рабочих.
|
|
|
alkresin
|
| moderator
|
Пост N: 1199
Зарегистрирован: 06.07.06
|
|
Отправлено: 18.04.19 12:55. Заголовок: SergKis пишет: Надо..
SergKis пишет: цитата: | Надо в меню "культурно" назвав вставить, не в список плагинов, это внутреннее дело программы, а клиенту надо только его и на его языке. |
| Не понял. Что надо вставлять в меню? Вы говорили о стартовом меню: "вход в hbedit с отображением меню истории (с текстами)". Т.е., пользователь запускает hbedit, сразу выскакивает меню с алиасами имен файлов и он выбирает нужный для редактирования. Я предлагаю вам написать плагин, который выведет это меню на экран и прописать его в ini - файле в секции {START] - так что его не надо будет вызывать, он будет запускаться при старте hbedit автоматически. При необходимости повторного вызова его можно прописать и в списке плагинов ([PLUGINS], который выводится на экран по F11 - это пользователю нетрудно запомнить. SergKis пишет: цитата: | Извините, ошибся, стоит 30x100. |
| Стоит то, что прописано в ini, хоть 30х100, хоть 50х200...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2392
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.04.19 13:46. Заголовок: alkresin пишет Не по..
alkresin пишет цитата: | Не понял. Что надо вставлять в меню? |
| Это меню, как было в дос программах, сверху строка меню, снизу строка состояния (или наоборот). Применительно к hbedit это не F9-menu надпись\кнопка, а сразу развернутое горизонтально главное меню, сразу видно, что там (не надо лишний раз нажимать\кликать F9-menu). Вставлять\набирать надо это меню (только те пункты, которые нужны) и подменю набирать. Использовать языковые тексты. В notepad main menu "File" "Edit" "Format" "View" "Help". В notepad3 похоже. Надписи EN, клиентов это устраивает, т.к. системная программа. Любая другая должна иметь "обоснование", почему не на государственном (hbedit собранная под wvt в тек. виде не подойдет никак) цитата: | Я предлагаю вам написать плагин, который выведет это меню |
| hrb хорошо, но у клиента хорошо, если он хотя бы в ресурсах программы. LetoDb v.m.1.0 все hrb функции убрал в exe после случая с "добрым" admin, который в тихаря удалил его несколько раз. Потом, если вводятся типы файлов LANG_PRG, LANG_C,..., LANG_TXT, ... то должен быть набор свойств\функций для работы с ним. Набор должен работать в автомате - не через меню плагин (это доп. режим). Так по мне. his - это история работы с файлом или применительно к prg - это список файлов проекта, т.е. в каталоге может быть куча файлов, но файлами his раскладываются на проекты. Зачем тут писать plugin, достаточно иметь галочку, как в Far на меню F2. Нужно запустить hbedit с галочкой или именем his. В том же Far создаем несколько пунктов для проектов, с параметром file.his. Альтернативное имя пункта меню. К примеру, у меня в проекте, она берется из первой строки // ... или /* ... */ и добавляется к имени prg (без путей) Для сборки проекта надо запускать cmd, желательно именно на данный список his prg или hbmk2 с hbp цитата: | по F11 - это пользователю нетрудно запомнить |
| Вот пользователю это совсем не нужно (даже запоминать не будет, будет звонить). Ему надо кнопку, tooltip, меню ...
|
|
|
alkresin
|
| moderator
|
Пост N: 1200
Зарегистрирован: 06.07.06
|
|
Отправлено: 18.04.19 18:32. Заголовок: SergKis пишет: hrb ..
SergKis пишет: цитата: | hrb хорошо, но у клиента хорошо, если он хотя бы в ресурсах программы. LetoDb v.m.1.0 все hrb функции убрал в exe после случая с "добрым" admin, который в тихаря удалил его несколько раз. |
| Ну это несерьезно. А если admin удалит ini файлы, или exe? А если он в Program Files покуролесит? Или он только hrb удаляет ? Тогда поставьте другое расширение файлу - dll, например. цитата: | если вводятся типы файлов LANG_PRG, LANG_C,..., LANG_TXT, ... то должен быть набор свойств\функций для работы с ним. Набор должен работать в автомате - не через меню плагин |
| Типы файлов вводятся извне программы, в ini. Поэтому и функции, специфичные для них, реализованы внешними модулями. Если мне понадобится добавить еще один тип, то что, программу для этого менять?
|
|
|
alkresin
|
| moderator
|
Пост N: 1201
Зарегистрирован: 06.07.06
|
|
Отправлено: 18.04.19 18:50. Заголовок: Если вам так нужно с..
Если вам так нужно свое постоянное меню, то есть еще вот такое решение - я планировал сделать что-то в этом роде, только обдумывал конкретную реализацию. Теперь, вроде, сложилось все в голове. Это возможность для плагина создавать свою область на экране - как бы расщеплять окно и перехватывать предназначенные для нее события. Т.е., в стартовом плагине, который запускается автоматически, вы можете отключить панель состояния и выделить для себя область - сверху, снизу, справа или слева. в которой нарисуете свое меню. Кроме того, вы назначаете свой обработчик событий - он будет получать код нажатой клавиши или кнопки мыши, а возвращать, допустим, -1 если надо продолжить обработку, 0 - если не надо или новый код, который программа примет как код нажатой клавиши (таким образом можно, в частности, переназначать клавиши). Таким способом вы сможете реализовать абсолютно все, что вам надо. Ну а я смогу сделать, например, вывод результатов компиляции в спец.окно с возможностью перехода на строку, где была ошибка.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2399
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.04.19 19:02. Заголовок: alkresin пишет Ну эт..
alkresin пишет Еще как серьезно, маленькое действие, приводящее к вызову admin (по договору ходит). Каждый визит оплачивается часовым тарифом. Мы доступа к серверу не имеем, определить что произошло с клиента никак. цитата: | Если мне понадобится добавить еще один тип, то что, программу для этого менять? |
| Периодически, особенно, если удачное предложение, ДА. Иначе, чем отличается введенные типы от др. редакторов, того же far, notepsd3 (этот может и фонты менять на выделениях. не только цвета). Но, Вам, виднее.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2400
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.04.19 19:24. Заголовок: PS Вырезка из ini No..
PS Вырезка из ini Notepad3 по типам Скрытый текст
[Default Text] [2nd Default Text] [ANSI Art] [Apache Config Files] [Assembly Script] [AutoHotkey Script] [AutoHotkey_L Script] [AutoIt3 Script] [AviSynth Script] [Awk Script] [Batch Files] [C# Source Code] [C/C++ Source Code] [Cmake Script] [Coffeescript] [Configuration Files] [CSS Style Sheets] [D Source Code] [Diff Files] [Go Source Code] [Inno Setup Script] [Java Source Code] [JavaScript] [HARBOUR Source Code] Default=size:+2 [JSON] [LaTeX Files] [Lua Script] [Makefiles] [Markdown] [MATLAB] [Nim Source Code] [NSIS Script] [Pascal Source Code] [Perl Script] [PowerShell Script] [Python Script] [Registry Files] [Resource Script] [R-S-SPlus Statistics Code] [Ruby Script] [Rust Source Code] [Shell Script] [SQL Query] [Tcl Script] [VBScript] [VHDL] [Visual Basic] [Web Source Code] [XML Document] [YAML]
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2401
Зарегистрирован: 17.02.12
|
|
Отправлено: 18.04.19 20:15. Заголовок: alkresin пишет Если ..
alkresin пишет цитата: | Если вам так нужно свое постоянное меню, то есть еще вот такое решение |
| Меню и строку состояния как в дос в wvt не используем. Уже писал, товарищ по работе, меняет wvt добавляя main menu и StatusBar, т.е. вся площадь окна - рабочая область. Исп. ф-ии (это еще hb 2.0) wvt_CreateMenu( [lMain] ) -> hMenu ... wvt_AppendMenu(hMenu, cCaption, nKey, [cFlags] ) Добавить пункт в меню cCaption - Текст меню В тексте работает символ Chr(9) nKey - Этот код будет послан в очередь Наш обработчик ловит nKey и запускает из массива или hash по ключу блок кода. Я не работаю с wvt давно, подзабыл детали и пример не нашел, убрал куда то Хорошо бы вашему обработчику послать сообщение, что выполнить (список всех исполнителей ?) cFlag - строка символов в любой комбинации регистр не имеет значение 'B' - Bold выделеный пункт меню 'C' - Cheked Помечен галочкой 'D' - Disable Серый не работающий 'N' - Начинается новая колонка 'H' - При первом открытии меню курсор стоит на этой позиции Еще условия : - надо кодировку LV866 (EN,LV,RU) ее нет в hb standart - hb 3.2 unicode с LV866 сделан под vc2017 (не переведены еще часть используемых C lib) - hbedit тексты должны быть utf8 + все ini (BOM) + работа с ними внутри utf8 - все меню hbedit, переведены в main menu Что бы браться за это для hbedit, надо очень веские причины, т.к. сейчас Notepad3 с LV866, клавиши и режимы приведены "нормальным" действиям. Изменения Notepad3 только новой пересборкой, но особо уже ничего не надо, так по мелочи есть по покраске, наберется, пересоберется
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2403
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.04.19 07:57. Заголовок: PS Вспомнил, свой об..
PS Вспомнил, свой обработчик, это установленные SetKey( nKey, {|| ...})
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 825
Зарегистрирован: 13.10.05
|
|
Отправлено: 19.04.19 09:39. Заголовок: По-моему вы пытаете..
По-моему вы пытаетесь скрестить ежа и ужа. Как известно редакторы предназначенные для Юзеров ( просмотр текста, печать и ещё что-то) отличаются по функционалу от редакторов предназначенных для написания кода. А судя по вводной в начале темы alkresin и собирался создать ВТОРОЙ - не слишком навороченный, но чтоб было все что надо. . Но SergKis пытается из него сделать редактор для ПОЛЬЗОВАТЕЛЕЙ, при чем не сильно продвинутых цитата: | Вот пользователю это совсем не нужно (даже запоминать не будет, будет звонить). Ему надо кнопку, tooltip, меню ... |
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2407
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.04.19 10:07. Заголовок: Vlad04 пишет По-моем..
Vlad04 пишет цитата: | По-моему вы пытаетесь скрестить ежа и ужа |
| Почитайте самое начало темы, разговор о сделанном MemoEdit() и на его базе, более мощное hbedit, который по смыслу полностью совпадает с Notepad3 (C вариант) и Far. Если с Far понятно, "вас тут много, а я один - делайте плагины, когда нужно, чего нет". В hbedit такая метода мне не понравилась, для отладки нового алгоритма - хорошо, для работы повседневной, не очень, по мне. В отличии от notepad3, hbedit (MemoEdit()) можно встроить в прогу, вот я и прикидывал как это сделать. Консольный hbedit => wwt hbedit, но вариант похожий на windows По поводу вопросов по "Вот пользователю это совсем не нужно ..." Интерфейсов консольных и wvt в стиле clipper не осталось, всем надо и понимают что и как для windows интерфейса. Меню hbedit после клика F9 вызовет полное недоумение у нынешних пользователей, а нажать клавишу F9 большая половина не поймет ... и будут звонить - "как получить что то ... вы показывали". Это почти не утрировано.
|
|
|
alkresin
|
| moderator
|
Пост N: 1202
Зарегистрирован: 06.07.06
|
|
Отправлено: 19.04.19 11:36. Заголовок: Vlad04 пишет: Но Se..
Vlad04 пишет: цитата: | Но SergKis пытается из него сделать редактор для ПОЛЬЗОВАТЕЛЕЙ |
| Проблема в том, что ему нужен, как я понимаю, не просто редактор для пользователей, а программа на базе редактора, с функциями, редактору общего назначения не свойственными, специализированная для нужд конкретного клиента. В принципе, эта задача вполне решаема с помощью плагинов. SergKis пишет: цитата: | Консольный hbedit => wwt hbedit, но вариант похожий на windows |
| С помощью своего плагина - пожалуйста. Редактор мультиплатформенный, консольный (чтобы и по ssh можно было работать), поэтому включать в основную программу чисто виндовские элнменты - не вариант. цитата: | Интерфейсов консольных и wvt в стиле clipper не осталось, ... Меню hbedit после клика F9 вызовет полное недоумение у нынешних пользователей |
| Вы явно недооцениваете пользователей. Буквально на прошлой недели я поставил небольшую консольную программу на завод в маленьком поселке - как раз со старым Клипперовским меню, без поддержки мыши. Первой реакцией было недоумение - на что нажимать, как работать, но после 5-минутной консультации по телефону все стало на свои места. Неделю уже работают, никаких вопросов.
|
|
|
alkresin
|
| moderator
|
Пост N: 1203
Зарегистрирован: 06.07.06
|
|
Отправлено: 19.04.19 11:40. Заголовок: Еще раз обновил реда..
Еще раз обновил редактор. Кое-что исправлено, добавлен плагин - список функций для С. Добавлена возможность задавать в ini цвета подсветки и для конкретного языка.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2408
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.04.19 12:02. Заголовок: alkresin пишет Вы яв..
alkresin пишет цитата: | Вы явно недооцениваете пользователей. |
| Реальность в Латвии такова, что остались только мы (два динозавра), пишущих на Clipper\Harbour цитата: | Проблема в том, что ему нужен, как я понимаю, не просто редактор для пользователей, а программа на базе редактора, с функциями, редактору общего назначения не свойственными, специализированная для нужд конкретного клиента. |
| В принципе не нужна в предлагаемом виде, все на плагинах (Far достаточно со своими, но и им давно не пользуюсь, только в качестве источника для Clipboard). Notepad3 полностью обеспечивает работу с мемо полями и текстами док., шаблонами (вместо worda, т.к. нужна лицензия). Его запустил с ini, изменил размеры окна до нужного и позицию - сохранилось все в ini, след. запуск с ini размещает где хотели. Таких несколько ini обеспечивают одновременную работу с несколькими карточками. Это аналог работы в окне STANDARD с EDITBOX. Title окна задается (номер карточки или еще что) /t Nr.1234567. по кнопке можно запустить распечатку файла немедленно или с запросом свойств печати. Кстати, кодировка LV866 в нем соответствует RU866 и устанавливается в меню выбором кодировки 866. Лат. буквы в местах псевдографики. Можно попробовать
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2409
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.04.19 12:10. Заголовок: PS для prg, кроме по..
PS для prg, кроме подсветки (hb+hmg) есть автозавершение и режим уст. длинной строки с прорисовкой линии, в этом режиме до линии добавляются строки пробелами и курсор не прыгает (это уже наши правки), при добавлении новых строк это ломается, но не смертельно (F2, F5) исправляет. Линия в 0 - обычный режим Notepad3
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2412
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.04.19 19:07. Заголовок: alkresin При большо..
alkresin При большом списке функций, методов, ... (кончились цифры+буквы у пунктов FMenu), просится - сортировка списка по наименованию - поиск в списке по наименованию планируется ли такое ?
|
|
|
alkresin
|
| moderator
|
Пост N: 1204
Зарегистрирован: 06.07.06
|
|
Отправлено: 19.04.19 21:00. Заголовок: SergKis пишет: план..
SergKis пишет: Может быть. Пока не думал.
|
|
|
alkresin
|
| moderator
|
Пост N: 1205
Зарегистрирован: 06.07.06
|
|
Отправлено: 19.04.19 21:06. Заголовок: Что-то странное в эт..
Что-то странное в этом апрельском воздухе)... Зашел сегодня на Harbour Users посмотреть, чем народ дышит, а там в апреле среди прочих два сообщения о разработке консольного текстового редактора, одно из них - от Линареса: [url=https://groups.google.com/forum/#!topic/harbour-users/gXH7fwucSAA]https://groups.google.com/forum/#!topic/harbour-users/gXH7fwucSAA[/url] [url=https://groups.google.com/forum/#!topic/harbour-users/gBhBpgl13LA]https://groups.google.com/forum/#!topic/harbour-users/gBhBpgl13LA[/url] А вы говорите, "интерфейсов консольных и wvt в стиле clipper не осталось". Новый тренд пошел).
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2413
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.04.19 22:48. Заголовок: alkresin пишет А вы ..
alkresin пишет цитата: | А вы говорите, "интерфейсов консольных и wvt в стиле clipper не осталось". Новый тренд пошел). |
| Так это в нашей деревне. У вас Linuks (типа своя ось) должен вперед двигаться, после ограничений по windows. Потому консоль, wvt должны рулить
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2414
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.04.19 22:53. Заголовок: alkresin пишет Может..
alkresin пишет цитата: | Может быть. Пока не думал. |
| Для пробы взял h_tbrowse.prg из hmg, 379 entity, 15340 line
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2415
Зарегистрирован: 17.02.12
|
|
Отправлено: 19.04.19 23:06. Заголовок: PS Включаю в Entity ..
PS Включаю в Entity кроме CLASS и END CLASS, чтобы в списке видеть, где кончаются объявления методов и их INLINE, BLOCK конструкции, для перехода в конец класса.
|
|
|
alkresin
|
| moderator
|
Пост N: 1206
Зарегистрирован: 06.07.06
|
|
Отправлено: 20.04.19 09:57. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлены: кодоблок :bNew - он отрабатывает при вызове метода TEdit():New(), что позволяет выполнять свой код при открытии файла; кодоблок :bEdit - он отрабатывает перед началом редактирования (метод TEdit():Edit()) - там можно, в частности, установить свою область в окне редактора; кодоблок :bOnKey - он отрабатывает после нажатия клавиши или щелчка мышью и позволяет, таким образом, перехватывать события. '. (в режиме Vim) и Alt-'. (в режиме редактирования) - переход к месту последнего изменения. В ini добавлена подсветка .bat. Ну и кое-какие исправления.
|
|
|
ММК
|
| постоянный участник
|
Пост N: 354
Зарегистрирован: 29.05.10
|
|
Отправлено: 20.04.19 11:58. Заголовок: alkresin пишет: А в..
alkresin пишет: цитата: | А вы говорите, "интерфейсов консольных и wvt в стиле clipper не осталось". Новый тренд пошел). |
| Да, ретро периодически привлекает. Вот даже еще "круче" - из DOS'а в WEB. http://forums.fivetechsupport.com/viewtopic.php?f=3&t=36990&sid=45770993eb5f74b9c7cc74dd013baec8&start=30 Что касается Линариса, то его вряд ли интересует такой редактор. Во всяком случае в FW достаточно небольших примеров включая "виндовые", что для пользователя интереснее. А все предназначенное для разработчиков плавно перетекает в среду разработки. Это уже другая песня... alkresin пишет: цитата: | два сообщения о разработке консольного текстового редактора, одно из них - от Линареса: |
| Помог человеку. Предложил вариант "подсветки" . И далее интересно ( не Линарис) - Now we may have to find a way to utilize it (hbEditor class) into something more useful.. than a mere sample
|
|
|
alkresin
|
| moderator
|
Пост N: 1207
Зарегистрирован: 06.07.06
|
|
Отправлено: 20.04.19 15:57. Заголовок: ММК пишет: Да, ретр..
ММК пишет: цитата: | Да, ретро периодически привлекает. Вот даже еще "круче" - из DOS'а в WEB. |
| Ретро - это MSDOS в любой упаковке, а консольный интерфейс - это не ретро, а один из способов организации интерфейса, активно использующийся наряду с графическим и сегодня, все зависит от конкретной задачи и, конечно, от вкусов пользователя. Я, например, тоже пользователь, и во многих случаях предпочитаю именно консольный интерфейс (Far, текстовые редакторы, ...). И я не один такой, тот же Vi/Vim до сих пор остается одним из самых популярных программистских (и не только) редакторов, и в последние годы его популярность даже выросла. цитата: | Что касается Линариса, то его вряд ли интересует такой редактор. Во всяком случае в FW достаточно |
| Не знаю, какой редактор использует Антонио, при случае спрошу). Но то, что он автор FW ничего не говорит о его предпочтениях, точно так же. как и то, что я - автор HwGui и др. GUI инструментов ничего не говорит о моих.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2419
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.04.19 17:38. Заголовок: ММК пишет А все пред..
ММК пишет цитата: | А все предназначенное для разработчиков плавно перетекает в среду разработки. Это уже другая песня... |
| Почему другая ? Я воспринял hbedit как такой элемент и стал наседать с вопросами. Для prg добавить - файл проекта (вполне пойдет his) - CmdRun для сборки модуля - Список функций (как сейчас по одному prg) по prg из файла проекта в такой схеме пройдут и др. языки Для txt групповая поиск\замена (может подходить для всех типов)
|
|
|
alkresin
|
| moderator
|
Пост N: 1208
Зарегистрирован: 06.07.06
|
|
Отправлено: 20.04.19 19:44. Заголовок: SergKis пишет: Я во..
SergKis пишет: цитата: | Я воспринял hbedit как такой элемент и стал наседать с вопросами. Для prg добавить - файл проекта (вполне пойдет his) - CmdRun для сборки модуля - Список функций (как сейчас по одному prg) по prg из файла проекта |
| Предложение интересное (только his тут ни при чем), хоть я и не помню, чтобы вы говорили об этом раньше. Можно объявить в ini новый тип файла и сделать плагин/группу плагинов для него.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2425
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.04.19 20:06. Заголовок: alkresin пишет хоть ..
alkresin пишет цитата: | хоть я и не помню, чтобы вы говорили об этом раньше |
| SergKis пишет цитата: | Потом, если вводятся типы файлов LANG_PRG, LANG_C,..., LANG_TXT, ... то должен быть набор свойств\функций для работы с ним. Набор должен работать в автомате - не через меню плагин (это доп. режим). Так по мне. his - это история работы с файлом или применительно к prg - это список файлов проекта, т.е. в каталоге может быть куча файлов, но файлами his раскладываются на проекты. Зачем тут писать plugin, достаточно иметь галочку, как в Far на меню F2. Нужно запустить hbedit с галочкой или именем his. В том же Far создаем несколько пунктов для проектов, с параметром file.his. Альтернативное имя пункта меню. К примеру, у меня в проекте, она берется из первой строки // ... или /* ... */ и добавляется к имени prg (без путей) Для сборки проекта надо запускать cmd, желательно именно на данный список his prg или hbmk2 с hbp |
| Файл his это где мы были, что по списку файлов совпадает с файлом проекта. Попытка сэкономить. Конечно файл проекта лучше
|
|
|
alkresin
|
| moderator
|
Пост N: 1209
Зарегистрирован: 06.07.06
|
|
Отправлено: 21.04.19 08:32. Заголовок: Обновлен hbedit. Теп..
Обновлен hbedit. Теперь список нужных кодовых страниц можно определить в hbedit.ini, секция [CODEPAGES]. Доступны все кодовые страницы, поддерживаемые Harbour, список поместил в readme.md. Реализованы Lower/Upper и, соответственно, case insensitive поиск для utf8.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2429
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.04.19 09:20. Заголовок: alkresin переместил..
alkresin переместил hbedit.exe в BIN каталог (без ini и плагинов, они в текущем, т.е. по проектам условным) 0. Плагины не подключаются 1.Запустил на текущий рабочий в котором ini и his есть - такой вариант не работает (создает в bin ini и his) 2. .\bin\hbedit -f .\hbedit.ini ... - работает (создает в bin his) 3. .hbedit.ini дописал к hbbedit. \bin\hbedit ... - работает (создает в bin his) Если hbedit.exe поместить на флешку с защитой записи или CD (portable вариант), то ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2430
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.04.19 09:23. Заголовок: PS читать 0. Плагины..
PS читать 0. Плагины не подключаются везде
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2431
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.04.19 09:31. Заголовок: PPS Отключить his мо..
PPS Отключить his можно ? Никогда не использовал при работе с проектом (история совпадает с проектом). За пределы проекта работа - другой запуск (др. средства\программы)
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2440
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.04.19 19:45. Заголовок: alkresin пишет (help..
alkresin пишет (help) цитата: | Выделив нужный текст, вы можете использовать следующие горячие клавиши: ... Del, d удалить текст; |
| Ctrl+X надо добавить
|
|
|
alkresin
|
| moderator
|
Пост N: 1210
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.04.19 09:00. Заголовок: SergKis пишет: 0. П..
SergKis пишет: цитата: | 0. Плагины не подключаются везде |
| plugins/, hbedit.ini, hbedit.help должны быть в одном каталоге с hbedit.exe.
|
|
|
alkresin
|
| moderator
|
Пост N: 1211
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.04.19 09:03. Заголовок: Обновлен hbedit. Реа..
Обновлен hbedit. Реализована замена (Search&Replace) по Ctrl-F7. В ini, секция [OPTIONS], добавлен параметр savehis: 0 - не сохранять историю, 1(по умолчанию) - сохранять в каталоге с hbedit.exe, 2 - сохранять в текущем каталоге.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2444
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.19 09:14. Заголовок: alkresin пишет plugi..
alkresin пишет цитата: | plugins/, hbedit.ini, hbedit.help должны быть в одном каталоге с hbedit.exe. |
| Но набор плагинов может быть разным функционально. Если есть в текущем каталог plugins, подключать его, нет у hbedit.exe
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2445
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.19 09:19. Заголовок: PS ini и help так же..
PS ini и help так же может, как комплект, быть привязан к плагинам (создаются динамически) и разработкой тек. каталога
|
|
|
alkresin
|
| moderator
|
Пост N: 1212
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.04.19 09:52. Заголовок: В принципе можно про..
В принципе можно проверять сначала наличие этих файлов в текущем каталоге, и, если их нет, то в базовом, хотя я не рекомендовал бы использовать такую возможность на практике слишком активно - запутаться можно.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2446
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.19 10:02. Заголовок: alkresin пишет запут..
alkresin пишет Запутаться можно и в трех соснах, а так будет гибкость и новые возможности. В Fox 2.1 не путались же
|
|
|
alkresin
|
| moderator
|
Пост N: 1213
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.04.19 18:54. Заголовок: Что касается файлов ..
Что касается файлов проекта, то, думаю, не надо плодить новые сущности - лучше всего использовать .hbp от hbmk2. Он кросс-платформенный, содержит всю необходимую информацию и может быть непосредственно использован для сборки.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2449
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.19 22:31. Заголовок: alkresin пишет лучше..
alkresin пишет цитата: | лучше всего использовать .hbp от hbmk2. Он кросс-платформенный |
| С этим не поспоришь. Вопрос файла проекта, т.е. список файлов в виде меню для перехода на него (загрузка для работы) Что то вроде такого Demo.prg "Main window бла бла бла " 2019.04.10 10:30:10 (last модификация+длина файла) FuncMisc1.prg "Дополнительные функции к выборке 1". 2019.04.22 23:01:45 (last модификация+длина файла) FuncMisc2.prg "Дополнительные функции к выборке 2". 2019.04.22 19:31:10 (last модификация+длина файла) ... Demo.hbp Demo.rc Demo.ini Demo.cfg ... Получать по кнопке или на входе
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2450
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.04.19 22:42. Заголовок: PS Это оч. похоже на..
PS Это оч. похоже на his по сути, т.е. открыли 1 файл, другой и т.д., набрался файл с одной стороны his, с другой список файлов проекта (в др. и не зайдешь в этом проекте). Структуру записи his расширить, сто руками заполнять, что программно, если что тов нем лишнее, зашел удалил. Для файла проекта, конечно, надо ведение, т.е. набор пунктов и т.д.
|
|
|
alkresin
|
| moderator
|
Пост N: 1214
Зарегистрирован: 06.07.06
|
|
Отправлено: 23.04.19 08:46. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлена подсветка директив препроцессора, существенно пополнен набор команд Vim-режима (см.help), hbedit.ini и plugins/ теперь могут находится и в текущеи каталоге - при старте hbedit ищет их там, а потом уже в базовом каталоге.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2451
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.04.19 10:47. Заголовок: SergKis пишет Для ф..
SergKis пишет цитата: | Для файла проекта, конечно, надо ведение, т.е. набор пунктов и т.д. |
| Для информации, от своей проги ведения проектов, для MiniGui Скрытый текст
[APP] Utf8=No Title=HMG 19.01 Notepad=\BK32\Notepad3.exe ;AkelPad=\BK32\BIN\AkelPad Default=01 Res=.\RES CmdComp=_hb_.cmd CmdRun= LibName= [01] Title=Проект MiniGui. PRG. PathApp=.\SOURCE PathExe=.\ NameExe= Include=*.prg Exclude= [02] Title=Проект MiniGui. C. PathApp=.\SOURCE PathExe=.\ NameExe= Include=*.c Exclude= [03] Title=Проект MiniGui. TsBrowse. PathApp=.\SOURCE\TsBrowse PathExe=.\ NameExe= Include=*.prg,*.c Exclude= [04] [05] [06] [07] [08] [09] [Common] FontName=Arial FontSize=10 SizeScale=100,100 [Window] Form_1Form_1=0,0,1229,727, wErrorwError=591,0,776,192, [Browse] brwProg=304,87,87,87,604, 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] 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] 01=FUNC 02=FUNCTION 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_...
| Секции [Obj\, [Lib] исп. для сборки своих проектов через свой bat (без hbmk2, давно делался 2010 год). В hmg есть свой cmd сборки. В проект вкл. только одна секция из подкаталога source\TsBrowse, т.к. другие не использую в работе
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2452
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.04.19 11:06. Заголовок: PS Протокол ошибок с..
PS Протокол ошибок сборки выдаю на Browse и если есть строки со ссылкой на строки prg, при выборе запускаю Akelpad\Notepad3 с установкой на стр. из протокола
|
|
|
alkresin
|
| moderator
|
Пост N: 1215
Зарегистрирован: 06.07.06
|
|
Отправлено: 23.04.19 11:40. Заголовок: SergKis пишет: Для ..
SergKis пишет: цитата: | Для файла проекта, конечно, надо ведение, т.е. набор пунктов и т.д. |
| Что вы имеете ввиду?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2453
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.04.19 11:45. Заголовок: alkresin пишет Что в..
alkresin пишет заполнение руками строк в файле проекта руками через запрос Get-ами или в ini. В примере ini выше секции заполняю руками в редакторе (для простоты)
|
|
|
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 можно городить любые сборки, для языковых программ.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2466
Зарегистрирован: 17.02.12
|
|
Отправлено: 26.04.19 09:12. Заголовок: alkresin Возможно, ..
alkresin Возможно, надо в параметры добавить кодировку открываемого файла. Вот пример работы проекта на каталоги MiniGui https://TransFiles.ru/8d1h3 В нем поставил использование hbedit вместо Notepad3 (Подкаталог ED) В ini поставил кодировку RU1251, т.к. все на EN, но есть примеры с русскими комментариями. Добавил проект\каталог hbedit-master, для работы с ним, надо RU866 и лучше ее задать параметром. Установка - скачиваем и устанавливаем hmg 19.04 - скаченный пример помещаем в подкаталог UTILS\hmg_project - скаченный hbedit-master помещаем подкаталог SAMPLES\hbedit-master - запускаем из UTILS\hmg_project demo.exe
|
|
|
Vlad04
|
| постоянный участник
|
Пост N: 827
Зарегистрирован: 13.10.05
|
|
Отправлено: 28.04.19 15:45. Заголовок: alkresin Чтобы пр..
alkresin цитата: | Чтобы при открытии , окно было распахнуто В смысле, на весь экран? Могу добавить в hbedit.ini такую опцию, если надо. |
| Да, добавьте, пожалуйста цитата: | По умолчанию стоял какой-то ранее выбранный синтаксис, к примеру, prg Так при открытии файла .prg автоматом устанавливается соответствующий синтаксис... |
| Я и формы с расширением fmg в редакторе открываю
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2481
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 08:34. Заголовок: alkresin Пожелание ..
alkresin Пожелание к hbedit, иметь режим (по установке или всегда), если файл уже загружен, повторные загрузки в новом или том же окне, давать в ReadOnly с отметкой режима, к примеру, цвет фона другой или отметка в строке состояния
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2482
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 09:19. Заголовок: PS иметь возможность..
PS иметь возможность выполнить hb_MacroBlock вместо плагина при запуске, для вызова меню на клавишу, к примеру [START] plugin= &( _PushKey(<код нажатой клавиши>, <Ctrl нажат\нет>, <Shift нажат\нет>, <Alt нажат\нет>), ; _PushKey(<код нажатой клавиши>, <Ctrl нажат\нет>, <Shift нажат\нет>, <Alt нажат\нет>), ... )
|
|
|
alkresin
|
| moderator
|
Пост N: 1224
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.04.19 09:40. Заголовок: Vlad04 пишет: Да, д..
Vlad04 пишет: Так уже добавлено неделю назад. цитата: | Я и формы с расширением fmg в редакторе открываю |
| Тогда в ini, секция [LANG_PRG] добавьте в ext нужные расширения: ext=.prg.fmg
|
|
|
alkresin
|
| moderator
|
Пост N: 1225
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.04.19 09:43. Заголовок: SergKis пишет: Поже..
SergKis пишет: цитата: | Пожелание к hbedit, иметь режим (по установке или всегда), если файл уже загружен, повторные загрузки в новом или том же окне |
| Сейчас hbedit при попытке повторно отрыть тот же файл просто переключает окно.
|
|
|
alkresin
|
| moderator
|
Пост N: 1226
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.04.19 09:51. Заголовок: Обновлен hbedit. Реа..
Обновлен hbedit. Реализована возможность добавления новых окон редактора на экран - для вывода результатов компиляции, например. Теперь плагины plug_hbp_init и plug_prg_run используют эту возможность. Если, например, plug_hbp_init по Ctrl-L выявлены ошибки компиляции, появляется дополнительное окно (текущее при этом уменьшается) со списком ошибок и при нажатии Enter (или двойном щелчке) на строке с ошибкой открывается соответствующий файл на нужной строке.
|
|
|
alkresin
|
| moderator
|
Пост N: 1227
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.04.19 09:58. Заголовок: SergKis пишет: имет..
SergKis пишет: цитата: | иметь возможность выполнить hb_MacroBlock вместо плагина при запуске, для вызова меню на клавишу, к примеру [START] plugin= &( _PushKey(<код нажатой клавиши>, <Ctrl нажат\нет>, <Shift нажат\нет>, <Alt нажат\нет>), ; _PushKey(<код нажатой клавиши>, <Ctrl нажат\нет>, <Shift нажат\нет>, <Alt нажат\нет>), ... ) |
| Сделать-то можно, но учтите, что ini-файл имеет определенный формат, который предусматривает, в частности, одну строку на каждую опцию.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2484
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 11:13. Заголовок: alkresin пишет Сейча..
alkresin пишет цитата: | Сейчас hbedit при попытке повторно отрыть тот же файл просто переключает окно. |
| Я знаю и др. редакторы делают закладку или в новом окне открывают, но все в режиме редактирования и при модификации всех повторно открытых, сообщают об изменениях. Хотелось бы избежать случайных изменений повторно открытых файлов (открыты для просмотра в разных местах) цитата: | Сделать-то можно, но учтите, что ini-файл имеет определенный формат, который предусматривает, в частности, одну строку на каждую опцию. |
| Это понятно. Нажать нужно, к примеру, F9 и 9 или a, или сразу F11
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2485
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 11:21. Заголовок: alkresin пишет Сейча..
alkresin пишет цитата: | Сейчас hbedit при попытке повторно отрыть тот же файл просто переключает окно. |
| hbedit.exe h_tbrowse.prg hbedit.exe h_tbrowse.prg hbedit.exe h_tbrowse.prg Открывают 3и новых окна и это хорошо, т.к. хочу через F11 открыть их в разных местах и только 1ый менять и запуски со второго вкл. автоматом в ReadOnly режиме
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2486
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 11:26. Заголовок: PS Режим запуска hb..
PS Режим запуска hbedit.exe h_tbrowse.prg h_tbrowse.prg h_tbrowse.prg возможен, но менее интересен, т.к. просмотр в одном окне Ctrl+TAB переключая, на разных окнах их можно раздвинуть по экрану, что производительнее
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2487
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 11:54. Заголовок: PPS Можно сделать со..
PPS Можно сделать собственный набор пунктов меню F9 через ini ? Из того что есть в работе нужны 9 и a, остальные пункты как help с возможностью выбора и выполнения с него или убрать в какое то подменю (один пункт как "Other")
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2488
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 12:10. Заголовок: alkresin пишет появл..
alkresin пишет цитата: | появляется дополнительное окно (текущее при этом уменьшается) со списком ошибок |
| А можно этот режим перевести в отдельное, новое окно в указанных размерах, координатах в ini, не трогая основное окно ? К примеру в секции [START] и все ошибки (и run процессов на hbp) выдавать в нем
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2489
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 12:15. Заголовок: PS Еще лучше координ..
PS Еще лучше координаты этого окна запоминать при выходе из него, т.е. подвинули в нужное место посмотрели, вышли, координаты запомнились. Следующий запуск в этих Y, X
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2490
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 13:17. Заголовок: SergKis пишет А можн..
SergKis пишет цитата: | А можно этот режим перевести в отдельное, новое окно в указанных размерах, координатах в ini |
| Хорошо бы для этого окна размер фонта установить другой не 12, как в [SCREEN], а 10 или 9
|
|
|
alkresin
|
| moderator
|
Пост N: 1228
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.04.19 14:05. Заголовок: SergKis пишет: hbed..
SergKis пишет: цитата: | hbedit.exe h_tbrowse.prg hbedit.exe h_tbrowse.prg hbedit.exe h_tbrowse.prg Открывают 3и новых окна и это хорошо, т.к. хочу через F11 открыть их в разных местах и только 1ый менять |
| А, так вы имеете ввиду запуск разных экземпляров hbedit... Отслеживать наличие запущенных hbedit я не планирую. Что могу сделать - так это добавить ключ командной строки, чтобы файл открывался в readonly.
|
|
|
alkresin
|
| moderator
|
Пост N: 1229
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.04.19 14:07. Заголовок: SergKis пишет: Можн..
SergKis пишет: цитата: | Можно сделать собственный набор пунктов меню F9 через ini ? |
| Можно - через стартовый плагин. цитата: | А можно этот режим перевести в отдельное, новое окно в указанных размерах, координатах в ini, не трогая основное окно ? |
| Вы имеете ввиду - запустить новый экземпляр hbedit?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2491
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.04.19 15:17. Заголовок: alkresin пишет Вы им..
alkresin пишет цитата: | Вы имеете ввиду - запустить новый экземпляр hbedit? |
| Да, это удобнее, чем менять основное окно. Был опыт такой работы - не понравилось. цитата: | Отслеживать наличие запущенных hbedit я не планирую. Что могу сделать - так это добавить ключ командной строки, чтобы файл открывался в readonly |
| Жаль, через мутекс на полное имя файла, вроде не сложно цитата: | Можно - через стартовый плагин. |
| И снова жаль. Большой опыт работы в VO со скриптами .vos (аналог prg), *.vox (условный аналог hrb) при построении задач. Убирал *.vox в ресурсную dll, но то, что выносилось, как плагины, клиенту (или нашему человеку) для ведения\исправления немного под конкретную ситуацию рабочего места (каталога), со временем превратилось в большую головную боль, начиная с простого - собрать в библиотеку на клиента, анализировать изменения, ... Вопрос возник в связи с переходом на hb. Писать плагины, пока, не входит в планы для lang_prg, как и собирать сам hbedit.exe - не вижу смысла.
|
|
|
alkresin
|
| moderator
|
Пост N: 1230
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.04.19 09:31. Заголовок: SergKis пишет: Да, ..
SergKis пишет: цитата: | Да, это удобнее, чем менять основное окно. Был опыт такой работы - не понравилось. |
| Мне больше нравится так, как сделал. Кроме того, такой вариант невозможен при удаленной работе по ssh.
|
|
|
alkresin
|
| moderator
|
Пост N: 1231
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.04.19 09:36. Заголовок: Обновлен hbedit. В м..
Обновлен hbedit. В меню добавлена возможность поиска - сейчас это сделано для списка функций, где количество функций превышает 36 и при навигации по файлам/каталогам (F4). Добавлен ключ командной строки -ro - открывать указанные файлы в readonly режиме. При этом в панели состояния вместо Edit стоит View. Добавлена команда x (и, соответственно, [0...9]x) для Vim-mode.
|
|
|
alkresin
|
| moderator
|
Пост N: 1232
Зарегистрирован: 06.07.06
|
|
Отправлено: 01.05.19 09:53. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлены команды Vim-mode: f,F,* В диалоги поиска и поиска/замены подставляются предыдущие значения. В меню/списки добавлена поддержка мышиного колеса. Запоминается последний каталог при открытии файла.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2492
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.05.19 14:00. Заголовок: alkresin Рабочие кл..
alkresin Рабочие клавиши в редакторах Ctrl+N - New file edit (чистое\новое окно редактора, как запуск hbedit без параметра имя файла) Ctrl+O - Open file (запрос на файл F4 в F9) Ctrl+S - Save file (альтернатива F2 в F9)
|
|
|
alkresin
|
| moderator
|
Пост N: 1233
Зарегистрирован: 06.07.06
|
|
Отправлено: 01.05.19 15:10. Заголовок: SergKis пишет: Рабо..
SergKis пишет: цитата: | Рабочие клавиши в редакторах |
| Знаю, а еще в Windows-редакторах для поиска используется обычно Ctrl-F, а не F7. Я думал на эту тему, но, в конце концов, решил приберечь эти клавиши (Ctrl-N и пр.) для чего-нибудь более полезного. А за основу я брал Far и mc. Там, и не только там, сохранение именно по F2 - и ничего, мы с этим живем). Хотелось бы, конечно, чтобы набор клавиш был максимально знакомым, но сохранить совместимость со всеми редакторами нельзя - просто потому, что они разные.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2493
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.05.19 16:40. Заголовок: alkresin пишет Там, ..
alkresin пишет цитата: | Там, и не только там, сохранение именно по F2 - и ничего, мы с этим живем). |
| Живем, но кто то привык к др. комбинациям клавиш, к примеру, F3 - Save и т.д. Может сделать таблицу ключа и выполнения, что бы набрать удобную, под себя, комбинацию. Возможность отключить Vim, никогда не использовался и не будет в силу привычки. Не увидел, как сделать вариант New file при загруженном уже др. файле. Как убрать строку меню (без нее), нажимая кл. F9. Попросил товарища собрать для меня (давно не работал) gtwvt вариант сборки с Main menu и StatusBar и пытаться встроить в окно hbedit
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2494
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.05.19 17:28. Заголовок: alkresin пишет Знаю,..
alkresin пишет цитата: | Знаю, а еще в Windows-редакторах для поиска используется обычно Ctrl-F, а не F7 |
| Еще Ctrl+R и перечисленные выше - это рабочие клавиши. Linuks и Mac (еще можно встретить) в нашей нет от слова совсем. С Far редактором не работают (кроме нескольких человек). Показал hbedit 2м людям - полный ступор, как работать
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2495
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.05.19 17:30. Заголовок: PS в нашей деревне ..
PS в нашей деревне нет от слова совсем.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2496
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.05.19 19:27. Заголовок: SergKis пишет Не уви..
SergKis пишет цитата: | Не увидел, как сделать вариант New file при загруженном уже др. файле. |
| УПС. Нашел Shift+F4
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2497
Зарегистрирован: 17.02.12
|
|
Отправлено: 01.05.19 22:50. Заголовок: alkresin Товарищ со..
|
|
|
alkresin
|
| moderator
|
Пост N: 1234
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.05.19 09:48. Заголовок: SergKis пишет: Може..
SergKis пишет: цитата: | Может сделать таблицу ключа и выполнения, что бы набрать удобную, под себя, комбинацию. |
| Может быть, подумываю об этом. цитата: | Возможность отключить Vim, никогда не использовался и не будет в силу привычки. |
| Да, имеет смысл, чтоб не пугать условных менеджеров/экономистов - они, действительно, вряд ли будут когда-нибудь его использовать. цитата: | Как убрать строку меню (без нее), нажимая кл. F9. |
| Вы имеете ввиду верхнюю строку, панель статуса? Программно она отключается при вызове TEdit():New(cText, cFileName, y1, x1, y2, x2, cColor, lTopPane) - lTopPane должен быть .F. цитата: | Показал hbedit 2м людям - полный ступор, как работать |
| И что же там может повергнуть в ступор? Я понимаю, если бы Vim-режим был ыключен по умолчанию, а так - жми на клавиши и вводи себе текст, как во всех редакторах...
|
|
|
alkresin
|
| moderator
|
Пост N: 1235
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.05.19 09:54. Заголовок: SergKis пишет: Това..
SergKis пишет: цитата: | Товарищ собрал пробный вид, куда хотелось бы встроить hbedit. |
| Я не знаком с синтаксисом wvt_AppendMenu(), что-то не нашел этой функции нигде в Harbour. Где там указывается действие, соответствующее пункту меню?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2498
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 10:07. Заголовок: alkresin пишет Я не ..
alkresin пишет цитата: | Я не знаком с синтаксисом wvt_AppendMenu(), что-то не нашел этой функции нигде в Harbour. Где там указывается действие, соответствующее пункту меню? |
| Описание своих ф-и wvt (товарищ дорабатывал gtwvt еще в hb 2.0) Скрытый текст
wvt_CreateStatusBar() создает статусбар wvt_SBSetText(Text, [part]) wvt_SetProgress( 2, 2048) - Поставить градусник на размер inem StatusBar wvt_SetProgress( 2 ) - Удалить градусник wvt_SetProgress() - Продвинуть на шаг wvt_CreateMenu( [lMain] ) -> hMenu Создаем пустое меню lMain - TRUE создать главное меню для програмы FALSE создать PopUpMenu - подключаемое или отдельное ( Default ) wvt_CreatePopUpMenu() -> hMenu2 ??? Создаем пустое подключаемое меню wvt_AppendMenu(hMenu, cCaption, nKey, [cFlags] ) Добавить пункт в меню cCaption - Текст меню В тексте работает символ Chr(9) nKey - Этот код будет послан в очередь (обработка в SetKey(nKey, {||...}) ) cFlag - строка символов в любой комбинации регистр не имеет значение 'B' - Bold выделеный пункт меню 'C' - Cheked Помечен галочкой 'D' - Disable Серый не работающий 'N' - Начинается новая колонка 'H' - При первом открытии меню курсор стоит на этой позиции wvt_AppendMenu( hMenu ) Добавить разделителseparator wvt_SetMenu( hMenu ) -> .T./.F. Установить меню в окно wvt_SetPopUpMenu( hMenu, hMenu2, "Заголовок") -> .T./.F. Подключить к меню подменю wvt_DeleteMenu( hMenu, nPos) -> .T./.F. Удалить меню в позиции Если это подменю то оно уничтожается а Handler освободается. wvt_DestroyMenu( hMenu ) -> .T./.F. Удаляет меню и освобождает память занимаемую меню wvt_TrackPopupMenu( hMenu ) -> nKey Показать подготовленое меню как PopUp
|
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2499
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 10:29. Заголовок: PS обработчик ставит..
PS обработчик ставится на SetKey() или ловится в nKey := inkey(0, ..._ALL) По StatusBar METHOD WriteTopPane( lClear ) CLASS TEdit ... IF HB_ISBLOCK(::WriteTopPane) EVal(::bWriteTopPane, Self) RETURN Nil ENDIF IF ::lTopPane ... что то в таком духе, наверно
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2500
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 10:40. Заголовок: alkresin пишет lTopP..
alkresin пишет Спасибо, нашел. цитата: | И что же там может повергнуть в ступор? |
| Интерфейс, такого нет уже очень давно. Работа все время через несколько клавиш, т.е. - F9, 9, 0 - F11, 0 - частичное соответствие комбинациям клавиш windows (сбиваются), т.е. все действия получаются через F9
|
|
|
alkresin
|
| moderator
|
Пост N: 1236
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.05.19 10:44. Заголовок: SergKis пишет: обра..
SergKis пишет: цитата: | обработчик ставится на SetKey() или ловится в nKey := inkey(0, ..._ALL) |
| Здесь события ловятся Inkey( 0, HB_INKEY_ALL + HB_INKEY_EXT ) - принимаются и обрабатываются расширенные коды. Так, например код F2 не -1, а 0x41000002. Попробуйте использовать в wvt_AppendMenu() именно эти коды.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2501
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 11:55. Заголовок: alkresin пишет Попро..
alkresin пишет цитата: | Попробуйте использовать в wvt_AppendMenu() именно эти коды. |
| Попробовал, не помогло, т.е. wvt_AppendMenu( hMnu1, "Open file " + c9 + "F4", 1090519044 ) wvt_AppendMenu( hMnu1, "Menu " + c9 + "F9", 1090519049 ) ... /* i := 0 j := '' DO WHILE i < 10 k := Inkey( 0, HB_INKEY_ALL + HB_INKEY_EXT ) n := hb_keyStd( k ) i++ ? i, k, n j += hb_ntos(n)+c9+hb_ntos(k) + chr(13)+chr(10) ENDDO hb_memowrit('_.txt', j) */ Если убираю коментарии, то ловятся коды как надо и K_F4 и K_F9
|
|
|
alkresin
|
| moderator
|
Пост N: 1237
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.05.19 12:47. Заголовок: SergKis пишет: Попр..
SergKis пишет: Тогда ставьте bOnkey: oEdit:bOnkey := {|o,n| mykeyhandler( o,n )} и в этом mykeyhandler() можно посмотреть, какие коды (n) приходят при выборе пункта меню. Скорее всего, это будут чистые K_F2 и пр. В этом случае в том же mykeyhandler() их надо подменить на расширенные: IF n == K_F2 RETURN 0x41000002 ELSEIF ... ELSE RETURN 0 ENDIF
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2502
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 13:16. Заголовок: alkresin пишет Тогда..
alkresin пишет цитата: | Тогда ставьте bOnkey: oEdit:bOnkey := {|o,n| mykeyhandler( o,n )} |
| Имеется в виду эти места ? Или другое FOR i := 1 TO Len( aFiles ) TEdit():New( Iif(!Empty(aFiles[ i ]),Memoread(aFiles[ i ]),""), aFiles[ i ], 0, 0, nScreenH-1, nScreenW-1 ) ATail(TEdit():aWindows):bOnkey := {|o,n| mykeyhandler( o,n )} IF lRO ATail(TEdit():aWindows):lReadOnly := .T. ENDIF NEXT IF Empty( TEdit():aWindows ) TEdit():New( "", "", 0, 0, nScreenH-1, nScreenW-1 ) ATail(TEdit():aWindows):bOnkey := {|o,n| mykeyhandler( o,n )} IF lRO ATail(TEdit():aWindows):lReadOnly := .T. ENDIF ENDIF
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2503
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 14:59. Заголовок: alkresin Сделал как..
alkresin Сделал как выше, только вывел в log что приходит bBlk := {|o,n| ToLog(.T., 'nKey =', n, hb_keyStd(n)) Return 0 } получил Скрытый текст
====================== это через меню nKey = 1103 1103 nKey = 1157632005 1001 nKey = 1157627908 1001 nKey = 1157627907 1001 nKey = 1157627906 1001 nKey = 1157640196 1001 nKey = 1157636100 1001 nKey = 1157636099 1001 nKey = 1157627908 1001 nKey = 1157627907 1001 nKey = 1157627906 1001 nKey = 1157640196 1001 nKey = 1157636100 1001 nKey = 1157632005 1001 nKey = 1104 1104 nKey = 1103 1103 nKey = 1157632004 1001 nKey = 1157627907 1001 nKey = 1157627906 1001 nKey = 1157640196 1001 nKey = 1157627907 1001 nKey = 1157627906 1001 nKey = 1157627905 1001 nKey = 1157640195 1001 nKey = 1157636099 1001 nKey = 1157632003 1001 nKey = 1090519065 27 ========================= это по нажатию клавиш F4, Esc, F9, Esc, Esc - выход nKey = 1103 1103 nKey = 1157632003 1001 nKey = 1090519044 -3 nKey = 1090519049 -8 nKey = 1090519065 27
| на меню не реагирует
|
|
|
alkresin
|
| moderator
|
Пост N: 1238
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.05.19 15:15. Заголовок: SergKis пишет: это ..
SergKis пишет: При нажатии одного пункта меню? 1001 - это K_MOUSEMOVE, 1003 - K_LBUTTONUP, 1004 - K_RBUTTONDOWN. Немного непонятно, где K_LBUTTONDOWN и при чем тут K_RBUTTONDOWN, но, в целом, ясно, что вы переместили мышь и щелкнули. Кстати, вы вернули коды в wvt_AppendMenu() обратно на простые (не расширенные) ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2504
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 16:55. Заголовок: alkresin пишет Кстат..
alkresin пишет цитата: | Кстати, вы вернули коды в wvt_AppendMenu() обратно на простые (не расширенные) ? |
| Нет, стоят расширенные. Но они через меню не пройдут, как выяснилось (поговорил с товарищем), ограничения win api на число в 2а байта. А тут четыре, т.е. расширенные из меню не пройдут. Посмотрел в более спокойной обстановке - это так.
|
|
|
alkresin
|
| moderator
|
Пост N: 1239
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.05.19 17:43. Заголовок: Ну тогда надо вернут..
Ну тогда надо вернуть простые и все должно работать.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2505
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 17:52. Заголовок: alkresin пишет Ну то..
alkresin пишет цитата: | Ну тогда надо вернуть простые и все должно работать. |
| Работают, вызывают окна при выборе пункта меню (это все через расширенные коды) wvt_AppendMenu( hMnu1, "Open file " + c9 + "Ctrl+F4", K_CTRL_F4 ) wvt_AppendMenu( hMnu1, "Find " + c9 + "Ctrl+F7", K_CTRL_F7 ) Не работают F11, Shift+F8, Shift+F2
|
|
|
alkresin
|
| moderator
|
Пост N: 1240
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.05.19 19:09. Заголовок: Ну а что получает bO..
Ну а что получает bOnKey, если отбросить мышиные события?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2506
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 19:24. Заголовок: bBlk := {|..
bBlk := {|o,n| ToLog(.T., 'nKey =', n, hb_keyStd(n)) Return 0 } результат по нажатиям клавиш в лог ========================= это по нажатию клавиш F4, Esc, F9, Esc, Esc - выход nKey = 1103 1103 nKey = 1157632003 1001 nKey = 1090519044 -3 nKey = 1090519049 -8 nKey = 1090519065 27 n (первая колонка после nKey =) приходит в расширенном виде, вторая колонка реал. код клавиши Получается, при расширенном коде, что проходит в меню item в 2а байта, срабатыват, нет игнорируется
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2507
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 19:29. Заголовок: т.е. K_CTRL_F4 и K_C..
т.е. K_CTRL_F4 и K_CTRL_F7 уложились в 2а байта, потому и выполнились - окна запросов open file и find появились
|
|
|
alkresin
|
| moderator
|
Пост N: 1241
Зарегистрирован: 06.07.06
|
|
Отправлено: 02.05.19 20:20. Заголовок: Ну, вообще говоря, п..
Ну, вообще говоря, поскольку у вас есть bOnKey, вы можете подавать туда любые коды. Т.е., не обязательно привязываться к реальным кодам, расширенным или нет, можно подать любой код, а в bOnKey прописать его обработку. Главное, чтобы этот код не совпадал с чем-то существующим и нужным.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2508
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 21:21. Заголовок: alkresin пишет Т.е.,..
alkresin пишет цитата: | Т.е., не обязательно привязываться к реальным кодам, расширенным или нет, можно подать любой код, а в bOnKey прописать его обработку. |
| Сделал в меню коды bBlk := {|o,n| Local k := 0 If n == 30101; k := K_CTRL_F4 ElseIf n == 30102; k := K_CTRL_F7 ElseIf n == 30103; k := K_SH_F2 ElseIf n == 30104; k := K_SH_F8 EndIf ToLog(.T., 'nKey =', n, hb_keyStd(n), k) Return k } Значения k < 0, не учтено тут (красным добавил) IF !Empty( ::bOnKey ) i := Eval( ::bOnKey, Self, nKeyExt ) IF i == - 1 RETURN Nil ELSEIF i > 0 nKeyExt := i nKey := hb_keyStd(nKeyExt) ELSEIF i < 0 nKey := i ENDIF ENDIF что делать с nKeyExt не знаю, ниже по коду проверки nKeyExt на Alt, Ctrl с правкой сработали назначения на Shift+... - вывелись соответствующие окна, Ctrl+... не сработали
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2509
Зарегистрирован: 17.02.12
|
|
Отправлено: 02.05.19 21:41. Заголовок: PS K_F2 -> -1 ту..
PS K_F2 -> -1 тут проверка на -1 i := Eval( ::bOnKey, Self, nKeyExt ) IF i == - 1 RETURN Nil
|
|
|
alkresin
|
| moderator
|
Пост N: 1242
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.05.19 08:44. Заголовок: bOnKey должен возвра..
bOnKey должен возвращать расширенные коды. TEdit():OnKey() проверяет наличие бита, соответствующего нажатому Ctrl в расширенном коде, так как Клипперовские коды для ряда клавиш совпадают, например, Up arrow и Ctrl-E, Down arrow и Ctrl-X, ... SergKis пишет: цитата: | Значения k < 0, не учтено тут (красным добавил) |
| А почему они должны быть < 0 (кроме -1)?
|
|
|
alkresin
|
| moderator
|
Пост N: 1243
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.05.19 08:54. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлена поддержка макросов. Добавлена возможность переопределения клавиш через ini-файл: опция keymap а [OPTIONS], например: keymap=Ctrl-N=>Shift-F4,Ctrl-O=>Ctrl-F4
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2510
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 08:57. Заголовок: alkresin пишет bOnKe..
alkresin пишет цитата: | bOnKey должен возвращать расширенные коды. |
| Подскажите, как перевести реал. коды клавиш в расширенные, буду переводить
|
|
|
alkresin
|
| moderator
|
Пост N: 1244
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.05.19 09:40. Заголовок: Для себя написал мал..
Для себя написал маленькую программку: #include "hbgtinfo.ch" #include "inkey.ch" FUNCTION main LOCAL nkey, nkeyExt ? hb_gtVersion( 1 ), "GT" + hb_gtVersion() ? "Host codpage: " + hb_cdpSelect() DO WHILE .T. nKeyExt := Inkey( 0, HB_INKEY_ALL + HB_INKEY_EXT ) nkey := hb_keyStd( nKeyExt ) ? nKey, " ext: 0x" + hb_numToHex( nkeyExt, 8 ), hb_keyVal( nKeyExt ) IF nKey == 27 EXIT ENDIF ENDDO RETURN Nil Жму клавишу и смотрю код. Другого способа нет. Расширенный код на то и расширенный, что там содержится информация, которой нет в простых кодах.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2511
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 10:17. Заголовок: alkresin пишет Для с..
alkresin пишет цитата: | Для себя написал маленькую программку: |
| Может можно так обыграть, добавив DATA lAlt INIT .F. DATA lCtrl INIT .F. DATA lShift INIT .F. ... METHOD onKey( nKeyExt ) CLASS TEdit ... IF !Empty( ::bOnKey ) ::lAlt := ::lCtrl := lShift := .F. i := Eval( ::bOnKey, Self, nKeyExt ) IF ::lAlt .or. ::lCtrl .or. lShift nKey := i ELSEIF i == - 1 RETURN Nil ELSEIF i > 0 nKeyExt := i nKey := hb_keyStd(nKeyExt) ENDIF ENDIF ... IF !lSkip lShift := ( hb_BitAnd( nKeyExt, SHIFT_PRESSED ) != 0 .AND. Ascan( aKeysMove, nkey ) != 0 ) .or. ::lShift IF lShift ... IF hb_BitAnd( nKeyExt, ALT_PRESSED ) != 0 .or. ::lAlt ... IF hb_BitAnd( nKeyExt, CTRL_PRESSED ) != 0 .or. ::lCtrl ... И в блоке кода ставить bBlk := {|o,n| Local k := 0 If n == 30101; k := K_CTRL_F4; o:lCtrl := .T. ElseIf n == 30102; k := K_CTRL_F7; o:lCtrl := .T. ElseIf n == 30103; k := K_SH_F2; o:lShift := .T. ElseIf n == 30104; k := K_SH_F8; o:lShift := .T. EndIf Return k }
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2512
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 10:23. Заголовок: PS В блок кода правк..
PS В блок кода правку, наверно, надо bBlk := {|o,n| Local k := n или n использовать без k переменной
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2513
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 10:26. Заголовок: PPS Правка ::lAl..
PPS Правка ::lAlt := ::lCtrl := lShift := .F. IF !Empty( ::bOnKey ) // ::lAlt := ::lCtrl := lShift := .F.
|
|
|
alkresin
|
| moderator
|
Пост N: 1245
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.05.19 10:45. Заголовок: SergKis пишет: Може..
SergKis пишет: цитата: | Может можно так обыграть, добавив |
| Зачем? Почему просто не передать расширенный код клавиши? Их в вашем меню всего ничего. К тому же, :lctrl не спасет - не отделит, например, Ctrl-Left arrow от Ctrl-Z. Если так трудно поставить несколько кодов, можете использовать новую функцию edi_KeyCToN( cKey ) - я добавил вчера спец.модуль для возможности переопределения клавиш, записи макросов и пр.: edi_KeyCToN( "Ctrl-N" ), например.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2514
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 11:01. Заголовок: alkresin пишет Зачем..
alkresin пишет цитата: | Зачем? Почему просто не передать расширенный код клавиши? Их в вашем меню всего ничего. |
| В планах заменить + добавить все меню существующие, с учетом языковых текстов (англ., рус., латв.) перенеся на main menu по горизонтали и popup на них, а так же организовать меню на правый клик мыши + заменить окна консоли на окна windows варианта, которые в нашем варианте gtwvt есть (open file, save file, ...). Выискивать соответствия кодов - отвык работать с консолью\wvt, где то 2011 г. когда "брал в руки шашки" Функцию попробую, спасибо
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2515
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 14:23. Заголовок: alkresin С функцией..
alkresin С функцией получилось заменить коды клавиш в блоке кода bBlk := {|o,n| If n == 30101; n := edi_KeyCToN( "Ctrl-F4" ) // K_CTRL_F4 ElseIf n == 30102; n := edi_KeyCToN( "Ctrl-F7" ) // K_CTRL_F7 ElseIf n == 30103; n := edi_KeyCToN( "Shift-F2" ) // K_SH_F2 ElseIf n == 30104; n := edi_KeyCToN( "Shift-F8" ) // K_SH_F8 EndIf Return n } Для вывода в StatusBar добавил DATA bWriteTopPane ... METHOD WriteTopPane( lClear ) CLASS TEdit LOCAL y := ::y1 - 1, nCol := ::nCol, nRow := ::nRow LOCAL cLen := Ltrim(Str(Len(::aText))), nchars := Len(cLen) IF Valtype( ::bWriteTopPane ) == 'B' Eval( ::bWriteTopPane, Self, lClear ) ENDIF IF ::lTopPane ... и в hbedit.prg ... FOR i := 1 TO Len( aFiles ) TEdit():New( Iif(!Empty(aFiles),Memoread(aFiles),""), aFiles, 0, 0, nScreenH-1, nScreenW-1, , .F. ) ATail(TEdit():aWindows):bOnKey := bBlk ATail(TEdit():aWindows):bWriteTopPane := {|o,c| STBsay(o, c) } IF lRO ATail(TEdit():aWindows):lReadOnly := .T. ENDIF NEXT IF Empty( TEdit():aWindows ) TEdit():New( "", "", 0, 0, nScreenH-1, nScreenW-1, , .F. ) ATail(TEdit():aWindows):bOnKey := bBlk ATail(TEdit():aWindows):bWriteTopPane := {|o,c| STBsay(o, c) } IF lRO ATail(TEdit():aWindows):lReadOnly := .T. ENDIF ENDIF ... Получил вывод данных по Statusbar item-ам
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2516
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 18:50. Заголовок: alkresin Как застав..
alkresin Как заставить автоматом выполнить первую строку меню плагинов, т.е. клавишами F11 -> меню -> 0 -> список функций файла prg CASE K_F11 mnu_Plugins( Self ) ::lTextOut := .T. EXIT т.е. создать команду меню ElseIf n == 30105; n := <что то тут> // edi_KeyCToN( "Ctrl-F7" )
|
|
|
alkresin
|
| moderator
|
Пост N: 1246
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.05.19 21:28. Заголовок: Я добавил функцию ed..
Я добавил функцию edi_RunPlugin( xPlugin ) - можно непосредственно запустить нужный плагин из списка в ini. xPlugin - имя плагина или его номер в списке.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2517
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 21:46. Заголовок: alkresin пишет Я доб..
alkresin пишет цитата: | Я добавил функцию edi_RunPlugin( xPlugin ) |
| т.е. делать так (в тек. версии функции нет) ElseIf n == 30105; edi_RunPlugin( xName ); n := -1 Как узнать имя или номер плагина ? Номер это из общего списка или списка на LANG_... тип ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2518
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 21:52. Заголовок: PS Понял, номер бере..
PS Понял, номер берем из общего списка. Что является именем ключ ini p1 = ... или элемент значения до первой запятой ?
|
|
|
alkresin
|
| moderator
|
Пост N: 1247
Зарегистрирован: 06.07.06
|
|
Отправлено: 03.05.19 22:29. Заголовок: SergKis пишет: Что ..
SergKis пишет: цитата: | Что является именем ключ ini p1 = ... или элемент значения до первой запятой ? |
| Второе. Например, plug_prg_spis.hrb
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2519
Зарегистрирован: 17.02.12
|
|
Отправлено: 03.05.19 22:51. Заголовок: Спасибо. Еще вопрос...
Спасибо. Еще вопрос. Кол-во окон определяем Len( oEdit:aWindows ) Как получить номер текущего окна ? Думаю подсветить в Statusbar, может и в строку с F9-Menu это надо сделать, что бы понимать где находимся при Ctrl+TAB При поиске, на окне в поле текст selected, вставляю из clipboard, что искать и текст вставляется перед текстом, который selected, т.е. имеем оба текста При выбора загружаемого, при пустом поле, по Enter получаем работу в новом пустом окне - типа режим new file, лучше открыть список файлов для выбора Заметил, при повторном выборе того же файла для загрузки, загрузка не производится, переключаемся на загруженный ранее. Мне думается, это не правильно. Лучше загрузить повторно, но вкл. режим readonly. Повторные загрузки удобны тем, что можно работать в разных местах текста, используя во всех список функций, имея возможность править первый загруженный. То же можно делать при групповой загрузке одного и того же файла (такой режим сейчас работает)
|
|
|
alkresin
|
| moderator
|
Пост N: 1248
Зарегистрирован: 06.07.06
|
|
Отправлено: 04.05.19 08:51. Заголовок: SergKis пишет: Как ..
SergKis пишет: цитата: | Как получить номер текущего окна ? |
| oEdit:nCurr цитата: | Заметил, при повторном выборе того же файла для загрузки, загрузка не производится, переключаемся на загруженный ранее. Мне думается, это не правильно. |
| Наверное, здесь надо поставить вставить вопрос (edi_Alert) с выбором вариантов: переключиться на открытое окно, создать новое окно, создать новое в readonly.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2521
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.05.19 09:30. Заголовок: alkresin пишет oEdit..
alkresin пишет Спасибо. Уже нашел и вывел в item к режиму как Wiin. Nr [ Max ] цитата: | Наверное, здесь надо поставить вставить вопрос (edi_Alert) с выбором вариантов: переключиться на открытое окно, создать новое окно, создать новое в readonly. |
| По мне, это лишнее, т.к. если произведена повторная загрузка, то она в view и не мешает, Заранее не знаю какие доп. файлы надо подгружать и сколько раз, определяется во время работы. К примеру, h_tbrowse.prg (~750 entity) беру в AkelPad для правки, по мере надобности загружаю 1 или 2 Far для просмотра в др. местах кода, если не хватает запускаю notepsd3, бывает еще доп. Far запускаю. Если переложить на hbedit, то лишние вопросы alert будут мешать. Вот цвет фона поменять для view режима, было бы хорошо
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2522
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.05.19 09:49. Заголовок: PS Пометить первый э..
PS Пометить первый экземпляр загруженного файла в readony (edit->view) не с команды, а динамически - это надо, т.к. уже работаешь с каким то, а нужно с др. проекта подгрузить и закрыть от изменений
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2523
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.05.19 09:56. Заголовок: PPS Такие операции к..
PPS Такие операции как переключить окно, поставить readonly, ... хорошо делать па правый клик повесив меню. Не смотрел, есть в TEdit блок кода аналогичный :bOnKey
|
|
|
alkresin
|
| moderator
|
Пост N: 1249
Зарегистрирован: 06.07.06
|
|
Отправлено: 04.05.19 17:48. Заголовок: SergKis пишет: По м..
SergKis пишет: цитата: | По мне, это лишнее, т.к. если произведена повторная загрузка, то она в view и не мешает |
| Может случиться (со мной случается), что пользователь повторно открывает файл, просто забыв, что он уже открыт - в этом случае такой alert будет полезен. цитата: | Вот цвет фона поменять для view режима, было бы хорошо |
| Сейчас для readonly в панели статуса написано в правом углу View.
|
|
|
alkresin
|
| moderator
|
Пост N: 1250
Зарегистрирован: 06.07.06
|
|
Отправлено: 04.05.19 17:51. Заголовок: Обновил hbedit (толь..
Обновил hbedit (только на github) - добавил сохранение макросов в his, bWriteTopPane и еще что-то по мелочи. Сейчас придется переписать отдельные части для нормальной поддержки табуляции.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2526
Зарегистрирован: 17.02.12
|
|
Отправлено: 04.05.19 21:03. Заголовок: alkresin Перенес на..
alkresin Перенес назад вызов блока, т.к. у меня режим ::lTopPane := .F. METHOD WriteTopPane( lClear ) CLASS TEdit LOCAL y := ::y1 - 1, nCol := ::nCol, nRow := ::nRow LOCAL cLen := Ltrim(Str(Len(::aText))), nchars := Len(cLen) IF ::bWriteTopPane != Nil Eval( ::bWriteTopPane, Self, y ) ENDIF IF ::lTopPane DispBegin() SetColor( ::cColorPane ) Scroll( y, ::x1, y, ::x2 ) IF Empty( lClear ) // IF ::bWriteTopPane != Nil // Eval( ::bWriteTopPane, Self, y ) // ELSE ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2527
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.05.19 10:10. Заголовок: alkresin Как узнать..
alkresin Как узнать, какой LANG_... (тип синтаксиса) у конкретного oEdit ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2528
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.05.19 10:29. Заголовок: PS Как получить спис..
PS Как получить список плагинов на конкретный oEdit, т.е. LANG_... (тип синтаксиса) ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2529
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.05.19 17:35. Заголовок: SergKis пишет Как уз..
SergKis пишет цитата: | Как узнать, какой LANG_... (тип синтаксиса) у конкретного oEdit ? Как получить список плагинов на конкретный oEdit, т.е. LANG_... (тип синтаксиса) ? |
| Разобрался: 1. oEdше:cSyntaxType, подсветил у режима 2. надо получать на базе ф-ии mnu_Plugins( oEdit )
|
|
|
alkresin
|
| moderator
|
Пост N: 1251
Зарегистрирован: 06.07.06
|
|
Отправлено: 06.05.19 09:14. Заголовок: SergKis пишет: т.к...
SergKis пишет: цитата: | т.к. у меня режим ::lTopPane := .F. |
| А смысл?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2530
Зарегистрирован: 17.02.12
|
|
Отправлено: 06.05.19 10:36. Заголовок: alkresin пишет А смы..
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2531
Зарегистрирован: 17.02.12
|
|
Отправлено: 06.05.19 10:47. Заголовок: PS Еще, по возможнос..
PS Еще, по возможности максимально переведутся режимы hbedit на меню по правой кнопке мыши
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2532
Зарегистрирован: 17.02.12
|
|
Отправлено: 06.05.19 10:51. Заголовок: PPS Имеется ввиду ме..
PPS Имеется ввиду меню виндосовское по wvt_TrackPopupMenu( hMnu )
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2533
Зарегистрирован: 17.02.12
|
|
Отправлено: 06.05.19 12:16. Заголовок: alkresin пишет А смы..
alkresin пишет 1. Что бы линии с F9-Menu не было никогда, сейчас она появляется после загрузки Open file 2. Кол-во строк на экране можно было сделать на строку меньше, т.е. MaxRow()-1, т.к. StatusBar съедает от клиентской области 1 строку
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2534
Зарегистрирован: 17.02.12
|
|
Отправлено: 07.05.19 10:12. Заголовок: alkresin 1. Постави..
alkresin 1. Поставил значение DATA lTopPane INIT .F. // .T. строка с F9-Menu не прорисовывается, в параметрах для :New(..., .F.) указывать не надо. Все как хотелось. Осталось найти, как\где уменьшить кол-во строк на экране. Подозреваю, что это oEdit:y2, пока не проверял. 2. Ctrl+Y удаляет строку но перескакивает на несколько строк ниже, к примеру, удаляем 59, перескок на 62 и т.д. 3. Ставлю на входе в hbedit.prg IF Empty( TEdit():aWindows ) TEdit():New( "", "", 0, 0, nScreenH-1, nScreenW-1, , lTopPane ) IF lRO ATail(TEdit():aWindows):lReadOnly := .T. ENDIF ENDIF FOR i := 1 TO Len( TEdit():aWindows ) TEdit():aWindows[ i ]:bOnKey := {|o,n| EdOnKey(o, n) } TEdit():aWindows[ i ]:bWriteTopPane := {|o,n| StBline(o, n) } NEXT IF nStartLine != Nil С загруженными все работает. Делаю Open file или New file для них, новых, не работает, нет установки этих блоков. Т.е. переключаю (Crtl+TAB) на загруженный ранее при входе - работают блоки, на новые переключаю - не работают, блоков кода у них нет. Это видно в представленном примере hbedit выше. Думаю поставить значения блоков в DATA bOnKey, bWriteTopPane т.е. DATA bOnKey INIT {|o,n| EdOnKey(o, n) } DATA bWriteTopPane INIT {|o,n| StBline(o, n) } Или не стоит так делать ?
|
|
|
alkresin
|
| moderator
|
Пост N: 1252
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.05.19 12:06. Заголовок: Есть еще кодоблок :b..
Есть еще кодоблок :bNew - это CLASS VAR, отрабатывает при открытии каждого файла. Можно (и лучше) устанавливать bonkey и bWriteTopPane там.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2536
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.05.19 13:09. Заголовок: alkresin пишет Есть ..
alkresin пишет цитата: | Есть еще кодоблок :bNew - это CLASS VAR, отрабатывает при открытии каждого файла. Можно (и лучше) устанавливать bonkey и bWriteTopPane там. |
| Это верно для 2го oEdi и далееt, для первого bNew не установить, т.к. выполняется он в :New(...) и больше нигде. Если выделить установки и расчет координат в др. метод, к примеру :Def(), то тогда да oE :=TEdit():New(...) oE:bOnKey := ... oE:bWriteTopPane := ... oE:lTopPane := .F. oE:Def()
|
|
|
alkresin
|
| moderator
|
Пост N: 1253
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.05.19 15:21. Заголовок: SergKis пишет: Это ..
SergKis пишет: цитата: | Это верно для 2го oEdi и далееt, для первого bNew не установить, |
| Почему? Это же CLASS VAR, я специально отметил. Просто пишете до появления первых объектов редактора: TEdit():bNew := ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2537
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.05.19 18:34. Заголовок: alkresin пишет Прост..
alkresin пишет цитата: | Просто пишете до появления первых объектов редактора |
| Спасибо, почти все получилось DATA lTopPane INIT .T. hbedit.prg ... TEdit():bNew := {|oe| oe:lTopPane := .F., ; oe:bOnKey := {|o,n| EdOnKey(o, n) }, ; oe:bWriteTopPane := {|o,n| StBline(o, n) } } nScreenH -= 1 FOR i := 1 TO Len( aFiles ) TEdit():New( Iif(!Empty(aFiles),Memoread(aFiles),""), aFiles, 0, 0, nScreenH-1, nScreenW-1, , .F. ) IF lRO ATail(TEdit():aWindows):lReadOnly := .T. ENDIF NEXT IF Empty( TEdit():aWindows ) TEdit():New( "", "", 0, 0, nScreenH-1, nScreenW-1, , .F. ) IF lRO ATail(TEdit():aWindows):lReadOnly := .T. ENDIF ENDIF ... Загруженные сразу при запуске hbedit.exe 3и файла перемещение курсора вверх\вниз - все ok New file + добавляем строки, перемещение курсора вверх\вниз до 1ой строки, т.е курсор во 2ой Open file перемещение курсора вверх\вниз до 1ой строки, т.е курсор во 2ой Ctrl+TAB на загруженные при старте,New file + добавляем строки, перемещение курсора вверх\вниз - все ok Ставлю DATA lTopPane INIT .F. Все ok во всех режимах выше
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2538
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.05.19 18:38. Заголовок: PS читать Ctrl+TAB ..
PS читать Ctrl+TAB на загруженные при старте,New file + добавляем строки, перемещение курсора вверх\вниз - все ok
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2539
Зарегистрирован: 17.02.12
|
|
Отправлено: 08.05.19 19:06. Заголовок: PPS сделал так T..
PPS сделал так TEdit():bNew := {|oe| oe:lTopPane := .F., oe:y2 := MaxRow()-1, oe:y1 := 0, ; oe:bOnKey := {|o,n| EdOnKey(o, n) }, ; oe:bWriteTopPane := {|o,n| StBline(o, n) } } his удалил. На сразу загруженных файлах - все ok. New file, Open file ставят курсор во 2ую строку, причем New file при стрелке вверх ставит в 1ю строку курсор и больше не перемещается - строка 1, позиция 1
|
|
|
alkresin
|
| moderator
|
Пост N: 1254
Зарегистрирован: 06.07.06
|
|
Отправлено: 11.05.19 09:15. Заголовок: Обновлен hbedit. Реа..
Обновлен hbedit. Реализована поддержка табуляции. Оптимизирован движок подсветки. Кое-что исправлено.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2540
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.05.19 15:51. Заголовок: alkresin 1. Заменяю..
alkresin 1. Заменяю на "свои" окна (из MiniGui.lib подошло подключением) Скрытый текст
FUNCTION edi_Alert( cText, cAns1, cAns2, cAns3 ) LOCAL aText := hb_aTokens( cText, ";" ), i LOCAL aGets := { {,,2," Ok ",4,"W+/R","W+/B",{||__KeyBoard(Chr(K_ENTER))}} } LOCAL nLen := 0, nBtnsLen := 6, cp, x1, y1 := 10, oldc, bufsc * =================================================================== cText := '' ; AEval(aText, {|ct,ni| cText += ct + ; iif( Len(aText) == ni, "", chr(13)+chr(10) ) }) If ! empty(cAns3) cp := 'Information' If Len( aText ) > 1 cp := ATail(aText) Else If ( i := RAt( '.', cText ) ) > 0 cp := Alltrim(subs(cText, i + 1)) EndIf EndIf If '?' $ cp; cp := StrTran(cp, '?', '') EndIf i := MsgYesNoCancel( cText, cp ) ElseIf ! empty(cAns2) cp := 'Information' If Len( aText ) > 1 cp := ATail(aText) Else If ( i := RAt( '.', cText ) ) > 0 cp := Alltrim(subs(cText, i + 1)) EndIf EndIf If '?' $ cp; cp := StrTran(cp, '?', '') EndIf i := MsgYesNo( cText, cp ) ElseIf ! empty(cAns1) If cAns1 == 'Quit' MsgBox( cText, "Error" + ". " + cAns1 ) Else MsgBox( cText, cAns1 ) EndIf Else MsgInfo( cText ) EndIf If i != Nil; i += 1 EndIf RETURN i * =================================================================== FOR i := 1 TO Len( aText ) nLen := Max( nLen, Len( aText[ i ] ) ) NEXT nLen += 4 ...
| Можно ли в этом месте поставить переменную с блоком кода, если задана, то выполнять блок кода из переменной, иначе код функции ? Что бы не лазить для правки каждый раз в текст edi_Alert() 2. Загружаю текст prg hbedit.exe fedit.prg , курсор на строке, к примеру 2153 RETURN Nil FUNCTION mnu_F3( oEdit ) между RETURN Nil и FUNCTION ... на пустой строке Смещаем курсор вправо стрелкой на n позиций, т.е. Col > 1 Делаем Backspace, строка пустая пропадает и имеем RETURN Nil FUNCTION mnu_F3( oEdit ) Это не правильно.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2541
Зарегистрирован: 17.02.12
|
|
Отправлено: 12.05.19 16:11. Заголовок: PS К пункту 1. Хотел..
PS К пункту 1. Хотел edi_Alert() перевести на #translate, но т.к. нет файла hbedit.ch с #include "hbedit.ch" в каждом *.prg, а заводить свой, это править все файлы prg, что по мне, хуже, то предложил переменную с блоком кода.
|
|
|
alkresin
|
| moderator
|
Пост N: 1255
Зарегистрирован: 06.07.06
|
|
Отправлено: 14.05.19 09:39. Заголовок: SergKis пишет: Можн..
SergKis пишет: цитата: | Можно ли в этом месте поставить переменную с блоком кода, если задана, то выполнять блок кода из переменной |
| Не понял. А откуда предполагается брать кодоблок, как он будет задан?
|
|
|
alkresin
|
| moderator
|
Пост N: 1256
Зарегистрирован: 06.07.06
|
|
Отправлено: 14.05.19 09:40. Заголовок: Обновил hbedit. Расш..
Обновил hbedit. Расширена поддержка макросов (см. help). Всякие мелкие правки.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2544
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.05.19 10:38. Заголовок: alkresin пишет Не п..
alkresin пишет цитата: | Не понял. А откуда предполагается брать кодоблок, как он будет задан? |
| К примеру так FUNCTION edi_Alert( cText, cAns1, cAns2, cAns3 ) ... STATIC b_Alert IF Valtype(cText) == 'B' b_Alert := cText RETURN Nil ENDIF IF empty( b_Alert ) ... как сейчас ELSE i := EVal( b_Alert, cText, cAns1, cAns2, cAns3 ) ENDIF RETURN i тогда в своем prg делаю установку блока и происходит подмена кода выполнения. Хорошо бы в oEdit добавить пару переменных CLASS VAR ... для блоков кода подмены запроса Open file и Save as ... Т.к. используем (у себя в работе) в gtwvt windows варианты запросов. Конечно и для окон запроса Search и Search&Replace такой механизм не помешал бы, но пока не так актуально.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2545
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.05.19 10:48. Заголовок: PS И совсем замечате..
PS И совсем замечательно, если в oEdit добавить установку своего HB_GTI_PALETTE для каждого экземпляра окна. К примеру через блок кода CLASS VAR ... и вызовом его при смене\установки окна редактирования. Можно отработать разноцветность режимов, как минимум
|
|
|
alkresin
|
| moderator
|
Пост N: 1257
Зарегистрирован: 06.07.06
|
|
Отправлено: 14.05.19 12:39. Заголовок: SergKis пишет: К пр..
SergKis пишет: Лучше я просто выделю edi_Alert() в отдельный файл. цитата: | Хорошо бы в oEdit добавить пару переменных CLASS VAR ... для блоков кода подмены запроса Open file и Save as ... |
| Вы же их все-равно вызываете из своего меню. Так вызывайте свои процедуры вместо них. цитата: | И совсем замечательно, если в oEdit добавить установку своего HB_GTI_PALETTE для каждого экземпляра окна. |
| Это вы можете сделать в кодоблоке bStartEdit, который вызывается каждый раз при вызове :Edit().
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2547
Зарегистрирован: 17.02.12
|
|
Отправлено: 14.05.19 13:10. Заголовок: alkresin пишет Лучше..
alkresin пишет цитата: | Лучше я просто выделю edi_Alert() в отдельный файл. |
| Очень хорошо. цитата: | Так вызывайте свои процедуры вместо них. |
| Так и буду делать цитата: | Это вы можете сделать в кодоблоке bStartEdit |
| Увидел, что есть bStartEdit и bEndEdit - замечательно
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2558
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.05.19 10:59. Заголовок: alkresin Запуск hbe..
alkresin Запуск hbedit.exe New file Ставлю кодировку Utf8 что то набираю Save as ... Esc смотрим файл в Far F3, F4 -> у файла нет BOM Наверно, нужна галочка\пункт меню, сохранять с BOM или нет.
|
|
|
alkresin
|
| moderator
|
Пост N: 1259
Зарегистрирован: 06.07.06
|
|
Отправлено: 16.05.19 15:10. Заголовок: SergKis пишет: Наве..
SergKis пишет: цитата: | Наверно, нужна галочка\пункт меню, сохранять с BOM или нет. |
| Согласен, надо будет добавить в диалог по Save as. Плюс eol и, может быть, кодовую страницу.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2559
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.05.19 15:15. Заголовок: alkresin пишет и, мо..
alkresin пишет цитата: | и, может быть, кодовую страницу. |
| Желательно, иметь режим, сменить кодировку текста, к примеру, RU866 -> Utf8 и т.д.
|
|
|
alkresin
|
| moderator
|
Пост N: 1260
Зарегистрирован: 06.07.06
|
|
Отправлено: 16.05.19 16:22. Заголовок: Ну, кодировка менятс..
Ну, кодировка менятся просто как и в Far'е: Выделяем все (Ctrl-A), вырезаем, меняем кодировку и вставляем.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2561
Зарегистрирован: 17.02.12
|
|
Отправлено: 16.05.19 16:32. Заголовок: alkresin пишет Выдел..
alkresin пишет цитата: | Выделяем все (Ctrl-A), вырезаем, меняем кодировку и вставляем. |
| Не самый удобный механизм. В Notepad3.exe есть режим переоткрыть в кодировке, кл. F8 (меню есть) -> табличка кодировок. Т.е. в файле Utf8, в работе RU1251, или RU866, или LV866. Просто и удобно
|
|
|
alkresin
|
| moderator
|
Пост N: 1261
Зарегистрирован: 06.07.06
|
|
Отправлено: 17.05.19 08:55. Заголовок: Обновлен hbedit. В д..
Обновлен hbedit. В диалог Save as добавлены опции eol и bom. В диалог Search&Replace добавлена кнопка для выбора replace. В диалог Search добавлены опции Whole word и Regular expression.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2565
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.05.19 11:47. Заголовок: alkresin пишет В диа..
alkresin пишет цитата: | В диалог Save as добавлены опции eol и bom. |
| Не смог попасть на [ ] ...BOM .. ( ) ...., ни TAB, ни стрелкой вниз, ни мышкой
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2566
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.05.19 12:11. Заголовок: PS hbedit.exe F9, 7,..
PS hbedit.exe F9, 7, 3 // Utf8 поставили ввожу текст Esc edi_Alert с сообщением, отвечаю Save окно Save, ввожу имя, перемещаюсь по галочкам, жму Esc полный выход из hbedit, отказался только от режима Save as, вернуться должен на текст oEdit и выходить через edi_Alert
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2567
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.05.19 12:20. Заголовок: alkresin Может гало..
alkresin Может галочку для BOM Utf8 в ini завести. Если работа с текстовыми файлами BOM чаще нужен, чем нет, при html и xml BOM не нужен
|
|
|
alkresin
|
| moderator
|
Пост N: 1262
Зарегистрирован: 06.07.06
|
|
Отправлено: 17.05.19 14:27. Заголовок: SergKis пишет: Не с..
SergKis пишет: цитата: | Не смог попасть на [ ] ...BOM .. ( ) ...., ... Esc полный выход из hbedit |
| Исправил.
|
|
|
alkresin
|
| moderator
|
Пост N: 1263
Зарегистрирован: 06.07.06
|
|
Отправлено: 18.05.19 12:01. Заголовок: Обновлен hbedit (ког..
Обновлен hbedit (когда я это пишу, то имею ввиду бинарники у меня на сайте, исходники на github обновляются чаще). Добавлены vim-команды r, R, ~. Исправлены кое-какие ошибки.
|
|
|
alkresin
|
| moderator
|
Пост N: 1264
Зарегистрирован: 06.07.06
|
|
Отправлено: 20.05.19 13:20. Заголовок: Обновлен hbedit. Теп..
Обновлен hbedit. Теперь можно расщепить текущее окно на две части по горизонтали или по вертикали, при этом в новом "субокне" откроется тот же файл, что и в текущем, но в readonly режиме: Ctrl-w, s - расщепить по горизонтали Ctrl-w, v - расщепить по вертикали Ctrl-w, w - переключение между "субокнами". Сочетания клавиш, если кого удивляют, взяты из vim. Добавлены новые vim-команды: ciw, ci", di"
|
|
|
alkresin
|
| moderator
|
Пост N: 1265
Зарегистрирован: 06.07.06
|
|
Отправлено: 21.05.19 13:54. Заголовок: Обновлен hbedit. Сде..
Обновлен hbedit. Сделан выбор нескольких файлов (нужные отмечаются пробелом) из списка в диалоге Open File и в списке файлов проекта hbp-плагина. В диалог Open File добавлены опции ReadOnly и In a current window (т.е., вместо текущего файла). Добавлена возможность искать по содержимому файлов: в списке файлов в нижней строчке, где мы можем ввести фрагмент имени файла для поиска, после прямой косой теперь можно ввести строку для поска по содержанию, которая должна завершаться двумя косыми. Например, нам надо найти prg-файлы каталога, где есть строка "AddWindow": prg/AddWindow// Между двумя завершающими косыми можно ввести 'c' - поиск без учета регистра: prg/addwindow/c/
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2572
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 11:54. Заголовок: alkresin 1. Выбор ф..
alkresin 1. Выбор файлов окно, TAB, фокус на [^] жму Enter (только пробел, "маловато будет") -> уходим на oEdit как New file 2. Выбор файлов окно на списке, ищем по содержимому /prg/method/пытаюсь ввести / не дает, Enter -> валит dbedit 3. Деление окна Ctrl+w любое. На разделенном (правом или нижнем) окне F11 или F4, возможно др. меню не восстанавливают экран после меню при возврате в режим Edit
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2573
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 12:38. Заголовок: PS При вертикальном ..
PS При вертикальном разделении окна, в левом окне, счетчик колонок наезжает на режим работы - пропадают правые значения и ]
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2574
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 13:03. Заголовок: PPS Прикольно разбив..
PPS Прикольно разбивать окна на подокна, но когда, разбив все окно на 4 части, продолжить разбиение, кроме искажения строки меню, выход по Esc с подокна уходит на главное окно, а ожидается на предыдущее подокно, как создавались и переключаются по Ctrl+w, w. Т.е. Esc убирает подокно и ставит на предыдущее, иначе нажатие Esc скидывает всю работу по окнам с подокнами, убирая\завершая hbedit, что становится неожиданным
|
|
|
alkresin
|
| moderator
|
Пост N: 1267
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.05.19 13:15. Заголовок: SergKis пишет: Выбо..
SergKis пишет: цитата: | Выбор файлов окно, TAB, фокус на [^] жму Enter (только пробел, "маловато будет") -> уходим на oEdit как New file |
| Не удалось воспроизвести и не понял, при чем тут пробел. цитата: | /prg/method/пытаюсь ввести / не дает |
| Поиск по умолчанию - с учетом регистра (потому что без учета - медленнее) - второй слэш не вводится, потому что поиск не дал результатов. А валиться не должен, конечно, исправлю.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2575
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 13:31. Заголовок: alkresin пишет Не уд..
alkresin пишет цитата: | Не удалось воспроизвести и не понял, при чем тут пробел. |
| По пробелу (в фокусе [^]) вызывается список файлов, а по Enter улетаем сразу в oEdit. Точно так ведут себя и др. элементы окна ReadOnly, In a current ... -> улетают в oEdit при Enter. Находясь в фокусе, по мне, они должны срабатывать, как при нажатии Space. Если в фокусе поле ввода имени файла и оно пустое, а мы жмем Enter, должно срабатывать TAB+VK_SPACE, т.е. фокус на [^] и вызов списка, а не переход в oEdit, как при New file
|
|
|
alkresin
|
| moderator
|
Пост N: 1268
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.05.19 13:50. Заголовок: SergKis пишет: По п..
SergKis пишет: цитата: | По пробелу (в фокусе [^]) вызывается список файлов, а по Enter улетаем сразу в oEdit. Точно так ведут себя и др. элементы окна ReadOnly, In a current ... -> улетают в oEdit при Enter. Находясь в фокусе, по мне, они должны срабатывать, как при нажатии Space. |
| Вопрос спорный. Я, когда это делал, ориентировался на Far - там именно так, как у меня сейчас.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2576
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 15:18. Заголовок: alkresin пишет Вопро..
alkresin пишет цитата: | Вопрос спорный. Я, когда это делал, ориентировался на Far - там именно так, как у меня сейчас. |
| Для пользователей console, wvt режимов это скорее аксиома. Все переделанные проги на windows hmg, по просьбам пользователей, доводятся именно до такой работы (хорошо в hmg есть команда). И это удобнее, по мне. Если бы фокус стоял на кнопке [Отменить], а сейчас получается именно так по default, я бы согласился. Far, правктически, не использую как редактор.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2577
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 15:23. Заголовок: PS Вызывая окно Open..
PS Вызывая окно Open file, хочется выбрать именно файл и хотелось, что бы окно было сфокусировано на это, а не режим [Отменить]
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2578
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 15:53. Заголовок: SergKis пишет При ве..
SergKis пишет цитата: | При вертикальном разделении окна, в левом окне, счетчик колонок наезжает на режим работы - пропадают правые значения и ] |
| По мне, для подокон имя файла и режим работы можно не показывать в строке состояния - все видно в окне с режимом Edit. Достаточно счетчиков строк, колонок.
|
|
|
alkresin
|
| moderator
|
Пост N: 1269
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.05.19 16:01. Заголовок: SergKis пишет: Если..
SergKis пишет: цитата: | Если бы фокус стоял на кнопке [Отменить], а сейчас получается именно так по default, я бы согласился |
| Нажатие ENTER в любой позиции, кроме кнопки CANCEL - это подтверждение операции, а не отмена. Если бы у вас в строке для имени файла что-то было, то указанный файл открылся бы. Ну а раз там пусто, то соответствующее действие не производится.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2579
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 16:12. Заголовок: alkresin пишет Если ..
alkresin пишет цитата: | Если бы у вас в строке для имени файла что-то было, то указанный файл открылся бы. Ну а раз там пусто, то соответствующее действие не производится. |
| В своих программах, на полях со справочником (вызов списка файлов - аналог) Enter на пустом поле, проделывает операцию вызова справочника. Это удобно для пользователя, как удобно и нажатие Enter на элементе в фокусе - проделывается операция в "фокусе". Esc - отказ от операции. Но это Ваша программа и Ваше видение. Я только излагаю мысли вслух
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2580
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.05.19 16:23. Заголовок: PS - это кнопка и к..
PS [^] - это кнопка и когда она в фокусе, то Space и Enter исполнители операции в "фокусе". Сейчас срабатывает только Space, что несколько не логично.
|
|
|
alkresin
|
| moderator
|
Пост N: 1270
Зарегистрирован: 06.07.06
|
|
Отправлено: 22.05.19 16:32. Заголовок: Логика может быть ра..
Логика может быть разная. Я, повторяю, ориентировался на Far и Midnight Commander. Если авторам и пользователям этих двух популярных инструментов такая организация интерфейса кажется нормальной - значит, эта логика не такая уж ущербная).
|
|
|
alkresin
|
| moderator
|
Пост N: 1271
Зарегистрирован: 06.07.06
|
|
Отправлено: 23.05.19 10:04. Заголовок: Обновлен hbedit. Исп..
Обновлен hbedit. Исправлены ошибки, о которых здесь говорилось. В командном режиме добавлена возможность запускать консольные команды с перенаправлением вывода в новое окно редактора: !harbour
|
|
|
Pasha
|
| Администратор
|
Пост N: 3839
Зарегистрирован: 23.05.05
|
|
Отправлено: 23.05.19 10:13. Заголовок: Чтобы не создавать н..
Чтобы не создавать новую тему, напишу сюда. В редакторе фара сборку я сделал таким образом: Записал в фаре макрос (по Ctrl+.): Нажатие Shift+F10 (сохранение файла без подтверждения) затем нажатие клавиш _build В папке есть файл _Build.bat, по которому запускается сборка. При ошибках или предупреждениях в текущую папку кидается протокол компилятора с проблемными строками Повесил макрос на Ctrl+F12 В редакторе фара нажимаю волшебную клавишу, жду несколько сек, и анализирую результат. Кто как вызывает компиляцию из редактора, может есть способ получше ? Как это делается в hbedit ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2581
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.05.19 10:49. Заголовок: Pasha пишет Кто как ..
Pasha пишет цитата: | Кто как вызывает компиляцию из редактора |
| В Notpad3 меню File => Запустить => Команда => окно с заданным именем (в ini) cmd\bat файла с кнопками <OK>, <Cancel>, <обзор выбора др.файла> Быстрый вызов окна Ctrl+R На экране отрабатывает cmd окно, выполняющее файл. В cmd, при ошибке сборки, ставлю вызов hmg программы с browse показом файла ошибок, пи выборе строки с ошибкой, запускаю редактор с установкой на строку ошибки. Из своей оболочки ведения проектов использую два редактора (по указанию в ini) AkelPad или Notepad3 (оба с расцветкой текста). cmd\bat сборки работает везде одинаково, только в оболочке можно задать список исп. файлов cmd, для сборки exe, lib разных, dll и выбрать нужный для исполнения. Файлы prg в основном в Utf8, под оболочкой перекодируются в однобайтовый файл в др.каталоге и они участвуют в сборке, причем только изменненые.
|
|
|
Pasha
|
| Администратор
|
Пост N: 3840
Зарегистрирован: 23.05.05
|
|
Отправлено: 23.05.19 11:05. Заголовок: Спасибо. т.е. файл о..
Спасибо. т.е. файл ошибок компилятора, который создается переадресацией вывода компилятора >>, анализируются своей программой, которая вытаскивает из него строки с траблами, для дальнейшего анализа ? Неплохо.
|
|
|
alkresin
|
| moderator
|
Пост N: 1272
Зарегистрирован: 06.07.06
|
|
Отправлено: 23.05.19 11:50. Заголовок: Pasha пишет: Кто ка..
Pasha пишет: цитата: | Кто как вызывает компиляцию из редактора, может есть способ получше ? Как это делается в hbedit ? |
| В hbedit есть готовый плагин для hbp файлов. Открывается hbp, по Ctrl-F можно посмотреть список файлов проекта и открыть нужные, по Ctrl-L - сборка проекта, при этом результаты выводятся в отдельное окно, в котором можно, нажав Enter на строке с сообщением об ошибке, перейти к соответствующему файлу исходников в соответствующей строке. В принципе, аналогичный плагин можно было и для bat написать, но я выбрал hbp, поскольку он - кроссплатформенный.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2582
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.05.19 12:14. Заголовок: alkresin пишет Испра..
alkresin пишет цитата: | Исправлены ошибки, о которых здесь говорилось. |
| Не совсем: 1. При делении окна на подокна в окне Edit счетчик колонка теряет правый символ при позиции > 9 и 2а символа при > 99 2. hbedit.exe fedit.prg F9 a // если работал в русской кодировке, то меню не понимает ни а ни б, надо переключать для команды в EN потом обратно, лишние телодвижения 2 F9 a 1 Ctrl+w, w Ctrl+w, w // на окне с Edit F9 a 1 имеем четыре подокна, фокус на 4ом последнем Esc осталось три подокна, фокус на 1ом с Edit Esc переход фокуса на 3е подокно Esc hbedit с 3мя подокнами завершил работу, что не ожидано, т.к. хотелось убрать 3е подокно и работать дальше
|
|
|
alkresin
|
| moderator
|
Пост N: 1273
Зарегистрирован: 06.07.06
|
|
Отправлено: 23.05.19 12:58. Заголовок: SergKis пишет: При ..
SergKis пишет: цитата: | При делении окна на подокна в окне Edit счетчик колонка теряет правый символ при позиции > 9 и 2а символа при > 99 2. |
| Странно, я это исправлял - у меня все нормально. Сколько колонок у вас задано в ini (screen_width)?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2583
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.05.19 13:07. Заголовок: alkresin пишет Стран..
alkresin пишет цитата: | Странно, я это исправлял - у меня все нормально. Сколько колонок у вас задано в ini (screen_width)? |
| screen_width=120 screen_height=30
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2584
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.05.19 13:09. Заголовок: PS на 100, действите..
PS на 100, действительно, нормально.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2585
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.05.19 13:12. Заголовок: PPS Даже при делении..
PPS Даже при делении окна на 2е части и фокус на Edit, Esc - завершает работу hbedit
|
|
|
alkresin
|
| moderator
|
Пост N: 1274
Зарегистрирован: 06.07.06
|
|
Отправлено: 23.05.19 13:32. Заголовок: SergKis пишет: Даже..
SergKis пишет: цитата: | Даже при делении окна на 2е части и фокус на Edit, Esc - завершает работу hbedit |
| Ну это так и было предусмотрено. Второе окно - как бы дочернее, readonly, поэтому при закрытии основного окна и это закрывается автоматически. А какой смысл расщеплять экран и потом закрывать основное редактируемое окно и оставлять такое же readonly?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2586
Зарегистрирован: 17.02.12
|
|
Отправлено: 23.05.19 14:05. Заголовок: alkresin пишет А как..
alkresin пишет цитата: | А какой смысл расщеплять экран и потом закрывать основное редактируемое окно и оставлять такое же readonly? |
| Процесс работы с подокнами предполагает, перенос текста в окно Edit и нажатие Esc чисто рефлекторное или специально нажатое Esc (в примере с 4мя подокнами переход по Esc на последнее дочернее - хорошее решение, понравилось). Работа по Ctrl+w, w абсолютно не привычна. Наличие подокон похоже на работу с директорией, пока файлы в ней есть, удалить затруднительно. Т.е. убираем подокна, потом можно думать о закрытии hbedit, а могут быть и child окна с др. файлами. Получается подготовленная оконная среда для работы закроется по случайному Esc
|
|
|
alkresin
|
| moderator
|
Пост N: 1276
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.05.19 09:53. Заголовок: SergKis пишет: в пр..
SergKis пишет: цитата: | в примере с 4мя подокнами переход по Esc на последнее дочернее - хорошее решение, понравилось |
| Вообще-то это случайный побочный эффект ошибки. Возможность иметь больше двух окон я еще не рассматривал. цитата: | Работа по Ctrl+w, w абсолютно не привычна |
| Можно и мышкой. цитата: | Получается подготовленная оконная среда для работы закроется по случайному Esc |
| Нажатому в основном окне. Впрочем, можно alert поставить - если ESC нажат в основном окне при наличии дочерних.
|
|
|
alkresin
|
| moderator
|
Пост N: 1277
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.05.19 09:56. Заголовок: Обновил hbedit. Испр..
Обновил hbedit. Исправлено несколько ошибок. Временно запрещено открытие дочернего окна из дочернего.
|
|
|
alkresin
|
| moderator
|
Пост N: 1278
Зарегистрирован: 06.07.06
|
|
Отправлено: 27.05.19 09:16. Заголовок: Обновил hbedit. Упор..
Обновил hbedit. Упорядочено управление окнами - вроде бы нормально теперь.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2587
Зарегистрирован: 17.02.12
|
|
Отправлено: 27.05.19 12:44. Заголовок: alkresin Нет времен..
alkresin Нет времени модификации TimeStamp в oEdit, что бы при Save отслеживать изменение файла внешней программой с сообщением.
|
|
|
alkresin
|
| moderator
|
Пост N: 1279
Зарегистрирован: 06.07.06
|
|
Отправлено: 29.05.19 08:59. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлена проверка времени модификации перед сохранением. Добавлена команда V в Vim-режиме.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2588
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.05.19 09:53. Заголовок: alkresin hbedit.exe..
alkresin hbedit.exe fedit.prg (выравниваем подмассив на одинаковое смещение слева по 1ой строке) FUNCTION mnu_Windows( oEdit, aXY, n ) LOCAL aMenu := { {"Switch window",Nil,Nil,"Ctrl-w,w"}, ; {"Add window horizontally",Nil,Nil,"Ctrl-w,s"}, ; {"Add window vertically",Nil,Nil,"Ctrl-w,v"} } курсор в первой позиции строки {"Add window horizontally",Nil,Nil,"Ctrl-w,s"}, ; жмем 3и раза VK_TAB + 2а раза VK_SPACE - строки 1, 2 выровняли жмем стрелку вниз - курсор отпрыгивает влево, а не вниз в той же колонке жмем стрелку вверх - курсор отпрыгивает вправо, опять не в той же колонке для строки {"Add window vertically",Nil,Nil,"Ctrl-w,v"} } добавим пробелы слева, выравнивая по 2ой сир. левый край перескоки остаются при перемещении. Наверно, так не должно быть ?
|
|
|
alkresin
|
| moderator
|
Пост N: 1280
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.05.19 13:07. Заголовок: SergKis пишет: жмем..
SergKis пишет: Поставьте в ini опцию (а я добавлю ее в ini закомментированную) tabtospaces=On тогда tab будет преобразовываться в определенное tablen количество пробелов. А по умолчанию tab - это именно tab.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2589
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.05.19 13:19. Заголовок: alkresin пишет А по..
alkresin пишет цитата: | А по умолчанию tab - это именно tab. |
| Претензий к TAB нет, думается колонка на экране, в любом случае, должна сохранятся (tabtospace=On или Off не важно). Т.е. если она 40, то при движении вверх вниз, должна оставаться 40, не перепрыгивая. Именно такое поведение (прыгание курсора) Notepad3 мешает использовать его на 100%
|
|
|
alkresin
|
| moderator
|
Пост N: 1281
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.05.19 13:40. Заголовок: SergKis пишет: Т.е...
SergKis пишет: цитата: | Т.е. если она 40, то при движении вверх вниз, должна оставаться 40, не перепрыгивая. |
| Если 40, то - да. Надо будет подправить это дело. А вот если, скажем, 37, и в следующей строке здесь как раз tab, то курсор скакнет на 36.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2590
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.05.19 13:48. Заголовок: alkresin пишет А вот..
alkresin пишет цитата: | А вот если, скажем, 37, и в следующей строке здесь как раз tab, то курсор скакнет на 36. |
| Не должен курсор менять самопроизвольно позицию, т.е. был на 37 и остался на ней же, не зависимо есть или нет в строке TAB
|
|
|
alkresin
|
| moderator
|
Пост N: 1282
Зарегистрирован: 06.07.06
|
|
Отправлено: 30.05.19 14:19. Заголовок: SergKis пишет: Не д..
SergKis пишет: цитата: | Не должен курсор менять самопроизвольно позицию, т.е. был на 37 и остался на ней же, не зависимо есть или нет в строке TAB |
| Если перед 37 стоит tab, то на 38 (так будет точнее) курсор никак не может встать - там ничего нет, следующая позиция - 41 (при tablen=4). Это стандартное и естественное поведение для всех редакторов - хоть Far, хоть vscode, ...
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2591
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.05.19 15:02. Заголовок: alkresin пишет Это ..
alkresin пишет цитата: | Это стандартное и естественное поведение для всех редакторов - хоть Far, хоть vscode, ... |
| Проделанное выравнивание массива (схема выше), в Far, AkelPad и даже Notepad3 позицию курсора после TAB не меняют, т.е. после TAB + 2 SPACE, полученная позиция курсора при движении вверх вниз не меняется (нет перескоков). В Notepad3 перескок идет по концу строки, при условии предыдущая позиция больше конца строки.
|
|
|
alkresin
|
| moderator
|
Пост N: 1283
Зарегистрирован: 06.07.06
|
|
Отправлено: 31.05.19 10:58. Заголовок: SergKis пишет: посл..
SergKis пишет: цитата: | после TAB + 2 SPACE, полученная позиция курсора при движении вверх вниз не меняется |
| Возможно, мы не вполне понимаем друг друга. Я сделал кое-какие правки - теперь курсор движется как в Far.
|
|
|
alkresin
|
| moderator
|
Пост N: 1284
Зарегистрирован: 06.07.06
|
|
Отправлено: 31.05.19 11:00. Заголовок: Обновлен hbedit. Поп..
Обновлен hbedit. Поправлено вертикальное перемещение в тексте с tab'ами. Добавлен плагин CharTable - таблица символов.
|
|
|
alkresin
|
| moderator
|
Пост N: 1285
Зарегистрирован: 06.07.06
|
|
Отправлено: 05.06.19 11:39. Заголовок: Обновил hbedit. Доба..
Обновил hbedit. Добавлены команды Vim ZZ и ZQ. Добавлен плагин "Калькулятор" - открывается отдельное субокно, там можно проводить вычисления (F5 вычисляет значене выражения в текущей строке) и копировать результаты, если надо.
|
|
|
alkresin
|
| moderator
|
Пост N: 1286
Зарегистрирован: 06.07.06
|
|
Отправлено: 07.06.19 15:34. Заголовок: Обновил hbedit. Доба..
Обновил hbedit. Добавлена поддержка вертикальных блоков: Ctrl-F3 в режиме редактирования и Ctrl-v в режиме Vim (Ctrl-F3 здесь тоже работает). Небольшие исправления.
|
|
|
alkresin
|
| moderator
|
Пост N: 1287
Зарегистрирован: 06.07.06
|
|
Отправлено: 11.06.19 10:51. Заголовок: Обновлен hbedit. Неб..
Обновлен hbedit. Небольшие исправления. В ini в секции [LANG_...], где это надо, добавлены строки brackets=On - включение подсветки парных скобок (по умолчанию - выключено). В Ini добавлена секция [LANG_1C]. Добавлен плагин plug_prg_run1c.prg, который позволяет запускать на исполнение Harbour-программы, подключающиеся к 1с через соответствующий COM-объект. Если кого интересует, можно обсудить в разделе "Для флейма". У меня есть еще один плагин - для запуска из редактора программ на языке 1с через веб-сервис. Я не стал его включать в hbedit, т.к. он требует дополнительных телодвижений на стороне 1с.
|
|
|
alkresin
|
| moderator
|
Пост N: 1288
Зарегистрирован: 06.07.06
|
|
Отправлено: 14.06.19 09:22. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлена команда o в режиме выделения ( чтобы менять направление выделения, как в vim). Добавлена группа команд vim - в hbedit.help все есть. Исправления.
|
|
|
alkresin
|
| moderator
|
Пост N: 1289
Зарегистрирован: 06.07.06
|
|
Отправлено: 19.06.19 10:40. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлена группа команд vim - см. hbedit.help Добавлен плагин "Тетрис" - игра открывается в отдельном окне, можно выходить оттуда / возвращаться туда через Ctrl-Tab - как и с обычными окнами.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2595
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.06.19 10:27. Заголовок: alkresin Имеем demo..
alkresin Имеем demo.hbp # Keys compile -prgflag=-w2 -es1 # Enable multi/single-thread Harbour VM -mt # Incremental-compilation mode -inc # folder where are all * .obj -workdir=OBJ # Name EXE-module -odemo.exe # to list all * .prg demo.prg demo_misc.prg MsgEdit.prg util_fonts.prg # project Resources demo.rc # paths to the main and extension *.Lib -lminigui 1. Ctrl+F -> приводит к ошибке apps.err 06/24/19 10:14:35 Error BASE/1132 Bound error: array access Called from _HBP_GET_FILES(156) Called from _HBP_INIT_FILES(119) Called from _HBP_INIT_ONKEY(60) Called from (b)PLUG_HBP_INIT(33) Called from TEDIT:ONKEY(524) Called from TEDIT:EDIT(348) Called from MAIN(144) 2. Как запустить на исполнение этот hbp, если в Far запускается по ассоциации C:\MiniGui\BATCH\hbmk2.bat !.! ?
|
|
|
alkresin
|
| moderator
|
Пост N: 1293
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.06.19 11:10. Заголовок: SergKis пишет: 1. C..
SergKis пишет: цитата: | 1. Ctrl+F -> приводит к ошибке apps.err |
| Была там маленькая ошибка, исправил. цитата: | 2. Как запустить на исполнение этот hbp, если в Far запускается по ассоциации C:\MiniGui\BATCH\hbmk2.bat !.! |
| Можно будет ini-файл для плагина сделать с командной строкой запуска hbmk.
|
|
|
alkresin
|
| moderator
|
Пост N: 1294
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.06.19 11:14. Заголовок: Обновлен hbedit. Доб..
Обновлен hbedit. Добавлена поддержка разных цветовых схем, добавлены новые цветовые схемы. Менять текущую можно через меню (Palette). Основная схема устанавливается в ini [OPTIONS]: palette=... Можно также установить отдельные схемы для разных языков (palette= в соответствующем [LANG_...] Небольшие правки.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2596
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.06.19 13:03. Заголовок: alkresin Ctrl-F3 ..
alkresin цитата: | Ctrl-F3 выделение вертикального блока |
| Привычнее Shift+Alt+стрелки
|
|
|
alkresin
|
| moderator
|
Пост N: 1295
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.06.19 16:17. Заголовок: SergKis пишет: Прив..
SergKis пишет: цитата: | Привычнее Shift+Alt+стрелки |
| Добавил и такой вариант.
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2597
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.06.19 16:40. Заголовок: alkresin пишет Добав..
alkresin пишет Будут ли режимы (в выделенном верт. блоке): - замена первого символа на upper\lower - сортировка строк в блоке Для prg авто завершение строк ?
|
|
|
alkresin
|
| moderator
|
Пост N: 1296
Зарегистрирован: 06.07.06
|
|
Отправлено: 24.06.19 21:13. Заголовок: SergKis пишет: - за..
SergKis пишет: цитата: | - замена первого символа на upper\lower - сортировка строк в блоке |
| С выделением много чего можно интересного еще сделать - сумму посчитать, например, или, как в vim, добавить подстроку слева или справа к каждой выделенной строке. Думаю об интерфейсе. Можно повесить каждое действие на клавишу. Можно сделать меню, вызывая его, например, буквой m, ... Стоит, наверное, сделать возможность подключать плагин для дополнительных вариантах обработки выделенного текста. цитата: | Для prg авто завершение строк ? |
| Может быть. Ничего против не имею, но и большой пользы не вижу. Что завершать-то, if / endif ?
|
|
|
SergKis
|
| постоянный участник
|
Пост N: 2600
Зарегистрирован: 17.02.12
|
|
Отправлено: 24.06.19 22:45. Заголовок: alkresin пишет Что з..
alkresin пишет цитата: | Что завершать-то, if / endif ? |
| В notepad3 набираю de или DE и получаю список default DEFAULT define DEFINE defined DELETEALLITEMS DELETECOLUMN DeletedCount DELETAIMAGE DeleteItem DELETEITEM DeleteObject DELETEPAGE DelteRow DeltaCol details Determine ... набираю hb получаю список ф-ий использованных ранее При if IFARRAY ifdef IFEMPTY ifndef IFNUMERIC и т.д. по мере добавления букв список уменьшается
|
|
|
Ответов - 300
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|