Bugs / Найденные баги (2)

Russian main discussion
  • Author
  • Message
Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

wertfds wrote:не отображает
Этих символов значит нет в выбранном шрифте. Предположу, что блокнот, в случае, если не нашёл символ в шрифте, рисует эти символы другим шрифтом, где этом символ есть (например, Arial Unicode MS).

Offline
Posts: 171
Joined: Thu Dec 01, 2011 11:15 pm
Location: Россия

Post by LonerD »

Instructor
Вызов команды горизонтального разделения панелей приводит к почти гарантированному краху Акелпада.
Никак не могу выявить все условия. Вроде такие:
Последние версии Акелпада и плагинов (32-х битные версии), Windows 10 х64 SL Home. MDI, перенос по словам включён, есть тулбар слева или справа (или по обеим бокам), открыто несколько вкладок, на "рабочей" вкладке текст с относительно большим количеством переносов. Включены все плагины (такое ощущение, что если выгрузить некоторые любые плагины, то разделение стабильней срабатывает).
Акелпад 4.9.9, последние пару бет - при вызове команды Command(4214) - почти гарантированный крах. А вот если вызвать команду Command(4213), а уже после неё Command(4214) - то проблема не возникает.
Вижу, что в Акелпад версии 4.9.8 даже последовательный вызов команд 4213 и 4214 приводил к краху. Впоследствии это было исправлено, значит проблема известная. Но исправлено пока не до конца.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

При смене настроек Reg-->INI, если AkelPad.ini ранее существовал, то в него ДОБАВЛЯЕТСЯ (в начало) содержимое настроек. Т. е. все секции дублируются. Если поочередно "играться" настройкой хранения (SaveSettings=2|1, SaveHistory=2|1), то достигается эффект многократного самоудвоения AkelPad.ini

--
AkelPad (x86) 4.9.9 (r4405)

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

LonerD
Возможно работают какие-либо резидентные скрипты. Проверьте содержимое CmdLineBegin и CmdLineEnd.

opk44
Не вопроизводится. Можете папку с AkelPad'ом выложить/прислать?

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

opk44
Тестовая x86 / x64

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Instructor wrote:opk44
Тестовая ...
1. На тестовой (x86) не воспроизводится.
2. Обратил внимание (на примере скрипта Calculator.js r4408), что штатные скрипты через AkelUpdater и не видны, и не обновляются.

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Не баг, но нежелательное поведение - при Ctrl+A (выделить все) происходит прокрутка в конец файла. Я понимаю к якорю, но реальный пример, я правлю CSS, делаю Ctrl+A, Ctrl+C, вставляю в браузер и проверяю работу, не понравилось возвращаюсь в AkelPad подправить, но позиция утеряна, жму Ctrl+Z (иногда Ctrl+Shift+Z, чтобы вернуть только позицию) и снова правлю. То есть как бы оставить позицию ничего не меняя в окне, чтобы я видел текст и тут же приступил к изменениям.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

AZJIO wrote:Не баг, но нежелательное поведение - при Ctrl+A (выделить все) происходит прокрутка в конец файла...
...как бы оставить позицию ничего не меняя в окне...
Не замечал в этом каких-либо неудобств. Но если вас это напрягает, то можно обойти на раз-два-три:
1. Пишем скрипт "GetAllText.js"

Code: Select all

//Call("Scripts::Main", 1, "GetAllText.js")
var pAllText=AkelPad.GetTextRange(0, -1); AkelPad.SetClipboardText(pAllText);
2. Вешаем на Хоткей.
3. Пользуемся.
Бонус - один хоткей вместо двух (Ctrl+A, Ctrl+C). Ну и каретка на месте.

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

opk44
Как вариант да, например Ctrl+Shift+A или Ctrl+Shift+C. Или скрипт, который перед выделением запомнит номер верхней видимой строки и сделает прокрутку к ней. Но в плаге прокрутки нет прыжка к строке (не увидел), а функционал "Go to" сбрасывает выделение. Если делать типа запоминание или ставить закладку, то в любом случае это больше телодвижений чем текущий вариант Ctrl+Z. Сделал пока хоткей на копирование, ещё бы сделать заставку на 1 сек показывающую что текст скопирован.

А вообще я имел ввиду как саму идею работы Ctrl+A чтобы не приходилось дописывать скрипты.

В плаге Scroll:
- Установка непрокручиваемых операций, например, "Выделить всё".
может всё таки поведение можно сделать флагом? Это похоже не прокручивать при включении автопрокрутки во время "Выделить всё", при этом операция "Выделить всё" делает прокрутку в конец документа.

!!! Получилось, я на панели инструментов нажал "Обработка непрокручиваемых операций" (плаг Scroll)(включил флаг), и у меня при Ctrl+A не прокручивается текст в конец, вообще не реагирует, как я и хотел. (не понимаю, почему этого флага нет в настройках плага Scroll?)

Offline
Posts: 276
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Репортую. На Win 8.1x64 c AP 4.9.9[r4408] частично не работает функция AkelPad.Font. Тестовый скрипт с одной единственной строкой

Code: Select all

AkelPad.Font("Courier", 4, 10)
(из примера в справке к функции) меняет размер и начертание, но не меняет гарнитуру.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

yozhic
На Win7 не воспроизводится.

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Открыл окно редактирования кнопок панели инструментов AkelPad, скопировал весь текст, вставил в новый документ, при этом AkelPad упал. Повторил несколько раз - упал стабильно. Если вставляю в документ сохранённый как файл, то не падает. Сократил строки от которых стабильно падает
SET(128, If(`AkelPad.IsPluginRunning("ToolBarExtra::Main") == 1`, 0x1, 0x0))
UNSET(128)
SEPARATOR1
причём SEPARATOR1 используется для авто-включения подсветки. Сборка на которой падает (4.9.9, но и на 4.9.8 тоже падает).
Мне не критично, может рег.выр. плохой, хотя падение от рег.выр`а не должно происходить.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

AZJIO
1. Если делается проверка тестовой версии, то и брать нужно САМУЮ свежую. На сайте лежит июльская r4407 (r4408-r4410 изменения не касались ядра).
Ссылка на версию
2. Для сокращения объема архива желательно убирать из него словари.
3. Падает у вас фактически плагин Coder. А он падает из-за нестандартной подсветки - файл "_txt.txt" господина Аверина с вашими в нём изменениями.
4. Если сводить все к одной строке, то Падение устраняется комментированием строки 246

Code: Select all

Folds: 
;3145733    0    0    0    "\A(?=.*SEPARATOR)"    "\Z"    ""    0    0    "alias:.akelmenu"

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

opk44
и брать нужно САМУЮ свежую
я проверил в том числе и на r4410, у меня самая свежая, недавно выложил DV. Падает на всех 3-x, поэтому не перезаливал.
2. Для сокращения объема архива желательно убирать из него словари
Ну для сокращения я конечно мог оставить один плаг Coder и два txt-кодер и akelmenu-кодер. А я просто дал сслыку на свою сборку и проверил именно на ней что тоже падает.
"_txt.txt" господина Аверина
да я знаю откуда его взял
строки 246

Code: Select all

Folds: 
;3145733    0    0    0    "\A(?=.*SEPARATOR)"    "\Z"    ""    0    0    "alias:.akelmenu"
и это указал у себя, что SEPARATOR. Как будто вставляемый текст становится выполняемым кодом и приводит к падению. Если документ уже существует с таким кодом, то он нормально подсвечивается, а если вставка, сам процесс вставки кода в документ приводит к падению. Если отключаю и включаю тему, то проблемы нет, а вставка с последующей подсветкой.
Сделал ещё эксперимент, отключил txt, а пустой документ назначил ему _akelmenu.coder дописав в Files: пустую строку "". В итоге вставка не делает падение и подсвечивает.
Ещё зксперимент, оставляю в _txt.coder только сбойную строку (это весь _txt.coder ниже)

Code: Select all

Files:
""
*.txt

Folds: 
3145733    0    0    0    "\A(?=.*SEPARATOR)"    "\Z"    ""    0    0    "alias:.akelmenu"
и снова падение. Ну как я и говорил, рег.выр. спотыкается.

Ещё экперимент, оставил в _akelmenu.coder следующее

Code: Select all

Files:
*.akelmenu

Folds:
5	0	0	0	"SET(128,"	"UNSET(128)"	""
с этим падает.


__________________
Кстати, я пытался сделать alias для регулярных выражений в _au3.coder

Code: Select all

; 1048576+2097152+4+1 = 3145733
; 1048576+2097152+1+262144 = 3407873
; 1048576+2097152+1+262144+2048 = 3409921
; 1048576+2097152+1+16384+8192+32768+65536 = 3268609
; 1048576+2097152+1+131072 = 3276801
; 3407873    0    0    0    `StringRegExp(?:Replace)?[ ]*?\([^\n,]+?,[ ]?['"]`    `['"][ ]*?[,)]`    ""    0    0    "alias:.rex"
; 3407873    0    0    0    `StringRegExpReplace\([^\n,]+?, '`    `',`    ""    0    0    "alias:.rex"
и в планах было сделать для *.js и *.pb но как только я не игрался с регулярными выражениями и флагами не смог затставить подсветить рег.выр. Хотя подсвечивал кодер указанный блок правильно, то есть ловил лексему начала и конца специальным для этого цветом, но средину не пытался подсвечивать. Может быть это тоже как то связано.
__________________


Может чтобы не делать таких извращений как поиск регулярным выражением "\A(?=.*SEPARATOR)" "\Z" неких меток, чтобы подсветить весь документ, при этом AkelPad использует 2 кодера в том числе родительский, чтобы обрабатывать контент, который в принципе надо обработать только дочерним кодером, может на этот случай как я предлагал ранее сделать раздел в кодере, что если открыл например txt-файл и в нём есть некий текст, который определяется одним регулярным выражением или поиском обычного текста (можно определить флагами), то такой файл весь перенаправляется на другой кодер и возможно перенаправленный кодер сохраняется в настройки для этого файла, то есть исключается работа двух кодеров, исключается поиск диапазона подсветки, а вместо этого весь файл перенаправляется на другой кодер, упрощается сам поиск (один рег.выр. или даже без регвыра обычный текст)
Пускай это будет не раздел, а некий резервный флаг для Folds:, если он в первых строках, то в принципе перенаправит без последующей обработки этого кодера.
То есть определение подсветки по содержимому файла, ведь txt-файл может содержать практически любые данные и в контексте этого можно определить какие данные как будут подсвечены. У меня есть файлы по работе, тот же _akelmenu.coder, некие справочные файлы компилируемые в CHM, файлы справки txt самого AkelPad, bbcode, какие либо конфиги со своими правилами, текстовые базы данных, табличные данные. Надеюсь привёл достаточно критериев для необходимости этой полезной фичи.

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

AZJIO wrote:и снова падение. Ну как я и говорил, рег.выр. спотыкается.
Coder плагин
Post Reply