View previous topic :: View next topic |
Author |
Message |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 6250
|
Posted: Thu May 09, 2013 7:19 am Post subject: Релиз AkelPad 4.8.3 |
|
|
С днем Великой Победы! Вечная слава Героям!
Добавлено: возможность задать кодировку для нового файла.
Добавлено: ручной параметр "UrlCommand" - определяет команду для запуска при клике по гиперссылке.
Исправлено: не срабатывало перетаскивание текста в некоторые программы.
Исправлено: восстановление типа новой строки из буфера отмены.
Исправлено: группирование элементов в шаблоне регулярных выражений.
Исправлено: подхватывание текста, при уже открытом диалоге поиска/замены, не восстанавливало пункт "С начала".
<<Скачать>>
Last edited by Instructor on Tue Jun 11, 2013 6:16 am; edited 1 time in total |
|
Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 665 Location: Сочи, Хоста
|
Posted: Fri May 10, 2013 3:34 pm Post subject: |
|
|
Спасибо за новую версию.
Здесь http://akelpad.sourceforge.net/forum/viewtopic.php?p=21580#21580 было написано:
Quote: | В 4.8.3 можно будет назначать команду для запуска при клике по гиперссылке. Т.е. можно вызвать скрипт, а скрипт уже определяет, что со ссылкой делать. |
Появилась ли такая возможность?
Если да, то можно примеры использования. |
|
Back to top |
|
 |
opk44
Joined: 16 Jan 2010 Posts: 608
|
Posted: Fri May 10, 2013 3:45 pm Post subject: |
|
|
Andrey_A_A wrote: | Появилась ли такая возможность?
Если да, то можно примеры использования. | 1. Смотрим первый пост: "Добавлено: ручной параметр "UrlCommand..."
2. Смотрим Главное меню -> Справка -> Руководство (или [/Plugins/exe/AkelFiles/Docs/AkelHelp-Rus.htm]) раздел "Ручные установки". Последним в таблице идет "UrlCommand" и, что характерно, с примером использования. Вот, как-то так.  |
|
Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 665 Location: Сочи, Хоста
|
Posted: Fri May 10, 2013 3:52 pm Post subject: |
|
|
opk44 wrote: | Andrey_A_A wrote: | Появилась ли такая возможность?
Если да, то можно примеры использования. | 1. Смотрим первый пост: |
Всё это просмотрено - поэтому и возник вопрос.
Мне не нужно открывать ссылку каким-либо браузером - это у меня решено скриптами ещё год назад.
А вопрос был в этом
Andrey_A_A wrote: | Работая с большими документами возникла такая мысль: можно ли сделать в AkelPad внутренний формат ссылок. К примеру в начале документа стоит типа _#1_ и в документе в нужном месте _#1_
и отображается на подобе сылки (может другим цветом) и по нажатию переходит к ней. |
Мне нужен пример внутренних ссылок, чтобы перемещаться внутри документа, а не браузера. |
|
Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 6250
|
Posted: Fri May 10, 2013 5:08 pm Post subject: |
|
|
Andrey_A_A
- При клике по ссылке с префиксом "goto:" осуществляется поиск текста в документе. Префикс goto: необходимо добавить в настройках программы на вкладке "Редактор 2".
- При клике по ссылке с клавишей Ctrl вызывается FireFox из указанного места.
- При обычном клике без клавиши Ctrl, открывается ссылка браузером по умолчанию.
AkelPad.ini wrote: | UrlCommand=Call("Scripts::Main", 1, "UrlCommand.js", "%u") |
UrlCommand.js Code: | var hMainWnd=AkelPad.GetMainWnd();
var oSys=AkelPad.SystemFunction();
var pArgLine=AkelPad.GetArgLine();
if (pArgLine.substr(0, 5).toUpperCase() == "GOTO:")
{
AkelPad.TextFind(0, pArgLine.substr(5), 0x08000001 /*FRF_DOWN|FRF_CYCLESEARCH*/);
}
else
{
if (oSys.Call("user32::GetKeyState", 0x11 /*VK_CONTROL*/) & 0x8000)
AkelPad.Exec("\"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" " + pArgLine);
else
oSys.Call("shell32::ShellExecute" + _TCHAR, hMainWnd, "open", pArgLine, 0, 0, 1 /*SW_SHOWNORMAL*/);
}
|
Пример текста:
Code: | abc _#1_ def
abc goto:_#1_ def |
Last edited by Instructor on Mon Mar 31, 2014 1:41 pm; edited 1 time in total |
|
Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 665 Location: Сочи, Хоста
|
Posted: Fri May 10, 2013 5:30 pm Post subject: |
|
|
Instructor wrote: | Andrey_A_A
- При клике по ссылке с префиксом "goto:" осуществляется поиск текста в документе. Префикс goto: необходимо добавить в настройках программы... |
Отлично, теперь всё понятно! Спасибо! |
|
Back to top |
|
 |
[Yustas.NeO]
Joined: 12 Mar 2007 Posts: 265
|
Posted: Thu May 16, 2013 9:02 am Post subject: |
|
|
А если:
Code: | abc goto:_#1_ def
abc _#1_ def |
То "прыгает" на саму себя.
Я пока решил вот так:
Code: | AkelPad.TextFind(0, "#" + pArgLine.substr(5), 0x00200001 /*FRF_DOWN|FRF_BEGINNING*/); |
но может у кого есть идеи более элегантного решения? |
|
Back to top |
|
 |
Andrey_A_A
Joined: 03 Jun 2010 Posts: 665 Location: Сочи, Хоста
|
Posted: Thu May 16, 2013 10:02 am Post subject: |
|
|
Quote: | но может у кого есть идеи более элегантного решения? |
Для сборки написал такой вариант
GotoMarkOrOpenUrl.vbs
Code: | ' GotoMarkOrOpenUrl.vbs
'======================= Описание ======================================
' Переход по внутренним ссылкам документа или открытие ссылки в браузере
'======================= Дополнение ====================================
' с версии AkelPad 4.8.3. можно использовать внутренние ссылки в документе и осуществлять навигацию
' что для этого нужно сделать:
' 1. В настройках программы на вкладке "Редактор 2 в "Префиксы" добавьте goto:
' 2. В AkelPad.ini в секции [Options] пропишите UrlCommand=Call("Scripts::Main", 1, "GotoMarkOrOpenUrl.vbs", "%u")
' 3. В документе создайте внутреннюие ссылки в документе, к примеру goto:##1 в начале и в середине
' Так же можно настроить вызов обычной ссылки любым браузером
'===========================================================================
' используется Functions.vbs, FunctionsINITextRWS.vbs который следует положить в ...AkelFiles\Plugs\Scripts\Include\
' Автор: Аверин Андрей
' Версия: 1.0 (10.05.2013)
' Mail: Averin-And@yandex.ru
' Site: http://tc-image.3dn.ru/forum/9-846-6211-16-1368213090
'==================== Изменяемые пути ==================================
With AkelPad
.Include "Functions.vbs"
URL = .GetArgLine()
aT=Split(URL, ":")
Select Case aT(0)
Case "goto" EndLine : .TextFind 0, aT(1), &H00000001+&H08000000 : EndLine
Case Else
.Include "FunctionsINITextRWS.vbs"
Program = GetPath(ReadINIText(.ReadFile(.GetAkelDir(0) & "\AkelPadImage.ini", 1), "Browser", "BrowserDefault"))
If Len(Program) > 7 Then
Pro = GetPathProcessName(Replace(GetOtherObjectFile(Program, 3), "Portable", ""))
If Len(Pro) > 0 Then Program = Pro
CreateObject("WScript.Shell").Run Chr(34) & Program & Chr(34) & Chr(32) & Chr(34) & URL & Chr(34)
Else
If .IsOldWindows() Then TCHAR = "A" Else TCHAR = "W" End If
Call .SystemFunction().Call("shell32::ShellExecute" + TCHAR, .GetEditWnd(), "open", URL, 0, 0, 1)
End If
End Select
End With
Sub EndLine : E = PosEndLine : AkelPad.SetSel E,E : End Sub |
|
|
Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 2240 Location: Vinnitsa, Ukraine
|
Posted: Fri May 17, 2013 2:05 pm Post subject: |
|
|
Буду просить фичу:
Увеличить число запоминаемых последних файлов на пару порядков. Настройка позволяет задать не более 999, а мне понадобилось пересмотреть глазами ~2500 текстовых файлов. В итоге история редактирования текстовых файлов годичной давности благополучно канула в Лету, что есть плохо. |
|
Back to top |
|
 |
opk44
Joined: 16 Jan 2010 Posts: 608
|
Posted: Fri May 17, 2013 5:46 pm Post subject: |
|
|
FeyFre wrote: | история редактирования ... канула в Лету | Можно попробовать спасти. Создать текущую точку восстановления (1). Затем откатиться на точку восстановления "до того как". Слазать в реестр и экспортировать в файл ветку [HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Recent]. Затем снова откатиться на точку (1) и подпихнуть экспортированный reg-файл. Телодвижений только многовато с этой "машиной времени", но должно сработать. Или можно поискать/посмотреть сторонний софт чтения файлов реестра, тогда можно будет без откатов обойтись. Правда тут уже ничего конкретного посоветовать не могу. Работал с каким-то DOS-подобным редактором, но уж очень там ограниченно все (в наборе Win_XPE есть хорошее средство работы с удаленным реестром, но вроде бы только с "живым", а с Hiren я не работал). |
|
Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 3076 Location: Киев, Русь
|
Posted: Fri May 17, 2013 6:23 pm Post subject: |
|
|
FeyFre wrote: | на пару порядков | Это в примерно 100 раз. |
|
Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 2240 Location: Vinnitsa, Ukraine
|
Posted: Fri May 17, 2013 6:42 pm Post subject: |
|
|
Речь об восстановлении не идет. Точки восстановления не делаю по традиции с очень давних пор. Но суть не в этом, суть в том что нужно много истории. Действительно много. |
|
Back to top |
|
 |
opk44
Joined: 16 Jan 2010 Posts: 608
|
Posted: Fri May 17, 2013 7:27 pm Post subject: |
|
|
FeyFre wrote: | не делаю по традиции с очень давних пор | Как говорил товарищ Пешков "безумству храбрых поём мы песню"... Но, хозяин-барин.
Появилась реплика не по сути вопроса. Вот у меня выбрана опция "сохранять настройки в INI", но все равно часть настроек хранится в реестре. Цель использования реестра как удобного хранилища вполне понятна - он как бы именно для того MS-ом и создавался. И все же хотелось бы "настоящей портабельности", а не частичной. К тому редактирование реестра, как правило, запрещено для не-Администратора компьютера, так что не все могут при случае туда слазать ("если что"). |
|
Back to top |
|
 |
private_joker
Joined: 28 May 2010 Posts: 84
|
Posted: Sat May 18, 2013 6:35 pm Post subject: |
|
|
opk44 wrote: | Вот у меня выбрана опция "сохранять настройки в INI", но все равно часть настроек хранится в реестре. Цель использования реестра как удобного хранилища вполне понятна - он как бы именно для того MS-ом и создавался. И все же хотелось бы "настоящей портабельности", а не частичной. |
Заикался об этом (хранение истории не в реестре) три года назад. Заметил или нет хз, но как сказал сам Instructor "Не считаю нужным отвечать на пожелания." Значит знает, думает, помнит  |
|
Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 2240 Location: Vinnitsa, Ukraine
|
Posted: Tue May 21, 2013 3:04 pm Post subject: Висит на открытии XML-файла |
|
|
Такая вот штука.
Есть XML-файл. Размер 2.5MiB. В лучших традициях машинно-генерированных XML-файлов он состоит из 2-х строк:
первая, стандартный XML-пролог - <?xml
вторая, собственно сам документ(весь).
скучные технические подробности, возможно никому не нужные Плагин сессий включен. Открыто пару документов, в т.ч. и этот. Т.е. при запуске АР вспоминаются документы(не важно какой из документов был активен при закрытии), всё норм.
Но если вдруг я откываю АР с этим файлом в качестве аргумента (по F4 Total Commander) - висяк. АР жрет весь процессор, ни на что не отвечает, и т.п. Крутится в процедуре AE_StackPointInsert(akeledit.c), в пределах адрессов цикла for(строки 6800-6806).(сборкам по архиву исходников 4.8.3 скачанному 5 минут назад) Стек вызовов предоставляю. Настройки тутечкы.
стек где оно зависло Code: | > NotePad.exe!AE_StackPointInsert(_AKELEDIT * ae=0x00b83088, _AECHARINDEX * ciPoint=0x040e3808) Line 6802 + 0x3 bytes C
NotePad.exe!AE_StackFoldInsert(_AKELEDIT * ae=0x00b83088, const _AEFOLD * lpFold=0x01d683e8) Line 6088 + 0xf bytes C
NotePad.exe!AE_EditProc(_AKELEDIT * ae=0x00b83088, unsigned int uMsg=3407, unsigned int wParam=0, long lParam=1240520) Line 1960 + 0x9 bytes C
NotePad.exe!AE_EditShellProc(HWND__ * hWnd=0x007d086a, unsigned int uMsg=3407, unsigned int wParam=0, long lParam=1240520) Line 360 + 0xd bytes C
user32.dll!_InternalCallWinProc@20() + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_CallWindowProcAorW@24() + 0x51 bytes
user32.dll!_CallWindowProcW@20() + 0x1b bytes
NotePad.exe!CallWindowProcWide(long (HWND__ *, unsigned int, unsigned int, long)* lpPrevWndFunc=0x00402225, HWND__ * hWnd=0x007d086a, unsigned int uMsg=3407, unsigned int wParam=0, long lParam=1240520) Line 2076 C
NotePad.exe!EditProc(HWND__ * hWnd=0x007d086a, unsigned int uMsg=3407, unsigned int wParam=0, long lParam=1240520) Line 5569 + 0x13 bytes C
LineBoard.dll!00a34cd4()
[Frames below may be incorrect and/or missing, no symbols loaded for LineBoard.dll]
SmartSel.dll!00a91e26()
Coder.dll!00ac55b6()
NotePad.exe!CommonEditProc(HWND__ * hWnd=0x007d086a, unsigned int uMsg=3407, unsigned int wParam=0, long lParam=1240520) Line 5477 + 0x16 bytes C
user32.dll!_InternalCallWinProc@20() + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_SendMessageWorker@20() + 0xc8 bytes
user32.dll!_SendMessageA@16() + 0x49 bytes
Coder.dll!00acea74()
Coder.dll!00ad1ee3()
Coder.dll!00ad3fb3()
comctl32.dll!_SBSetText@12() + 0x92 bytes
|
Собственно есть подозрение что это не висяк, не баг какой-нибудь, а просто так получилось обработка одной большой строки(фолдингом в данном случая) операция достаточно сложная. В любом случае дождаться не судьба. Да, есть ограничение на размер документа есть, но оно у меня чуть выше чем размер этого докумнта(часто бывает нужно) Может подумать над каким нибудь ограничением на длину строки? |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|