AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Релиз AkelPad 4.8.3
Goto page 1, 2  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5366

PostPosted: Thu May 09, 2013 7:19 am    Post subject: Релиз AkelPad 4.8.3 Reply with quote

С днем Великой Победы! Вечная слава Героям!


Добавлено: возможность задать кодировку для нового файла.
Добавлено: ручной параметр "UrlCommand" - определяет команду для запуска при клике по гиперссылке.

Исправлено: не срабатывало перетаскивание текста в некоторые программы.
Исправлено: восстановление типа новой строки из буфера отмены.
Исправлено: группирование элементов в шаблоне регулярных выражений.
Исправлено: подхватывание текста, при уже открытом диалоге поиска/замены, не восстанавливало пункт "С начала".


<<Скачать>>


Last edited by Instructor on Tue Jun 11, 2013 6:16 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 552
Location: Сочи, Хоста

PostPosted: Fri May 10, 2013 3:34 pm    Post subject: Reply with quote

Спасибо за новую версию.

Здесь http://akelpad.sourceforge.net/forum/viewtopic.php?p=21580#21580 было написано:
Quote:
В 4.8.3 можно будет назначать команду для запуска при клике по гиперссылке. Т.е. можно вызвать скрипт, а скрипт уже определяет, что со ссылкой делать.


Появилась ли такая возможность?
Если да, то можно примеры использования.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
opk44



Joined: 16 Jan 2010
Posts: 328

PostPosted: Fri May 10, 2013 3:45 pm    Post subject: Reply with quote

Andrey_A_A wrote:
Появилась ли такая возможность?
Если да, то можно примеры использования.
1. Смотрим первый пост: "Добавлено: ручной параметр "UrlCommand..."
2. Смотрим Главное меню -> Справка -> Руководство (или [/Plugins/exe/AkelFiles/Docs/AkelHelp-Rus.htm]) раздел "Ручные установки". Последним в таблице идет "UrlCommand" и, что характерно, с примером использования. Вот, как-то так. Wink
Back to top
View user's profile Send private message
Andrey_A_A



Joined: 03 Jun 2010
Posts: 552
Location: Сочи, Хоста

PostPosted: Fri May 10, 2013 3:52 pm    Post subject: Reply with quote

opk44 wrote:
Andrey_A_A wrote:
Появилась ли такая возможность?
Если да, то можно примеры использования.
1. Смотрим первый пост:


Всё это просмотрено - поэтому и возник вопрос.
Мне не нужно открывать ссылку каким-либо браузером - это у меня решено скриптами ещё год назад.

А вопрос был в этом

Andrey_A_A wrote:
Работая с большими документами возникла такая мысль: можно ли сделать в AkelPad внутренний формат ссылок. К примеру в начале документа стоит типа _#1_ и в документе в нужном месте _#1_
и отображается на подобе сылки (может другим цветом) и по нажатию переходит к ней.


Мне нужен пример внутренних ссылок, чтобы перемещаться внутри документа, а не браузера.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5366

PostPosted: Fri May 10, 2013 5:08 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
Andrey_A_A



Joined: 03 Jun 2010
Posts: 552
Location: Сочи, Хоста

PostPosted: Fri May 10, 2013 5:30 pm    Post subject: Reply with quote

Instructor wrote:
Andrey_A_A
- При клике по ссылке с префиксом "goto:" осуществляется поиск текста в документе. Префикс goto: необходимо добавить в настройках программы...


Отлично, теперь всё понятно! Спасибо!
Back to top
View user's profile Send private message Send e-mail Visit poster's website
[Yustas.NeO]



Joined: 12 Mar 2007
Posts: 258

PostPosted: Thu May 16, 2013 9:02 am    Post subject: Reply with quote

А если:
Code:
abc goto:_#1_ def
abc _#1_ def

То "прыгает" на саму себя.


Я пока решил вот так:
Code:
AkelPad.TextFind(0, "#" + pArgLine.substr(5), 0x00200001 /*FRF_DOWN|FRF_BEGINNING*/);

Code:
goto:test
#test

но может у кого есть идеи более элегантного решения?
Back to top
View user's profile Send private message
Andrey_A_A



Joined: 03 Jun 2010
Posts: 552
Location: Сочи, Хоста

PostPosted: Thu May 16, 2013 10:02 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2041
Location: Vinnitsa, Ukraine

PostPosted: Fri May 17, 2013 2:05 pm    Post subject: Reply with quote

Буду просить фичу:
Увеличить число запоминаемых последних файлов на пару порядков. Настройка позволяет задать не более 999, а мне понадобилось пересмотреть глазами ~2500 текстовых файлов. В итоге история редактирования текстовых файлов годичной давности благополучно канула в Лету, что есть плохо.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
opk44



Joined: 16 Jan 2010
Posts: 328

PostPosted: Fri May 17, 2013 5:46 pm    Post subject: Reply with quote

FeyFre wrote:
история редактирования ... канула в Лету
Можно попробовать спасти. Создать текущую точку восстановления (1). Затем откатиться на точку восстановления "до того как". Слазать в реестр и экспортировать в файл ветку [HKEY_CURRENT_USER\Software\Akelsoft\AkelPad\Recent]. Затем снова откатиться на точку (1) и подпихнуть экспортированный reg-файл. Телодвижений только многовато с этой "машиной времени", но должно сработать. Или можно поискать/посмотреть сторонний софт чтения файлов реестра, тогда можно будет без откатов обойтись. Правда тут уже ничего конкретного посоветовать не могу. Работал с каким-то DOS-подобным редактором, но уж очень там ограниченно все (в наборе Win_XPE есть хорошее средство работы с удаленным реестром, но вроде бы только с "живым", а с Hiren я не работал).
Back to top
View user's profile Send private message
VladSh



Joined: 29 Nov 2006
Posts: 2610
Location: Киев, Русь

PostPosted: Fri May 17, 2013 6:23 pm    Post subject: Reply with quote

FeyFre wrote:
на пару порядков
Это в примерно 100 раз.
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2041
Location: Vinnitsa, Ukraine

PostPosted: Fri May 17, 2013 6:42 pm    Post subject: Reply with quote

Речь об восстановлении не идет. Точки восстановления не делаю по традиции с очень давних пор. Но суть не в этом, суть в том что нужно много истории. Действительно много.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
opk44



Joined: 16 Jan 2010
Posts: 328

PostPosted: Fri May 17, 2013 7:27 pm    Post subject: Reply with quote

FeyFre wrote:
не делаю по традиции с очень давних пор
Shocked Как говорил товарищ Пешков "безумству храбрых поём мы песню"... Но, хозяин-барин.

Появилась реплика не по сути вопроса. Вот у меня выбрана опция "сохранять настройки в INI", но все равно часть настроек хранится в реестре. Цель использования реестра как удобного хранилища вполне понятна - он как бы именно для того MS-ом и создавался. И все же хотелось бы "настоящей портабельности", а не частичной. К тому редактирование реестра, как правило, запрещено для не-Администратора компьютера, так что не все могут при случае туда слазать ("если что").
Back to top
View user's profile Send private message
private_joker



Joined: 28 May 2010
Posts: 78

PostPosted: Sat May 18, 2013 6:35 pm    Post subject: Reply with quote

opk44 wrote:
Вот у меня выбрана опция "сохранять настройки в INI", но все равно часть настроек хранится в реестре. Цель использования реестра как удобного хранилища вполне понятна - он как бы именно для того MS-ом и создавался. И все же хотелось бы "настоящей портабельности", а не частичной.

Заикался об этом (хранение истории не в реестре) три года назад. Заметил или нет хз, но как сказал сам Instructor "Не считаю нужным отвечать на пожелания." Значит знает, думает, помнит Laughing
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2041
Location: Vinnitsa, Ukraine

PostPosted: Tue May 21, 2013 3:04 pm    Post subject: Висит на открытии XML-файла Reply with quote

Такая вот штука.
Есть XML-файл. Размер 2.5MiB. В лучших традициях машинно-генерированных XML-файлов он состоит из 2-х строк:
первая, стандартный XML-пролог - <?xml
вторая, собственно сам документ(весь).
скучные технические подробности, возможно никому не нужные Smile
Плагин сессий включен. Открыто пару документов, в т.ч. и этот. Т.е. при запуске АР вспоминаются документы(не важно какой из документов был активен при закрытии), всё норм.
Но если вдруг я откываю АР с этим файлом в качестве аргумента (по 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   


Собственно есть подозрение что это не висяк, не баг какой-нибудь, а просто так получилось обработка одной большой строки(фолдингом в данном случая) операция достаточно сложная. В любом случае дождаться не судьба. Да, есть ограничение на размер документа есть, но оно у меня чуть выше чем размер этого докумнта(часто бывает нужно) Smile Может подумать над каким нибудь ограничением на длину строки?
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group