PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » OpenSource » Доработки PureBasic IDE


Доработки PureBasic IDE

Сообщений 1 страница 29 из 29

1

С тех пор, как Фред выложил исходники IDE, появилась возможность «допиливать» её под себя.
Предлагаю делиться своими наработками.
Если они, конечно, у кого-то есть...

П.С.
Вот только не уверен, что раздел «OpenSource» подходит для темы. С другой стороны, IDE теперь тоже opensource.

0

2

Для затравки.

Доработка 1.
Не совсем доработка исходного кода, но доработка непосредственно IDE. В папке Compilers есть файл APIFunctionListing.txt Там список функций WinApi. IDE при вводе преобразует регистр имён функций на основе этого списка. Но, во-первых, в этом списке есть, как минимум, неточности. Во-вторых, лично для меня подобные преобразования не всегда желательны, особенно когда имена моих собственных функций находятся в этом списке, но регистр мне требуется другой. Поэтому я этот список обнуляю - в первую строчку этого файла (счётчик) ставлю 0, вторую на всякий случай оставляю пустой, остальные строки удаляю. Профит.
Подобное можно сделать и в исходном коде, добавив, скажем, проверку на существование этого файла. Я такую проверку делал, это работало, но потом плюнул, проще файл скопировать.

Доработка 2.
Второе, что мне не нравится в плане автоматического преобразования регистра и подсветки, это инструкции ассемблера. Инструкций много. Я бы даже сказал очень много. Обязательно какая-нибудь переменная, поле структуры и т.п. совпадут. Мелочь, но неприятная. Я предпочитаю для инструкций ассемблера использовать синтаксис с !, а остальное нафиг. Поэтому в файле PureBasicIDE\AssemblyOperandsX86.pb оставляю одну строку Data.l 0, остальные удаляю.

Доработка 3.
При выполнении в IDE Compile\Compile/Run вместе с оператором Debug, открывается окно с выводом. Неприятным моментом является то, что это окно хоть и выскакивает на передний план (при установке соответствующей опции), но остаётся неактивным. Неудобно. Неудобно переключаться на него с клавиатуры. Неудобно закрывать с клавиатуры. Особенно, когда руки на клавиатуре, надо всё бросать и хватать мышь.
Решение:
В файле PureBasicDebugger\DebugOutput.pb в процедуре OpenDebugWindow заменяем вызов SetWindowforeGround_NoActivate на SetWindowforeGround
В файле PureBasicIDE\IDEDebugger.pb в конце процедуры Debugger_Ended удаляем (комментируем) строчку с ActivateMainWindow.
Возможно, в каких-то сценариях использования IDE это может оказаться не удобно. Мне так в самый раз.
Надо будет только закрытие окна добавить по Esc и CtrlW.

0

3

Лучший вариант — это сделать эти окна отладчика панелями как в студии с автоскрытием.

Отредактировано Замабувараев (07.11.2023 23:34:15)

0

4

Замабувараев написал(а):

Лучший вариант — это сделать эти окна отладчика панелями как в студии с автоскрытием.

Формально основа уже есть - панель Error log, куда можно направить вывод Debug. Но без автоскрытия, без вкладок (всё идёт сплошным списком - сообщения, ошибки, вывод Debug).

0

5

Похоже, исходники IDE древние - выложены 3 года назад, а сами ещё древнее, т.к. FormDesigner уже давно нет.
И неполные - не собираются (у меня), не хватает иконок - требуется допиливание. В 2023г некоторые сидят (допиливают и обновляют) на jaPBe..

0

6

bizdon написал(а):

Похоже, исходники IDE древние

Где?

Смотрю обновлённый гит. в папке у меня c:\Work\PB_Git\PureBasic\PureBasicIDE\
самый свежий файл ToolsPanel.pb от 2023.10.12

0

7

Исходники свежие.
А вот файлы MakeWindows.cmd написаны не совсем грамотно. Поэтому IDE может собраться без ресурсов.
Для исправления установку переменных среды сделать так:

Код:
set "PUREBASIC_HOME=%~1"
set "PATH=%PUREBASIC_HOME%\Compilers;%PUREBASIC_HOME%;%PATH%"

И далее в обоих MakeWindows везде, где используется переменная PUREBASIC_HOME, параметры заключать в кавычки.

Отредактировано Smitis (08.11.2023 16:33:10)

0

8

Smitis
я рукажоп, собрать не получается по дефолту. Что за файлы "MakeWindows.cmd" - в папке нет таких! Имеется в виду "Window-x86.cmd"? Добавление строк не помогает.
Где должен стоять PB и какой версии? (5.70?). Зачем в этих файлах Visual Studio 12 и DirectX SDK? - их тоже надо ставить? Где должна быть папка "purebasic-master" - на диске С:\ или в каталог "C:\Program Files (x86)\PureBasic" копировать? Компиляция должна проходить при исполнении Window-x86.cmd или из ИДЕ PB файла PureBasicIDE.pbp?

0

9

bizdon написал(а):

Где должен стоять PB и какой версии? (5.70?).

Что значит какой версии?
Исходники наисвежайшие  https://github.com/fantaisie-software/purebasic естественно под 6.03

Я поэтому и спрашивал о том где вы берёте "древние".

0

10

bizdon
Идём по ссылке https://github.com/fantaisie-software/purebasic
Зелёная кнопка Code / Download zip
Внутри zip папка purebasic-devel с последними исходниками.
Распаковываем.
purebasic-devel\PureBasicIDE\MakeWindows.cmd для сборки PureBasic.exe
purebasic-devel\PureBasicDebugger\MakeWindows.cmd для сборки PBDebugger.exe
В качестве параметра передать полный путь к папке PureBasic (x86 или x64).
В случае удачной компиляции, если всё правильно, файлы PureBasic.exe и PBDebugger.exe будут переписаны, поэтому на всякий случай их лучше сохранить.

0

11

bizdon
https://www.purebasic.fr/english/viewto … 08#p592308

0

12

Зелёная кнопка Code / Download zip

Никогда так не делайте.
Исходные коды с гитхаба следует получать через «git clone», иначе у вас окажутся неверными символы перевода строки и возврата каретки.

0

13

Замабувараев написал(а):

Никогда так не делайте.
Исходные коды с гитхаба следует получать через «git clone», иначе у вас окажутся неверными символы перевода строки и возврата каретки.

Тогда придётся ещё объяснять, как git ставить, как с ним работать. И зачем? Всё прекрасно скачивается и компилируется. Проверено.

0

14

Тут чел выложил IDE с доработкой подсветки кода. Во первых плаг ранее известный у меня время от времени падал по не понятной причине, а потерять данные не особо хотелось, во вторых не было аналога для Linux. И тут чел встроил это непосредственно в IDE, то есть не будет заморочек с внешним доступом к Scintilla. Я потестил предыдущую виндовую версию, понравилось, пришлось встроить недостающую иконку, а сейчас уже исправил. Надеюсь что добавит мою хотелку по подкраске кода регулярным выражением или поиском от начала, чтобы в таблицу не указывать все метки для подсветки, а только первый символ, которым я помечаю специальные метки. Там скриншот есть, выглядит как я хотел.

0

15

AZJIO
У меня не работает скомпиллированный exe'шник версии 6.12_х86, не раскрашивает список процедур, несмотря на поставленную галку. Имхо, лучше бы в виде внешнего инструмента было реализовано, чтобы подходило к любой версии PB. Что за исходники ниже на странице?

0

16

bizdon написал(а):

чтобы подходило к любой версии PB

Я в папку 6.04 положил, всё работает.
Плаг тут

0

17

Плагин заработал!

0

18

Автор уже добавил подсветку по начальному тексту, что я просил, а это уже для меня лучше чем плаг. Посмотри видео, которое я выложил в той теме. Там указал префикс и все строки с указанным префиксом будут подсвечены. Соответственно не требуется подсвечивать каждый в отдельности. В крайнем случае на совсем старой версии можно использовать плаг, а на новых я бы использовал встроенный вариант.

0

19

Очередная точка, в работе над IDE. Добавлена поддержка иконок, надо подменить SilkTheme.zip или оставить авторское имя и в настройках выбрать другую тему. И красиво и надёжно работает и поиск. Я в теме выложил для Linux-x86 (на 5-й странице последний пост).

bizdon написал(а):

не раскрашивает список процедур

то есть при выборе имени в списке процедур и нажатии кнопки выбора цвета и применении не подсвечивает?

bizdon написал(а):

Что за исходники ниже на странице?

скачиваешь на официальном сайте архив исходников. Зелёная кнопка Code, жмёшь снизу текст - "Скачать всё в zip", написано на английском. В теме во втором посте эта же ссылка дана челом.
Когда скачаешь и распакуешь, переходишь в папку PureBasicIDE, там есть файл MakeWindows.cmd, ему надо передать путь к папке PureBasic, я делаю ярлык и в свойствах добавляю путь в кавычках. Всё, жмёшь и у тебя появляется новый PureBasic.exe через 2 секунды. Кстати заменяя оригинальный, поэтому обязательно сделай его копию. Он же компилирует этой версией, он же подменяет IDE. Файлы исходники кидаешь взамен существующих и уже компилирует с новым функционалом. На всякий случай: ярлык у меня в той же папке, IDE должен быть закрыт, иначе как он его подменит.

В линукс надо открыть файл PureBasic.pb, в настройках включить ASM (не "C Backend"), включить поддержку многопоточности. Всё, жмешь компилировать, как обычную прогу, будет предложено указать файл, в линукс имя "purebasic" и потом копируешь этот файл в папку compilers, в линукс там находится исполняемый файл. Всё.

Отредактировано AZJIO (02.10.2024 22:51:32)

0

20

Когда скачаешь и распакуешь
-распаковывать как есть в любое место, например, в "C:\purebasic-devel" или в папку E:\purebasic\purebasic-devel?

я делаю ярлык
ярлык чего? Папки E:\purebasic или MakeWindows.cmd?
где должен располагаться этот ярлык: в той же папке purebasic-devel или E:\purebasic?

и в свойствах добавляю путь в кавычках.
там где "рабочая папка": "E:\purebasic"?

Какая версия PB нужна? Я так понимаю, что последняя 6.12, на 5.73_х86 не соберётся? (и не собирается). Я через батник пробовал: MakeWindows.cmd "E:\PureBasic\"  - создаются с десяток файлов в папке "C:\purebasic-devel\PureBasicIDE\Build", но PureBasic.exe среди них нет.

0

21

bizdon написал(а):

ярлык чего? Папки E:\purebasic или MakeWindows.cmd?

AZJIO написал(а):

есть файл MakeWindows.cmd, ему надо передать путь к папке PureBasic

Можешь без ярлыеа сделать, нажать Ctrl+R ввести путь к MakeWindows.cmd и путь к PureBasic.

Отредактировано AZJIO (03.10.2024 09:55:40)

0

22

Azjio
Всё получилось! Ide собирается только если Pb 6.х, на 5.х не собирается. И только на Pb х64, на х86 не собирается. Без замены темы не видны значки на кнопках.

0

23

bizdon написал(а):

Без замены темы не видны значки на кнопках.

Очевидно... Ранее автор использовал буквы, это не требовало проводить манипуляции с темой, но выглядело примитивно. Кому интересно кнопки в буквами M, S, U, F, B, C?

bizdon написал(а):

И только на Pb х64, на х86 не собирается

То есть если указать папку Pb х86 вместо Pb х64 то заканчивается сбоем?

0

24

То есть если указать папку Pb х86 вместо Pb х64 то заканчивается сбоем?

не собирается PureBasic.exe

0

25

bizdon написал(а):

не собирается PureBasic.exe

Ошибка какая?
В ИДЕ откройте и попробуйте скомпилировать.

0

26

Из командной строки собирается всё влёт - вызвать MakeWindows.cmd передав полный путь к папке с PB.
Главное чтобы пути не содержали пробелы (у Фреда в батниках ошибки) и русские буквы (это могли уже исправить).
При этом оригинальный PureBasic.exe затирается, поэтому на всякий случай лучше его сохранить.

0

27

Собралось х86 только после того, как в PB открыл проект и заменил default на Windows-x86

0

28

А если через меню "Компилятор" -> "Выстроить цель" -> "Windows-x86" то не собиралось?

0

29

Так и сделал, сохранил в проекте target Windows-x86 и затем через командрую строку собралось. И через IDE PB проект тоже собирается, только надо выставить галку поддержки многопоточности.

0


Вы здесь » PureBasic - форум » OpenSource » Доработки PureBasic IDE