Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AkelPad (часть 2)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

Открыть новую тему     Написать ответ в эту тему

gyra

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkelPad  4.9.8 (от 18 июля 2016)
 
Страница программы | Скачать | Описание | Плагины | Форум | Скриншот (без плагинов) | Предыдущая часть темы
 


AkelPad - текстовый редактор с открытым исходным кодом, созданный, чтобы быть маленьким и быстрым.



Скачать инсталлятор (многоязычный): x86 | x64  

Скачать архив (русская версия): x86 | x64  
Скачать архив (английская версия): x86 | x64  

Скачать сборник плагинов: x86 | x64  

AkelUpdater v6.8 - обновление программы, плагинов и скриптов

Авторы:
AkelPad 4 - Шенгальц А.А.
AkelPad 3 - Шенгальц А.А.
AkelPad Classic (2.x) - Кузнецов А.И.
AkelPad - Кузнецов А.И.
 


Различные старые версии
Сборки AkelPad
Установка AkelPad 4 на Windоws 7 "С заменой Блокнота Windows"
Готовый батник (запустить перед установкой AkelPad)  для установки AkelPad 4 на Windоws 7 x86 "С заменой Блокнота Windows"
 
FAQ | Файл справки онлайн
 
Коллекция скриптов
Дополнительные синтаксические файлы
 

Всего записей: 7382 | Зарегистр. 18-02-2006 | Отправлено: 22:03 10-07-2017 | Исправлено: AlexDAT, 01:12 26-07-2019
shadow_member



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 ассоциации
Default Programs Editor - великолепная вещь для назначения ассоциаций (и не только) там, где они не назначаются, выручала множество раз от семерки до десятки.

Всего записей: 17972 | Зарегистр. 18-07-2006 | Отправлено: 14:04 28-05-2019
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я своей штукой ассоциировал за пару сек все текстовые файлы. Надо внешний файл сделать чтобы удобно было настраивать.
 
Я тут в нескольких файлах настроил, не знаю стоит ли выкладывать. Я в сборку Andrey_A быстро подстроил чтобы хотя бы быстро править свои файлы. Конфиги Au3.coder, Txt.coder, Lst.coder поправил, и добавил pb.coder. Настроил свою чёрную тему. Не стал выкладывать, потому что есть ещё вещи которые хочется поправить. Во первых *.coder мне показалось можно интересно подстроить подсветку под себя, задав свои критерии, особенно радует поддержка подсветки рег.вырами.
Пока не могу найти где задать стили скобок, кавычек, когды ставишь курсор на них они подсвечиваются белым стилем, я уже везде гне можно убрал белый, видимо это отдельный плаг со своим стилем... Кто знает подскажите.
Ещё мне захотелось перевод конфигов *.coder сделать, я не нашёл в гугле. Там куча флагов которыми можно регулировать поведение (подсветка, свёртка, автозавершение)

Всего записей: 4014 | Зарегистр. 03-05-2006 | Отправлено: 17:12 28-05-2019
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO

Цитата:
Ещё мне захотелось перевод конфигов *.coder сделать

В шапке Дополнительные синтаксические файлы > cpp-rus.coder.

Цитата:
Пока не могу найти где задать стили скобок, кавычек, когды ставишь курсор на них они подсвечиваются белым стилем, я уже везде гне можно убрал белый, видимо это отдельный плаг со своим стилем... Кто знает подскажите.

В XBrackets вроде были настройки цвета.
 
P.S. Наверное, те, что идут с AkelPad из коробки, лучше модифицировать, подпиливая оригинальный (au3.coder в частности)?

Всего записей: 5811 | Зарегистр. 28-01-2008 | Отправлено: 17:32 28-05-2019
yozhic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO (пост)
Цитата:
перевод конфигов *.coder

Шпора по флагам в coder
 
Добавлено:

Цитата:
видимо это отдельный плаг со своим стилем

XBrackets, он и есть.
 

Цитата:
Au3.coder

Я начал потихоньку добавлять в au3.coder функции

Код:
$~IniRead()
IniRead($["filename"], $["section"], $["key"], $["default"])$[]
$~IniWrite()
IniWrite($["filename"], $["section"], $["key"], $["value"])$[]
 

Интересно, если добавить все (нативные хотя бы) тормозить не будет?
 
Ещё можно дебажные строки там собирать, оч. удобно:

Код:
$~Debug::MsgBox
MsgBox(48+262144,'Debug line ~'&@ScriptLineNumber,'Selection:'&@lf&'$[PasteQuestionableData]'&@lf&@lf&'Return:'&@lf& $[PasteQuestionableData]) ;### DEBUG MSGBOX
 
$~Debug::MsgBox::Simple
MsgBox(0,'Debug line ~'&@ScriptLineNumber,'$[Debug: ]'$[&]) ;### DEBUG MSGBOX
 


Всего записей: 1522 | Зарегистр. 20-03-2008 | Отправлено: 18:44 28-05-2019 | Исправлено: yozhic, 23:26 03-06-2019
uncleShi



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO (пост)
Цитата:
Я своей штукой ассоциировал за пару сек
Там забавная очеПятка, я аж задумался поначалу, кто такое гарфик )))

Всего записей: 2695 | Зарегистр. 29-05-2003 | Отправлено: 22:04 28-05-2019
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uncleShi
Подробнее...
 

Цитата:
Наверное, те, что идут с AkelPad из коробки
а я установил официальную, там какой то блокнот без подсветки без ничего, как системный винды, я подумал остальное нужно плагами доделывать и решил сначала поковырять готовый, хотя бы видно возможности.
 
yozhic

Цитата:
Я начал потихоньку добавлять в au3.coder функции  
Да, тоже надо. В Notepad++ не тормозил, ну и здесь наверно не будет.

Всего записей: 4014 | Зарегистр. 03-05-2006 | Отправлено: 07:05 29-05-2019
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мой au3.coder, иногда чуток заметно, что помедленнее (большой файл, слабый комп).

Всего записей: 5811 | Зарегистр. 28-01-2008 | Отправлено: 12:12 29-05-2019
YuS_2



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO

Цитата:
установил официальную, там какой то блокнот без подсветки без ничего, как системный винды, я подумал остальное нужно плагами доделывать

Правильно. Если архив скачан без плагинов, то плагпак скачивается отдельно и кроме того, что плагины надо положить в соответствующий каталог, их потом включать надо через меню.

Всего записей: 2624 | Зарегистр. 03-02-2009 | Отправлено: 13:13 29-05-2019
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skif_off
А почему бы функции через рег.выр. не сделать? С одной стороны указав список можно отличать встроенные от собственных, но он ведь будет искать каждую функцию, сделав количество проходов по количеству функций, то есть 300 раз для встроенных и 2000 раз для UDF, а если сделать через рег.выр., то он ищет в 2 прохода. При чём при желании можно сделать собственный способ отделять встроенные от собственных с помощью какого нибудь префикса.
У меня кстати для PureBasic почему то OR или TO он подсвечивает внутри переменных. В PureBasic имя переменной можно задать без каких либо способов определить что это переменная, в этом случае оно не подсвечено и там появляется выделенное OR или TO. Может посмотреть как это в cpp.coder сделано, например по приравниванию var= (оканчивается на =). Смущает то что ключевые слова он должен искать как ЦЕЛОЕ слово, а не как часть слова.

Всего записей: 4014 | Зарегистр. 03-05-2006 | Отправлено: 13:40 29-05-2019 | Исправлено: AZJIO, 13:48 29-05-2019
yozhic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 AZJIO (пост)
Цитата:
а если сделать через рег.выр., то он ищет в 2 прохода

Интересно. Т.е. получается РегВыр такого типа (сократил для наглядности там где многоточие)

Код:
"(\$(Sleep|String(RegExpReplace|Replace| ... |SetError|VarGetType|IsNumber))\b"

AkelPad обработает быстрее, чем список?

Всего записей: 1522 | Зарегистр. 20-03-2008 | Отправлено: 13:53 29-05-2019
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yozhic

Код:
;--Функции UDF с проверкой открывающей скобки--
1    "\b(_\w++)(?=\s*\()"    "\1=(0,#7D8AE6,0)    "
 
;--Функции собсвенные с проверкой открывающей скобки, но захватывает и AutoIt3-функции поэтому убрал поимённый список функций AutoIt3--
1    "\b([a-zA-Z]\w*)(?=\s*\()"    "\1=(0,#AAA6DB,0)    "

Из описания имя функции не должно начинаться с цифры, поэтому применил [a-zA-Z], потом возможный повтор \w*, и заканчивается возможным пробелом и открывающей скобкой. Для UDF первый символ "_", остальное тоже самое, хотя может тоже * вместо ++ сделать чтобы захватила функцию "_".

Всего записей: 4014 | Зарегистр. 03-05-2006 | Отправлено: 14:18 29-05-2019 | Исправлено: AZJIO, 14:24 29-05-2019
yozhic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO
С UDF всё понятно, вопросов нет.
А вот со встроенными: Вашей регуляркой какой-нибудь FooBar() тоже будет подсвечен. А в списке точные совпадения. Вот я и спросил, что если, например, вместо списка использовать регулярку с перечислением ключевых слов, с которых начинаются встроенные функции (я для пример только три перечислил, но планируется перечислить все)

Код:
\b(Ini|File|String)\w*(?=\s*\()

Будет ли Coder обрабатывать такую регулярку быстрее, чем список?

Всего записей: 1522 | Зарегистр. 20-03-2008 | Отправлено: 14:35 29-05-2019
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yozhic

Цитата:

Код:
$~IniRead()
IniRead($["filename"], $["section"], $["key"], $["default"])$[]
я тут подумал, а зачем это делать ручками? Есть справка, в ней есть блок "синтаксис", пишешь скрипт, перебирающий файлы справки, вытаскивающий блок "синтаксис", разделяя его на составные части, собирая в новый вид/шаблон. То есть пишем скрипт и за раз получаем готовый файл автозавершения. Вставляем его в свой *.coder

Всего записей: 4014 | Зарегистр. 03-05-2006 | Отправлено: 14:39 29-05-2019
yozhic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO (пост)
Цитата:
я тут подумал, а зачем это делать ручками?

Совершенно согласен. Только я думал взять всё это из au3.api. А что из справки удобнее, думаете?
И ещё: \s в AkelPad это

Цитата:
Любой знак пробела: пробел, табуляция, перевод страницы и т.д. Эквивалентно '[ \f\n\r\t\v]'.

Значит вариант Sleep[\r\n]+\(1000\) Coder подсветит, а AutoIt отбракует. Или я ошибаюсь?

Всего записей: 1522 | Зарегистр. 20-03-2008 | Отправлено: 14:45 29-05-2019
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yozhic
Цитата:
Будет ли Coder обрабатывать такую регулярку быстрее, чем список?  
Не уверен, он делает за один проход, но он будет это делать следующим образом: смотрит первую букву au3-файла, допустим "z" и начинает смотреть в каждом из элементов списка "File|String", есть ли первая буква каждого элемента начинающегося на  "z" и опять же перебирает 2300 слов на начальное совпадение и так на каждую букву.
 
yozhic

Цитата:
Значит вариант Sleep[\r\n]+\(1000\) Coder подсветит, а AutoIt отбракует. Или я ошибаюсь?
да, но я тут узнал что некоторые рег.выр-движки не видят \h и, чтобы не тратить время на тест я воткнул \s, а по сути в коде у вас не может быть той ситуации о которой вы говорите, новая строка не может начаться со скобки.
 
Добавлено:
yozhic
Для определения своей функции от встроенных можно допустим для своих делать пробел между именем функции и скобкой и определить это в рег.вырах, но проблема что это будет работать только на ваших скриптах, подстроенных под ситуацию. Да, это не полноценно, я ещё не пробовал, реально ли что-то тормозит, может оставить весь список, в Notepad++ ведь работает весь список и не тормозит.

Всего записей: 4014 | Зарегистр. 03-05-2006 | Отправлено: 14:45 29-05-2019 | Исправлено: AZJIO, 14:56 29-05-2019
yozhic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO (пост)
Цитата:
и опять же перебирает 2300 слов

Понял. Если указать только ключевые слова, то около 50 получится (имею в виду, что не буду перечислять все варианты, например, GUIDelete|GUISwitch..., а ограничусь только префиксом GUI) – всяко быстрее. А то, что при обработке секции Words механизм регулярок не задействуется, а при QuotesRE задействуется – это влияет существенно на скорость обработки?
 
Добавлено:
Мне идея заменить список регуляркой понравилась, вот и уточняю ))

Цитата:
по сути в коде у вас не может быть той ситуации о которой вы говорите

Точно, я не подумал об этом

Всего записей: 1522 | Зарегистр. 20-03-2008 | Отправлено: 15:00 29-05-2019
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yozhic

Цитата:
GUIDelete|GUISwitch..., а ограничусь только префиксом GUI)
Как то так GUI(Delete|Switch)
 
 
Добавлено:
Skif_off

Цитата:
P.S. Наверное, те, что идут с AkelPad из коробки, лучше модифицировать, подпиливая оригинальный (au3.coder в частности)?
Скачал "Инсталлятор с плагинами (многоязычный) (1176 Kb)", плаги coder* включил, кроме одного, остальные пишут "плаг_такой_то - не поддерживает автозагрузку". Нашёл PlugsPack.zip но там теже плаги.

Всего записей: 4014 | Зарегистр. 03-05-2006 | Отправлено: 16:01 29-05-2019 | Исправлено: AZJIO, 17:00 29-05-2019
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AZJIO

Цитата:
У меня кстати для PureBasic почему то OR или TO он подсвечивает внутри переменных.

Возможно, дело в порядке правил? ЕМНИП, правила обрабатываются по порядку внутри секций, а секции: Folds > Quotes > QuotesRE > Words. Delimiters вроде первым или вторым.

Цитата:
А почему бы функции через рег.выр. не сделать?

Мне по душе чётко различать встроенные, UDF и свои. Регэксп с перечислением точно не вариант.
И если правильно понял, в общем случае по убыванию производительности:
- поиск с учётом регистра;
- поиск без учёта регистра;
- поиск с рег. выражением с учётом регистра;
- поиск с рег. выражением без учёта регистра.
Каждый вибирает сам Есть ещё такой подход, секция Words там по сути только для автодополнения используется. Есть и плюсы, и минусы.

Цитата:
остальные пишут "плаг_такой_то - не поддерживает автозагрузку"

Часть функций у плагов не автозагружаемые, типа функций Format, но вроде с половину вполне, у меня (три панели):
Coder::CodeFold
Coder::HighLight
ContextMenu::Main
Fonts::Main
Hotkeys::Main
LineBoard::Main
QSearch::DialogSwitcher
Scripts::Main
Scroll::AlignCaret
Scroll::AutoFocus
Scroll::NoScroll
Sessions::Main
SmartSel::NoSelEOL
SpecialChar::Main
ToolBar::Main
ToolBar_01::Main
ToolBar_02::Main
XBrackets::Main
Для того, чтобы подсветка работала нормально, должны быть включены Coder::CodeFold и Coder::HighLight.

Всего записей: 5811 | Зарегистр. 28-01-2008 | Отправлено: 18:02 29-05-2019
AZJIO



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Skif_off

Цитата:
Для того, чтобы подсветка работала нормально, должны быть включены Coder::CodeFold и Coder::HighLight.
они включены... я не найду где меню как у Andrey_A, чтобы задать цвет переменных ${DEL2} и т.д. Уже понял "Вызвать".
 

Цитата:
Delimiters вроде первым или вторым
про первоочерёдность я в курсе, хотя тоже интересный момент, если Delimiters подсвечен, то другие лексемы не наезжают поверх. Но Or у меня в Words:, возможно в au3.coder у меня Or не наезжал на переменные потому что они были подсвечены, а в pb.coder они свободны от подсветки. Но в Notepad++ ключевое слово не захватывается как часть, то есть как бы \bWords\b. У операторов свойство подсвечиваться хоть где, быть прилегающими хоть к чему.

Цитата:
Мне по душе чётко различать встроенные, UDF и свои.
мне интересно поиграться в рег.вырами, чего не хватает в движке создания своего синтаксиса в Notepad++. В конечном итоге можно прийти к оптимальному варианту.
Но вот кстати надо потестить есть ли кроме правил очерёдности правила наложения? В Notepad++ есть даже опция искать некую лексему внутри уже помеченной лексемы, то есть поверх, но без пересечения частями. А я делал плаг, которому пофиг что было ранее, каждый последующий рег. выр перекрашивает что есть чисто исходя из своих правил, не зная о том как было подсвечено ранее предыдущими рег.вырами.

Цитата:
И если правильно понял, в общем случае по убыванию производительности:
- поиск с учётом регистра;
- поиск без учёта регистра;
- поиск с рег. выражением с учётом регистра;
- поиск с рег. выражением без учёта регистра.
эти правила понятны логически, только нужно учесть что в QuotesRE: регвыр один сравнивается с чем с одной строкой поиска в Words: ? если да, то рег.выр проиграет, но мы же понимаем что там пару тысяч строк, которые регвыр делает одной строкой, тут регвыр выиграет.

Цитата:
Часть функций у плагов не автозагружаемые
да, ну это подразумевается что я её выберу разово, но мне её вызывать через диалог плагов, или все же где способ добавить команду в меню. У Andrey_A в сборке конечно для меня многое излишне, там и тоталкомандер и реестр и такие вещи что делаешь клавишами, типа "передвинуть курсор вниз", но мне не нужно, я стрелку на клаве нажму.

Всего записей: 4014 | Зарегистр. 03-05-2006 | Отправлено: 18:51 29-05-2019 | Исправлено: AZJIO, 18:56 29-05-2019
yozhic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 AZJIO (пост)
Цитата:
чтобы задать цвет переменных ${DEL2}

Coder::Settings

Цитата:
есть ли кроме правил очерёдности правила наложения?

Rule ID, Parent ID

Цитата:
а в pb.coder они свободны от подсветки

А сумма флагов какая? Надо смотреть в захватах. Если захват только начала указали, то другому правилу ничего не мешает влезть в это правило.  
 
Добавлено:

Цитата:
рег.выр проиграет ... регвыр выиграет

Оч_интересно. Существует ли способ измерить скорость? И если разница в пару миллисекунд... 

Всего записей: 1522 | Зарегистр. 20-03-2008 | Отправлено: 19:20 29-05-2019 | Исправлено: yozhic, 19:21 29-05-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

Компьютерный форум Ru.Board » Компьютеры » Программы » AkelPad (часть 2)

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru