// http://akelpad.sourceforge.net/forum/viewtopic.php?p= // Version: 2016-02-07 // Author: Skif_off // // // Description(1033): Select current line. // Description(1049): Выделить текущую строку. // // Usage: // Call("Scripts::Main", 1, "SelectCurrentLine.js") var hWndEdit = AkelPad.GetEditWnd(); var nStart = AkelPad.GetSelStart(); var oSys = AkelPad.SystemFunction(); var nWordWrap; var nLine; var nLineIndex; var nLineLength; SetRedraw(hWndEdit, false); nWordWrap = AkelPad.SendMessage(hWndEdit, 3241 /*AEM_GETWORDWRAP*/, 0, 0); if (nWordWrap > 0) AkelPad.Command(4209 /*IDM_VIEW_WORDWRAP*/); nLine = AkelPad.SendMessage(hWndEdit, 1078 /*EM_EXLINEFROMCHAR*/, 0, nStart); nLineIndex = AkelPad.SendMessage(hWndEdit, 187 /*EM_LINEINDEX*/, nLine, 0); nLineLength = AkelPad.SendMessage(hWndEdit, 193 /*EM_LINELENGTH*/, nStart, 0); nEndSel = nLineIndex + nLineLength AkelPad.SetSel(nLineIndex, nEndSel, 0x008 /*AESELT_LOCKSCROLL*/); if (nWordWrap > 0) AkelPad.Command(4209 /*IDM_VIEW_WORDWRAP*/); SetRedraw(hWndEdit, true); function SetRedraw(hWnd, bRedraw) { AkelPad.SendMessage(hWnd, 11 /*WM_SETREDRAW*/, bRedraw, 0); bRedraw && oSys.Call("User32::InvalidateRect", hWnd, 0, true); } |