FreeBasic
Главная
Вход
Регистрация
Четверг, 28.03.2024, 15:39Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Вспомогательное программное обеспечение » Вспомогательные утилиты для программистов » IUP_FB_EDITOR (Редактор для Freebasic написанный на Freebasic)
IUP_FB_EDITOR
haavДата: Понедельник, 02.03.2020, 08:51 | Сообщение # 61
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Для тех, кто хочет построить редактор с использованием GTK3:


1) Заголовки , идущие с компилятором , старые для версии 3.15 . Для компиляции с GTK3 их надо немного подправить.

Сейчас это выглядит так (gtk2):

Код
.....
#ifdef __FB_WIN32__
   #inclib "gdi32"
   #inclib "user32"
   #inclib "comdlg32"
   #inclib "comctl32"
   #inclib "ole32"
   #inclib "advapi32"
   #inclib "shell32"
   #inclib "uuid"
#else
   #inclib "gtk-x11-2.0"
   #inclib "gdk-x11-2.0"
   #inclib "pangox-1.0"
   #inclib "gdk_pixbuf-2.0"
   #inclib "pango-1.0"
   #inclib "gobject-2.0"
   #inclib "gmodule-2.0"
   #inclib "glib-2.0"
#endif
....


Для GTK3 должно быть примерно так:

Код
.....
#ifdef __FB_WIN32__
   #inclib "gdi32"
   #inclib "user32"
   #inclib "comdlg32"
   #inclib "comctl32"
   #inclib "ole32"
   #inclib "advapi32"
   #inclib "shell32"
   #inclib "uuid"
#else
   '#inclib "gtk-x11-2.0"
   '#inclib "gdk-x11-2.0"
   '#inclib "pangox-1.0"
   #inclib "gtk-3"
   #inclib "gdk-3"
   #inclib "cairo"
   #inclib "pangocairo-1.0"
   #inclib "gdk_pixbuf-2.0"
   #inclib "pango-1.0"
   #inclib "gobject-2.0"
   #inclib "gmodule-2.0"
   #inclib "glib-2.0"
#endif
....


2) Отредактировать файл редактора declarations.bi:

Сейчас это выглядит так (gtk2):

Код
....
#Else

   #Include "crt/iconv.bi"
   
   #include "gtk/gtk.bi"
....


Для GTK3 должно быть примерно так:

Код
....
#Else

   #Include "crt/iconv.bi"
   
   #include "gtk/gtk3.bi"
....


3) Ну и конечно для GTK3 придется скачивать "правильные" архивы библиотеки IUP:

Linux313_64: Ubuntu 14.04 (x64) / Kernel 3.13 / gcc 4.8 (GTK 3.10)
Linux319_64: Ubuntu 15.04 (x64) / Kernel 3.19 / gcc 4.9 (GTK 3.14)
Linux44_64: Ubuntu 16.04 (x64) / Kernel 4.4 / gcc 5.3 (GTK 3.18)
Linux415_64: Ubuntu 18.04 (x64) / Kernel 4.15 / gcc 7.3 (GTK 3.22)

4) (Опционально) Подправить некоторые конфиги в исходном коде для лучшего отображения некоторых виджетов (в большей степени нуждаются в корректировке крутилки SPIN). Все таки часть интерфейса GTK3 отличается от GTK2

---------------------------

Попробовал на виртуалке редактор под Windows XP 32-bit SP3 . Работает на порядок быстрее чем на Windows 7 . На больших файлах при одинаковых настройках подсказок, парсера и пр. , там где на win7 тормоза с курсором , на winXp даже под виртуалкой все летает!!!


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
haavДата: Вторник, 03.03.2020, 12:15 | Сообщение # 62
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Редактор обновлен:

Исправлены критические ошибки


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Вторник, 03.03.2020, 21:27 | Сообщение # 63
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
haav
После открытия файла при нажатии кнопки "Отменить" все содержимое пропадает - так можно случайно потерять все данные

И можно добавить парсер в IUP_FB_EDITOR+ ?


Сообщение отредактировал WQ - Вторник, 03.03.2020, 21:34
 
haavДата: Вторник, 03.03.2020, 22:03 | Сообщение # 64
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата WQ ()
После открытия файла при нажатии кнопки "Отменить" все содержимое пропадает - так можно случайно потерять все данные


Да я знаю об этом , но пока что ни разу ничего не пропало , ведь после нажатия кнопки "вернуть" , все всегда возвращается smile Но да , надо будет как нибудь выбрать время и попробовать что-то сделать.

Цитата WQ ()
И можно добавить парсер в IUP_FB_EDITOR+ ?


В смысле можно? Любой может брать оттуда все что пожелает и использовать по своему усмотрению. Никаких ограничений нет , кроме тех которые наложены авторами библиотек IUP , ICONV , SCINTILLA .


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
haavДата: Среда, 11.03.2020, 09:36 | Сообщение # 65
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Привет всем!

Обновление Редактора.

Добавил:

1) перемещения вкладок (спасибо за код WQ)
2) теперь парсер поддерживает OPERATOR-END OPERATOR. Реализация парсера завершена , теперь только исправления ошибок (если будут).
3) в окне вывода информации (боковое окно) добавлена возможность вывода: UNIONS, OPERATORS, PROPERTIES

Исправлено:

1) размер вкладок уменьшен по высоте (спасибо за совет Kuan Hsu)
2) откаты назад
3) незначительные улучшения кода и мелкие исправления ошибок


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Четверг, 12.03.2020, 18:37 | Сообщение # 66
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Погоди Стас, ты его уже на GTK перетащил? Тогда надо качать, тестировать.
 
haavДата: Четверг, 12.03.2020, 19:07 | Сообщение # 67
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата DarkDemon ()
Погоди Стас, ты его уже на GTK перетащил? Тогда надо качать, тестировать.


Нет Леха, ты неправильно понял. В IUP многие функции основаны на нативных WinApi (винда), и на GTK (под Linux). А вот версию GTK при использовании IUP можно выбрать вторую или третью. Естественно внешний вид у GTK2 и GTK3 на некоторых контролах отличается. Так уж получилось , что заголовки IUP не менялись уже много лет. Старая версия заголовков IUP писалась только с учетом GTK2. Я предложил способ компиляции редактора , используя GTK3 с минимальными правками заголовков.

А мысля такая (перенос на GTK) у меня была smile


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Четверг, 12.03.2020, 20:24 | Сообщение # 68
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
Цитата haav ()
Нет Леха, ты неправильно понял. В IUP многие функции основаны на нативных WinApi (винда), и на GTK (под Linux). А вот версию GTK при использовании IUP можно выбрать вторую или третью. Естественно внешний вид у GTK2 и GTK3 на некоторых контролах отличается. Так уж получилось , что заголовки IUP не менялись уже много лет. Старая версия заголовков IUP писалась только с учетом GTK2. Я предложил способ компиляции редактора , используя GTK3 с минимальными правками заголовков.А мысля такая (перенос на GTK) у меня была

Ясно, ну всё равно потестирую, правда опять настраивать всё заново.
Наш форум кстати, поднялся. Не знаю надолго ли. Можно и туда запостить.


Сообщение отредактировал DarkDemon - Четверг, 12.03.2020, 20:25
 
WQДата: Суббота, 14.03.2020, 23:25 | Сообщение # 69
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Смотрю код, есть функция cmt_multi_comments_line_positions_proc

Так вот, получить информацию о стиле (в том числе мультистрочные комментарии) в позиции можно, послав IupScintilla сообщение SCI_GETSTYLEAT ( 2010 )
И работает это сравнительно быстро. Можно весь текст разбирать, отделять ключевые слова и т.д.

Еще такой вопрос, как на оф форуме картинку запостить?
Выложил на imgur.com, добавляю ссылку в тег image  - ничего не происходит...
 
haavДата: Воскресенье, 15.03.2020, 09:20 | Сообщение # 70
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата WQ ()
Так вот, получить информацию о стиле (в том числе мультистрочные комментарии) в позиции можно, послав IupScintilla сообщение SCI_GETSTYLEAT ( 2010 )
И работает это сравнительно быстро. Можно весь текст разбирать, отделять ключевые слова и т.д.


Если у тебя есть уверенность в этой опции и желание изменять парсер, кто же тебе мешает? Я лучше останусь со своим кодом , чем потом буду оправдываться (мол это скинтилла...) .

Цитата WQ ()
Еще такой вопрос, как на оф форуме картинку запостить?
Выложил на imgur.com, добавляю ссылку в тег image - ничего не происходит...


Как и везде:

Код
[img]ссылка на фото[/img]


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
haavДата: Воскресенье, 22.03.2020, 13:36 | Сообщение # 71
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Обновил редактор.


  • Добавлена возможность возвращаться на предыдущее место , после перехода к месту объявления переменной по сочетанию клавиш CTRL+SHIFT+F2

  • Добавлена возможность высвечивать информацию о блоке (function, constructor, property , ...) в котором в данный момент находится курсор по клавише F6. Это особенно актуально в объемных функциях. Выглядит это примерно так:

  • Переписан алгоритм кодировки. Ранее редактор пытался всеми возможными способами ICONV загрузить текст в заданной кодировке , не взирая на ошибки и пр. Теперь при невозможности загрузить в заданной кодировке , редактор спросит "Нет возможности выполнить преобразование в заданную кодировку. Редактор может попробовать преобразовать в 1 из 120 возможных кодировок. Начать?" . В итоге будет по очереди пытаться преобразовать текст , используя все возможные кодировки. Так же в меню "ФАЙЛ" и в меню "НАСТРОЙКИ" добавлены в общей сложности 4 пункта меню , связанные с кодировкой

  • Парсер теперь умеет считывать также ссылки вида: DIM BYREF aaaaa AS LONG (увы , но про них забыл когда писал парсер).
Прикрепления: 3567959.png (6.1 Kb)


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
haavДата: Четверг, 23.04.2020, 14:18 | Сообщение # 72
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Обновил редактор.
Ничего нового , только исправление ошибок.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
Alex_ArtifexДата: Четверг, 30.04.2020, 17:36 | Сообщение # 73
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 0
Статус: Offline
Ваня, отличная работа!  happy  Я замучался с Fbedit-ом из-за отстутствия кодировки UTF, эти кракозябры вместо русскояз. комментариев. sad
Скачал последнюю версию твоего редактора, все компилится и интерфейс как у FBEdit почти.

(Я здесь ранье на форуме был как Alec, ту учётную запись больше не использую)

По поводу лицензии. Можно мне включить редактор в сборку своего движка?


Сообщение отредактировал Alex_Artifex - Четверг, 30.04.2020, 18:06
 
haavДата: Пятница, 01.05.2020, 07:49 | Сообщение # 74
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата Alex_Artifex ()
Ваня,

Лучше Стас smile .

Цитата Alex_Artifex ()
По поводу лицензии. Можно мне включить редактор в сборку своего движка?

Конечно, но не забывай про лицензии сторонних библиотек , на основе которых построен редактор. Так что , если замутишь что-то коммерческое, тебе придется считаться с их лицензиями.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
Alex_ArtifexДата: Пятница, 01.05.2020, 08:59 | Сообщение # 75
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 0
Статус: Offline
Хорошо, Стас. Просто на офиц. сайте ФБ ты Vanya. Хорошо, учту про лицензии на др. либы.

Добавлено (01.05.2020, 16:28)
---------------------------------------------
Нашёл 3 лицензии для IUP, Scintilla и Iconv. Все 3 позволяют распространять  вклбчать их в свои программы. Вставил в свою версию. Кстати, я там давно не обновлял тему о WorldSim3D. Сегодня обновлю.

 
Форум » Вспомогательное программное обеспечение » Вспомогательные утилиты для программистов » IUP_FB_EDITOR (Редактор для Freebasic написанный на Freebasic)
Поиск: