Scripts discussion (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

jsBeautifier.js
Updated:
https://github.com/einars/js-beautify/c ... 69ff16fcf1
https://github.com/einars/js-beautify/c ... c4b7ab303a
Fixed bug of JScript in WSH with string.split(regexp) ("\n\n\n|".split(/\n/).length == 1) – empty lines in comments are wrongly stripped.

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

Post by KDJ »

EnumTopLevelWindows_function.js
Changed script name for EnumerateWindows_functions.js
Added function EnumChildWindows().

Adapted the script WindowsList.js

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

Post by KDJ »

EnumerateWindows_functions.js
In the function EnumChildWindows(), changed property name from "Enable" to "Enabled".

WindowsList.js
Added: child windows list.

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

Post by KDJ »

Added the script FontDialogMonospace.js

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

Post by KDJ »

WindowsList.js
Changed: after calling the functions Maximize, Restore and Center for another window, WindowsList script window remains in the foreground.
Fixed: Center function.

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

Небольшие, но приятные улучшения:
selCompleteLine.js - теперь работает не со строками, отображаемыми редактором, а с реальными строками, ограниченными \r /благодарности Instructor'у за GetOffset/;
InsertBefore.js - добавлена вставка в текущую позицию курсора.

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

Post by FeyFre »

KDJ, while trying to reproduce bug reported by You in Bugs topic using WindowsList.js, AP crashed(and I things it is script's fault).

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

Post by Instructor »

Infocatcher
toggleComments.js 0.4.0
Если закомментировать и раскомментировать следующим вызовом:

Code: Select all

-"toggleComments.js" Call("Scripts::Main", 1, "toggleComments.js", "-method=0 -addSpaces=false -preferLineComments=true")
то пробелы в начале строк уменьшаются на одну штуку.

Хотел комментировать

Code: Select all

           if (hbrTab=CreateSolidBrush(hlp.dwActiveBk))
           {
             FillRect(to.hDC, &rcSpace, hbrTab);
             DeleteObject(hbrTab);
           }
как

Code: Select all

           //if (hbrTab=CreateSolidBrush(hlp.dwActiveBk))
           //{
           //  FillRect(to.hDC, &rcSpace, hbrTab);
           //  DeleteObject(hbrTab);
           //}
и полагал что параметр -lineCommentsAtStart=false предназначен для этого, однако результат после вызова не изменился.

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

Post by opk44 »

Instructor wrote:то пробелы в начале строк уменьшаются на одну штуку.
Не воспроизводится. Проверял на версии 0.3.7 и 0.4.0 (для расширений c/js/sql).

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

Post by Infocatcher »

Instructor wrote:то пробелы в начале строк уменьшаются на одну штуку.
А вот с табами такой проблемы нет. :)
Надо добавить к аргументам -removeSpaces=false

Хотя в данном случае удалять пробелы вообще не надо (потому как «//if» без пробелов), доработал: toggleComments.js.
Instructor wrote:и полагал что параметр -lineCommentsAtStart=false предназначен для этого, однако результат после вызова не изменился.
Этот параметр влияет только на добавление комментариев. При true будет вот так:

Code: Select all

//           if (hbrTab=CreateSolidBrush(hlp.dwActiveBk))
//           {
//             FillRect(to.hDC, &rcSpace, hbrTab);
//             DeleteObject(hbrTab);
//           }

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

Post by Instructor »

Infocatcher wrote:При true будет вот так...
Посмотрел "-lineCommentsAtStart=false" оказывается он чаще работает, чем не работает :)

Пример нерабочего комментирования:
http://akelpad.cvs.sourceforge.net/view ... c?view=log

Ревизия 1.172. Выделяем:

Code: Select all

            if (hlp.dwActiveBk != hlp.dwDefaultBk)
            {
              //Fill tab space
              rcSpace.left=(int)(to.ptFirstCharInLine.x + to.nDrawLineWidth);
              rcSpace.top=(int)to.ptFirstCharInLine.y;
              rcSpace.right=rcSpace.left + nCharWidth;
              rcSpace.bottom=rcSpace.top + ae->ptxt->nCharHeight;

              if (hbrTab=CreateSolidBrush(hlp.dwActiveBk))
              {
                FillRect(to.hDC, &rcSpace, hbrTab);
                DeleteObject(hbrTab);
              }
            }
в файле AkelEdit.c и пытаемся вызвать

Code: Select all

-"toggleComments.js" Call("Scripts::Main", 1, "toggleComments.js", "-method=0 -addSpaces=false -preferLineComments=true -lineCommentsAtStart=false")
в результате комментарии размещаются в начале строк. Причем такое поведение во всей функции "void AE_Paint(AKELEDIT *ae)".

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

Post by opk44 »

Instructor wrote:Пример нерабочего комментирования:...
Похоже "проблема" скрипта в строке 12641

Code: Select all

     //Fill tab space
Т.е. если выделенный блок уже содержит строку с комментарием, скрипт действительно при раскоментировании удаляет по одному лишнему пробелу по всему блоку.

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

Post by Infocatcher »

Instructor wrote:в результате комментарии размещаются в начале строк.
Угу, комментирование блока с комментариями не совсем доделано. :)

Code: Select all

		var hasLineCmmPattern = new RegExp("(^|\\r\\n|\\n|\\r)([\\t ]*)" + this.escapeRegExp(cmmLine));
		var atStart = hasLineCmmPattern.test(this.exclude(block))
			? true
			: this.lineCmmAtStart;
Если это убрать, то надо будет дорабатывать удаление комментариев. То есть чтобы можно было раскомментировать к исходному состоянию, например, такое:

Code: Select all

	if(x) {
		//f();
		y();
	}
Комментируем:

Code: Select all

	if(x) {
		////f();
		//y();
	}
Сейчас при удалении все комментирование снимется.

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

Post by KDJ »

FeyFre wrote:KDJ, while trying to reproduce bug reported by You in Bugs topic using WindowsList.js, AP crashed(and I things it is script's fault).
I do not see the error in the script. Help me locate it.

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

Post by Infocatcher »

Infocatcher wrote:Угу, комментирование блока с комментариями не совсем доделано. :)
Вроде, так лучше: toggleComments.js

Например, теперь можно вот так:

Code: Select all

//f();
g();
=>

Code: Select all

////f();
//g();
И обратно.

При этом проверяется, что останется, если удалить только один набор комментирующих символов:

Code: Select all

///f();
//g();
=>

Code: Select all

f();
g();
(сработает старый алгоритм)
Locked