Log plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor wrote:Добавлено: параметр EXITCODE во внешний вызов с кодом 3 - указатель на переменную, которая получает код возврата запущенного приложения (Log::Output).
Подскажите, пожалуйста, как его получить?

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

Post by Instructor »

Skif_off

Code: Select all

WScript.Echo(ExecWait("ping akelpad.sourceforge.net"));

function ExecWait(pCmd)
{
  AkelPad.Call("Log::Output", 1, pCmd);
  while (GetExecState())
    WScript.Sleep(100);
  return GetExecExitCode();
}

function GetExecState()
{
  var lpState;
  var nState=0;

  if (lpState=AkelPad.MemAlloc(4 /*sizeof(DWORD)*/))
  {
    AkelPad.Call("Log::Output", 3, lpState);
    nState=AkelPad.MemRead(lpState, 3 /*DT_DWORD*/);
    AkelPad.MemFree(lpState);
  }
  return nState;
}

function GetExecExitCode()
{
  var lpExitCode;
  var nExitCode=0;

  if (lpExitCode=AkelPad.MemAlloc(4 /*sizeof(DWORD)*/))
  {
    AkelPad.Call("Log::Output", 3, 0, 0, 0, 0, lpExitCode);
    nExitCode=AkelPad.MemRead(lpExitCode, 3 /*DT_DWORD*/);
    AkelPad.MemFree(lpExitCode);
  }
  return nExitCode;
}

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Большое спасибо.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
При вызове Call("Log::Output", 1) из скрипта

Code: Select all

AkelPad.Call("Log::Output", 1, "\"" + TidySource + "\" \"" + pFile + "\" " + pParams, "", "(?-s)^([^\(]*\()(\d+)(\) : )", '/FILE="' + pFile + '" /GOTOLINE=\2:1', -1, -1, 8194);
в панели вывода не работает прыжок к строке с ошибкой, но при вызове из меню или тулбара

Code: Select all

-"AutoIt Tidy" Call("Log::Output", 1, `"%a\AkelFiles\Tools\AutoIt3Tidy\TidySource.exe" "%f" /NoGui /f1 /v0 /s1 /l1`, "", "(?-s)^([^\(]*\()(\d+)(\) : )", '/FILE="%f" /GOTOLINE=\2:1', -1, -1, 8194)
вполне работает.
Так и должно быть или есть какой-то нюанс?

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

Post by Instructor »

Skif_off
"(?-s)^([^\\(]*\\()(\\d+)(\\) : )"

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Спасибо, что-то у меня с AutoItToolsLog.js это уже третий или четвёртый раз :))

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Возможно ли прочитать текст из панели вывода? Нашёл этот пост подозреваю, после получения дескриптора окна вывода можно. Может быть, какие-то скрипты уже это делают?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Skif_off
That is example:

Code: Select all

AkelPad.MessageBox(AkelPad.GetMainWnd(), GetOutputWindowText(), "Log output text", 64 /*MB_ICONINFORMATION*/);

function GetOutputWindowText()
{
  var lpWnd;
  var hWnd;
  var nTextLen;
  var lpText;
  var sText="";

  if (lpWnd=AkelPad.MemAlloc(_X64?8:4 /*sizeof(HWND)*/))
  {
    AkelPad.Call("Log::Output", 2, lpWnd);
    if (hWnd=AkelPad.MemRead(lpWnd, 2 /*DT_QWORD*/))
    {
      if (nTextLen=AkelPad.SendMessage(hWnd, 14 /*WM_GETTEXTLENGTH*/, 0, 0))
      {
        if (lpText=AkelPad.MemAlloc((nTextLen + 1) * 2))
        {
          AkelPad.SendMessage(hWnd, 13 /*WM_GETTEXT*/, nTextLen + 1, lpText);
          sText = AkelPad.MemRead(lpText, 1 /*DT_UNICODE*/);
          AkelPad.MemFree(lpText);
        }
      }
    }
    AkelPad.MemFree(lpWnd);
  }
  return sText;
}

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

KDJ
Big thanks, works fine.

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

Post by VladSh »

Instructor
В настройках имеется "Псевдоним для темы Coder", но весь этот механизм работает как-то непонятно (выбивается из общепринятого). При указании какой-то темы, цвета работают только если включена эта тема, а если сменить тему, то цвета сбрасываются на дефолтные.
Можно ли как-то переделать этот механизм по аналогии с другими плагами, чтобы цвета подхватывались из текущей темы?
В принципе-то и это поле можно оставить: если есть название темы в нём, тогда при любой теме цвета берутся оттуда, а если нет, - согласно указанным в специальных цветовых переменных для плага. И чтобы при смене темы цвета менялись налету.

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

Post by Instructor »

Добавлено: интерактивное применение новой темы Coder плагина.

Added: interactive applying of the new Coder plugin theme.


Log plugin v5.1

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

Post by VladSh »

Instructor wrote:Добавлено: интерактивное применение новой темы Coder плагина.
Если это изменение по предыдущему моему сообщению, то как его задействовать (никаких изменений, по сравнению с предыдущей версией, я не замечаю)?

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

Post by Instructor »

VladSh wrote:(никаких изменений, по сравнению с предыдущей версией, я не замечаю)
А надо бы :)

Если указан псевдоним для Coder плагина, то после смены темы в Coder плагине, эта тема применяется к окну Log плагина. Насколько понял об этом речь шла в вашем сообщении.

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

Post by VladSh »

Instructor
Рад бы :)

1. Запускаю AkelPad (у меня там установлена собственная тема на основе Bespin, эта же тема указана в настройках "Псевдоним для Coder плагина").
Запускаю консоль лога - всё прекрасно - тема применилась (это было и до обновления).
2. Меняю тему на любую другую, окошко лога становится белым (тема Coder сбросилась на дефолтную).
3. Меняю тему ещё раз, возвращая ту, что была прежде (и указана в настройках "Псевдоним..."), - ничего не произошло, окошко консоли лога также остаётся белым.
И далее при изменении тем оно уже не меняется.
Чтобы поменялось, надо закрыть консоль и открыть её снова.

В идеале что бы хотелось - отказаться от настройки "Псевдоним ...", и далее при смене темы и незакрытом окошке лога цвета применялись бы налету, в соответствии с установленной темой. По аналогии с тем, как сейчас работает окошко фолдинга.


А вообще идеально, чтобы так же работали плаги Explorer и Clipboard.

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

Post by Instructor »

VladSh wrote:(у меня там установлена собственная тема на основе Bespin, эта же тема указана в настройках "Псевдоним для Coder плагина")
Там указывается не тема плагина, а псевдоним, например, ".cpp". Тема же плагина автоматически наследуется от активной (конечно, если нет установленной связи псевдонима с темой).
Post Reply