Coder plugin (3)

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 313
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Re: Coder plugin (3)

Post 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)

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

Re: Coder plugin (3)

Post by Instructor »

yozhic
Отличная работа! Добавил в новую версию. Думаю +50Kb переживём :)

Offline
Posts: 313
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Re: Coder plugin (3)

Post by yozhic »

Instructor
Спасибо на добром слове. Хорошо, когда AkelPad не только маленький и быстрый, но ещё и красивый :)

Offline
Posts: 1
Joined: Thu Mar 05, 2026 8:29 am

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

Post by Astute02 »

Здравствуйте! У меня проблемы с кодером. Не могу получить доступ к настройкам кодера, хотя галочку напротив Settings поставил в разделе Плагины. Закрываю AkelPad, потом открываю, а галочки уже нет.Удаление cashe в папке Coder тоже не помогает.

Offline
Posts: 3248
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

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

Post by VladSh »

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

Offline
Posts: 23
Joined: Tue Feb 03, 2026 1:20 pm

Re: Coder plugin (3)

Post by testuser2 »

Добрый день. Если в js-регулярку добавить {} (допустим /-{2,}/), то она перестает правильно подсвечиваться, можно ли это как-то исправить?

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

Re: Coder plugin (3)

Post by Instructor »

testuser2
Укажите строку из coder файла с правилом и в какой секции используется.

Offline
Posts: 23
Joined: Tue Feb 03, 2026 1:20 pm

Re: Coder plugin (3)

Post by testuser2 »

Instructor, скажите поожалуйста, можно ли в JS субклассировать сообщения AEN_POINT окна. При задании фильтра WM_NOTIFY обрабатываются все сообщения (AEN_SELCHANGED, AEN_TEXTCHANGED и др.), кроме AEN_POINT. Хотелось бы иметь доступ к этим событиям тоже. С уважением!

Offline
Posts: 23
Joined: Tue Feb 03, 2026 1:20 pm

Re: Coder plugin (3)

Post 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)
    }
}
Post Reply