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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

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

gyra

Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 AkelPad
текстовый редактор с открытым исходным кодом, созданный, чтобы быть маленьким и быстрым
Авторы: Шенгальц А. А. (aka Instructor; версии 3–4); Кузнецов А. И. (версии 1–2)

Последний релиз: 4.9.9 от 16 октября 2024
Последняя тестовая: 4.10.0 r4515 от 21 августа 2025; хроника изменений


Скачать
Программа релиз 4.9.9: многоязычная [exe]: x86 | x64; русская [zip]: x86 | x64; английская [zip]: x86 | x64      
тестовая (dev) 4.10.0 r4514 английская [zip]: x86 | x64 (соответствует r4515 исходников)    
Плагины полный авторский комплект: x86 | x64    
Скрипты авторская подборка: Instructor | KDJ | VladSh | Infocatcher    
Синтаксические файлы авторские дополнения к комплектным: akelpad.sf.net    
Шрифты авторская модификация для использования с плагином Fonts.dll: akelpad.sf.net    
Обновления авторская утилита AkelUpdater v6.9

Дополнения от сообщества
Программа Неофициальная компиляция из последних исходников 4.10.0 r4514 от 19.07.2025
Microsoft SDK для самостоятельной компиляции AkelPad и плагинов
NSIS 3.xx для самостоятельной компиляции AkelUpdater    
Плагины FileDialog: Диалог открытия файлов. Подробнее... Автор: dothen. Скачать: 1.3    
Help: вызов справки с поиском выделенного текста (альт. к ChmKeyword.js). Подробнее: 1, 2, видео. Автор: AZJIO. Скачать: плаг (или утилита)    
SpellCheck: проверка орфографии на движке Hunspell. Подробнее... Автор: random6_2020. Скачать: x64 (1.3.0.4) | x86 (1.3.0.5) | исходники    
TabBar: вкладки: кнопка закрытия, выделение активной. Подробнее... Автор: dothen. Скачать: 1.1, 1.2, 1.3, 1.4.    
TagsView: разбор исходного кода при помощи ctags. Подробнее: akelpad.sf.net | github. Автор: DV. Скачать: 0.5b github | sf.net    
Скрипты akelpad.sf.net | Infocatcher :: github | DV :: github | AZJIO | Andrey_A_A    
Синтаксические файлы • подборки: Lenchik & Drugmix & Skif_off | cuprum | Infocatcher :: github | VladSh | Andrey_A_A    
единым списком по расширениям (включая авторские)    
Утилиты ShellExt: пункт в контекстное меню проводника. Подробнее... Автор: Ralph Shane. Скачать: 4.8.3.0    
AnotherFileNearby: создание слепка редактируемого файла. Подробнее... Автор: AZJIO. Скачать: YaD    
Цветовые темы Atom One Dark Pro    
Сборки местная коллекция    
в составе сборок часто содержатся скрипты и синтаксические файлы, не имеющие самостоятельных ссылок, и потому не перечисленные в шапке

Помощь
Справка из исходников | FAQ 1 | FAQ 2
Справка от AZJIO: онлайн | в формате CHM (с дополнениями от сообщества)
Coder-файл: справочные комментарии на русском языке
Установка AkelPad 4 на Windоws 7 с заменой Блокнота Windows

Всего записей: 7932 | Зарегистр. 18-02-2006 | Отправлено: 22:03 10-07-2017 | Исправлено: yozhic, 09:03 22-08-2025
VSHY

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

Цитата:
А вызывается WScript.Quit(), чтобы завершить процесс CScript.exe; это действие является обязательным, иначе процесс останется в памяти.

Подавляющее большинство скриптов под AkelPad без вызова WScript.Quit(). Этот вызов необязателен. Он нужен для выхода из скрипта сразу, минуя дальнейшие проверки и вообще выполнение нижележащего кода.

Всего записей: 1208 | Зарегистр. 19-05-2008 | Отправлено: 20:37 03-05-2025 | Исправлено: VSHY, 20:37 03-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VSHY
Дык в другом своем посте я и написал потом во втором абзаце:
http://forum.ru-board.com/topic.cgi?forum=5&topic=49364&start=3240#14
Мол, не стоит об этом говорить/утверждать...
И ту фразу прошу считать несоответствующей текущему положению дел.
 
Но в любом случае надо привлечь внимание разраба.
И лучше бы тому, у кого воспроизвелось.

Всего записей: 4670 | Зарегистр. 01-04-2006 | Отправлено: 22:06 03-05-2025 | Исправлено: destiny_child, 22:08 03-05-2025
VSHY

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

Всего записей: 1208 | Зарегистр. 19-05-2008 | Отправлено: 23:47 03-05-2025
Burger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как убрать нижнее подчеркивание у ссылок, при этом оставляя их кликабельными (не отключая показ гиперссылок в настройках)?

Всего записей: 59 | Зарегистр. 10-01-2019 | Отправлено: 10:37 04-05-2025
yozhic



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

Цитата:
Исправлено: остановка при ошибке и метод WScript.Quit в Windows 11 24H2 (jscript9Legacy.dll).

Неофициальная в шапке.
 
Кому официальную, качайте тестовую с ФТП и отдельно последний Scripts 19.2 — поскольку фикс только в плаге Scripts.

Всего записей: 3136 | Зарегистр. 20-03-2008 | Отправлено: 23:14 04-05-2025 | Исправлено: yozhic, 23:14 04-05-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за оперативное обновление. WScript.Quit() больше не закрывает Акельку.

Всего записей: 6419 | Зарегистр. 11-03-2003 | Отправлено: 09:36 05-05-2025
ramanuki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пост от 18-10-2024
 
Я писал ранее о вылетах AkelPad в случае, если в GoldenDict по команде ПКМ "Редактировать" в заголовке словаря DSL встречается апостроф. В последних сборках (сейчас использую AkelPad 4.10.0 r4505 [4.05.2025]) AkelPad перестал закрываться, но не переходит на нужный заголовок с апострофом. Это можно исправить?

Всего записей: 844 | Зарегистр. 07-08-2013 | Отправлено: 15:52 15-05-2025
VSHY

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ramanuki
Вы правильно написали про чувствительность к апострофу. Копайте в эту сторону - попробуйте заменить на другой вид кавычек.
 
Добавлено:
Создал cmd-файл (не в кодировке с BOM!), и такой вызов прекрасно работает:

Код:
c:\Portable\AkelPad\AkelPad.exe /OpenFile("C:\Temp\tst.txt") /Call("Scripts::Main", 4, "EvalCmd.js", `AkelPad.TextFind(0, "test'asf", 0x280001);`)

Путь к программе должен быть без кавычек, иначе будет ошибка.

Всего записей: 1208 | Зарегистр. 19-05-2008 | Отправлено: 16:41 15-05-2025
ramanuki



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот с такой строкой
 
<editDictionaryCommandLine>
D:\Portables\AkelPad\AkelPad.exe /OpenFile(`%GDDICT%`) /Call(`Scripts::Main`, 4, `EvalCmd.js`, `AkelPad.TextFind(0, '(?m)^%GDWORD%$', 0x280001);`)
</editDictionaryCommandLine>
 
 
работает, но только если нет апострофа в %GDWORD%.
 
Попытки менять тип кавычек в разных местах строки вызывают ошибки типа Syntax Error; Invalid Character или Expected ).
 
Сбоит вот здесь: '(?m)^%GDWORD%$'

Всего записей: 844 | Зарегистр. 07-08-2013 | Отправлено: 20:41 15-05-2025
VSHY

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ramanuki
Естественно. Посмотрите, какие у меня там кавычки стоят.

Всего записей: 1208 | Зарегистр. 19-05-2008 | Отправлено: 20:51 15-05-2025
ramanuki



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

Цитата:
Посмотрите, какие у меня там кавычки стоят.

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

Всего записей: 844 | Зарегистр. 07-08-2013 | Отправлено: 20:59 15-05-2025
VSHY

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

Код:
D:\Portables\AkelPad\AkelPad.exe /OpenFile("%GDDICT%") /Call("Scripts::Main", 4, "EvalCmd.js", `AkelPad.TextFind(0, "(?m)^%GDWORD%$", 0x280001);`)

Всего записей: 1208 | Зарегистр. 19-05-2008 | Отправлено: 22:53 15-05-2025
yozhic



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VSHY
Из ком-строки это сработает, а из GoldenDict — нет. Двойные кавычки из GD никак не передать, они сокращаются.
Мне вот интересно почему AkelPad не обрабатывает вот такое? :

Код:
"c:\totalcmd\Profile\tools\AkelPad\AkelPad64.exe" /OpenFile('%GDDICT%') /Call('Scripts::Main', 4, 'EvalCmd.js', 'AkelPad.TextFind(0, `(?m)^%GDWORD%$`, 0x280001);')

Пишет Invalid Character. Получается, что обратные апострофы внутри одинарных кавычек не обрабатываются? Одинарные внутри обратных обрабатываются. А наоборот нет?
 
ramanuki
В настоящий момент никак не получается обойти эту сложность с двойными кавычками. Если только попробовать написать промежуточный батник-пускач, который будет получать из GD строку %GDWORD% и передавать её AkelPad'у с нужными кавычками. Завтра попробую найти время на это.

Всего записей: 3136 | Зарегистр. 20-03-2008 | Отправлено: 23:05 15-05-2025 | Исправлено: yozhic, 23:12 15-05-2025
VSHY

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yozhic
Может как-то экранировать двойные кавычки? Или просто удвоить каждую.

Всего записей: 1208 | Зарегистр. 19-05-2008 | Отправлено: 23:23 15-05-2025
AZJIO



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

Цитата:

Код:
(?m)^%GDWORD%$

Подумалось что в %GDWORD% есть символы требующие экранирования, если это так, то добавить  \Q ... \E

Код:
(?m)^\Q%GDWORD%\E$

 

Цитата:

Код:
`AkelPad.TextFind(0, '(?m)^%GDWORD%$', 0x280001);`

надо лишь в этой строке избавиться от апострофа? А если так

Код:
"AkelPad.TextFind(0, `(?m)^%GDWORD%$`, 0x280001);"

Только тут вложенность кавычек, остальные кавычки/апострофы вроде самостоятельные и можно любые применить.

Всего записей: 4682 | Зарегистр. 03-05-2006 | Отправлено: 23:59 15-05-2025 | Исправлено: AZJIO, 00:21 16-05-2025
ramanuki



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

Цитата:
в %GDWORD% есть символы требующие экранирования, если это так, то добавить  \Q ... \E

 
На это отвечает: Expected ')'
 

Цитата:
"AkelPad.TextFind(0, `(?m)^%GDWORD%$`, 0x280001);"

 
Отвечает: Invalid Character
 
Ошибка почти всегда в Line: 84 Symbol: 3, где написано:
 
  eval(pArgLine);

Всего записей: 844 | Зарегистр. 07-08-2013 | Отправлено: 09:31 16-05-2025
VSHY

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

Цитата:
"AkelPad.TextFind(0, `(?m)^%GDWORD%$`, 0x280001);"

Как раз вчера перед сном такая идея пришла)
 

Цитата:
Отвечает: Invalid Character
 
Ошибка почти всегда в Line: 84 Symbol: 3, где написано:
 
eval(pArgLine);

Это уже почти победа! Скрипт EvalCmd.js стал запускаться в AkelPad, это этот скрипт даёт ошибку.
Похоже теперь eval рвёт на символе (')...
 
Добавьте перед eval на 84-й строке такой код, и увидим, что код пытается выполнить:

Код:
AkelPad.MessageBox(AkelPad.GetMainWnd(), pArgLine, WScript.ScriptName, 0 /*MB_OK*/);

И ещё такую же строку кода вставьте перед строкой "AkelPad.ScriptNoMutex();", увидим, что пришло на вход скрипта.

Всего записей: 1208 | Зарегистр. 19-05-2008 | Отправлено: 14:51 16-05-2025 | Исправлено: VSHY, 15:01 16-05-2025
yozhic



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VSHY (пост)
Цитата:
экранировать двойные кавычки? Или просто удвоить каждую

Да, я всё это пробовал изначально: и экранировал (кавычки удаляются, backslash'и остаются), и удваивал (все кавычки удаляются), и утраивал (преобразуются в экранированные кавычки и передаются AP вместе с backslash'ами), и учетверял (то же, что и утраивать). Двойные кавычки ведут себя непредсказуемо, и вывод напрашивается один: поскольку GD — это Qt-шная разработка, то это — последствия вмешательства Qt. Вначале с дв. кав. Qt «играет», потом ком-строка, и в результате использовать их в этой связке не получится.
 
Но вопрос к AkelPad тем не менее остаётся. Существуют ли правила вложенности кавычек? Почему запись

Код:
/Call('Scripts::Main', 4, 'EvalCmd.js', 'AkelPad.TextFind(0, `(?m)^%GDWORD%$`, 0x280001);')

вызывает ошибку? Почему обратные внутри одинарных вызывают ошибку Invalid Character? Так задумано или это можно исправить?
 
Правила вложенности нигде не оговариваются. В справке есть только пример:

Код:
/Exec("notepad.exe")
    метод вызывает блокнот.
/Exec(`notepad.exe`)
    метод вызывает блокнот.
/Exec('notepad.exe')
    метод вызывает блокнот.

из которого очевидна допустимость трёх видов кавычек, но не очевидны правила их взаимной вложенности.
 
AZJIO (пост)
Цитата:
(?m)^\Q%GDWORD%\E$

Было бы справедливо, если б это сразу разбирал RegExp движок. Но ещё до того, как оно доберётся до RegExp, его отфутболивает проверка синтаксиса параметров комстроки. Проверка видит одинарный апостроф внутри GDWORD, считает что это конец параметра, и ругается, что нету закрывающей скобки ")".
 
ramanuki
Сейчас протестирую способ с батником и отчитаюсь.

Всего записей: 3136 | Зарегистр. 20-03-2008 | Отправлено: 15:16 16-05-2025
VSHY

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yozhic
Если можете воспроизвести, то что приходит на вход скрипта и идёт на выполнение eval?
Если бы понимать, что приходит, то в EvalCmd.js можно было бы сделать доп. экранирование с помощью replace. Но это конечно нужно спрашивать Instructor'а, т.к. такое решение может повлиять на выполнение других скриптов.

Всего записей: 1208 | Зарегистр. 19-05-2008 | Отправлено: 15:29 16-05-2025 | Исправлено: VSHY, 15:32 16-05-2025
ramanuki



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

Цитата:
Добавьте перед eval на 84-й строке такой код, и увидим, что код пытается выполнить:


Цитата:
И ещё такую же строку кода вставьте перед строкой "AkelPad.ScriptNoMutex();", увидим, что пришло на вход скрипта.

 
   
 
 

Всего записей: 844 | Зарегистр. 07-08-2013 | Отправлено: 15:32 16-05-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru