| Автор | Сообщение |
|
|
| 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) Если есть идеи для реализации - буду рад услышать.
|
 |

|
|
Ответов - 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 и сохранить
|
 |

|
|
|
| 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. Можно еще сделать что-то типа схемы текущей функции - вывести в окно все ее управляющие конструкции, чтобы работало как список функций
|
 |

|
|
|
| moderator
|
Пост N: 1628
Зарегистрирован: 06.07.06
|
|
Отправлено: 07.11.24 16:22. Заголовок: tnsr2 пишет: Это ..
tnsr2 пишет: | цитата: | | Кста, сортировку списка функций хорошо бы менять, например, по F9. |
| Это можно, нетрудно.
|
 |

|
|
|
| |
Пост N: 28
Зарегистрирован: 06.03.24
|
|
Отправлено: 07.11.24 16:27. Заголовок: alkresin пишет: пер..
alkresin пишет: | цитата: | | переносит на соответствующий endif |
| А на else? Было бы здорово. Тогда и свертка не нужна.
|
 |

|
|
|
| |
Пост N: 29
Зарегистрирован: 06.03.24
|
|
Отправлено: 07.11.24 16:35. Заголовок: Попробовал File mana..
Попробовал File manager. Классно. Вспомнились времена Clipper. А кастомное меню на F2 сделать можно как в NC? В файле .mnu или hbc.ini? Для команд компиляции и пр.
|
 |

|
|
|
| |
Пост N: 30
Зарегистрирован: 06.03.24
|
|
Отправлено: 07.11.24 18:05. Заголовок: Еще в extserver.log ..
Еще в extserver.log пишется пароль - не хорошо.
|
 |

|
|
|
| moderator
|
Пост N: 1629
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.11.24 09:46. Заголовок: tnsr2 пишет: А на e..
tnsr2 пишет: | цитата: | А на else? Было бы здорово. Тогда и свертка не нужна. |
| Проблема в том, что в таком случае надо останавливаться и на elseif, причем движение может быть как вверх, к if, так и вниз, к endif - так что придется или задействовать дополнительные горячие клавиши, или ходить по циклу. Так или иначе, при большом количестве elseif это может быть неудобно. Мне кажется, что использование "структуры функции", когда, скажем, по Alt-V, появляется все дерево управляющих конструкций текущей функции, будет удобнее.
|
 |

|
|
|
| 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] m1=git push,git push [C] a1=Format,indent.bat %p
| Одна дополнительная строчка для git (если в текущем каталоге есть файл .git) и одна - для .c файлов Я говорю, что плагин не совсем доделан, так как он предполагает наличие в ini только секций [MAIN], [GIT], [FOSSIL], [C] - больше мне не надо было. Надо будет дописать его, чтобы можно было прописывать в ini строчки для любых расширений файлов - это, в принципе, несложно. Ну и, конечно, каждый волен написать свой плагин для контекстного менб на основе существующего и прописать его в hbc.ini
|
 |

|
|
|
| moderator
|
Пост N: 1631
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.11.24 10:04. Заголовок: tnsr2 пишет: Еще в ..
tnsr2 пишет: | цитата: | | Еще в extserver.log пишется пароль - не хорошо. |
| По умолчанию этот файл вообще не должен появляться, если не указано иное в hugclient.ini. Я проверю, в чем там дело
|
 |

|
|
|
| moderator
|
Пост N: 1632
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.11.24 10:09. Заголовок: Еще по поводу списка..
Еще по поводу списка функций. Там ведь можно набирать фрагмент названия функции, чтобы отфильтровать нужные и быстро найти то, что надо. Это, кстати, работает во всех списках, если там не стоят горячие клавиши для быстрого перехода (0: 1: ... ).
|
 |

|
|
|
| |
Пост N: 31
Зарегистрирован: 06.03.24
|
|
Отправлено: 08.11.24 10:33. Заголовок: alkresin пишет: Еще..
alkresin пишет: | цитата: | | Еще по поводу списка функций. Там ведь можно набирать фрагмент названия функции, чтобы отфильтровать нужные и быстро найти то, что надо. |
| Это здорово. Еще раз спасибо.
|
 |

|
|
|
|
|
| |
Пост N: 32
Зарегистрирован: 06.03.24
|
|
Отправлено: 08.11.24 10:50. Заголовок: alkresin пишет: tn..
alkresin пишет: | цитата: | tnsr2 пишет: цитата: А на else? Было бы здорово. Тогда и свертка не нужна. Проблема в том, что в таком случае надо останавливаться и на elseif, причем движение может быть как вверх, к if, так и вниз, к endif - так что придется или задействовать дополнительные горячие клавиши, или ходить по циклу. Так или иначе, при большом количестве elseif это может быть неудобно. Мне кажется, что использование "структуры функции", когда, скажем, по Alt-V, появляется все дерево управляющих конструкций текущей функции, будет удобнее. |
| Да, и еще показывать комментарии после ELSE и ENDIF. Это вообще круто.
|
 |

|
|
|
| |
Пост N: 33
Зарегистрирован: 06.03.24
|
|
Отправлено: 08.11.24 10:54. Заголовок: alkresin пишет: tns..
alkresin пишет: | цитата: | tnsr2 пишет: цитата: Еще в extserver.log пишется пароль - не хорошо. По умолчанию этот файл вообще не должен появляться, если не указано иное в hugclient.ini. Я проверю, в чем там дело |
| Мне он пригодился. Плагин hagchat начал падать. Там в json приходят символы \u003c и \n, и питоновский парсер json падает.
|
 |

|
|
|
| |
Пост N: 34
Зарегистрирован: 06.03.24
|
|
Отправлено: 08.11.24 11:14. Заголовок: alkresin пишет: дер..
alkresin пишет: | цитата: | | дерево управляющих конструкций текущей функции |
| Да, это отдельная большая тема. У меня есть реализация парсера ANTLR4 для грамматики Harbour. Небольшие функции разбирает быстро. Строит дерево разбора. Хотел сделать плагин для NetBeans для синтаксического анализа и генерации кода, но не сложилось. Пока. ANTLR может генерировать парсер на разных языках в т.ч. C++. Пытался сделать генератор парсер на Harbour. Но это сложно. Пока забросил. 
|
 |

|
|
|
| |
Пост N: 35
Зарегистрирован: 06.03.24
|
|
Отправлено: 08.11.24 11:24. Заголовок: В свое время Vladimi..
В свое время Vladimir Voskresensky реализовал плагин Netbeans для Си и плюсов с использованием парсера ANTLR3. Потом я увидел Вашу реализацию программы для Android и загорелся связать Java, Си и Harbour в редакторе с синтаксическим анализом. Но не судьба. При портировании кода с Java на Harbour столкнулся с тем, что надо определять используется в коде свойство объекта или переменная. Как-то так.
|
 |

|
|
|
| |
Пост N: 36
Зарегистрирован: 06.03.24
|
|
Отправлено: 08.11.24 11:39. Заголовок: Кстати, у на Вашем с..
Кстати, на Вашем сайте в описании CLASS ... ENDCLASS можно упомянуть access assign.
|
 |

|
|
|
| |
Пост 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 |
|
|
 |

|
|
|
| moderator
|
Пост N: 1633
Зарегистрирован: 06.07.06
|
|
Отправлено: 08.11.24 13:14. Заголовок: tnsr2 пишет: Да, эт..
tnsr2 пишет: | цитата: | Да, это отдельная большая тема. У меня есть реализация парсера ANTLR4 для грамматики Harbour. |
| Я имел ввиду нечто попроще: Скрытый текст
|
 |

|
|
|
| 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 добавлен.
|
 |

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

|
|
Ответов - 69
, стр:
1
2
3
4
All
[только новые]
|
|