Что хотелось бы добавить в AkelPad (3)

Russian main discussion
  • Author
  • Message
Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Ну дык вам и советуют: сделай скрипт который будет делать нужное тебе при выгрузке. Засуньте его в автозапуск и радуйтесь. Просто городить ещё для выгрузки те же огороды, который и для запуска особо то и нету - очень накладно и тяжело.

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Ну дык вам и советуют:
FeyFre, я что у Вас запрашиваю? Вы что-ли автор?... Засуньте Ваши советы в авто... и радуйтесь. Вам я знаю всё тяжело...
Разве скрипт который посоветовал KDJ работает по нажатию на кнопку закрытия окна [X]?
Ожидаю ответа от Instructor'a...

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

Post by Instructor »

Andrey_A_A
См. Работа скриптов в автоматическом режиме

Code: Select all

//// Execute on program close.

var hMainWnd=AkelPad.GetMainWnd();
var oSys=AkelPad.SystemFunction();
var hScript;

if ((hScript=AkelPad.ScriptHandle(WScript.ScriptName, 3 /*SH_FINDSCRIPT*/)) && AkelPad.ScriptHandle(hScript, 13 /*SH_GETMESSAGELOOP*/))
{
  //Script is running, second call close it.
  AkelPad.ScriptHandle(hScript, 33 /*SH_CLOSESCRIPT*/);
}
else
{
  if (AkelPad.WindowSubClass(1 /*WSC_MAINPROC*/, MainCallback, 0x10 /*WM_CLOSE*/))
  {
    //Allow other scripts running and unlock main thread from waiting this script.
    AkelPad.ScriptNoMutex(0x3 /*ULT_UNLOCKSCRIPTSQUEUE|ULT_UNLOCKPROGRAMTHREAD*/);

    //Message loop
    AkelPad.WindowGetMessage();

    AkelPad.WindowUnsubClass(1 /*WSC_MAINPROC*/);
  }
}

function MainCallback(hWnd, uMsg, wParam, lParam)
{
  if (uMsg == 0x10 /*WM_CLOSE*/)
  {
    AkelPad.Exec("Notepad.exe");
  }
}

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Instructor, спасибо, принцип понятен.

Offline
Posts: 4
Joined: Sat May 24, 2014 8:38 am

Post by Itons »

Здравствуйте!

Я бы хотел предложить несколько изменений в AcelPad:

1) Чтобы окна поиска, замены и перехода на другую строку автоматически менялись в случае если уже открыто какое-то из этих окон. А то сейчас если жму кнопку открытия окна "Заменить" при открытом окне "Найти", то она не срабатывает и нужно сначала закрыть окно поиска, а потом еще раз нажать кнопку заменить.

2) Очень полезна функция разделения окна, но изначально она разделяет окно на 4 части. В большинстве случаев необходимо горизонтально разделить окно на две части, а с четырьмя частями наоборот неудобно работать. Сначала я подумал, что можно разделять только на 4 части, потом при случайном щелчке по разделителю, появилось разделение окна на 2 части. Может быть стоит сделать непосредственно подпункты разделения окна типа: "Горизонтальный разделитель окна", "Вертикальный разделитель окна", "Крестообразное разделение окна" или что-то наподобие?

3) Чтобы выдавалось предупреждение при закрытии окна с несколькими одновременно открытыми вкладками, даже если все они сохранены. Если и не по-умолчанию, то хотя бы чтобы был такой пункт в настройках. А то сейчас часто из-за спешки нажимаю кнопку закрытия, и разом куча открытых документов молча закрывается, приходится все открывать заново.

4) Если выделить текст, расположенный на нескольких строчках, а потом нажать пробел, то к началам строк добавляется пробел. Я же сначала подумал, что это какой-то глюк, текст не заменяется, потом заметил, что добавляются пробелы в начало строк. Не знаю, может быть остальным удобнее так, мне так не очень нравится. Обычно все сложные действия висят на сочетаниях клавиш, а не на одной обычной клавише.

5) Если в AcelPad открыто несколько вкладок и открывается новая пустая вкладка, то если потом открыть какой-нибудь документ, то он открывается в этой новой вкладке. Хотя по-идее он должен был открыться в еще одной новой вкладке.

Еще однажды перестало показываться окно "Поиск завершен" когда я искал что-то, чего не было на странице. Нажимал кнопку "Найти далее" и при этом ничего не происходило. Я не понял из-за чего это произошло, может я что-то сделал не так. Больше такое не повторялось.

В остальном все бесподобно, хоть я и недавно стал использовать новую версию программы. Особенно порадовало появление поиска и замены с регулярными выражениями!!! Всегда о них мечтал. Когда-то очень давно понадобилось открыть 50 мегабайтный файл, попробовал AcelPad и с тех пор пользуюсь только им. Сначала почти не настраивал, использовал из-за его большой скорости открытия файлов, а потом распробовал настройки и оказалось вообще отлично. Сейчас использую его из-за удобства и большой скорости работы.

Огромное спасибо автору программы!

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

Post by Skif_off »

Itons
1) Есть скрипт FindReplaceEx.js.

2) В меню добавьте

Code: Select all

"Разделить вертикально" Command(4213) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 23)
"Разделить горизонтально" Command(4214) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 24)
"Разделить на четыре части" Command(4212) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 22)
3) Можно решить с помощью плагина Sessions.

4) То же самое будет, если нажать Tab. Берете плагин Hotkeys и смотрите тему Как отключить отступ вместо замены?

5) По какой идее? Если новая вкладка без изменений, то ее можно сказать и нет :) И так ведут себя и другие популярные редакторы.

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

Post by Instructor »

Itons
1. Включаем QSearch::DialogSwitcher.

3. См. Exit плагин.

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

Post by Skif_off »

Instructor wrote:1. Включаем QSearch::DialogSwitcher.
Старею, у самого включено :( И про Exit забыл, залогинился исправить...

Offline
Posts: 4
Joined: Sat May 24, 2014 8:38 am

Post by Itons »

>Если новая вкладка без изменений, то ее можно сказать и нет
Зачем же ее до этого специально открывали, если потом она стала не нужной?

Спасибо за советы с плагинами, но я бы не стал отвлекать вопросами как что-либо сделать. Мне показались, что эти варианты изменений сделают AcelPad немного более предсказуемым и удобным.

Еще, предложу добавить в Help способ выделения до начала (Ctrl+Shift+Home) и до конца (Ctrl+Shift+End) текста. Для больших выделений этот способ очень полезен и вряд ли все поголовно о нем знают.

Удачи!

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

Post by Skif_off »

Itons wrote:Зачем же ее до этого специально открывали, если потом она стала не нужной?
Если нет никаких изменений, то формально она как бы и ни к чему. Зайдем с другой стороны - назовите редактор, который делает иначе.
Itons wrote:Спасибо за советы с плагинами, но я бы не стал отвлекать вопросами как что-либо сделать. Мне показались, что эти варианты изменений сделают AcelPad немного более предсказуемым и удобным
Суть удобства AkelPad в его расширяемости: нужен дополнительный функционал - плагины и скрипты в помощь.
Itons wrote:Еще, предложу добавить в Help способ выделения до начала (Ctrl+Shift+Home) и до конца (Ctrl+Shift+End) текста. Для больших выделений этот способ очень полезен и вряд ли все поголовно о нем знают.
Это глобальные сочетания Windows, есть еще Ctrl+Shift+стрелки вправо и влево, собирать все? Перечислены основные

Offline
Posts: 3
Joined: Tue May 27, 2014 8:16 am

Post by olgapet »

1. Сделать кнопки "Да для всех" и "Нет для всех" на вопрос "бинарный, открыть?", а так же для окна "Не возможно открыть" сделать кнопку "Ок для всех".

2. Возможно ли, чтобы при немоноширинном шрифте вертикальный маркер перемещался попиксельно?

_________
метални врати, решетки
Last edited by olgapet on Wed Jun 04, 2014 12:09 pm, edited 2 times in total.

Offline
Posts: 4
Joined: Sat May 24, 2014 8:38 am

Post by Itons »

Itons wrote: Если в AcelPad открыто несколько вкладок и открывается новая пустая вкладка, то если потом открыть какой-нибудь документ, то он открывается в этой новой вкладке. Хотя по-идее он должен был открыться в еще одной новой вкладке.
Что-то я здесь ошибся. Подумал что новый документ открывается в пустой вкладке даже когда активная вкладка это не новая пустая вкладка. А если новый документ открывается в уже открытой пустой вкладке, то хорошо, удобно :)

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Можно ли добавить настройку, чтобы при сохранении нового созданного файла в диалоге сохранения подставлялся тот же каталог, что и у файла во вкладке слева?

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

Post by Instructor »

Cuprum
Можно таким скриптом заменить пункт сохранения:

Code: Select all

var hMainWnd=AkelPad.GetMainWnd();
var lpInitFrame;
var lpFrame;
var pFile;
var pDir;

if (AkelPad.GetEditFile(0) == "")
{
  lpInitFrame=AkelPad.SendMessage(hMainWnd, 1288 /*AKD_FRAMEFIND*/, 1 /*FWF_CURRENT*/, 0);
  lpFrame=lpInitFrame;

  while ((lpFrame=AkelPad.SendMessage(hMainWnd, 1288 /*AKD_FRAMEFIND*/, 10 /*FWF_TABPREV*/, lpFrame)) && lpFrame != lpInitFrame)
  {
    pFile=AkelPad.MemRead(AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 32 /*FI_FILEW*/, lpFrame), 1 /*DT_UNICODE*/);
    if (!(pDir=GetFileDir(pFile)))
      continue;
    AkelPad.SendMessage(hMainWnd, 1219 /*AKD_SETMAININFO*/, 281 /*MIS_LASTDIR*/, AkelPad.MemStrPtr(pDir));
    break;
  }
}
AkelPad.Command(4105 /*IDM_FILE_SAVE*/);

function GetFileDir(pFile)
{
  var nOffset=pFile.lastIndexOf("\\");

  if (nOffset != -1)
    return pFile.substr(0, nOffset);
  return "";
}

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Instructor
Уже опробовал ) Спасибо!
Post Reply