Scripts discussion (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Skif_off
Обойти в цикле все открытые вкладки и сделать вызов типа такого:
Call("Coder::Settings", 1, "cpp")

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

Post by Skif_off »

opk44
Это понятно, не нашел скрипта, в котором обходятся все вкладки, а с нуля не напишу.

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

Post by KDJ »

Skif_off

Code: Select all

// Set coder theme for all tabs
//
// Usage:
// Call("Scripts::Main", 1, "CoderThemeAllTabs.js") - without argument - restore default themes
// Call("Scripts::Main", 1, "CoderThemeAllTabs.js", "EXTENSION")
//
// "EXTENSION" argument can be:
//   "cpp", "js", "vbs", ...
//   "?" - no theme
//   ""  - use theme for unknown files

var hMainWnd = AkelPad.GetMainWnd();
var nTabs    = AkelPad.SendMessage(hMainWnd, 1291 /*AKD_FRAMESTATS*/, 0 /*FWS_COUNTALL*/, 0);
var lpFrame  = AkelPad.SendMessage(hMainWnd, 1290 /*AKD_FRAMEFINDW*/, 1 /*FWF_CURRENT*/, 0);
var sExt;

if (WScript.Arguments.length)
  sExt = WScript.Arguments(0);

AkelPad.SendMessage(hMainWnd, 11 /*WM_SETREDRAW*/, false, 0);

for (var i = 0; i < nTabs; ++i)
{
  lpFrame = AkelPad.SendMessage(hMainWnd, 1290 /*AKD_FRAMEFINDW*/, 9 /*FWF_TABNEXT*/, lpFrame);
  AkelPad.SendMessage(hMainWnd, 1285 /*AKD_FRAMEACTIVATE*/, 0, lpFrame);
  AkelPad.Call("Coder::Settings", 1, sExt);
}

AkelPad.SendMessage(hMainWnd, 11 /*WM_SETREDRAW*/, true, 0);
AkelPad.SystemFunction().Call("User32::InvalidateRect", AkelPad.GetEditWnd(), 0, 1);
Last edited by KDJ on Sat Feb 01, 2014 7:51 pm, edited 1 time in total.

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

Skif_off wrote:...с нуля не напишу...
1. Тогда корректнее формулируйте вопрос (next time).
2. У меня здесь, вероятнее всего, не самый красивый код, но все же работает:

Code: Select all

// Usage:
// Call("Scripts::Main", 1, "MyScript.js")
// 
// Установить синтакс.тему во всех открытых вкладках
// 
var WM_COMMAND=273;
var hEditWnd;
var IDM_WINDOW_FRAMENEXT=4316;
var hMainWnd=AkelPad.GetMainWnd();
var hEditWndStart=AkelPad.GetEditWnd();
// обойдем в цикле все открытые вкладки и зададим новую синт.тему (cpp)
do
   {
     AkelPad.SendMessage(hMainWnd, WM_COMMAND, IDM_WINDOW_FRAMENEXT, 0);   // переходим к следующей вкладке
     hEditWnd=AkelPad.GetEditWnd();   // и берем ее хэндл
     AkelPad.Call("Coder::Settings", 1, "cpp");   // красим вкладку
   }
   while (hEditWnd != hEditWndStart);   // т.е. пока не вернёмся к вкладке с которой начали
Тут все "в лоб" без запроса на выбор темы. Т.е. если нужно вместо "cpp" какой-нибудь "lua", то исправлять придется прямо в коде.
3. Я не специалист и мои советы в этом вопросе немного стОят, но лично для меня большим подспорьем был "Test.js" из основного пакета. Попробуйте и вы с него начать "горшки обжигать".

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

Post by Skif_off »

KDJ
opk44
Большое спасибо, попробую разобраться.
opk44 wrote:3. ...лично для меня большим подспорьем был "Test.js" из основного пакета. Попробуйте и вы с него начать "горшки обжигать".

Еще Scripts-Rus.txt смотрел, но для меня проблема так знакомиться с языком, лучше всего понимаю, когда формулирую вопрос и получаю пример кода, но тогда просто задолбаю окружающих :)
+ усугубляет низкий уровень мотивации - почти все, что нужно, уже написано (ну, кроме декодирования Quoted-Printable, сделал костылем: ChangeSelInClipboard.js от Instructor и скрипт AutoIt).

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

Post by Instructor »

Изменено: объединение последовательно идущего текста с одинаковой подсветкой (подсветка разделителями txt.coder).
Изменено: параметр "XHTML" на "BR".
Изменено: параметр "Format" теперь по умолчанию "html".
Добавлено: параметр "InfoSize".
Исправлено: параметр "Enclose" и текст содержащий символ $ (>>>).

CodePoster.js v2.2

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:Изменено: объединение последовательно идущего текста с одинаковой подсветкой (подсветка разделителями txt.coder).
О, здорово.
Но вот фон не объединяется, если в *.txt подсветить слово чем-нибудь типа

Code: Select all

Call("Coder::HighLight", 2, 0, "#BCF3BC", 1, 0, -1)

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

Post by Instructor »

Исправлено: объединение последовательно идущего текста с одинаковой подсветкой фона (для -Strict=true).

CodePoster.js v2.3

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

Post by KDJ »

AkelPadDocsView.js
Added: preview files AkelHelp-Eng.htm and AkelHelp-Rus.htm.

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

Post by KDJ »

LineBoardRClickPanel.js
Script adapted for LineBoard plugin v11.2.

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

Post by KDJ »

AkelPadManualSettings.js
Updated description of AkelUpdaterOptions for AkelUpdater v4.0.

Offline
Posts: 269
Joined: Mon Jun 20, 2011 8:33 am
Location: Электросталь

Post by yozhic »

Instructor
Что-то у меня DrawLine.js в 4.8.7 перестал рисовать :( В 4.8.6 рисовал.

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

Post by Instructor »

Изменено: требуется AkelPad 4.8.7 или выше.

DrawLine.js v1.2

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

Post by Instructor »

Добавлено: параметры "FromPage", "ToPage", "AddFlags".
Добавлено: параметры "Copies", "Collate", которые будут работать в релизе AkelPad 4.8.8 или выше.

PrintAll.js v1.3

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

yozhic,
Version v1.0
- работает на 4.8.7
Locked