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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 176 177 178 179

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

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 r4515 от 21.08.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: вкладки: кнопка закрытия, выделение активной, etc. Автор: dothen. Скачать: 1.9, архив версий, библиотека TabBarEx.dll.    
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, 23:03 21-10-2025
AkulaBig

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

Цитата:
Можно попробовать WScript.Quit() заменить на return. Если не получится влёт, тогда засунуть весь текст скрипта в функцию, - return сработает корректно. И не забыть ниже функции вызвать её.

Попробовал оба ваших варианта. Никаких изменений.

Цитата:
ДРУГИХ скриптов, в коде которых есть этот вызов - вполне хватает. Но почему-то там это не падает.

У меня тоже есть рабочие скрипты с WScript.Quit(). Это говорит только о том, что не в этой команде дело. У меня подозрение падает на условие, в результате которого может получиться отрицательный результат. Но раз все работает без WScript.Quit() и так сойдет.

Цитата:
Равно как и не падает у меня.

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

Цитата:
тупо шлётся лишнее

Как должно быть в оригинале? Добавляется только одна строка?
А вообще хороший скриптик. Наверное оставлю у себя. Меня в Акельке всегда бесило. что он останавливается в конце файла и не дает перейти ниже знака Конец файла.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 19:28 30-04-2025
destiny_child



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

Я тестировал кое-что на старой. А сейчас все самое последнее стоит..

Всего записей: 4804 | Зарегистр. 01-04-2006 | Отправлено: 19:43 30-04-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
И этот скрипт работает? Чудеса какие-то.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 19:49 30-04-2025 | Исправлено: AkulaBig, 19:54 30-04-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот поэтому и есть отдельно выкладываемая debug версия сабжа.
Запустите в нем, проверьте поведение скрипта.
И если повтор падения будет - у вас ещё и возможность отдебажить сразу появится!  
Файлы pdb же идут в комплекте...

Всего записей: 4804 | Зарегистр. 01-04-2006 | Отправлено: 22:55 30-04-2025 | Исправлено: destiny_child, 22:56 30-04-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Где-бы на все время найти. Тем более в данном случае все просто решается.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 23:35 30-04-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну, это решение явно при своей простоте несет в себе глубокие проблемы.
Лучше бы "корни" этого различия в поведении найти бы....
Я кстати проверял-то сперва на последней сборке - но пустой.  
Просто распакованной.
А сейчас еще и на моей полноценной проверил. Нет, падения нет.
Т.е. не скажешь - что это вдруг зависит от наполненности сборки
другии скриптами, возможно пересекающимися по функционалу...

Всего записей: 4804 | Зарегистр. 01-04-2006 | Отправлено: 14:14 01-05-2025 | Исправлено: destiny_child, 14:17 01-05-2025
VSHY

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может резидентный скрипт какой висит? Мы вызываем этот скрипт, о котором тут разговор, в нём делается WScript.Quit(), и резидентный справедливо что валится.
 
Добавлено:
Сам перетестил.
 
Мои условия: Win11 24H2 корпоративная, AkelPad 4.9.8 официальный, резидентных скриптов нет.
 
При запуске скрипта не на последней строке, всё отрабатывает норм. На последней строке - гарантированно сносит прогу.
 
Помогла замена WScript.Quit() на return, как я и говорил, - прога перестала вылетать.

Код:
function downNewLine() {
  var hWndEdit = AkelPad.GetEditWnd();
  var nSelStart = AkelPad.GetSelStart();
  var nSelEnd = AkelPad.GetSelEnd();
   
  if (nSelStart == nSelEnd) {
    nLine = AkelPad.SendMessage(hWndEdit, 3129 /*AEM_GETLINENUMBER*/, 0 /*AEGL_LINECOUNT*/, 0);
    if (AkelPad.SendMessage(hWndEdit, 3138 /*AEM_GETRICHOFFSET*/, 40 /*AEGI_RICHOFFSETFROMLINE*/, nLine - 1) <= nSelStart) {
      AkelPad.SendMessage(hWndEdit, 3044 /*AEM_KEYDOWN*/, 0x23 /*VK_END*/, 0);
      AkelPad.SendMessage(hWndEdit, 258 /*WM_CHAR*/, 0x0D /*VK_RETURN*/, 0);
      return;
    }
  }
  AkelPad.SendMessage(hWndEdit, 3044 /*AEM_KEYDOWN*/, 0x28 /*VK_DOWN*/, 0);
}
 
downNewLine();

То есть от версии AkelPad в моём случае вылеты не зависят.

Всего записей: 1209 | Зарегистр. 19-05-2008 | Отправлено: 15:59 01-05-2025 | Исправлено: VSHY, 17:05 01-05-2025
AkulaBig

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

Цитата:
Ну, это решение явно при своей простоте несет в себе глубокие проблемы.

Назовите хоть одну.
VSHY

Цитата:
Помогла замена WScript.Quit() на return

Ну правильно, вы убрали WScript.Quit() и все заработало. Я это проверил сразу-же, о чем выше писал.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 18:36 01-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VSHY
Лучше при возможности проверьте на дебажной версии Билда 4503 из шапки.
AkulaBig
Это ненормативное поведение для простейшей команды возможно тянет за собой глюк в механике ее вызова в коде редактора.  
А раз так, то нет оснований верить, что любая другая команда, так же выполняющая в этом коде - не приведет к более печальным последствиям...
Слишком простая команда и слишком тяжёлое последствие.
Уже сейчас.

Всего записей: 4804 | Зарегистр. 01-04-2006 | Отправлено: 18:56 01-05-2025 | Исправлено: destiny_child, 18:57 01-05-2025
AkulaBig

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

Цитата:
Это ненормативное поведение для простейшей команды возможно тянет за собой глюк в механике ее вызова в коде редактора.  

Лично мне кажется, что просто раньше она требовалась в коде. Ведь во многих скриптах нет этой команды. Значит обязательной ее необходимости нет.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 19:35 01-05-2025
VSHY

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

Цитата:
>> Можно попробовать WScript.Quit() заменить на return. Если не получится влёт, тогда засунуть весь текст скрипта в функцию, - return сработает корректно. И не забыть ниже функции вызвать её.
 
> Попробовал оба ваших варианта. Никаких изменений.

Увидев такой ответ я подумал, что под "Никаких изменений" понимается - AkelPad всё равно сносит, несмотря на замену на return.
 
Добавлено:

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

В данном случае Instructor поставил WScript.Quit() для преждевременного выхода из скрипта, чтобы не выполнять последний AEM_KEYDOWN, это видно по логике кода.
 
Лично я стараюсь избегать WScript.Quit() везде, где это можно сделать. Но косяк есть, и по идее его нужно исправлять, если он где-то в редакторе.

Всего записей: 1209 | Зарегистр. 19-05-2008 | Отправлено: 20:02 01-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VSHY
в дебажной версии воспроизводится?
У меня нет. все четко.

Всего записей: 4804 | Зарегистр. 01-04-2006 | Отправлено: 21:04 01-05-2025
VSHY

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

Всего записей: 1209 | Зарегистр. 19-05-2008 | Отправлено: 21:41 01-05-2025
AkulaBig

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

Цитата:
Увидев такой ответ я подумал, что под "Никаких изменений" понимается - AkelPad всё равно сносит, несмотря на замену на return.

Конечно я имел ввиду, что не работает с WScript.Quit(). Такое часто бывает, что ответ пишешь по горячим следам, а когда перечитываешь, понимаешь, что написал непонятно.

Цитата:
чтобы не выполнять последний AEM_KEYDOWN, это видно по логике кода.

Может раньше так требовалось? Сейчас и без WScript.Quit() скрипт прекрасно работает.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 06:51 02-05-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
Интересно. Скачал все неофициальные последние сборки. И простые и отладочные. Скачал версию с офсайта. Везде Акелька закрывается от DownNewLine.js.
Можете-ли выложить свою сборку, чтобы убедиться, что дело в Акельке, а не в оське?
Еще хотелось-бы узнать, как пользоваться отладочной версией? Там куча файлов pdb. Что с ними делать? В самой Акельке никаких пунктов меню Отладка не нашел.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 12:29 02-05-2025 | Исправлено: AkulaBig, 12:32 02-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AkulaBig (пост)
Цитата:
Можете-ли выложить свою сборку,

повторяю)) в своей - это полбеды. У меня не падает в той, что из шапки качаешь  
и первый раз после распаковки просто запускаешь! Эт раз. А у вас вроде как падает....
 
А два - если у Вас получилось в дебажной это повторить - то может и строка кода показалась?  
У вас же студия стоит для разработки)) - должно же было подцепить pdb файлы при отладке.
А если не цепляет - значит просто не в той иерархии папки в диске. Внутри файлов хранится
полный путь, где этот файл был на диске сборщика. А когда файл переносится на другой диск,
к другому разрабу - то при первом запуске надо найти и переложить эти файлы в свою папку
где будет идти дебаг. И переуказать в студии этот новый путь на первом экране, когда начинается
попытка отдебажить упавшую Акельку в студии. И тогда эти полные пути станут относительными и
все pdb смогут подхватываться автоматом при следующем запуске дебага.
 
Конкретно эти исходники были по пути C:\akelpad_4\src\
 
Даже когда в студии происходит перехват падения и открывается окно с дизасм.кодом, ибо не найдены
исходники, то там в контекстном меню вроде бы любой нераскрытой функции в стеке вызовов есть же
команда "Указать путь до" - или что-то в этом роде. Ну, по логике можно понять))) И вот если ею же
воспользоваться - то опять-таки - можно будет указать путь до нужного pdb и все станет раскрытым в
стеке вызовов...
 
Добавлено:
Хм, безотносительно этой проблемы... В сабже есть по умолчанию плагин/раздел
"Скрипты...". Это понятно))) И в диалоге вызова/настройки скриптов есть раздел  
назначения ему горячей клавиши.  
Так вот чего я не понимаю, а как это пересекается или вообще нет?  
с разделом/плагином "Горячие клавиши...", что существует отдельно?
Ибо вроде как получается что нет. Т.к. если назначить на скрипт хоккей внутри  
диалога "Скрипты", то ничего об этом нельзя узнать в диалоге Горячих клавиш.
НО! при этом можно же случайно назначить одно и тоже на разные вещи.
И как будет решаться коллизия?
 
У меня вот так вышло, что сперва для тестов я не на кнопку ВНИЗ захотел повесить
скрипт, и в этом диалоге "Скрипты" повесил штатно на другой хоткей, который как
оказалось, был занят в диалоге Горячих клавиш... И в итоге не работало ни то, ни
другое....
 
Добавлено:
https://www.upload.ee/раз проверено что падает - нет смысла мусорить в инете
вот просто скачанный из шапки архив, запущена 64 битная DEBUG версия, выставлено  
хранение в реестре, снято ограничение на множественный запуск программы, включены  
панели инструментов, включен русский язык, создан скрипт, в диалоге Скрипты назначена  
ему клавиша ВНИЗ для вызова. И всё! Пользуйтесь.
У меня не падет...

Всего записей: 4804 | Зарегистр. 01-04-2006 | Отправлено: 12:53 02-05-2025 | Исправлено: destiny_child, 14:10 02-05-2025
AkulaBig

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny_child
У меня все тоже самое. Но у меня отладчик не запускается, а у вас запускается. Причем распаковал вашу сборку рядом со своей и никуда никакие файлы не переписывал. В конце даже ваш инишник к себе кинул. Не запускается отладчик. Но ваша сборка тоже падает. Похоже дело в оське.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 13:53 02-05-2025
destiny_child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Смотрите, можно при запущенном экземпляре Акеллы просто приаттачиться Студией для дебага.
Т.е. еще ничего не упало - а студия уже подцеплена к АйДи процесса и если что произойдет, то  
она безусловно перехватывает этот случай и включает дебаг... Ну и далее по списку действий)
 
А еще по идее, если галка JIT включена в диалоге настроек Скриптов, то это позволяет той же
студии войти и дебажить даже сам скрипт! В теории.... Ну вот можно и проверить)))

Всего записей: 4804 | Зарегистр. 01-04-2006 | Отправлено: 14:01 02-05-2025 | Исправлено: destiny_child, 14:12 02-05-2025
AkulaBig

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

Цитата:
если галка JIT включена

Вы как я становитесь Про JIT вы ничего не писали. Сейчас студия запускается. Пока без перемещения pdb в нужную папку пишет:
"AkelPad.exe" (Скрипт). Загружено "Код скрипта (AkelPad Scripts)".  
Программа "[15004] AkelPad.exe" завершилась с кодом 3221225477 (0xc0000005) 'Access violation'.
Сейчас попробую с правильными путями.
 
Добавлено:

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




Перекинул отдельно pdb и саму Акельку в C:\akelpad_4\src\. Ничего не изменилось. Где на скринах путь надо указывать? Не пойму. Еще посмотрел в файлах pdb пути. Они там вот так прописаны: C:\akelpad_4\src\AkelEdit.obj. Если pdb файлы заменяют AkelEdit.obj и др. Вроде правильно расположил pdb.

Всего записей: 6623 | Зарегистр. 11-03-2003 | Отправлено: 15:43 02-05-2025
destiny_child



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

Разумеется. Я же когда вспомнил об этом - тогда и рискнул дописать абзац текста. Ибо в моей голове как-то не склеивалось,  
что эта галочка может/влияет на процесс отладки. Я то вообще о ней упомянул в ДОВЕСОК к всему остальному и не думал,  
что она окажет влияние на что-то...

Цитата:
 Где на скринах путь надо указывать?  

На этих этого нет.  
В панели вывода "СТЕК вызовов" - где выводятся сигнатуры вызванный функций, предшествующих либо падению, либо прерыванию
На неполной (нераскрытой/unmangled) сигнатуре Конт.меню вызываем, а там, вот ща не помню - не то "Перейти к коду", не то к  
модулю... И будет сказано, что исходников нет, может можно указаать - ну во-первых, исходники есть))) выкачиваются из ссылки  
того билда, сборку которого мы и дебажим, а во-вторых, можно просто указать путь до pdb файла Акелки.  
Как-то так, если мне память жёстко не изменяет...
 

Цитата:
В С++ для реализации перегрузки функций используется процесс **декорирования имён**, при котором в итоговое **украшенное имя** включается  
информация о типах параметров. _Z4funcPci  
При отсутствии PDB-файлов компоновщик отображает **искажённые имена** вместо читаемых сигнатур.
Название функции в объектном файле представлено как «_Z4funcPci» — это результат **декорирования имён**:
func(char*, int)

 
Добавлено:
P.S. ДА! Перейти к модулю! - а там будет колонка состояния загруженности символов.  
И вот для тех, где будет стоять НЕ загружено - можно из тамошнего Конт.меню вызвать  
пункт/подпункт "Загрузить символы -> ******.pdb" и выбрать нужный файл.
 
Добавлено:
AkulaBig (пост)
Цитата:
 
     

 
АААА! Ну дык если у вас курсор встал в позицию первой строки выполнения скрипта, то  
можете пройтись по нему F10 и увидеть - где, если будет, падение и произойдет!
Вот и поймаем причину!

Всего записей: 4804 | Зарегистр. 01-04-2006 | Отправлено: 19:16 02-05-2025 | Исправлено: destiny_child, 19:59 02-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 176 177 178 179

Компьютерный форум 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