| View previous topic :: View next topic |
| Author |
Message |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Tue Aug 07, 2007 1:07 pm Post subject: |
|
|
Подправил сам:
SelCompleteLine.js
| Code: | ...
var nMinLineIndex = 0;
...
if (nMinSel <= nMaxSel)
... |
Last edited by VladSh on Wed Jun 23, 2010 2:49 pm; edited 3 times in total |
|
| Back to top |
|
 |
wisgest
Joined: 24 Jun 2007 Posts: 63 Location: Belorussia
|
Posted: Wed Aug 08, 2007 9:47 am Post subject: Re: CommonFunctions |
|
|
VladSh
Функция CorrectFileName убирает только первые вхождения недопустимых символов. Поосоветую такой вариант: | Code: | function CorrectFileName(pFileNameOnly)
{
return pFileNameOnly.replace(/[\\\/:\*\?"<>\|]/g, "");
} |
|
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Wed Aug 08, 2007 10:16 am Post subject: |
|
|
wisgest
Заменил. Спасибо!
EN: Changed CorrectFileName function in CommonFunctions.js. |
|
| Back to top |
|
 |
Fr0sT
Joined: 24 Jul 2007 Posts: 855
|
Posted: Mon Aug 13, 2007 1:16 pm Post subject: |
|
|
| Вынеси знаки коммента как переменные в начало скрипта - тогда можно будет задавать не только С-комменты, но и хтмл и т.д. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Tue Sep 11, 2007 2:21 pm Post subject: |
|
|
Instructor, Отлично, спасибо!
Но DelEmptyLines.js и DelLeadTrailSpaces.js выбрасывает вниз файла - IMHO ненаглядно.
для DelLeadTrailSpaces.js устанавливаю курсор почти туда где он стоял до отработки скрипта:
| Code: | ...
var nSelStart = AkelPad.GetSelStart();
...
...
AkelPad.SetSel(nSelStart, nSelStart); |
Вообще интересно было бы получить номер первого видимого в окне редактирования символа...
а для DelEmptyLines.js в начало:
| Code: | ...
...
AkelPad.SetSel(0, 0); |
P.S. По Lines filter приведите кто-нибудь пожалуйста пример использования?! Чего-то по коду не догоняю... :-\ |
|
| Back to top |
|
 |
guest
Joined: 08 Dec 2007 Posts: 17
|
Posted: Thu Jan 17, 2008 5:48 pm Post subject: |
|
|
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. |
|
| Back to top |
|
 |
koros
Joined: 12 Apr 2008 Posts: 31
|
Posted: Fri Apr 18, 2008 7:56 pm Post subject: Re: Ещё чуток для меню списка свежих файлов |
|
|
VladSh Предлагаю немного модифицировать Ваш скрипт NewFilebyRecent.js
Вместо
| Code: |
//Считывание содержимого файла
var Content = AkelPad.ReadFile(fileName, 0x1|0x2, 0, 0); //2-й параметр: OD_ADT_BINARY_ERROR|OD_ADT_REG_CODEPAGE
|
лучше
| Code: |
//Считывание содержимого файла
/
var Content=AkelPad.GetSelText();
if (Content == "") var Content = AkelPad.ReadFile(fileName, 0x1|0x2, 0, 0); /2-й параметр: OD_ADT_BINARY_ERROR|OD_ADT_REG_CODEPAGE
|
При этом новый файл создается из выделенного текста текущего, а, если ничего не выделено, то из всего текущего файла. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Mon Apr 21, 2008 11:39 am Post subject: |
|
|
koros, у меня этот скрипт создаёт новый файл на основе содержимого файла из списка свежих.
То, что предлагаете Вы, просто делеатся так: выделить текст, затем Ctrl+C, клацнуть на создание нового файла, Ctrl+V. |
|
| Back to top |
|
 |
koros
Joined: 12 Apr 2008 Posts: 31
|
Posted: Mon Apr 21, 2008 4:10 pm Post subject: |
|
|
| VladSh wrote: | koros, у меня этот скрипт создаёт новый файл на основе содержимого файла из списка свежих.
То, что предлагаете Вы, просто делеатся так: выделить текст, затем Ctrl+C, клацнуть на создание нового файла, Ctrl+V. |
В таком случае вместо Вашего скрипта можно Ctrl+А, затем Ctrl+C, клацнуть на создание нового файла, Ctrl+V .
В случае использования скрипта я предполагаь пункт в контекстном меню по правой клавиши мыши, или кнопка на тулбаре или хоткей - выделил, клацнул то, на что записан скрипт и получил новый файл с содержимым выделения или НИЧЕГО не выделил и получил то, что предлагаете Вы.
Спасибо за Ваш скрипт, я просто чуть-чуть его модифицировал. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Mon Apr 21, 2008 5:41 pm Post subject: |
|
|
koros, мой скрипт работает при RightClick на каком-нибудь файле из СПИСКА СВЕЖИХ! Т.е. ничего открывать и копировать ненужно.
В том, что предлагаете Вы смысл тоже имеется, но тогда нужно корректно переписать скрипт, чтобы зря не определять есть ли файл и т.д... т.к. текст может быть выделен в файле, который не сохранён на диск... Мне этим заниматься, честно, - пока лень, т.к. я не создаю файл по выделению.
| koros wrote: | | Спасибо за Ваш скрипт, я просто чуть-чуть его модифицировал. | Пожалуйста, всегда рад. Когда не лень  |
|
| Back to top |
|
 |
koros
Joined: 12 Apr 2008 Posts: 31
|
Posted: Mon Apr 21, 2008 6:48 pm Post subject: |
|
|
| VladSh wrote: | | koros, мой скрипт работает при RightClick на каком-нибудь файле из СПИСКА СВЕЖИХ! |
А что такое СПИСОК СВЕЖИХ? Я использовал этот скрипт по RightClick на каком-нибудь открытом файле. Насколько я понял по выражению var Content = AkelPad.ReadFile(fileName, 0x1|0x2, 0, 0) скрипт просто считывает содержимое файла. Я же просто предлагаю считывать содержимое выделения, а,если ничего не выделено, то считывать содержимое всего файла, как и было у Вас. |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1440
|
Posted: Tue Apr 22, 2008 5:06 am Post subject: |
|
|
От нечего делать решил немного попрограммить
Скрипт для комментирования / снятия комментирования:
comments.js
| Code: | var commentsSet = {
"js": ["/*", "*/", "//"],
"html": ["<!--", "-->", null],
"css": ["/*", "*/", null]
}; |
задает формат комментариев:
"расширение_файла": ["символы_начала_комментария", "символы окончания комментария", "однострочный_комментарий,_если есть"]
Текущая логика работы:
есть выделение? – комментируем выделение – выход;
есть комментирование – удаляем его – выход;
может быть одностроковое комментирование? – ищем – удаляем, если нашли – выход, если удалили;
несколько строк или невозможны одностроковые комментирии – комментируем все вошедшие строки, иначе – делаем одностроковый комментарий;
Одно но: дрыгает...
Т.е. основная проблема – получение всего текста:
| Code: | AkelPad.SetSel(0, -1);
this.allText = AkelPad.GetSelText(); |
После чего скроллит в самый низ.
Вот ведь неспроста мне такое поведение не нравилось.
Отсюда 1) как насчет изменения поведения команды «выделить все»? 2) можно ли как нибудь еще, кроме сохранить – AkelPad.ReadFile (таки это извращение), получить в распоряжение весь текст без злосчастной прокрутки в окне редактирования? |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Tue Apr 22, 2008 10:19 am Post subject: |
|
|
| koros wrote: | | А что такое СПИСОК СВЕЖИХ? | Меню: Файл -> Последние файлы. На любом из них клацаем RightClick и выбираем пункт контекстного меню, который запускает скрипт NewFilebyRecent.js.
| Infocatcher wrote: | | Скрипт для комментирования / снятия комментирования | Так есть же такой - я писал, посмотрите в этой же теме здесь.
Для того, чтобы окно не прыгало нужно в начале выполнения скрипта отключить прорисовку окна, а в конце включить. См. в SelCompleteLine.js функции AutoRedrawOff и AutoRedrawOn.
Для того, чтобы вырнуть курсор туда, где он был до выполнения скрипта, - запоминайте начальную позицию курсора (у меня такое тоже есть - см. там же процу SaveSelection).
Last edited by VladSh on Fri Nov 06, 2009 10:11 am; edited 1 time in total |
|
| Back to top |
|
 |
Infocatcher
Joined: 06 Aug 2007 Posts: 1440
|
Posted: Tue Apr 22, 2008 2:43 pm Post subject: |
|
|
| VladSh wrote: | | Так есть же такой - я писал, посмотрите в этой же теме здесь. |
Я видел . Просто мне хотелось странного – работы с однострочными комментариями и комментирования в других языках.
| Quote: | | Для того, чтобы окно не прыгало нужно в начале выполнения скрипта отключить прорисовку окна, а в конце включить. См. в SelCompliteLine.js функции AutoRedrawOff и AutoRedrawOn. |
Угу, смотрел, смотрел... Однако в JCommentDel.js текущая позиция все равно смещается...
| Quote: | | Для того, чтобы вырнуть курсор туда, где он был до выполнения скрипта, - запоминайте начальную позицию курсора (у меня такое тоже есть - см. там же процу SaveSelection). |
Главная проблема в том, что восстановить желательно исходную позицию курсора. А если при этом получать весь текст (выделить всё – получить выделение), текущая позиция станет самой верхней строчкой (именно это и происходит в JCommentDel.js).
В общем, мне хотелось получить нечто вроде того, что делает PSPad по Ctrl+Shift+A – снимать / ставить комментирование одним сочетанием клавиш. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2523 Location: Киев, Русь
|
Posted: Tue Apr 22, 2008 6:18 pm Post subject: |
|
|
| Quote: | | мне хотелось странного – работы с однострочными комментариями и комментирования в других языках. | C однострочными коментариями ведь работает!
А чтобы сделать в др. языках я жду, может когда-то сделают настроечные файлы для скриптов
| Quote: | | Главная проблема в том, что восстановить желательно исходную позицию курсора. | Чтобы её восстановить, её нужно каждый раз пересчитывать, т.к. символы добавляются/убираются.
| Quote: | | А если при этом получать весь текст (выделить всё – получить выделение), текущая позиция станет самой верхней строчкой (именно это и происходит в JCommentDel.js). | Тогда надо использовать GetFirstVisibleChar.js, но мне с этим реально лень было заморачиваться..
| Quote: | | В общем, мне хотелось получить нечто вроде того, что делает PSPad по Ctrl+Shift+A – снимать / ставить комментирование одним сочетанием клавиш. | Также мои скрипты и делают, за исключением тонкостей с перебросом фокуса  |
|
| Back to top |
|
 |
|
|
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
|
Powered by phpBB © 2001, 2005 phpBB Group
|