Page 6 of 96

Posted: Sat Oct 08, 2011 5:05 pm
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.

Posted: Sat Oct 15, 2011 12:25 pm
by KDJ
EnumTopLevelWindows_function.js
Changed script name for EnumerateWindows_functions.js
Added function EnumChildWindows().

Adapted the script WindowsList.js

Posted: Sun Oct 16, 2011 11:38 am
by KDJ
EnumerateWindows_functions.js
In the function EnumChildWindows(), changed property name from "Enable" to "Enabled".

WindowsList.js
Added: child windows list.

Posted: Sun Oct 16, 2011 3:40 pm
by KDJ
Added the script FontDialogMonospace.js

Posted: Mon Oct 17, 2011 6:46 pm
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.

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

Posted: Tue Oct 18, 2011 9:40 am
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).

Posted: Tue Oct 18, 2011 2:03 pm
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 предназначен для этого, однако результат после вызова не изменился.

Posted: Tue Oct 18, 2011 3:17 pm
by opk44
Instructor wrote:то пробелы в начале строк уменьшаются на одну штуку.
Не воспроизводится. Проверял на версии 0.3.7 и 0.4.0 (для расширений c/js/sql).

Posted: Tue Oct 18, 2011 3:18 pm
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);
//           }

Posted: Tue Oct 18, 2011 3:29 pm
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)".

Posted: Tue Oct 18, 2011 3:46 pm
by opk44
Instructor wrote:Пример нерабочего комментирования:...
Похоже "проблема" скрипта в строке 12641

Code: Select all

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

Posted: Tue Oct 18, 2011 4:03 pm
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();
	}
Сейчас при удалении все комментирование снимется.

Posted: Tue Oct 18, 2011 5:49 pm
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.

Posted: Tue Oct 18, 2011 7:25 pm
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();
(сработает старый алгоритм)