AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Несколько команд в серии

 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
jumbleview



Joined: 24 Dec 2011
Posts: 5
Location: Bay Area, San Francisco

PostPosted: Sat Dec 24, 2011 7:53 pm    Post subject: Несколько команд в серии Reply with quote

Было бы удобно иметь несколько команд в серии. Например сохранить файл перед Exec. Я не нашел как это сделать.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5513

PostPosted: Sun Dec 25, 2011 11:20 am    Post subject: Reply with quote

Code:
-"Сохранить и выполнить" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105); AkelPad.Command(4251);`)
Back to top
View user's profile Send private message Send e-mail
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Mon Dec 26, 2011 7:57 am    Post subject: Reply with quote

А
Code:
-"Сохранить и выполнить" AkelPad.Command(4105) & AkelPad.Command(4251)

было бы удобнее Smile
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2060
Location: Vinnitsa, Ukraine

PostPosted: Mon Dec 26, 2011 9:00 am    Post subject: Reply with quote

Fr0sT, а может быть просто
Code:
-"Сохранить и выполнить" Command(4105) & Command(4251)
?
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
VladSh



Joined: 29 Nov 2006
Posts: 2702
Location: Киев, Русь

PostPosted: Mon Dec 26, 2011 9:17 am    Post subject: Reply with quote

С жиру бесимся Mr. Green
Back to top
View user's profile Send private message Visit poster's website
FeyFre



Joined: 07 Aug 2007
Posts: 2060
Location: Vinnitsa, Ukraine

PostPosted: Mon Dec 26, 2011 10:35 am    Post subject: Reply with quote

Не, фиксим невнимательности друг-друга Smile
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Fr0sT



Joined: 24 Jul 2007
Posts: 876

PostPosted: Mon Dec 26, 2011 11:13 am    Post subject: Reply with quote

FeyFre, ага, точно! Понедельник-с... Smile
В Опере так сделано, очень круто: можно вешать на один пункт хоть сто действий.
Back to top
View user's profile Send private message
jumbleview



Joined: 24 Dec 2011
Posts: 5
Location: Bay Area, San Francisco

PostPosted: Tue Jan 03, 2012 5:33 am    Post subject: Reply with quote

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
View user's profile Send private message
DV



Joined: 16 Nov 2006
Posts: 856
Location: Kyiv, Ukraine

PostPosted: Tue Jan 03, 2012 2:19 pm    Post subject: Reply with quote

Можно бы расширить синтаксис AkelPad.Command до
Code:
AkelPad.Command(4105, 4251, ...);
Back to top
View user's profile Send private message
jumbleview



Joined: 24 Dec 2011
Posts: 5
Location: Bay Area, San Francisco

PostPosted: Tue Jan 03, 2012 3:13 pm    Post subject: Reply with quote

DV wrote:
Можно бы расширить синтаксис AkelPad.Command до
Code:
AkelPad.Command(4105, 4251, ...);


Это не поможет. Я имел в виду объединение комманд разного уровня: command & call & exec
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5513

PostPosted: Tue Jan 03, 2012 6:41 pm    Post subject: Reply with quote

jumbleview
Code:
-"Сохранить и выполнить" Call("Scripts::Main", 1, "EvalCmd.js", `AkelPad.Command(4105); AkelPad.Exec("mspaint.exe");`)

Читаем Scripts-Rus.txt.
Back to top
View user's profile Send private message Send e-mail
jumbleview



Joined: 24 Dec 2011
Posts: 5
Location: Bay Area, San Francisco

PostPosted: Wed Jan 04, 2012 5:01 am    Post subject: Reply with quote

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
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5513

PostPosted: Wed Jan 04, 2012 6:10 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
jumbleview



Joined: 24 Dec 2011
Posts: 5
Location: Bay Area, San Francisco

PostPosted: Wed Jan 04, 2012 4:37 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group