Форум » [x]Harbour » Hbedit - текстовый редактор » Ответить

Hbedit - текстовый редактор

alkresin: Довел, наконец, свой текстовый редактор до того состояния, когда можно показать его общественности. Я начал писать его сначала как замену 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

alkresin: Логика может быть разная. Я, повторяю, ориентировался на Far и Midnight Commander. Если авторам и пользователям этих двух популярных инструментов такая организация интерфейса кажется нормальной - значит, эта логика не такая уж ущербная).

alkresin: Обновлен hbedit. Исправлены ошибки, о которых здесь говорилось. В командном режиме добавлена возможность запускать консольные команды с перенаправлением вывода в новое окно редактора: !harbour

Pasha: Чтобы не создавать новую тему, напишу сюда. В редакторе фара сборку я сделал таким образом: Записал в фаре макрос (по Ctrl+.): Нажатие Shift+F10 (сохранение файла без подтверждения) затем нажатие клавиш _build В папке есть файл _Build.bat, по которому запускается сборка. При ошибках или предупреждениях в текущую папку кидается протокол компилятора с проблемными строками Повесил макрос на Ctrl+F12 В редакторе фара нажимаю волшебную клавишу, жду несколько сек, и анализирую результат. Кто как вызывает компиляцию из редактора, может есть способ получше ? Как это делается в hbedit ?


SergKis: 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: Спасибо. т.е. файл ошибок компилятора, который создается переадресацией вывода компилятора >>, анализируются своей программой, которая вытаскивает из него строки с траблами, для дальнейшего анализа ? Неплохо.

alkresin: Pasha пишет: Кто как вызывает компиляцию из редактора, может есть способ получше ? Как это делается в hbedit ? В hbedit есть готовый плагин для hbp файлов. Открывается hbp, по Ctrl-F можно посмотреть список файлов проекта и открыть нужные, по Ctrl-L - сборка проекта, при этом результаты выводятся в отдельное окно, в котором можно, нажав Enter на строке с сообщением об ошибке, перейти к соответствующему файлу исходников в соответствующей строке. В принципе, аналогичный плагин можно было и для bat написать, но я выбрал hbp, поскольку он - кроссплатформенный.

SergKis: 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: SergKis пишет: При делении окна на подокна в окне Edit счетчик колонка теряет правый символ при позиции > 9 и 2а символа при > 99 2. Странно, я это исправлял - у меня все нормально. Сколько колонок у вас задано в ini (screen_width)?

SergKis: alkresin пишет Странно, я это исправлял - у меня все нормально. Сколько колонок у вас задано в ini (screen_width)? screen_width=120 screen_height=30

SergKis: PS на 100, действительно, нормально.

SergKis: PPS Даже при делении окна на 2е части и фокус на Edit, Esc - завершает работу hbedit

alkresin: SergKis пишет: Даже при делении окна на 2е части и фокус на Edit, Esc - завершает работу hbedit Ну это так и было предусмотрено. Второе окно - как бы дочернее, readonly, поэтому при закрытии основного окна и это закрывается автоматически. А какой смысл расщеплять экран и потом закрывать основное редактируемое окно и оставлять такое же readonly?

SergKis: alkresin пишет А какой смысл расщеплять экран и потом закрывать основное редактируемое окно и оставлять такое же readonly? Процесс работы с подокнами предполагает, перенос текста в окно Edit и нажатие Esc чисто рефлекторное или специально нажатое Esc (в примере с 4мя подокнами переход по Esc на последнее дочернее - хорошее решение, понравилось). Работа по Ctrl+w, w абсолютно не привычна. Наличие подокон похоже на работу с директорией, пока файлы в ней есть, удалить затруднительно. Т.е. убираем подокна, потом можно думать о закрытии hbedit, а могут быть и child окна с др. файлами. Получается подготовленная оконная среда для работы закроется по случайному Esc

alkresin: SergKis пишет: в примере с 4мя подокнами переход по Esc на последнее дочернее - хорошее решение, понравилось Вообще-то это случайный побочный эффект ошибки. Возможность иметь больше двух окон я еще не рассматривал. Работа по Ctrl+w, w абсолютно не привычна Можно и мышкой. Получается подготовленная оконная среда для работы закроется по случайному Esc Нажатому в основном окне. Впрочем, можно alert поставить - если ESC нажат в основном окне при наличии дочерних.

alkresin: Обновил hbedit. Исправлено несколько ошибок. Временно запрещено открытие дочернего окна из дочернего.

alkresin: Обновил hbedit. Упорядочено управление окнами - вроде бы нормально теперь.

SergKis: alkresin Нет времени модификации TimeStamp в oEdit, что бы при Save отслеживать изменение файла внешней программой с сообщением.

alkresin: Обновлен hbedit. Добавлена проверка времени модификации перед сохранением. Добавлена команда V в Vim-режиме.

SergKis: alkresin hbedit.exe fedit.prg (выравниваем подмассив на одинаковое смещение слева по 1ой строке)[pre2] 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ой сир. левый край перескоки остаются при перемещении. Наверно, так не должно быть ? [/pre2]

alkresin: SergKis пишет: жмем 3и раза VK_TAB... Поставьте в ini опцию (а я добавлю ее в ini закомментированную) tabtospaces=On тогда tab будет преобразовываться в определенное tablen количество пробелов. А по умолчанию tab - это именно tab.



полная версия страницы