Page 2 of 97

Posted: Tue Aug 07, 2007 1:07 pm
by VladSh
Подправил сам:
SelCompleteLine.js

Code: Select all

...
var nMinLineIndex = 0;
...
if (nMinSel <= nMaxSel)
...

Re: CommonFunctions

Posted: Wed Aug 08, 2007 9:47 am
by wisgest
VladSh
Функция CorrectFileName убирает только первые вхождения недопустимых символов. Поосоветую такой вариант:

Code: Select all

function CorrectFileName(pFileNameOnly)
{
   return pFileNameOnly.replace(/[\\\/:\*\?"<>\|]/g, "");
}

Posted: Wed Aug 08, 2007 10:16 am
by VladSh
wisgest
Заменил. Спасибо! 8)

EN: Changed CorrectFileName function in CommonFunctions.js.

Posted: Mon Aug 13, 2007 1:16 pm
by Fr0sT
Вынеси знаки коммента как переменные в начало скрипта - тогда можно будет задавать не только С-комменты, но и хтмл и т.д.

Posted: Tue Sep 11, 2007 2:21 pm
by VladSh
Instructor, Отлично, спасибо!
Но DelEmptyLines.js и DelLeadTrailSpaces.js выбрасывает вниз файла - IMHO ненаглядно.

для DelLeadTrailSpaces.js устанавливаю курсор почти туда :) где он стоял до отработки скрипта:

Code: Select all

...
var nSelStart = AkelPad.GetSelStart();
...
...
AkelPad.SetSel(nSelStart, nSelStart);
:idea: Вообще интересно было бы получить номер первого видимого в окне редактирования символа... :D

а для DelEmptyLines.js в начало:

Code: Select all

...
...
AkelPad.SetSel(0, 0);
P.S. По Lines filter приведите кто-нибудь пожалуйста пример использования?! Чего-то по коду не догоняю... :-\

Posted: Thu Jan 17, 2008 5:48 pm
by guest
I can't register to the forum (it always give me an error about username...), so I borrowed this accunt of somebody else(?). sorry&thx.

I modified the SearchReplace.js file to parse the special char in ReplaceWith text box. But it does not parse \xhh and \uhhhh chars yet.

The following is the link to the file:
http://animecap.white.prohosting.com/SearchReplace.js

The file is saved in Unicode LE, otherwise the russian chars will lead to error.

Re: Ещё чуток для меню списка свежих файлов

Posted: Fri Apr 18, 2008 7:56 pm
by koros
VladSh Предлагаю немного модифицировать Ваш скрипт NewFilebyRecent.js
Вместо

Code: Select all

      //Считывание содержимого файла
      var Content = AkelPad.ReadFile(fileName, 0x1|0x2, 0, 0);		//2-й параметр: OD_ADT_BINARY_ERROR|OD_ADT_REG_CODEPAGE
      
 
лучше

Code: Select all

//Считывание содержимого файла 
      /
      var Content=AkelPad.GetSelText();
      if (Content == "") var Content = AkelPad.ReadFile(fileName, 0x1|0x2, 0, 0);                 /2-й параметр: OD_ADT_BINARY_ERROR|OD_ADT_REG_CODEPAGE 

При этом новый файл создается из выделенного текста текущего, а, если ничего не выделено, то из всего текущего файла.

Posted: Mon Apr 21, 2008 11:39 am
by VladSh
koros, у меня этот скрипт создаёт новый файл на основе содержимого файла из списка свежих.
То, что предлагаете Вы, просто делеатся так: выделить текст, затем Ctrl+C, клацнуть на создание нового файла, Ctrl+V.

Posted: Mon Apr 21, 2008 4:10 pm
by koros
VladSh wrote:koros, у меня этот скрипт создаёт новый файл на основе содержимого файла из списка свежих.
То, что предлагаете Вы, просто делеатся так: выделить текст, затем Ctrl+C, клацнуть на создание нового файла, Ctrl+V.
В таком случае вместо Вашего скрипта можно Ctrl+А, затем Ctrl+C, клацнуть на создание нового файла, Ctrl+V :).
В случае использования скрипта я предполагаь пункт в контекстном меню по правой клавиши мыши, или кнопка на тулбаре или хоткей - выделил, клацнул то, на что записан скрипт и получил новый файл с содержимым выделения или НИЧЕГО не выделил и получил то, что предлагаете Вы.
Спасибо за Ваш скрипт, я просто чуть-чуть его модифицировал.

Posted: Mon Apr 21, 2008 5:41 pm
by VladSh
koros, мой скрипт работает при RightClick на каком-нибудь файле из СПИСКА СВЕЖИХ! Т.е. ничего открывать и копировать ненужно.

В том, что предлагаете Вы смысл тоже имеется, но тогда нужно корректно переписать скрипт, чтобы зря не определять есть ли файл и т.д... т.к. текст может быть выделен в файле, который не сохранён на диск... Мне этим заниматься, честно, - пока лень, т.к. я не создаю файл по выделению.
koros wrote:Спасибо за Ваш скрипт, я просто чуть-чуть его модифицировал.
Пожалуйста, всегда рад. Когда не лень :mrgreen:

Posted: Mon Apr 21, 2008 6:48 pm
by koros
VladSh wrote:koros, мой скрипт работает при RightClick на каком-нибудь файле из СПИСКА СВЕЖИХ!
А что такое СПИСОК СВЕЖИХ? Я использовал этот скрипт по RightClick на каком-нибудь открытом файле. Насколько я понял по выражению var Content = AkelPad.ReadFile(fileName, 0x1|0x2, 0, 0) скрипт просто считывает содержимое файла. Я же просто предлагаю считывать содержимое выделения, а,если ничего не выделено, то считывать содержимое всего файла, как и было у Вас.

Posted: Tue Apr 22, 2008 5:06 am
by Infocatcher
От нечего делать решил немного попрограммить :lol:

Скрипт для комментирования / снятия комментирования:
comments.js

Code: Select all

var commentsSet = {
	"js": ["/*", "*/", "//"],
	"html": ["<!--", "-->", null],
	"css": ["/*", "*/", null]
};
задает формат комментариев:
"расширение_файла": ["символы_начала_комментария", "символы окончания комментария", "однострочный_комментарий,_если есть"]

Текущая логика работы:
есть выделение? – комментируем выделение – выход;
есть комментирование – удаляем его – выход;
может быть одностроковое комментирование? – ищем – удаляем, если нашли – выход, если удалили;
несколько строк или невозможны одностроковые комментирии – комментируем все вошедшие строки, иначе – делаем одностроковый комментарий;

Одно но: дрыгает...
Т.е. основная проблема – получение всего текста:

Code: Select all

AkelPad.SetSel(0, -1);
this.allText = AkelPad.GetSelText();
После чего скроллит в самый низ.

Вот ведь неспроста мне такое поведение не нравилось. :D
Отсюда 1) как насчет изменения поведения команды «выделить все»? 2) можно ли как нибудь еще, кроме сохранить – AkelPad.ReadFile (таки это извращение), получить в распоряжение весь текст без злосчастной прокрутки в окне редактирования?

Posted: Tue Apr 22, 2008 10:19 am
by VladSh
koros wrote:А что такое СПИСОК СВЕЖИХ?
Меню: Файл -> Последние файлы. На любом из них клацаем RightClick и выбираем пункт контекстного меню, который запускает скрипт NewFilebyRecent.js.
Infocatcher wrote:Скрипт для комментирования / снятия комментирования
Так есть же такой - я писал, посмотрите в этой же теме здесь.
Для того, чтобы окно не прыгало нужно в начале выполнения скрипта отключить прорисовку окна, а в конце включить. См. в SelCompleteLine.js функции AutoRedrawOff и AutoRedrawOn.
Для того, чтобы вырнуть курсор туда, где он был до выполнения скрипта, - запоминайте начальную позицию курсора (у меня такое тоже есть - см. там же процу SaveSelection).

Posted: Tue Apr 22, 2008 2:43 pm
by Infocatcher
VladSh wrote:Так есть же такой - я писал, посмотрите в этой же теме здесь.
Я видел :). Просто мне хотелось странного :D – работы с однострочными комментариями и комментирования в других языках.
Для того, чтобы окно не прыгало нужно в начале выполнения скрипта отключить прорисовку окна, а в конце включить. См. в SelCompliteLine.js функции AutoRedrawOff и AutoRedrawOn.
Угу, смотрел, смотрел... Однако в JCommentDel.js текущая позиция все равно смещается...
Для того, чтобы вырнуть курсор туда, где он был до выполнения скрипта, - запоминайте начальную позицию курсора (у меня такое тоже есть - см. там же процу SaveSelection).
Главная проблема в том, что восстановить желательно исходную позицию курсора. А если при этом получать весь текст (выделить всё – получить выделение), текущая позиция станет самой верхней строчкой (именно это и происходит в JCommentDel.js).

В общем, мне хотелось получить нечто вроде того, что делает PSPad по Ctrl+Shift+A – снимать / ставить комментирование одним сочетанием клавиш.

Posted: Tue Apr 22, 2008 6:18 pm
by VladSh
мне хотелось странного – работы с однострочными комментариями и комментирования в других языках.
C однострочными коментариями ведь работает!
А чтобы сделать в др. языках я жду, может когда-то сделают настроечные файлы для скриптов :)
Главная проблема в том, что восстановить желательно исходную позицию курсора.
Чтобы её восстановить, её нужно каждый раз пересчитывать, т.к. символы добавляются/убираются.
А если при этом получать весь текст (выделить всё – получить выделение), текущая позиция станет самой верхней строчкой (именно это и происходит в JCommentDel.js).
Тогда надо использовать GetFirstVisibleChar.js, но мне с этим реально лень было заморачиваться..
В общем, мне хотелось получить нечто вроде того, что делает PSPad по Ctrl+Shift+A – снимать / ставить комментирование одним сочетанием клавиш.
Также мои скрипты и делают, за исключением тонкостей с перебросом фокуса :)