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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ramanuki
 
Перед eval попробуйте вставить строку:
Код:
pArgLine = pArgLine.replace("'", "\\'");

P.S. Не вставляйте пожалуйста картинки, мне приходится отрубаться от работы и подключаться через VPN, чтобы их увидеть.
Лучше всего просто нажать в любом сообщении на ОС Windows комбинацию Ctrl+C, и сюда вставить текст скопированного сообщения.

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VSHY
Я при помощи менеджера задач (использую System Informer) вижу комстроку, как она приходит на вход к AkelPad'у. И вот что происходит:
Запись "param" приходит как param (т.е. без кавычек).
Запись \"param\" приходит как \param\.
Запись ""param"" приходит как param (т.е. без кавычек).
Запись """param""" приходит как \"param\".
 
Видим, что дв. кав. из GD передать адекватно невозможно, их «редактирует» Qt (или сам GD, что вряд ли).
GD (или Qt) не трогает одинарные и обратные кав., и они приходят на вход к AkelPad такими, как мы их написали, без изменений. Но тут уже AkelPad начинает «капризничать». Запись

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

нам бы лучше всего подошла, он AP её не принимает, жалуется на Invalid Character. А запись

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

принимает, но тогда если внутри %GDWORD% попадётся ', то он прочтётся как конец параметра и вызовет ошибку.
 
Вот я и хочу уточнить, почему AP не принимает запись типа 'aaa `bbb` ccc'.

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



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

Цитата:
Перед eval попробуйте вставить строку:

Поменялась только ошибка:
---------------------------
Scripts plugin
---------------------------
Script:    D:\Portables\AkelPad\AkelFiles\Plugs\Scripts\EvalCmd.js
Line:    87
Symbol:    3
Error:    Invalid character
Code:    800A03F6
Source:    JavaScript runtime error
 
---------------------------
Yes   No    
---------------------------

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



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

Цитата:
Проверка видит одинарный апостроф внутри GDWORD, считает что это конец параметра

Я знаю, поэтому предложил строку без использования апострофов, а \Q ... \E это не для исправления апострофа, а для исправления регулярного выражения. Если в нём только слово из букв, без символов \()[]{}+-$ то оно отработает верно, иначе проблема. Но если до этого работало, то конечно при выявлении проблем лучше не использовать усложнение, а использовать когда проблема с апострофом решиться.
 

Цитата:
Запись """param""" приходит как \"param\".

Получается в EvalCmd.js самому ради себя вставить функцию replace из JavaScript, чтобы устранить косяк.

Код:
pArgLine.replace("\","")

Всего записей: 4682 | Зарегистр. 03-05-2006 | Отправлено: 16:05 16-05-2025 | Исправлено: AZJIO, 16:29 16-05-2025
VSHY

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ramanuki
Для Вашего случая решение будет таким:
 
1. Отказываемся от EvalCmd.js. Возвращаем его в исходное состояние.
 
2. Создаём скрипт под именем FindFirstPhrase.js с той же кодировкой, что и EvalCmd.js (можно откопировать его, переименовать и вставить туда код). Скрипт помещаем в папку скриптов AkelPad'а, туда же, где сейчас находится EvalCmd.js. Вставляем код:
Код:
var pArgLine;
 
if (pArgLine = AkelPad.GetArgLine()) {
    AkelPad.ScriptNoMutex();
    
    AkelPad.TextFind(0, pArgLine, 0x280001);
}

3. Ваш вызов теперь будет таким:
Код:
D:\Portables\AkelPad\AkelPad.exe /OpenFile('%GDDICT%') /Call('Scripts::Main', 4, 'FindFirstPhrase.js', `(?m)^%GDWORD%$`)

Чтобы случайно не повредить выделение, можно после строки с TextFind установить курсор в начало выделения:
Код:
AkelPad.SetSel(AkelPad.GetSelStart(), AkelPad.GetSelStart());
или в конец:
Код:
AkelPad.SetSel(AkelPad.GetSelEnd(), AkelPad.GetSelEnd());

Всё должно завестись.
 
Добавлено:
yozhic
Цитата:
Вот я и хочу уточнить, почему AP не принимает запись типа 'aaa `bbb` ccc'.
Думаю, что это Instructor смог бы прояснить.

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



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

Цитата:
Ваш вызов теперь будет таким:

Спасибо!
Так работает без проблем, если есть апостроф.
 
 
Добавлено:
Но поиск идет до первого совпадения в тексте словаря.

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ramanuki
Наверное надо всё-таки `(?m)^%GDWORD%$` использовать, а не `%GDWORD%` (убрал этот вариант из своего предыдущего сообщения).

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



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

Цитата:
Наверное надо всё-таки `(?m)^%GDWORD%$` использовать

Этот вариант хорошо работает.
Благодарю!
 
 
Добавлено:
Возник еще такой вопрос:
Если в тексте словаря заголовок имеет ударение (или пр. дополнительные отфильтровываемые символы), есть способ передавать в AkelPad заголовок из GoldenDict'а вместе с ними (без парсинга)? Или этот вопрос лучше задать в теме про GoldenDict?

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ramanuki
Добро. Оставлю здесь ещё один вариант с батником. Вдруг пригодится когда. Сделал его ещё днём, но не успел запостить, убегать надо было.
 
Создаём runAkelPad.bat с содержимым:

Код:
@echo off
rem :: после знака = набираем свой путь к AkelPad, можно с пробелами
set AP=c:\totalcmd\Profile\tools\AkelPad\AkelPad64.exe
 
set str=%*
call set str=%%str:%1 =%%
"%AP%" /OpenFile("%~1") /Call('Scripts::Main', 4, 'EvalCmd.js', `AkelPad.TextFind(0, "(?m)^%str%$", 0x280001);`)

в конфиге GD строка вызова:

Код:
<editDictionaryCommandLine>"c:\Users\Test\AppData\Roaming\GoldenDict\runAkelPad.bat" %GDDICT% %GDWORD%</editDictionaryCommandLine>

Пути, естественно, свои: в батнике — к AkelPad, в конфиге — к батнику.

Всего записей: 3136 | Зарегистр. 20-03-2008 | Отправлено: 18:49 16-05-2025 | Исправлено: yozhic, 18:52 16-05-2025
ramanuki



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

Цитата:
Оставлю здесь ещё один вариант с батником.

Спасибо! Сделаю. Пусть будет на всякий случай.

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ramanuki
Цитата:
Если в тексте словаря заголовок имеет ударение (или пр. дополнительные отфильтровываемые символы), есть способ передавать в AkelPad заголовок из GoldenDict'а вместе с ними (без парсинга)?
%GDWORD% передаёт скрипту всё, что выделено. Никакого парсинга при использовании FindFirstPhrase.js нет - мы передаём строке поиска всё, что пришло из внешней программы как есть.
Если какие-то символы не пришли, значит они где-то режутся по пути из GoldenDict в AkelPad.
 
Всё, что пришло в AkelPad, мы можем вывести в сообщении, вставив строку:
Код:
AkelPad.MessageBox(AkelPad.GetMainWnd(), pArgLine, WScript.ScriptName, 0 /*MB_OK*/);
перед строкой
Код:
AkelPad.TextFind(0, pArgLine, 0x280001);

Вариант от yozhic хорош, но и он передаёт выделенный текст скрипту как аргумент. То есть символы, которые режутся, порежутся и в этом случае.
 
Надо попробовать вариант от yozhic, но сохранить переданный в cmd текст в какой-нибудь файл.
Если в файле эти символы будут, тогда можно было бы объединить оба варианта. cmd сохраняет выделенный текст в какой-нибудь файл или ветку реестра, а в AkelPad создаём ещё один скрипт, который будет работать чисто для Вашей задачи - открывать файл или ветку реестра, и оттуда уже вычитывать выделение и вызывать для него строку поиска.
 
Добавлено:
Да, если GoldenDict поддерживает перегонку выделения перед отправкой внешней программе в какую-нибудь простую кодировку, которую можно легко будет разобрать в AkelPad (JScript'ом), то это ещё один вариант с передачей вообще почти любых символов, но уж очень он замудрённый.

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



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

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
r4508 в шапке.
 
Всем, кто пользуется скриптом AkelPadManualSettings.js от KDJ:
подправленная версия для нового параметра PaintOptions
или DIFF

Всего записей: 3136 | Зарегистр. 20-03-2008 | Отправлено: 21:06 16-05-2025 | Исправлено: yozhic, 05:35 17-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yozhic
Вам реально что ли проще было base64 закинуть, недели чем просто ссылку дать на то место, где выложили обновление?
Он же ведь ДОЛЖЕН же был где-то это выложить/описать суть исправления? Не лично же вам выслал)))))))) ?
 
Или это личная редакция? А автор и не в курсе, ЧТО тут за него исправили?)))))))))))
 
В любом случае - вот сразу файл https://www.upload.ee/files/18106036/AkelPadManualSettings.js.html

Всего записей: 4670 | Зарегистр. 01-04-2006 | Отправлено: 00:38 17-05-2025 | Исправлено: destiny_child, 00:41 17-05-2025
Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
Название скрипта и номер ревизии как бы намекает на ещё один параметр/флаг, номер ревизии - на PaintOptions (сам я, правда, справку из исходников в шапке открыл и увидел). А KDJ  свои скрипты выкладывал текстом в соотв. теме и все вместе архивом.
Как по мне - проще было diff выложить, ещё и синтаксис подсветить...
 
Народ, кто-нибудь в курсе, что с KDJ случилось?

Всего записей: 6704 | Зарегистр. 28-01-2008 | Отправлено: 03:46 17-05-2025
yozhic



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

Skiff_off уже рассказал, я добавлю чуть. Он не появляется. Я однажды давно написал ему в личку на домашнем форуме, попросил скрипт доработать, он ответил через месяц где-то, мол, не могу. Доработать то может, ему эти скрипты как орешки. А значит либо времени нет, либо интересы поменялись.

Цитата:
base64

А это чтоб не потерялось. С обменника то удалят когда-нибудь, а здесь лежать будет.
По правилам надо было на домашнем форуме выложить, но туда ведь идти надо,  а ещё он у меня через раз открывается, всё ошибками сыпет и грузится долго.
 
Skif_off (пост)
Цитата:
номер ревизии как бы намекает

В шапку добавил ссылку «хроника изменений», в самый верх, в строку «Последняя тестовая».

Цитата:
проще было diff выложить, ещё и синтаксис подсветить...

Об этом не подумал. Добавил в пост. Только проще не знаю стало ли, я ж там пробелов навставлял, чтоб красивше было, а из-за них diff больно здоров вышел.

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



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

Цитата:
что с KDJ случилось?

Почему случилось? Это естественный процесс... увлечение основанное на голом энтузиазме, рано или поздно теряет подпитку тем энтузиазмом. Ну, а учитывая, что сам AP выходит с периодичностью, не помню частоту (раз в 10 лет?), наверное интерес совсем угас...

Всего записей: 3245 | Зарегистр. 03-02-2009 | Отправлено: 09:32 17-05-2025 | Исправлено: YuS_2, 09:33 17-05-2025
AkulaBig

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

Цитата:
раз в 10 лет?

r4505 [04.05.2025]
r4508 [13.05.2025]
Точно раз в 10 лет?

Всего записей: 6414 | Зарегистр. 11-03-2003 | Отправлено: 11:59 17-05-2025
YuS_2



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

Цитата:
r4505 [04.05.2025]
r4508 [13.05.2025]

это не релизы, о которых шла речь.
Официально:
AkelPad 4.9.9 (16.10.2024)
...
AkelPad 4.9.8 (18.07.2016)
...
AkelPad 4.9.7 (13.12.2015)
...
AkelPad 4.9.6 (14.09.2015)
...
AkelPad 4.9.5 (11.09.2015)
...
AkelPad 4.9.4 (03.06.2015)
...
AkelPad 4.9.3 (25.03.2015)
...
AkelPad 4.9.2 (05.01.2015)
...
AkelPad 4.9.1 (15.12.2014)
...
AkelPad 4.9.0 (08.09.2014)
...
и т.д., тенденцию частоты релизов можно проанализировать:
раз в три месяца, раз в год, раз в восемь лет...
 

Цитата:
Точно раз в 10 лет?

Приблизительно...
Но это неточно!

Всего записей: 3245 | Зарегистр. 03-02-2009 | Отправлено: 12:35 17-05-2025
AkulaBig

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

Цитата:
Официально:
AkelPad 4.9.9 (16.10.2024)

Опять 10 не получается.

Цитата:
это не релизы, о которых шла речь.

И что это меняет? Сегодняшней версией пользоваться нельзя?

Всего записей: 6414 | Зарегистр. 11-03-2003 | Отправлено: 15:47 17-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