On-line: гостей 2. Всего: 2 [подробнее..]
АвторСообщение
moderator


Пост N: 1174
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 04.04.19 14:37. Заголовок: Hbedit - текстовый редактор (продолжение)


Довел, наконец, свой текстовый редактор до того состояния, когда можно показать его общественности. Я начал писать его сначала как замену Memoedit(), но потом увлекся) и решил сделать что-то помощнее, как нормальный редактор для повседневного использования. Мне приходится в течение дня работать и под виндами, и под Линуксом - использую Far и mc, соответственно. Иногда Vim - но к некоторым вещам в нем так и не привык. Но хочется иметь что-то одно для всех платформ - не слишком навороченный, но чтоб было все что надо.
Сегодня выложил на github: https://github.com/alkresin/hbedit.
F9 (или мышкой по соответствующей надписи) - главное меню.
В ближайших планах:
- Lower/Upper для utf8
- новые режимы подсветки ( директивы препроцессора и пр. )
- скобки - подсветка парных и переход на парные
- undo
- решить проблемы с табуляцие
- сохранение истории открытых файлов, поиска
- написать help (hbedit.help)

Если есть идеи для реализации - буду рад услышать.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 69 , стр: 1 2 3 4 All [только новые]


moderator


Пост N: 1626
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 07.11.24 16:16. Заголовок: tnsr2 пишет: Может ..


tnsr2 пишет:

 цитата:
Может действительно, сохранить файл help в utf-8?


Сложный вопрос - кому как удобнее. У меня, например, под виндами cp=RU866.
Если у вас - utf8, можно просто перекодировать свой help - открыть файл, установить кодировку 866, выделить весь текст (Ctrl-A), забрать в clipboard (Shift-Del), изменить кодировку на нужную, вставить из clipboard и сохранить

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


Пост N: 1627
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 07.11.24 16:21. Заголовок: tnsr2 пишет: Свертк..


tnsr2 пишет:

 цитата:
Свертка и развертка IF ELSE ENDIF и подобных, возможно?


Не планирую. Для навигации по if...endif я использую ctrl-b: если встать на if, то ctrl-b переносит на соответствующий endif - и наоборот, то же для do while ... enddo, for ... next.
Можно еще сделать что-то типа схемы текущей функции - вывести в окно все ее управляющие конструкции, чтобы работало как список функций

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


Пост N: 1628
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 07.11.24 16:22. Заголовок: tnsr2 пишет: Это ..


tnsr2 пишет:

 цитата:
Кста, сортировку списка функций хорошо бы менять, например, по F9.


Это можно, нетрудно.

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



Пост N: 28
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 07.11.24 16:27. Заголовок: alkresin пишет: пер..


alkresin пишет:

 цитата:
переносит на соответствующий endif


А на else? Было бы здорово.
Тогда и свертка не нужна.

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



Пост N: 29
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 07.11.24 16:35. Заголовок: Попробовал File mana..


Попробовал File manager. Классно.
Вспомнились времена Clipper.
А кастомное меню на F2 сделать можно как в NC?
В файле .mnu или hbc.ini?
Для команд компиляции и пр.

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



Пост N: 30
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 07.11.24 18:05. Заголовок: Еще в extserver.log ..


Еще в extserver.log пишется пароль - не хорошо.

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


Пост N: 1629
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 08.11.24 09:46. Заголовок: tnsr2 пишет: А на e..


tnsr2 пишет:

 цитата:
А на else? Было бы здорово.
Тогда и свертка не нужна.


Проблема в том, что в таком случае надо останавливаться и на elseif, причем движение может быть как вверх, к if, так и вниз, к endif - так что придется или задействовать дополнительные горячие клавиши, или ходить по циклу. Так или иначе, при большом количестве elseif это может быть неудобно.
Мне кажется, что использование "структуры функции", когда, скажем, по Alt-V, появляется все дерево управляющих конструкций текущей функции, будет удобнее.

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


Пост N: 1630
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 08.11.24 10:02. Заголовок: tnsr2 пишет: А каст..


tnsr2 пишет:

 цитата:
А кастомное меню на F2 сделать можно как в NC?


Вообще-то, такое уже есть, правда, не совсем доделанное.
Есть плагин контекстного меню, он прописан в hbc.ini, [OPTIONS], context_menu_plugin - по умолчанию это plug_hbc_menu. Он использует plug_hbc_menu.ini. У меня этот ini такой:
Скрытый текст

Одна дополнительная строчка для git (если в текущем каталоге есть файл .git) и одна - для .c файлов
Я говорю, что плагин не совсем доделан, так как он предполагает наличие в ini только секций [MAIN], [GIT], [FOSSIL], [C] - больше мне не надо было.
Надо будет дописать его, чтобы можно было прописывать в ini строчки для любых расширений файлов - это, в принципе, несложно.
Ну и, конечно, каждый волен написать свой плагин для контекстного менб на основе существующего и прописать его в hbc.ini

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


Пост N: 1631
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 08.11.24 10:04. Заголовок: tnsr2 пишет: Еще в ..


tnsr2 пишет:

 цитата:
Еще в extserver.log пишется пароль - не хорошо.


По умолчанию этот файл вообще не должен появляться, если не указано иное в hugclient.ini. Я проверю, в чем там дело

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


Пост N: 1632
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 08.11.24 10:09. Заголовок: Еще по поводу списка..


Еще по поводу списка функций. Там ведь можно набирать фрагмент названия функции, чтобы отфильтровать нужные и быстро найти то, что надо.
Это, кстати, работает во всех списках, если там не стоят горячие клавиши для быстрого перехода (0: 1: ... ).

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



Пост N: 31
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 08.11.24 10:33. Заголовок: alkresin пишет: Еще..


alkresin пишет:

 цитата:
Еще по поводу списка функций. Там ведь можно набирать фрагмент названия функции, чтобы отфильтровать нужные и быстро найти то, что надо.


Это здорово. Еще раз спасибо.

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



Пост N: 32
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 08.11.24 10:50. Заголовок: alkresin пишет: tn..


alkresin пишет:

 цитата:

tnsr2 пишет:

 цитата:
А на else? Было бы здорово.
Тогда и свертка не нужна.


Проблема в том, что в таком случае надо останавливаться и на elseif, причем движение может быть как вверх, к if, так и вниз, к endif - так что придется или задействовать дополнительные горячие клавиши, или ходить по циклу. Так или иначе, при большом количестве elseif это может быть неудобно.
Мне кажется, что использование "структуры функции", когда, скажем, по Alt-V, появляется все дерево управляющих конструкций текущей функции, будет удобнее.



Да, и еще показывать комментарии после ELSE и ENDIF.
Это вообще круто.

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



Пост N: 33
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 08.11.24 10:54. Заголовок: alkresin пишет: tns..


alkresin пишет:

 цитата:
tnsr2 пишет:

 цитата:
Еще в extserver.log пишется пароль - не хорошо.


По умолчанию этот файл вообще не должен появляться, если не указано иное в hugclient.ini. Я проверю, в чем там дело



Мне он пригодился.
Плагин hagchat начал падать. Там в json приходят символы \u003c и \n, и питоновский парсер json падает.

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



Пост N: 34
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 08.11.24 11:14. Заголовок: alkresin пишет: дер..


alkresin пишет:

 цитата:
дерево управляющих конструкций текущей функции



Да, это отдельная большая тема.
У меня есть реализация парсера ANTLR4 для грамматики Harbour.
Небольшие функции разбирает быстро.
Строит дерево разбора.
Хотел сделать плагин для NetBeans для синтаксического анализа и генерации кода, но не сложилось. Пока.
ANTLR может генерировать парсер на разных языках в т.ч. C++.
Пытался сделать генератор парсер на Harbour. Но это сложно. Пока забросил.



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



Пост N: 35
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 08.11.24 11:24. Заголовок: В свое время Vladimi..


В свое время Vladimir Voskresensky реализовал плагин Netbeans для Си и плюсов с использованием парсера ANTLR3.
Потом я увидел Вашу реализацию программы для Android и загорелся связать Java, Си и Harbour в редакторе с синтаксическим анализом.
Но не судьба.
При портировании кода с Java на Harbour столкнулся с тем, что надо определять используется в коде свойство объекта или переменная.
Как-то так.

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



Пост N: 36
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 08.11.24 11:39. Заголовок: Кстати, у на Вашем с..


Кстати, на Вашем сайте в описании CLASS ... ENDCLASS можно упомянуть access assign.

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



Пост N: 37
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 08.11.24 13:13. Заголовок: Вот еще может пригод..


Вот еще может пригодится.

 цитата:
#include "hbvmint.h"
#include "hbapi.h"
#include "hbapiitm.h"

HB_FUNC( GET_UICLASS )
{
PHB_ITEM pItem = hb_param( 1, HB_IT_ARRAY );
hb_retni( pItem->item.asArray.value->uiClass );
}




 цитата:
#include "hbclass.ch"

PROCEDURE Main()
LOCAL c := GET_uiClass(Test4()), o
?c
?__clsParent(c, "Test2")
?__clsParent(c, "Test3")
?__clsParent(c, "Test")

?__clsParent(c, "Test5")

o := Test4():New()
o:Test4()

?Test():Test()
Inkey(0)
RETURN

CREATE CLASS Test
METHOD new() INLINE Self
METHOD Test()
ENDCLASS

METHOD Test:test()
RETURN "qwe"

CREATE CLASS Test2 FROM Test
METHOD new() INLINE Self
METHOD Test2() INLINE .T.
ENDCLASS

CREATE CLASS Test3 FROM Test
METHOD new() INLINE Self
METHOD Test3() INLINE .T.
ENDCLASS

CREATE CLASS Test4 FROM Test2, Test3
METHOD new() INLINE Self
METHOD Test4() INLINE QOut(ProcName(1)), .T.
ENDCLASS



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


Пост N: 1633
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 08.11.24 13:14. Заголовок: tnsr2 пишет: Да, эт..


tnsr2 пишет:

 цитата:
Да, это отдельная большая тема.
У меня есть реализация парсера ANTLR4 для грамматики Harbour.


Я имел ввиду нечто попроще:
Скрытый текст


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


Пост N: 1634
Зарегистрирован: 06.07.06
ссылка на сообщение  Отправлено: 11.11.24 10:35. Заголовок: Выложена новая верси..


Выложена новая версия, 2.5-59
Работа, в основном, по плагинам, кое-что изменено в основном коде, чтобы обеспечить некоторые функции плагинов. Список плагинов при этом обновлен - сверяйтесь по hbedit.ini
В init-плагин для prg добавлены Alt-A - вставка стандартных конструкций и Alt-V - структура текущей функции, которая на днях тут обсуждалась; в список функций добавлена возможность сортировки.
В init-плагин для c добавлен запуск программы по Alt-R, улучшено кое-что в init-плагине для py
Теперь можно по общей схеме писать плагины на питоне - для этого добавлен плагин plug_topython как промежуточный слой.
Добавлен плагин plug_games - просто чтобы "свернуть" плагины-игры и подчистить таким образом список плагинов.
Добавлен плагин plug_itutor - с его помощью можно создавать, редактировать и использовать различные tutorial'ы наподобие HwGUI Tutorial. Набор уже сделанных tutorial'ов выложу отдельно.
Переработан плагин контекстного меню, plug_hbc_menu. Теперь в файле plug_hbc_menu.ini млжно добавлять элементы контекстного меню для любых расширений файлов. Пример plug_hbc_menu.ini добавлен.

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



Пост N: 38
Зарегистрирован: 06.03.24
ссылка на сообщение  Отправлено: 20.11.24 23:23. Заголовок: Добрый день, Алексан..


Добрый день, Александр.
После нашего недавнего общения,
сделал вот такую штуку в фоксе.
https://github.com/tnsr1/myfoxref/blob/main/Screenshot_2024-11-21_072645.jpg
Может и Вы у себя сделаете.

С уважением, alex;

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

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