Сайт | Скачать | Видео | Wiki

Автор Тема: My_Notepad_Sci  (Прочитано 2421 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: My_Notepad_Sci
« Ответ #15 : 09 Июнь 2023, 19:16:05 »
Добавил поддержку плагинов. В комплекте один плагин (в папке конфигов).

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: My_Notepad_Sci
« Ответ #16 : 13 Июнь 2023, 19:22:05 »
Добавлено меню "Запуск" и конфигурационный файл Start.ini для формирования этого меню. Можно запускать инструменты через это меню, и поиск выделенных слов в браузере.
Поддерживаются переменные: ${ProgDir}, ${Word}, ${Path}, ${Name}, ${Ext}
Хочу добавить ещё дескриптор Scintilla (типа ${hSci}), тогда проще будет делать инструменты, без необходимости получать дескрипторы иным способом.

Оффлайн forthuser

  • Постоялец
  • ***
  • Сообщений: 128
  • Репутация: +2/-0
Re: My_Notepad_Sci
« Ответ #17 : 14 Июнь 2023, 11:26:21 »
Может заинтересует и такой вариант интеграции GUI интерфейса к программному коду предложенному на форуме freepascal.ru
Браузер в качестве View в десктопных проектах (WebUI)

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: My_Notepad_Sci
« Ответ #18 : 14 Июнь 2023, 18:57:28 »
заметил что в редакторе прокрутка колесомМышиВверх глючит (условия применения см. в вышевыложенном видео)
==============
в смысле полосаПрокрутки крутит, а с телаТекста - "неочень"
Ура, победил без просьб и приключений, оказалось надо было всего лишь вместо gtk3 использовать подсистему gtk2, и полоса прокрутки по виду стала как у IDE PureBasic, а может скорее всего они тоже использовали gtk2.

Исправление: если открыть второй файл с таким же расширением то автозавершение ломалось, теперь нет.
« Последнее редактирование: 27 Июнь 2023, 05:30:52 от AZJIO »

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: My_Notepad_Sci
« Ответ #19 : 27 Июнь 2023, 05:33:30 »
Тестовая My_Notepad_Sci_Test для демонстрации работы вкладок. Вкладки могут быть в несколько рядов, имеют кнопку закрытия, можно перетаскивать, контекстное меню.

Оффлайн forthuser

  • Постоялец
  • ***
  • Сообщений: 128
  • Репутация: +2/-0
Re: My_Notepad_Sci
« Ответ #20 : 28 Июнь 2023, 20:15:51 »
Тестовая My_Notepad_Sci_Test
Проверил запускается XUbuntu32 на Xenial Puppy 32

P.S. Открыл для просмотра MarkDown файл с русской кодировкой.
Хотелось бы, чтобы и сам формат MarkDown был поддержан в сабже с возможностью и к, примеру, вызова браузера по ссылке в файле.
т.к. сейчас некоторые странички  с i-net сохраняю плагином MarkDownload  и их же просматриваю с помощью плагина MarkDown View

Поддержка MarkDown есть в виде плагина в Geany.

Ещё ради изучения собрал CoeLite (под Puppy Linux 32 Xenial) сначала версию 9.1, а потом и версию 15.0 (с 16  17 ещё не собирал т.к. есть какие то ошибки в процессе сборки). На сайте https://codelite.org сборки под Linux для 64-ёх бит.
« Последнее редактирование: 28 Июнь 2023, 21:21:17 от forthuser »

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: My_Notepad_Sci
« Ответ #21 : 30 Июнь 2023, 04:50:51 »
Почитал про MarkDown, это аналогично RTF или HTML. Есть код разметки, программа отображения меняет отображение текста помеченного тегами. Текстовый редактор в прямом понимании этого слова ничего не меняет, он отображает текст каков он есть. Текст может быть подсвечен с помощью регулярных выражений на основе тегов но не изменён его вид. Скрыть теги можно только задав его цвет таким же как фон, теги от этого не исчезают в редакторе. Шрифт также остаётся одинаковый для всего текста, нельзя задать какому то тексту иной шрифт по размеру, максимум можно сделать текст курсивом.
Но я надеялся, что тем кому нужен какой то синтаксис сами его добавят. Я сделал пример, даже много примеров, 14 синтаксисов. Единственное ссылку не получится сделать кликабельной или над этим нужно долго голову ломать. В Scintilla есть лексер, который помечает ссылки, но встраивание этого лексера должен выполнить автор PureBasic и я об этом просил, чтобы сделать несколько Scintilla.dll для разных случаев жизни, один бы поддерживал все лексеры всех языков, тогда бы я просто задал лексер и синтаксис любого языка был бы подсвечен профессиональным лексером, максимально оптимизированным, за один проход. Другой бы dll поддерживал регулярные выражения PCRE, и мне бы не пришлось выжимать максимальные возможности из урезанного встроенного движка регулярных выражений. Третий поддерживал бы обе комбинации, лексеры и регвыры. Они бы были разных размеров 5 Мб против 300 кб, так как движок регвыр и два десятка лексеров наверно столько и весят. А пока есть что есть.
Максимум я попробую сделать несколько регвыров для подсветки MarkDown

Добавь в My_Notepad_Sci_Color.ini это
Код
[md]
00C2BB|2=^[ ]*?:::.+?:::
AFE7B3|2=^[ ]*?>+.+
777777|2=~~.+?~~
EBCB9C|2=#+[^#]+#+
EBCB9C|2=^[ ]*?#+[^#]+
CEDF99|2=\*+[^\*]+\*+
CEDF99|2=^[ ]*?\*+[^\*]+
DEDEBE|2=- .+
FF8080|2=- \[[ x*]\]
FCAF3E|2=^[ ]*?\d+\.
FF8080|2=^[ ]*?[ |-]+[ ]*?$
FF8080|2=\[.+?\]\(http.+?\)
43AED9|2=http[^ \)]+?
C0AD72|2=`[^`]+`
FF8080|2=```+
EBD6EB|2=^[ ]*?|.+?|[ ]*?$
71AE71|2=<!---.+--->
вау, не пользовался, пришлось выучить

Перезалил добавив подсветку md и reg-файлов
« Последнее редактирование: 30 Июнь 2023, 08:36:32 от AZJIO »

Оффлайн forthuser

  • Постоялец
  • ***
  • Сообщений: 128
  • Репутация: +2/-0
Re: My_Notepad_Sci
« Ответ #22 : 07 Июль 2023, 09:57:28 »
AZJIO
А, не знакомились ли с бейсиком GAMBAS?

Для Puppy Xenial 32 (LiveCD) c некоторыми неувязками собрал GamBas из исходников.

Чтобы собралась IDE оболочка для запуска Gambas3 доустановил вручную libqtwebkit4_2.3.2   gambas3-gb-qt4-webview_3.18.2
взятые с https://launchpad.net/~gambas-team/+archive/ubuntu/gambas3 (gambas сбирают и для Tahr к примеру)

+ добавил библиотеки  gsl, gtkglext, zstd
но всё равно какие то предупреждения показывает по SDL, gtk+ ... и отсутствию библиотек  для баз данных Sql. Postgress, odbc ... и Qt5

P.S. Оболочка выглядит достаточно функционально c редактором форм.
Программы, в основном, собираются и запускаются (в OpenGL есть пример вращающегося прозрачного куба)
В примерах программ, к примеру, есть и просмотрщик OpenStreetMap и достаточно шустро работает т.к. RunTime (gbr3) у GamBas с JIT и PDF вьювер
В IDE есть и свой репозиторий для программ от пользователей (Farm).
В примере фрактала Мандельброт есть клавиша F для включения/отключения Jit

Для запуска созданных автономных приложений в Linux должна иметься runtime среда выполнения gbr3.

Из книг изданных по GamBas - указывается одна Begining Caambas,
но есть и, кроме штатной Wiki документации, Online книга с примерами https://gambas-buch.de/dwen/doku.php
(c некоторыми ещё недописанными темами). Прогнал насырую эту книгу через Translate сервис в файл формата MarkDown (открываемый в браузере с плагином)

На rosettacode.org примеров с GamBas решённых каких то задач мало, хотя думаю это не особо важно т.к. Бейсик решений предостаточно и
есть тенденция отнесения решений на разных диалектах Бейсика в Basic группу языка.

Интересно, что GamBas использует большое количество обёрток Си кода для создания своих модулей. :)

Местная тема по Gambas Gambas - диалект языка BASIC
 
« Последнее редактирование: 07 Июль 2023, 11:45:09 от forthuser »

Оффлайн AZJIO

  • Модератор
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +10/-0
  • Автор темы
Re: My_Notepad_Sci
« Ответ #23 : 30 Июль 2023, 07:57:08 »
Добавление sh, py в ".config/My_Notepad_Sci/My_Notepad_Sci_Color.ini"(архивы не перезаливал, просто вставить для подсветки)
Код

[text-linux]
FDCEAE|2=\<\d+\>


[py]
009FFF|2=\<import\>
009FFF|2=\<class\>
009FFF|2=\<if\>
009FFF|2=\<else\>
009FFF|2=\<def\>
009FFF|2=\<for\>
EBCB9C|2=\<\d+\>
EA9515|2=^[ ]*[\w.]+[ ]*=
D29A6C|2=^[ ]*\w+[ ]*=
AAA6DB|2=^[ ]*[\w.]+[ ]*\(
FF8080|2=[\=\+\*\/\-()\{\},><~|@&\$\[\]]+
AFE7B3|1='[^']+?'
FF8080|1="""
71AE71|2=#[^']+$
71AE71|2=^[ ]*?#.*

[sh]
009FFF|2=\<function\>
009FFF|2=\<if\>
009FFF|2=\<fi\>
009FFF|2=\<else\>
009FFF|2=\<elif\>
009FFF|2=\<then\>
009FFF|2=\<printf\>
009FFF|2=\<echo\>
009FFF|2=\<exit\>
009FFF|2=\<return\>
009FFF|2=\<while\>
009FFF|2=\<done\>
009FFF|2=\<for\>
009FFF|2=\<do\>
009FFF|2=\<case\>
009FFF|2=\<esac\>
009FFF|2=\<break\>
009FFF|2=\<complain\>
009FFF|2=\<mkdir\>
009FFF|2=\<rm\>
009FFF|2=\<cat\>
009FFF|2=\<l[sn]\>
009FFF|2=\<c[dp]\>
009FFF|2=^[ ]*[\w]+[ ]*$
EBCB9C|2=\<\d+\>
CEDF99|1="[^"]+?"
AFE7B3|1='[^']+?'
D29A6C|2=^[ ]*\w+[ ]*=
AAA6DB|2=^[ ]*\w+[ ]*\(\)[ ]*\{
FF8080|2=[\=\+\*\/\-()\{\},><~|@&\$\[\]]+
7EBBBD|2=\.*?/[.\w/-]+?
7D8AE6|2=[ ]-+[\w\-]+
; 8880F2|2=[ ]--[\w]+
D29A6C|2=\$\{?\w+\}?
; D997DE|2=\$[ABCDEFGHIJKLMNOPQRSTUVWXYZ_1234567890]+
71AE71|2=^[ ]*?#.*