Page 37 of 99

Posted: Tue Dec 16, 2014 1:38 pm
by Andrey_A_A

Code: Select all

Презабавнейшие глюки с иконками тулбаров на 4.9.1
Skif_off
Не удивительно, когда обновление влияет на все написанное...
После каждого обновления версии AkelPad приходится скрипты подправлять/переделывать (уже в который раз). У себя OpenCoderExtFile.vbs подкорректоровал.

Posted: Tue Dec 16, 2014 1:42 pm
by KDJ
Skif_off
1. Remove:

Code: Select all

var nW = "";
var nH = "";

if (fso.FileExists(sTemplatesFile))
{
  nW = 15;
  nH = 15;
}
else
{
  nW = 0;
  nH = 0;
}

2. Replace nW and nH with 15.
3. Callback function:

Code: Select all

function DialogCallback(hWnd, uMsg, wParam, lParam)
{
  var nLowParam;
  var i;

  if (uMsg == 272 /*WM_INITDIALOG*/)
  {
    aDlg[IDTEXTCB].HWNDE = GetComboBoxEditWnd(aDlg[IDTEXTCB].HWND);
    //fill ComboBox
    for (i = 0; i < aHex.length; ++i)
      AkelPad.SendMessage(aDlg[IDTEXTCB].HWND, 323 /*CB_ADDSTRING*/, 0, aHex[i]);

    AkelPad.SendMessage(aDlg[IDTEXTCB].HWND, 334 /*CB_SETCURSEL*/, 0, 0);

    if (! fso.FileExists(sTemplatesFile))
      oSys.Call("User32::ShowWindow", aDlg[IDTEMPLATE].HWND, 0 /*SW_HIDE*/);
  }

  else if (uMsg == 6 /*WM_ACTIVATE*/)
  {
    if (wParam)
      oSys.Call("User32::RegisterHotKey", hWnd, 1, 0, 0x70 /*VK_F1*/);
    else
      oSys.Call("User32::UnregisterHotKey", hWnd, 1);
  }

  else if (uMsg == 786 /*WM_HOTKEY*/)
  {
    if ((wParam == 1) && oSys.Call("User32::IsWindowVisible", aDlg[IDTEMPLATE].HWND))
      Templates();
  }

  else if (uMsg == 273 /*WM_COMMAND*/)
  {
    nLowParam = wParam & 0xFFFF;

    if (nLowParam == IDOKB)
    {
      if (Action(hWnd))
        oSys.Call("User32::EndDialog", hWnd, 0);
    }

    else if (nLowParam == IDTEMPLATE)
      Templates();

    else if ((nLowParam == IDCANCELB) || (nLowParam == 2 /*IDCANCEL*/))
      oSys.Call("User32::EndDialog", hWnd, 0);
  }
}

Posted: Tue Dec 16, 2014 4:54 pm
by Skif_off
KDJ
Thank you :)

InsertUnicodeChar.js
Fixed: minor bugs.
Added: templates + hotkey for menu.

Posted: Tue Dec 16, 2014 5:02 pm
by VladSh
Skif_off wrote:набросал аналог, если кому пригодиться:OpenCoderFile.js
Это не оно: OpenCoderParamsFile.js?

Posted: Tue Dec 16, 2014 5:24 pm
by Skif_off
VladSh
Похоже, но не помню, почему остановился на OpenCoderExtFile.vbs. А это
// Если в аргументах не передано расширение файла, то открывается файл параметров, соответствующий текущему файлу;
// текущий файл файл должен быть сохранён
просто неудобно. Для GetSyntaxFile() всё это не нужно: не обязательно сохранять в файл, никаких расширений и их поисков, можно принудительно сменить подсветки на любую другую и скрипт всё равно откроет текущую.
И срабатывает быстрее :) Непривычно пока.

Posted: Tue Dec 16, 2014 8:00 pm
by yozhic
Skif_off
Добрый скрипт получился. Ещё маленькое предложение для полноты реализации: в меню добавить пункт Edit template (открывающий шпору во вкладке, к примеру).

Posted: Tue Dec 16, 2014 8:15 pm
by KDJ
Skif_off
InsertUnicodeChar_templates.tsv
This file should be rather named InsertUnicodeChar_templates.csv
http://en.wikipedia.org/wiki/Comma-separated_values
http://en.wikipedia.org/wiki/Tab-separated_values

Posted: Tue Dec 16, 2014 8:28 pm
by Skif_off
KDJ
Thank you, I forgot to check the expansion.

yozhic
Проверяю, что получилось, чуть позже выложу.

Posted: Tue Dec 16, 2014 8:47 pm
by yozhic
Skif_off
Про SDI – в том же окне будет открываться, что поделаешь. В OpenCoderFile.js и OpenCoderParamsFile.js такое же поведение (при SDI .coder открывается в том же окне, вместо текущего файла), и нормально. Через Recent Files назад по истории потом переходим и ладно.
-------
О, пока писал уже вроде и неактуально стало. Ну да, ладно, пусть остаётся.

Posted: Tue Dec 16, 2014 9:11 pm
by Skif_off
yozhic wrote:В OpenCoderFile.js и OpenCoderParamsFile.js такое же поведение (при SDI .coder открывается в том же окне, вместо текущего файла), и нормально. Через Recent Files назад по истории потом переходим и ладно.
Вот этого не учёл, SDI и Recent Files не пользуюсь. Ладно, сделал для всех трёх, проверку режима пока закомментировал (строки 220-222). Проверять состояние опции SingleOpenProgram и звать ForceNewInstance.js при необходимости неудобно.

InsertUnicodeChar.js
Fixed: replace .tsv to .csv.
Added: new item Edit for templates.

Posted: Tue Dec 16, 2014 11:10 pm
by Andrey_A_A
Instructor
Call("Scripts::Main", 1, "SelectRange.js", `-Range="3-11"`)
Выделения не происходит
Version: 1.1

Posted: Wed Dec 17, 2014 4:57 pm
by VladSh
Skif_off wrote:просто неудобно. Для GetSyntaxFile() всё это не нужно: не обязательно сохранять в файл, никаких расширений и их поисков, можно принудительно сменить подсветки на любую другую и скрипт всё равно откроет текущую.
И срабатывает быстрее Непривычно пока.
На самом деле у меня работает также, т.к. используется то же самый GetSyntaxFile(). Просто коммент от самой первой версии скрипта остался, когда ещё не было возможности из Scripts-плагина получить расширение или псевдоним coder-файла :)
Этот скрипт был реализован до OpenCoderExtFile.vbs.

Отличие моего в том, что кроме всего того, он ещё и может открыть текущее слово, если оно есть в coder-файле (обычно в секции Words или Blocks), т.е. спозиционироваться на нём.

P.S. Спасибо за коммент; отредактировал.

Posted: Wed Dec 17, 2014 5:09 pm
by VladSh
Instructor
Почему-то перестали upload'иться архивы со скриптами, выдаёт ошибку:
There was an error uploading VladSh.zip, please try again!

Posted: Wed Dec 17, 2014 6:11 pm
by Skif_off
VladSh

Расширение ищется в OpenCoderExtFile.vbs. Заодно нашёл ошибку у себя :) Проверяю запуск Coder::HighLight, хотя для срабатывания GetSyntaxFile() достаточно и Coder::CodeFold, например, но и AkelPad сам ругнётся, если не запущена хотя бы одна функция плага.
Странно, что проглядел OpenCoderParamsFile.js, вроде всё просматривал. Тогда да, смысла в моём наброске нет, а вот прикручивание AkelPad.TextFind - удобна фича. Только объединю, наверное, в один :)

Posted: Wed Dec 17, 2014 8:01 pm
by VladSh
Skif_off
У меня Coder::CodeFold отключено, при включённом Coder::HighLight всё работает, а без него просто скрипт не имеет смысла.
Что объединять? Разве что проверку на вкючённость Coder::HighLight добавить?

Добавлено:
Начал добавлять проверку на загруженность функций плагина, потом понял, что в этом случае это ненужно, т.к. человек будет клацать и ничего не будет происходить, а так хоть узнает, что плаг какой-то не запущен (или отсутствует).
Заодно подправил логику скрипта. Ещё раз спасибо!