| View previous topic :: View next topic |
| Author |
Message |
jumbleview
Joined: 24 Dec 2011 Posts: 5 Location: Bay Area, San Francisco
|
Posted: Sat Dec 24, 2011 7:53 pm Post subject: Несколько команд в серии |
|
|
| Было бы удобно иметь несколько команд в серии. Например сохранить файл перед Exec. Я не нашел как это сделать. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Sun Dec 25, 2011 11:20 am Post subject: |
|
|
| Code: | | -"Сохранить и выполнить" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105); AkelPad.Command(4251);`) |
|
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Mon Dec 26, 2011 7:57 am Post subject: |
|
|
А
| Code: | | -"Сохранить и выполнить" AkelPad.Command(4105) & AkelPad.Command(4251) |
было бы удобнее  |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1893 Location: Vinnitsa, Ukraine
|
Posted: Mon Dec 26, 2011 9:00 am Post subject: |
|
|
Fr0sT, а может быть просто | Code: | | -"Сохранить и выполнить" Command(4105) & Command(4251) | ? |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2510 Location: Киев, Русь
|
Posted: Mon Dec 26, 2011 9:17 am Post subject: |
|
|
С жиру бесимся  |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1893 Location: Vinnitsa, Ukraine
|
Posted: Mon Dec 26, 2011 10:35 am Post subject: |
|
|
Не, фиксим невнимательности друг-друга  |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 850
|
Posted: Mon Dec 26, 2011 11:13 am Post subject: |
|
|
FeyFre, ага, точно! Понедельник-с...
В Опере так сделано, очень круто: можно вешать на один пункт хоть сто действий. |
|
| Back to top |
|
 |
jumbleview
Joined: 24 Dec 2011 Posts: 5 Location: Bay Area, San Francisco
|
Posted: Tue Jan 03, 2012 5:33 am Post subject: |
|
|
| Instructor wrote: | | Code: | | -"Сохранить и выполнить" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105); AkelPad.Command(4251);`) |
|
Это работает только с exec, определенным в меню "Execute". Я имел в виду "'Exec' from the tool bar". Например я переключаюсь from the Perl to the Python or some DSL. AkelPad дает удобную возможность сделать сколь угодно Icons. К каждой из них можно привязать свою Exec команду. Здорово. Но вот файл сохраняь приходится отдельно. |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 726 Location: Kyiv, Ukraine
|
Posted: Tue Jan 03, 2012 2:19 pm Post subject: |
|
|
Можно бы расширить синтаксис AkelPad.Command до | Code: | | AkelPad.Command(4105, 4251, ...); |
|
|
| Back to top |
|
 |
jumbleview
Joined: 24 Dec 2011 Posts: 5 Location: Bay Area, San Francisco
|
Posted: Tue Jan 03, 2012 3:13 pm Post subject: |
|
|
| DV wrote: | Можно бы расширить синтаксис AkelPad.Command до | Code: | | AkelPad.Command(4105, 4251, ...); |
|
Это не поможет. Я имел в виду объединение комманд разного уровня: command & call & exec |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Tue Jan 03, 2012 6:41 pm Post subject: |
|
|
jumbleview
| Code: | | -"Сохранить и выполнить" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105); AkelPad.Exec("mspaint.exe");`) |
Читаем Scripts-Rus.txt. |
|
| Back to top |
|
 |
jumbleview
Joined: 24 Dec 2011 Posts: 5 Location: Bay Area, San Francisco
|
Posted: Wed Jan 04, 2012 5:01 am Post subject: |
|
|
| Instructor wrote: | jumbleview
| Code: | | -"Сохранить и выполнить" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105); AkelPad.Exec("mspaint.exe");`) |
Читаем Scripts-Rus.txt. |
Почитал. Не нашел как заставить работать переменные %f или %d в этом контексте. Back Slash видимо трактуется как escape character и вычищается. Если задавать путь явным образом используя double back slash все работатет, но смысла в этом немного. Alas... |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4650
|
Posted: Wed Jan 04, 2012 6:10 am Post subject: |
|
|
jumbleview
Можно с новой версией EvalCmd.js | Code: | //// Evaluates an expression passed through command line.
//
// Variables:
// %%f active file
// %%d directory of active file
// %%a AkelPad's directory
//
// Example:
// Call("Scripts::Main", 1, "EvalCmd.js", "AkelPad.SetSel(0, -1);")
//
//
//// Обработать выражение, переданное через командную строку.
//
// Переменные:
// %%f активный файл
// %%d директория активного файла
// %%a директория AkelPad'а
//
// Пример:
// Call("Scripts::Main", 1, "EvalCmd.js", "AkelPad.SetSel(0, -1);")
var pArgLine;
if (pArgLine=AkelPad.GetArgLine())
{
if (/%f|%d|%a/.test(pArgLine))
{
var pFile=AkelPad.GetEditFile(0).replace(/\\/g, "\\\\");
var pFileDir=pFile.substr(0, pFile.lastIndexOf("\\\\"));
var pAkelDir=AkelPad.GetAkelDir().replace(/\\/g, "\\\\");
pArgLine=pArgLine.replace(/%f/g, pFile);
pArgLine=pArgLine.replace(/%d/g, pFileDir);
pArgLine=pArgLine.replace(/%a/g, pAkelDir);
}
eval(pArgLine);
}
|
вызвать так:
| Code: | | -"Сохранить и выполнить" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105); AkelPad.Exec("notepad.exe %%f", "%%d");`) |
|
|
| Back to top |
|
 |
jumbleview
Joined: 24 Dec 2011 Posts: 5 Location: Bay Area, San Francisco
|
Posted: Wed Jan 04, 2012 4:37 pm Post subject: |
|
|
| Instructor wrote: | jumbleview
Можно с новой версией EvalCmd.js | Code: | //// Evaluates an expression passed through command line.
//
// Variables:
// %%f active file
// %%d directory of active file
// %%a AkelPad's directory
//
// Example:
// Call("Scripts::Main", 1, "EvalCmd.js", "AkelPad.SetSel(0, -1);")
//
//
//// Обработать выражение, переданное через командную строку.
//
// Переменные:
// %%f активный файл
// %%d директория активного файла
// %%a директория AkelPad'а
//
// Пример:
// Call("Scripts::Main", 1, "EvalCmd.js", "AkelPad.SetSel(0, -1);")
var pArgLine;
if (pArgLine=AkelPad.GetArgLine())
{
if (/%f|%d|%a/.test(pArgLine))
{
var pFile=AkelPad.GetEditFile(0).replace(/\\/g, "\\\\");
var pFileDir=pFile.substr(0, pFile.lastIndexOf("\\\\"));
var pAkelDir=AkelPad.GetAkelDir().replace(/\\/g, "\\\\");
pArgLine=pArgLine.replace(/%f/g, pFile);
pArgLine=pArgLine.replace(/%d/g, pFileDir);
pArgLine=pArgLine.replace(/%a/g, pAkelDir);
}
eval(pArgLine);
}
|
вызвать так:
| Code: | | -"Сохранить и выполнить" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105); AkelPad.Exec("notepad.exe %%f", "%%d");`) |
|
Спасибо. Теперь заработало... |
|
| Back to top |
|
 |
|