Page 20 of 24

Posted: Tue Nov 04, 2014 8:51 am
by Instructor

Posted: Tue Dec 16, 2014 9:52 am
by Instructor
Добавлено: опция для сохранения папки AkelPad'а как %a.

Added: option for saving AkelPad path as %a.


Sessions plugin v8.2

Posted: Tue Dec 16, 2014 10:09 pm
by ABTOP
Instructor wrote:
Cuprum wrote:...быстрый доступ к сохраненным сессиям...
Реализовано скриптом. Будет доступно после релиза 4.9.1.
ссылка на пост
А где найти этот скрипт?

Posted: Tue Dec 16, 2014 10:25 pm
by Skif_off
ABTOP
SessionsOpenMenu.js, брать из архива http://akelpad.sourceforge.net/files/pl ... ructor.zip

Posted: Wed Dec 17, 2014 12:26 am
by Andrey_A_A
Instructor
Спасибо за возможность:

Code: Select all

-"Открыть в новом окне сессию My_AkelPad" Call("Scripts::Main", 1, "ForceNewInstance.js", `-CmdLine="/Call('Sessions::Main', 1, 'My_AkelPad')"`) Icon("%a\AkelPadImage.dll",1)

Posted: Tue Dec 30, 2014 4:07 am
by Andrey_A_A
Можно ли сделать проверку при Call("Sessions::Main", 2, "FILE")
Если нет открытых документов или открыта одна пустая вкладка, то при параметре 2 выдавалось бы сообщение о том, что нечего сохранять. О возможности затереть сессию...

Posted: Tue Dec 30, 2014 5:34 am
by Skif_off
Andrey_A_A
В голове возникла смутная мысль: есть такая либа для вкладок, можно начать с проверки режима if (AkelPad.IsMDI()). Только так с разбегу не вспомню, как нумеруются вкладки - с нуля или единицы. Для общего количества вкладок есть TCM_GETITEMCOUNT.

Хотя плагином, наверное, будет удобнее...

Posted: Tue Dec 30, 2014 7:38 am
by Andrey_A_A
Skif_off
Уже сколько раз было - пишу скрипт, а потом через какое-то время появляется это в том или ином функционале, поэтому и решил спросить.
Ответят нет - проверим сами))

Posted: Tue Dec 30, 2014 5:03 pm
by Instructor
Andrey_A_A
В 4.9.2 можно будет использовать FWS_COUNTNAMED:

Code: Select all

if (AkelPad.SendMessage(AkelPad.GetMainWnd(), 1291 /*AKD_FRAMESTATS*/, 4 /*FWS_COUNTNAMED*/, 0))
  AkelPad.Call("Sessions::Main", 2, "FILE");

Posted: Tue Dec 30, 2014 5:06 pm
by Andrey_A_A
Instructor
Спасибо!

Posted: Mon Jan 05, 2015 8:01 am
by Instructor
Изменено: уменьшено мелькание плавающего окна для версии AkelPad 4.9.2 и выше.
Добавлено: сохранение отметок с флагом - слово целиком.

Changed: reduce dockable window flickering for AkelPad 4.9.2 and higher.
Added: saving marks with flag - whole word.


Sessions plugin v8.3

Posted: Mon Jan 05, 2015 4:29 pm
by Andrey_A_A
Instructor
1. При выделении текста:

Code: Select all

-"1234567" Call("Coder::HighLight", 2, "#FFFFFF","#A0A0FF", 7, 1, 000001, "TEXT")
При сохранении секции в файл попадает такая запись

Code: Select all

%a\MyFiles\File.txt
/Name="File.txt" /Active=1 /Codepage=1251 /Selection=76-76 /FirstVisChar=0 /WordWrap=0 /ReadOnly=0 /Overtype=0 /Bookmarks= /CoderAlias="File.txt" /Folds= /Marks=(#FFFFFF,#A0A0FF,268435459,1,000001,"TEXT")
Откуда берётся число 268435459? Почему не записывается число 7 ?

2. Большинство ключей понятны и есть информация как получить значение из документа.
Подскажите как получить значения в скрипт для ключей
FirstVisChar
Overtype
Folds

Posted: Tue Jan 06, 2015 4:54 pm
by Instructor
Andrey_A_A wrote:Откуда берётся число 268435459? Почему не записывается число 7 ?
Sessions плагин хранит флаги не в формате внешнего вызова Coder плагина. Конечно можно привести к одному значению, но потеряется обратная совместимость.
Подскажите как получить значения в скрипт для ключей
FirstVisChar

Code: Select all

SendMessage(hWndEdit, AEM_GETRICHOFFSET, AEGI_FIRSTVISIBLECHAR, 0);
Overtype

Code: Select all

SendMessage(hMainWnd, AKD_GETFRAMEINFO, FI_OVERTYPE, (LPARAM)NULL)
Folds
Тут

Code: Select all

            if (hFoldsStack=(HSTACK *)SendToDoc(lpFrame->ei.hDocEdit, lpFrame->ei.hWndEdit, AEM_GETFOLDSTACK, 0, 0))
            {
              if (hFoldsStack->first)
              {
                if (nSize=GetCollapsedFoldsString(hFoldsStack, NULL))
                {
                  if (wszCoderFolds=(wchar_t *)GlobalAlloc(GPTR, nSize * sizeof(wchar_t)))
                    nSize=GetCollapsedFoldsString(hFoldsStack, wszCoderFolds);
                }
              }
            }
...
int GetCollapsedFoldsString(HSTACK *hFoldsStack, wchar_t *wszString)
{
  AEFOLD *lpFold;
  int nFoldCount=0;
  int nSize=0;

  for (lpFold=(AEFOLD *)hFoldsStack->first; lpFold; lpFold=AEC_NextFold(lpFold, !lpFold->bCollapse))
  {
    ++nFoldCount;

    if (lpFold->bCollapse)
    {
      nSize+=xitoaW(nFoldCount, wszString?wszString + nSize:NULL);

      if (wszString) *(wszString + nSize)=L',';
      ++nSize;
    }
  }
  if (nSize) --nSize;

  if (wszString)
  {
    *(wszString + nSize)=L'\0';
    return nSize;
  }
  return nSize + 1;
}

Posted: Tue Jan 06, 2015 9:43 pm
by Andrey_A_A
хранит флаги не в формате внешнего вызова Coder плагина
У меня есть скрипт, который добавляет файл в заданную сессию и важна маркировка. Как же быть?

И конечно совершенно непонятно с кодом Folds
Похожих примеров, из того, что вы написали нет ни в одном скрипте...
HSTACK, AEFOLD ...
Можно ли сделать код рабочим на js, чтобы потом можно для себя на vbs переложить?

Posted: Wed Jan 07, 2015 6:28 am
by Instructor
Andrey_A_A wrote:Как же быть?
Просто прописывать в том, как хранится.

Флаги внешнего вызова:

Code: Select all

#define MARKFLAG_MATCHCASE 0x1
#define MARKFLAG_REGEXP    0x2
#define MARKFLAG_WHOLEWORD 0x4
Флаги хранения:

Code: Select all

#define AEHLF_MATCHCASE 0x00000001
#define AEHLF_WHOLEWORD 0x00000002
#define AEHLF_REGEXP    0x10000000
Похожих примеров, из того, что вы написали нет ни в одном скрипте...
Можно посмотреть как перебирать элементы кучи, например, в OpenClosedRecentFile.js.