purebasic.info

PureBasic forum
Текущее время: Вт май 26, 2020 12:15 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: AkelPad в качестве IDE
СообщениеДобавлено: Пт июн 07, 2019 11:03 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 609
Благодарил (а): 42 раз.
Поблагодарили: 79 раз.
Пункты репутации: 2
Пытаюсь выбрать альтернативу для универсального редактора для программирования. Прыжок из темы про IDE, чтобы обсуждать отдельно.

Скачать конфиги - ссылка вечная, не просить давать её снова, она всегда тут.
Из последних обновлений:
1. Добавил скрипт комментировать/раскомментировать (переключить, а не дважды комментировать) и добавил правило для pb, особого правила нет просто добавил расширение к списку тех, у которых для этого используются кавычки. Ctrl+Q
2. Добавил расширенные скрипты поиска и замены, у одного есть вывод в консоль и прыжок к найденному по пункту в консоли, другой имеет базу для запоминания рег.выр. Ctrl+F, Alt+F, Alt+H
3. Добавил скрипт дублирования строки или выделенного Ctrl+D
4. До кучи там уже есть описание "Начало" и конфиги для подсветки au3, BBCode, Grub4Dos, ini, reg, pb.

Есть подсветка кода, свертки (фолдинг), автозавершение. Кстати автозавершение позволяет создать фрагменты (снипсеты), то есть вставлять многострочный код, а имена давать например начиная с "zz", например zzGUI или с "zx".

Кому хочется быстро прикрутить компилятор, есть скрипт ExecuteDocument.js, ссылку дал yozhic

По скриптам смотреть тут, там вверху закреплена тема Scripts collection (коллекции скриптов), в интерфейсе проги этим скриптам можно добавлять горячие клавиши и как пункт меню, просто кинув в папку скриптов, открыть "Плагины - Горячие клавиши" остальное понятно. А пункт через "Моё - Изменить меню", по умолчанию это надо открывать через Настройка - Плагины - ContextMenu:Main - кнопка:Вызвать.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Сб июн 08, 2019 12:43 am 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 1008
Благодарил (а): 2 раз.
Поблагодарили: 58 раз.
Пункты репутации: 9
Теперь после невозможности изменения файла,понял что у меня за ошибки лезли.
Тупо не был указан пользователь в безопасности файла и они не открывались прогой и вылетала ошибка.
А этот формат данных WindowRect=3400000024000000980400008F030000 как расшифровывается? :roll:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Сб июн 08, 2019 6:39 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 609
Благодарил (а): 42 раз.
Поблагодарили: 79 раз.
Пункты репутации: 2
Сергейчик писал(а):
А этот формат данных WindowRect=3400000024000000980400008F030000 как расшифровывается? :roll:
я изучаю также как и ты, думаю это бинарные данный в шестнадцатеричном виде. Ты же кодер, видишь формат. Там весь ini такой. Думаю защита от пробела, кодировки и т.д.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Сб июн 08, 2019 8:55 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11648
Благодарил (а): 4 раз.
Поблагодарили: 501 раз.
Сергейчик писал(а):
А этот формат данных WindowRect=3400000024000000980400008F030000 как расшифровывается?
По моему все элементарно.
X = 34h
Y = 24h
Ширина = 0498h
Высота = 038Fh

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Вс июн 09, 2019 4:09 am 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 609
Благодарил (а): 42 раз.
Поблагодарили: 79 раз.
Пункты репутации: 2
По поводу запуска каких либо прог/компиляторов, вот пример
Код:
1
AkelPad.Exec('%windir%\\explorer.exe /select,"' + AkelPad.GetEditFile(0) + '"');

для открытия файла в проводнике. Сохраняем в js, кладём в папку скриптов, даём хоткей или в пункт меню.
Если посмотреть сприпт ExecuteDocument.js, вот что ещё можно получить
Код:
1
2
3
4
5
var hEditWnd  = AkelPad.GetEditWnd();
var pEditFile = AkelPad.GetEditFile(0);
var pFileExt  = AkelPad.GetFilePath(pEditFile, 4 /*CPF_FILEEXT*/);
var pSelText  = AkelPad.GetSelText();
var sArg      = AkelPad.GetArgLine();


дескриптор окна, путь к файлу, расширение файла, выделенный текст. Кстати посмотрел плаг Log.dll, описание в "AkelFiles\Docs\Log-Rus.txt", там указана работа с консолью, как прикрутить взаимодействие с окном AkelPad, чтобы добавить ссылки-прыжок в строку ошибки.
Документация по методам типа AkelPad.GetEditFile(0); можно скачать здесь, там раздел "Plugin -> Scripts" (там файл Plugins-Eng_PM.zip, внутри CHM)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Вс июн 23, 2019 5:42 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 609
Благодарил (а): 42 раз.
Поблагодарили: 79 раз.
Пункты репутации: 2
1. Добавил открытие файла справки при расширении файла pb (открытого документа) по F1 (и для других расширений свои)
2. Добавил запуск в ассоциированной программе по F5, то есть pb откроется в своём IDE. То есть возможность легко переходить в родной редактор для компилирования и теста.

Как бы добавить команду "Форматировать код", в AutoIt3 это делает отдельный EXE и прикрутить было легко.

Добавил в меню команды:
Код:
1
2
3
4
5
6
7
"PureBasic"
{
    "Run" Call("Log::Output", 1, '"C:\путь\Purebasic\Compilers\pbcompiler.exe" "%f"', "%temp%", '^Error: Line (\d+)', '/GOTOLINE=\1:1', -1, -1)
    "Compile" Call("Log::Output", 1, '"C:\путь\Purebasic\Compilers\pbcompiler.exe" "%f" /EXE  "%f.exe"', "%d", '^Error: Line (\d+)', '/GOTOLINE=\1:1', -1, -1)
    "Check" Call("Log::Output", 1, '"C:\путь\Purebasic\Compilers\pbcompiler.exe" "%f" -k', "", '^Error: Line (\d+)', '/GOTOLINE=\1:1', -1, -1)
    "Debugger" Call("Log::Output", 1, '"C:\путь\Purebasic\Compilers\pbcompiler.exe" "%f" --debugger', "%temp%", '^Error: Line (\d+)', '/GOTOLINE=\1:1', -1, -1)
}



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Ср авг 21, 2019 1:02 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 609
Благодарил (а): 42 раз.
Поблагодарили: 79 раз.
Пункты репутации: 2
Моя сборка AkelPad. Находится всё ещё в режиме изучения.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Вт окт 15, 2019 2:46 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 609
Благодарил (а): 42 раз.
Поблагодарили: 79 раз.
Пункты репутации: 2
Кому интересно, я написал уже 12 скриптов.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Вс мар 08, 2020 3:52 pm 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 609
Благодарил (а): 42 раз.
Поблагодарили: 79 раз.
Пункты репутации: 2
У меня программа TextCorrection имела проблемы с AkelPad, при выделении слов путём высылки имитации команд "Ctrl+Shift+Стрелка влево" происходила подсветка выделенного по тексту документа из-за чего тормозилось выделение. Увеличил задержку между отправкой команд и всё стало стабильно. Рекомендуется добавить хоткей Ctrl+P в настройках на функцию замены аббревиатур, мне очень помогает, например пишу пурик автоит акел, соответственно хоткеем заменяю на PureBasic AutoIt3 AkelPad, ну это в браузере, не говоря уже про удобность набора аббревиатур в редакторе PureBasic.

Также в сборку AkelPad добавил скрипт CommandPalette.js для поиска команд меню методом ввода части текста содержащегося в названии меню. В справку AkelPad.chm добавил описание настроек программы, настроек плага кодер, переменных стиля, методов для написания скриптов. Обновил 2 недели назад.
А если учитывать 15 октября последнюю предыдущую запись в этой теме, то добавлено/обновлено ещё и Search_internet.js, select2steps.js, InsertTextLN.js, closeLeftOrRightTabs.js, toggleComments.js, JS.chm, иконки панели автозавершения, новые или обновлённые *.coder-файлы.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: AkelPad в качестве IDE
СообщениеДобавлено: Пт май 22, 2020 5:17 am 
Не в сети
профессор

Зарегистрирован: Чт фев 09, 2017 10:37 am
Сообщений: 609
Благодарил (а): 42 раз.
Поблагодарили: 79 раз.
Пункты репутации: 2
Обновил pb.coder

старое
1. Убрал 23 раздела World3D+, 4 раздела Network+, XML, то есть убрал примерно 600 функций, но на самом деле переложил их в другой файл, добавить будет не сложно целиком в конец списка. Просто при запросах выпадают большие списки и нужное оказывается далеко по списку, что приходится печатать 4 буквы вместо 2-х. Хочется ещё несколько разделов вырезать и позже вставить, например Sprite.

2. Добавил несколько часто используемых констант, для этого сделал поиск текста "#PB_" в папке скриптов (код-архив, проекты, примеры-тесты) результаты перевёл в столбик констант, программой своей подсчитал число дубликатов и сортировал список, хотя с учётом тех что действительно универсальных, потому что редко используемые и трудно запоминающиеся беру из справки во время добавления функции. Кстати проверил в IDE PureBasic, там все константы, но если честно я не смогу выбрать потому что даже не знаю какие к какой функции относятся, поэтому сделал по своему уровню, но позже сделаю список констант отдельный файл, так что каждый может либо все добавить, либо как я только те что знает.

3. Добавил директивы компилятора, так как уже нашёл в них смысл, например видел много инклудов, в которых выкладывался пример, но директивами этот пример не добавлялся в главный файл при использовании его как инклуд, ну и проверка системы, проверка битности, вывод предупреждений и ошибок.

4. Добавил фрагменты кода (GUI, Error, timer), так как надо часто сделать быстрый пример GUI, быстро проверить время выполнения функции и т.д. То есть вводим gu, er, ti и Enter.

5. Команды отладки (ms..., de...) это наверно самое полезное для меня вывод мессаг и дебаг, чтобы быстро вставить команду вывода результатов с минимальными правками. Чтобы выводить мессагу привык использовать аббревиатуру ms, поэтому так. Может надо привыкнуть к mb (?), клавиши близко и удобно (MessageBox).

Так что я из классического стиля "имя функции(параметры)" делаю удобное. И обнаружил свойство, тут нет сортировки как в Notepad++, то есть если при вводе допустим "pro" хочется чтобы Procedure и Protected были первыми в списке их просто надо переместить вверх по списку в файле, то есть просто ищется текст начинающийся на "pro", но порядок определяет текущий порядок в файле. Поэтому если надо выдавать сортированный список, то надо сортировать в файле, но вот мне это не нужно и я ранее пытался ломать сортировку вывода в Notepad++, а тут это само собой разумеющееся.

Чтобы получить константы нужно заменить в списке констант с помощью рег. выр.
найти \b(PB_\w+)\b
заменить $~\1\n#\1\n
можно ещу потом заменить $~PB_ на $~_ набор констант тогда будет с _a чтобы не набирать pb_a

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

Оказалось можно писать так
Код:
1
2
$(2)~Debug $(2)~отладка
Debug $[]


то есть 2 имени на одну вставку. Добавил русифицирующие строки. Регвыр для поиска этих строк \$(\(2\))?~\w+ \$(\(2\))?~\w+


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB