Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Добавлено: опция сохранения регистра введенных символов.
Регистр сохраняется только для файлов без синтаксической темы, чтобы форсировано не менять регистр введенных символов для любого документа, используем Shift+Enter для выбора из списка (Coder::AutoComplete).

Added: option for saving typed symbols case.
Case saved only for files without syntax theme, to force not change case of typed symbols for any document, use Shift+Enter to select from list (Coder::AutoComplete).


Coder plugin v11.2

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

Post by opk44 »

Instructor wrote:...Coder plugin v11.2
Апдейтер продолжает утверждать, что самая последняя = 11.1

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

Post by Instructor »

opk44
Обновлено.

Offline
Posts: 12
Joined: Thu Jun 06, 2013 9:27 am

App Crash

Post by Ralph Shane »

Crash. call stack like following.

Code: Select all

 	Coder.dll!failwithmessage(void * retaddr, int crttype, int errnum, const char * msg) Line 248	C++
 	Coder.dll!_RTC_StackFailure(void * retaddr, const char * varname) Line 359	C++
 	Coder.dll!_RTC_CheckStackVars(void * frame, _RTC_framedesc * v) Line 79	C++
>	Coder.dll!HighLightParentMessages(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam, __int64 * lResult) Line 779	C
 	Coder.dll!ParentMessages(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam, __int64 * lResult) Line 2215	C
 	Coder.dll!NewFrameProc(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 2172	C
 	AkelPad.exe!CommonFrameProc(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 5532	C
 	user32.dll!000007fad487171e()	Unknown
 	user32.dll!000007fad48b22f9()	Unknown
 	user32.dll!000007fad489f30d()	Unknown
 	akeledit.dll!AE_SendMessage(_AKELEDIT * ae, HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 21318	C
 	akeledit.dll!AE_NotifySelChanged(_AKELEDIT * ae) Line 20915	C

Please check it.

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

Post by Instructor »

Ralph Shane
Post concrete text and actions you do.

Offline
Posts: 12
Joined: Thu Jun 06, 2013 9:27 am

Coder plug-in crush

Post by Ralph Shane »

Instructor wrote:Ralph Shane
Post concrete text and actions you do.
First I using Coder::HighLight plugin. Then I open a text file. Then I double-clicked on a word. Then the app is crashed. The following is the full call stack while crushing.

Code: Select all

 	Coder.dll!failwithmessage(void * retaddr, int crttype, int errnum, const char * msg) Line 248	C++
 	Coder.dll!_RTC_StackFailure(void * retaddr, const char * varname) Line 359	C++
 	Coder.dll!_RTC_CheckStackVars(void * frame, _RTC_framedesc * v) Line 79	C++
>	Coder.dll!HighLightParentMessages(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam, __int64 * lResult) Line 779	C
 	Coder.dll!ParentMessages(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam, __int64 * lResult) Line 2215	C
 	Coder.dll!NewFrameProc(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 2172	C
 	AkelPad.exe!CommonFrameProc(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 5532	C
 	user32.dll!000007fad487171e()	Unknown
 	user32.dll!000007fad48b22f9()	Unknown
 	user32.dll!000007fad489f30d()	Unknown
 	akeledit.dll!AE_SendMessage(_AKELEDIT * ae, HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 21318	C
 	akeledit.dll!AE_NotifySelChanged(_AKELEDIT * ae) Line 20915	C
 	akeledit.dll!AE_SetSelectionPos(_AKELEDIT * ae, const _AECHARINDEX * ciSelStart, const _AECHARINDEX * ciSelEnd, int bColumnSel, unsigned long dwSelFlags, unsigned long dwSelType) Line 9352	C
 	akeledit.dll!AE_EditProc(_AKELEDIT * ae, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 4220	C
 	akeledit.dll!AE_EditShellProc(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 358	C
 	user32.dll!000007fad487171e()	Unknown
 	user32.dll!000007fad487432b()	Unknown
 	AkelPad.exe!CallWindowProcWide(__int64 (HWND__ *, unsigned int, unsigned __int64, __int64) * lpPrevWndFunc, HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 2071	C
 	AkelPad.exe!EditProc(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 5865	C
 	Coder.dll!NewEditProc(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 2240	C
 	AkelPad.exe!CommonEditProc(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam) Line 5772	C
 	user32.dll!000007fad487171e()	Unknown
 	user32.dll!000007fad48714d7()	Unknown
 	AkelPad.exe!DispatchMessageWide(const tagMSG * lpMsg) Line 2309	C
 	AkelPad.exe!TranslateMessageAll(unsigned long dwType, tagMSG * lpMsg) Line 13393	C
 	AkelPad.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrev, unsigned short * lpCmdLine, int nShowCmd) Line 1180	C
 	AkelPad.exe!__tmainCRTStartup() Line 237	C
 	AkelPad.exe!wWinMainCRTStartup() Line 164	C
 	kernel32.dll!000007fad4cc167e()	Unknown
 	ntdll.dll!000007fad6ed3501()	Unknown

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

Post by Instructor »

Ralph Shane
I need to reproduce it, to make run-time debugging. Can you send/share AkelPad folder with some sample file?

Offline
Posts: 12
Joined: Thu Jun 06, 2013 9:27 am

Post by Ralph Shane »

Instructor wrote:Ralph Shane
I need to reproduce it, to make run-time debugging. Can you send/share AkelPad folder with some sample file?
I have find out the reason. It will crash on x64 version only.
In file plugs\Coder\Source\HighLight.c line 740 or more

Code: Select all

                wchar_t *wpMarkText;
                INT_PTR nMarkTextLen=0;     // change int to INT_PTR 
                BOOL bUpdate=FALSE;

                if (UnmarkSelection(lpHighlightWindow, MARKID_SELECTION, (DWORD)-1, (DWORD)-1))
                  bUpdate=TRUE;

                if (!SendMessage(ei.hWndEdit, AEM_GETLINENUMBER, AEGL_UNWRAPSELMULTILINE, 0))
                {
                  if (wpMarkText=(wchar_t *)SendMessage(hMainWnd, AKD_GETSELTEXTW, (WPARAM)ei.hWndEdit, (LPARAM)&nMarkTextLen))
                  {
                    if (MarkSelection(lpHighlightWindow, wpMarkText, nMarkTextLen, *lpdwAutoMarkTextColor, *lpdwAutoMarkBkColor, *lpdwAutoMarkFlags, *lpdwAutoMarkFontStyle, MARKID_SELECTION))
                      bUpdate=TRUE;
                    SendMessage(hMainWnd, AKD_FREETEXT, 0, (LPARAM)wpMarkText);
                  }
                }

but it seems that we must modify every point that appears "AKD_GETSELTEXTW" key-word.

Or we can Just change the ONLY ONE point. In file AkelPad.c at line 1992 or more

Code: Select all

    if (uMsg == AKD_GETSELTEXTW)
    {
      AECHARRANGE cr;
      wchar_t *wpText=NULL;
      INT_PTR nTextLen;
      BOOL bColumnSel=FALSE;
      HWND hWnd=(HWND)wParam;
      INT_PTR *nResultLen=(INT_PTR *)lParam;   // change INT_PTR to int 
      //...

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

Post by Instructor »

Ralph Shane
Fixed, thanks.

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

Post by Instructor »

Исправлено: автоматически отмечать выделенное на Win x64 (Coder::HighLight).

Fixed: automatic selection marking on Win x64 (Coder::HighLight).


Coder plugin v11.3

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Instructor
а можно, пожалуйста, всё-таки добавить folding для autohotkey (.ahk)?

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

Post by Instructor »

Drugmix
Откройте файл ahk.coder и посмотрите кто автор.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Автор ahk.coder я, и я повторю вопрос:
Drugmix wrote:Пожалуйста, добавьте folding (т.е. сворачивание строк текста в ahk.coder) для всех фигурных скобок и для закомментированных фигурных скобок:
;{
;}
Lenchik wrote:Drugmix
Drugmix wrote:для всех фигурных скобок
Какие именно кроме { }?
Или под «все фигурные» имели ввиду «левые и правые»?
И дайте, пожалуйста тестовый файл, где бы они все были использованы. А то у меня фолдинг {} работает (на мой взгляд не использующего ahk) на примерах с http://www.autohotkey.com/docs/Tutorial.htm

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Lenchik, Instructor, я достаточно новый юзер AkelPad'а и пока не во всём разобрался (также и в том, кто за что отвечает: увидел, что в этом топике обновления выкатывает Instructor - ну, ему и написал).

Lenchik
Я думал, что не работает. Полез в список плагинов, а у меня Coder::CodeFold отключён был. Включил - заработало.
Конкретно по поводу скобок - я же ответил уже.
Добавлю лишь: сейчас заметил, что если скобки расположены на одной строке, то CodeFold не добавляет сворачивание кода (и это логично), но когда каретка рядом с одной из скобок - обе скобки (т.е. та, что рядом и её парная, обратная скобка) подсвечиваются чуть-чуть и это удобно. Поэтому, и круглые скобки надо обязательно тоже добавить, т.к. бывают сложные условия состоящие из под-групп других условий и получается набор скобок и печатая их вручную - легко забыть закрывающую, а это уже ошибка.

Nvm, оказывается есть нечто "brackets", включив которое подсветка таких скобок идёт автоматом.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Drugmix wrote:Конкретно по поводу скобок - я же ответил уже.
Не заметил, извините. Изменения внёс. На гитхабе можно забрать уже сейчас. Инструктору сейчас вышлю для обновления на сервере.
Locked