Я себе без задней мысли выравниваю сотни строк, а оно мне втихаря гадит пробелами в хвосты тех из ни что покороче. С пробелами та же история, да.
Posted: Thu Mar 13, 2014 4:39 pm
by Infocatcher
Кстати о переоткрытии с сохранением истории отмен.
Я тут у себя скрипт откопал, аж от мая 2012-го.
Только я совершенно не помню, что с ним не так и почему я его отложил. А, может, и нормально все...
Так или иначе, пользоваться я им почему-то не стал. https://github.com/Infocatcher/AkelPad_ ... eReopen.js
[Upd] Хотя нет, одна проблема все же была: при чтении сохраненного файла угадывалась кодировка вместо использования текущей.
И в бэкапах нашлась
Это особенность работы с вертикальным выделением. "Баг" (так пока его назовём) проявляется в том случае, если выделение выходит за правый край строки. НО.
1. Для той операции, что вам в действительности была нужна, не было, как мне кажется, никакого смысла растягивать вертикальное выделение вправо (на 123...90). Вполне было достаточно вертикального выделения нулевой ширины. При таком применении, лишних пробелов не появится.
2. Проблема "вдруг возникших" концевых пробелов не так остра, ибо легко решается (например, перед сохранением файла [Ctrl+A] затем [Alt+Backspace]).
3. Возвращаясь к особенностям поведения блочного выделения. Возможно вам покажется любопытным и то, что эффекта появления доп.пробелов на хвостах строк можно добиться и на операции [Shift+Backspace] (т.е. "убрать первый символ в начале строк") если правый край блочного выделения выезжает за символ конца строки.
4. Не готов сходу привести какой-либо "очевидный" общий пример полезного применения таких особенностей. Но сам я использовал эту "багофичу" когда врукопашную выравнивал текст по правому краю (заимствовал правые пробелы для переноса влево). "Голь на выдумки хитра".
P.S. "Нескриптописатели", знаете ли, иногда прибегают к таа-а-ки-им вычурным способам редактирования
Баг блокирующий открытие файла
Шаги воспроизведения бага:
1. открыть файл в акелпаде.
2. удалить этот же файл.
3. свернуть все окна.
4. попытаться перетащить какой-то файл в окно акелпада (через наведение курсора на окно акелпада на панели задач windows)
Текущий результат:
В акелпаде вылезает окно-уведомление о том, что просматриваемый файл был изменён, drag'n'drop приходится отменять: drop'нуть перетаскиваемый файл в акелпад, чтоб он открылся - невозможно.
Ожидаемый результат:
Окно-уведомление не должно вылезать пока идёт процесс drag'n'drop'а.
Posted: Wed Mar 19, 2014 5:31 am
by Instructor
Drugmix
Все корректно. Чтобы продолжить процесс Drag'n'Drop, необходимо ответить на сообщение свободной рукой с клавиатуры.
Похоже, что в этом скрипте не хватает одной небольшой - но о-очень важной - проверки. (К слову, в своём предыдущем развёрнутом сообщении на эту тему я как-то упустил этот нюанс из виду.)
Итак, если перечитывается немодифицированный файл, то буфер Undo должен это либо вообще игнорировать, либо запоминать предыдущее содержимое только в случае явно включенной соответствующей настройки.
Яркий пример того, почему это очень важно: пусть мы мониторим лог-файл, содержимое которого изменяется каждые несколько секунд. В этой ситуации размер файла и прошедшее время полностью определяют момент, когда буфер Undo съест всю доступную память.
Posted: Fri Mar 21, 2014 12:22 pm
by Drugmix
DV
мониторинг лог-файлов - это отдельная песня: там надо либо отключать подгрузку undo истории насовсем, либо делать примитивный и быстрый diff (в лог-файлах текст добавляется строго новыми строками внизу или вверху документа).
Я понимаю, что это всё сложно и что кроме меня это мало кому нужно, и я уже смирился с тем, что скорей всего это не войдёт в акелпад и мне придётся пользоваться скриптами, но мне нужно ещё чуть-чуть помощи с ними:
есть undoableReopen.js, который подгружает UnDo историю как раз так, как мне хочется, но этот скрипт нужно вызывать вручную.
А есть AutoScript-UndoReopen.js который подгружает её не так, как мне хочется, но зато он сам отслеживает события и его достаточно в автозагрузку добавить.
Очень хочется гибрид этих двух скриптов, чтобы история подгружалась как в первом, но при этом не надо было делать его вызовы вручную, т.е. чтоб он следил за событиями как второй.
Сам я пытался это сделать, но мне не хватило ума и/или знаний.
Posted: Mon Mar 24, 2014 2:15 pm
by DV
Воспроизводим ошибку, при которой AkelPad не открывает файл:
1. Пусть у нас некоторые файлы "1.txt" и "2.txt"
2. Запускаем из командной строки: AkelPad.exe 1.txt - запускается AkelPad (в режиме MDI) и открывает файл "1.txt"
3. Физически удаляем файл "1.txt" (при этом AkelPad, потеряв фокус, ещё никак не реагирует на удаление файла)
4. Запускаем из командной строки: AkelPad.exe 2.txt - при этом AkelPad сообщает, что не может открыть файл "1.txt", и не открывает файл "2.txt"