Page 41 of 41

Re: Coder plugin (3)

Posted: Fri Nov 28, 2025 6:16 pm
by yozhic
Дорисовал карандаши для Highlight на основе последней, 13-й, иконки из ресурсов. У нас было пять маленьких карандашей 16px, и один, оранжевый, 16px+32px. А теперь стало 8 карандашей (добавились красный, синий, серый) и все в 3-ёх разрешениях: 16px, 24px и 32px.
Image

Скачать можно здесь:
https://disk.yandex.ru/d/-d1mtOUNL3p9Ig
В архиве *.ico, *.dll, *.png и исходники *.psd для Фотошопа.

Code: Select all

"Red" Call("Coder::HighLight", 2, 0, "#FF5959", 1, 0, 11) Icon("%a\AkelFiles\icons\Crayons.dll", 0)
"Green" Call("Coder::HighLight", 2, 0, "#88E188", 1, 0, 12) Icon("%a\AkelFiles\icons\Crayons.dll", 1)
"Blue" Call("Coder::HighLight", 2, 0, "#68A7FF", 1, 0, 13) Icon("%a\AkelFiles\icons\Crayons.dll", 2)
"Cyan" Call("Coder::HighLight", 2, 0, "#9BFFFF", 1, 0, 14) Icon("%a\AkelFiles\icons\Crayons.dll", 3)
"Violet" Call("Coder::HighLight", 2, 0, "#BE7DFF", 1, 0, 15) Icon("%a\AkelFiles\icons\Crayons.dll", 4)
"Yellow" Call("Coder::HighLight", 2, 0, "#FFFF9B", 1, 0, 16) Icon("%a\AkelFiles\icons\Crayons.dll", 5)
"Gray" Call("Coder::HighLight", 2, 0, "#A9A9A9", 1, 0, 17) Icon("%a\AkelFiles\icons\Crayons.dll", 6)
"Orange" Call("Coder::HighLight", 2, 0, "#FFCD9B", 1, 0, 18) Icon("%a\AkelFiles\icons\Crayons.dll", 7)
SEPARATOR
-"Remove All Marks" Call("Coder::HighLight", 3, 0) Icon("%a\AkelFiles\icons\Crayons.dll", 8)

Re: Coder plugin (3)

Posted: Mon Mar 02, 2026 11:59 pm
by Instructor
yozhic
Отличная работа! Добавил в новую версию. Думаю +50Kb переживём :)

Re: Coder plugin (3)

Posted: Tue Mar 03, 2026 1:03 pm
by yozhic
Instructor
Спасибо на добром слове. Хорошо, когда AkelPad не только маленький и быстрый, но ещё и красивый :)

Настройки кодера недоступны

Posted: Thu Mar 05, 2026 9:04 am
by Astute02
Здравствуйте! У меня проблемы с кодером. Не могу получить доступ к настройкам кодера, хотя галочку напротив Settings поставил в разделе Плагины. Закрываю AkelPad, потом открываю, а галочки уже нет.Удаление cashe в папке Coder тоже не помогает.

Re: Настройки кодера недоступны

Posted: Thu Mar 05, 2026 11:11 am
by VladSh
Astute02
Для того, чтобы открыть настройки плагина, ненужно ставить Coder::Settings в автозагрузку. Нужно клацнуть на этот пункт в окне плагинов и нажать кнопку "Вызвать" (Call) слева внизу окна.

Re: Coder plugin (3)

Posted: Sat Mar 07, 2026 4:18 am
by testuser2
Добрый день. Если в js-регулярку добавить {} (допустим /-{2,}/), то она перестает правильно подсвечиваться, можно ли это как-то исправить?

Re: Coder plugin (3)

Posted: Tue Mar 31, 2026 9:40 pm
by Instructor
testuser2
Укажите строку из coder файла с правилом и в какой секции используется.

Re: Coder plugin (3)

Posted: Thu May 07, 2026 10:46 am
by testuser2
Instructor, скажите поожалуйста, можно ли в JS субклассировать сообщения AEN_POINT окна. При задании фильтра WM_NOTIFY обрабатываются все сообщения (AEN_SELCHANGED, AEN_TEXTCHANGED и др.), кроме AEN_POINT. Хотелось бы иметь доступ к этим событиям тоже. С уважением!

Re: Coder plugin (3)

Posted: Sun May 10, 2026 2:21 pm
by testuser2
Все я нашол, как получать фолды, саблкласс AEN_POINT теперь не актуален. Вот пример кода (работает только при наличии моих инклюдов):

Code: Select all

testFindFold()
function testFindFold(){
    try {
        AkelPad.Include("MemHelp.js")
        AkelPad.Include("log.js")
        var hWndEdit = AkelPad.GetEditWnd()
        var AEFF_FINDOFFSET = 1
        var AEFF_FINDINDEX  = 0x2
        var AEFF_FOLDSTART  = 0x8
        var AEFF_FOLDEND    = 0x10
        var AEFF_GETROOT    = 0x40
        var WM_USER         = 0x400
        var AEFF_RECURSE    = 0x20
        var AEM_GETINDEX    = WM_USER + 2106
        var AEGI_CARETCHAR  = 5
        var AEM_FINDFOLD    = WM_USER + 2386
        var oFF = AEFINDFOLDwrp()                   // создаем враппер структуры
        var sffBuf = makeStrBuff(oFF.size() / 2)    // создаем временный буфер
        var pFF = StrPtr(sffBuf)
        oFF.pStructSet(pFF)                         // мапим враппер структуры на временный буфер
        //ff.dwFlags=AEFF_FINDINDEX|AEFF_FOLDSTART|AEFF_GETROOT;
        oFF.dwFlagsSet(AEFF_FINDOFFSET|AEFF_FOLDSTART|AEFF_RECURSE) 
        //ff.dwFindIt=(UINT_PTR)&ciCaret;
        oFF.dwFindItSet(AkelPad.GetSelStart())
        
        // SendMessage(hWndEdit, AEM_FINDFOLD, (WPARAM)&ff, 0);
        AkelPad.SendMessage(hWndEdit, AEM_FINDFOLD, pFF, 0)
        var pFold = oFF.lpParent()             // получаем указатель на результат
        if (pFold){
            with(oFF.lpParentRef()){
                PrintLog('Начало текущей кодовой папки\n' + lpMinPointRef().nPointOffset())
                PrintLog('Конец текущей кодовой папки\n' + lpMaxPointRef().nPointOffset())
            }
        }
    } catch(e) {
        PrintLog(e.message)
    }
}