Page 4 of 74

Та шо ж такое-то? Опять вопросы-предложения...

Posted: Sun Jul 29, 2007 1:35 pm
by VladSh
:)

Вопрос по AkelPad.ReadFile. Так как уже есть:

Code: Select all

//Считывание содержимого файла
      var File = fso.OpenTextFile(fileName, 1, false, -2);
      var Content = File.ReadAll();
      File.Close();
я понимаю смысл её появления в том, что она приводит кодировку вставляемого файла к кодировке текущего. Так ли это?

Просьба - сделайте пожалуйста установку курсора в начало файла! Написал скрипт NewFilebyRecent.js, всё бы хорошо, но после создания файла он проматывается в самый конец - не красиво.
Лучше всего (универсальней) было бы устанавливать курсор в указанную позицию. 0 - это начало файла.
Ещё один вариант - это реализовать функцию SendKeys, т.е. чтобы можно было инициировать нажатия опред. комбинаций клавиш. В таком случае я бы для своей (этой) задачи инициировал Ctrl+Home.

Начал работу по формированию CommonFunctions.js на основе тех функций, которые Вы выкладывали (куда ж без плагиата? :)). Вопрос: заметно ли будет сказываться на скорости если все они будут в одном файле? Или имеет смысл выделять общие функции в разные файлы по тематике?

UPDATED:
Instructor wrote:VladSh
Очень часто требуется переименовать текущий файл (открытый в текущей закладке или окне), такой функции к огромному сожалению в AkelPad'е нет, поэтому приходится писать самому...
см. RenameFileDialog.js в дистрибутиве плагина.
Попробуйте вызвать для нового файла.
Тут нужно для данного случая либо дизаблить пункт меню (добавил в предложение по формату ComtextMenu) либо обрабатывать программно и корректировать вываливающиеся сообщения.

Posted: Sun Jul 29, 2007 7:02 pm
by Instructor
Вопрос по AkelPad.ReadFile... я понимаю смысл её появления в том, что она приводит кодировку вставляемого файла к кодировке текущего. Так ли это?
Из Scripts-Rus.txt:
AkelPad.ReadFile
Прочитать содержимое файла.
Смысл этого метода в том, что скрипт может прочитать содержимое файла, используя возможности AkelPad'а (включая автоопределение кодировки).
Просьба - сделайте пожалуйста установку курсора в начало файла!

Code: Select all

AkelPad.SetSel(0, 0);
Ещё один вариант - это реализовать функцию SendKeys...

Code: Select all

WshShell=new ActiveXObject("WScript.Shell");
WshShell.SendKeys("^{HOME}");
Вопрос: заметно ли будет сказываться на скорости если все они будут в одном файле?
Тут можно пойти по пути эксперимента.

работает

Posted: Mon Jul 30, 2007 8:47 am
by VladSh
Instructor
Можо ли в новых версиях плагина добавить в Scripts-Rus.txt Ваши уточнения по SetSel, ReadFile?

Спасибо за подсказку, всё работает! :)

Posted: Wed Aug 01, 2007 9:04 pm
by Idjo
How do I call a macro?
I tried AkelPad.Call("Macros::Main", 1, "Name", 1, 0); and it didn't work, although it works at the context menu definition.

The error is "Wrong number of arguments or invalid property assignment".

Posted: Thu Aug 02, 2007 4:06 am
by Instructor
Idjo
For the moment you can't use ContextMenu's Call() syntax.

предложение по окошку скриптов

Posted: Thu Aug 02, 2007 12:22 pm
by VladSh
Можно ли сделать чтобы окно скриптов было изменяемо в размерах и запоминало эти размеры после изменения? А то надоело тягать бегунок...

Posted: Thu Aug 02, 2007 1:36 pm
by Fr0sT
Неплохо было бы иметь возможность указать параметры запускаемого скрипта, причём чтобы скрипты с разными параметрами различались в списке.

проблема, а соответственно и предложение

Posted: Thu Aug 02, 2007 5:35 pm
by VladSh
Пользователь выделяет несколько строк текста, он может их выделить неправильно (например для работы скрипта строки должны быть выделены целиком - от начала и до конца) либо пользователь просто указывает выделением на строки, с которыми нужно работать скриптом.
Просьба следующая - добавьте пожалуйста метод, позволяющий автоматически переносить выделение в самое начало первой строки выделения и в самое окончание последней строки выделения.

Можно было бы запомнить позицию выделения, потом программно выделить всё и анализировать символы к началу текста, т.е. к переводу строки, но это не дело, т.к. файл действительно м.б. тяжёл...

Пока писал пришла супер-идея! 8) Добавьте пожалуйста метод, который извлекал бы символ (или группу символов в периоде, аналог Mid) из всего окна редактирования (не выделения) по номерам! Это бы хоть как-то решило проблему. Можно было бы получить номер символа начала выделения, а затем в цикле отнимая по одному можно было бы анализировать... и, соответственно, ПЕРЕустанавливать границы выделения!

Posted: Fri Aug 03, 2007 3:54 pm
by Instructor
Можно было бы получить номер символа начала выделения..
AkelPad.GetSelStart() - начало, AkelPad.GetSelEnd() - конец. Для вычисления начала/конца строки см. функции RichEdit'а - EM_EXLINEFROMCHAR, EM_LINEINDEX, EM_LINELENGTH.

Posted: Fri Aug 03, 2007 5:36 pm
by VladSh
Instructor wrote:
Можно было бы получить номер символа начала выделения..
AkelPad.GetSelStart() - начало, AkelPad.GetSelEnd() - конец.
Для вычисления начала/конца строки см. функции RichEdit'а - EM_EXLINEFROMCHAR, EM_LINEINDEX, EM_LINELENGTH.
Никак не могу понять как этим можно воспользоваться. SendMеssage на EM_EXLINEFROMCHAR кажет "определение отсутствует", т.е. похоже нужно использовать ActiveX для работы с RichEdit'ом. Перерыл весь инет - нигде нет нормальной доки по нему, также нигде не нашёл использование RichEdit'а в JavaScript :?

ещё предложение

Posted: Fri Aug 03, 2007 6:06 pm
by VladSh
Хочется строковый параметр для GetAkelDir()
- если "", то возвращать путь к AkelPad'у;
- если "p", то полный путь к папке с ПЛАГИНАМИ (включая путь к AkelPad'у);
- если "s", то полный путь к папке со СКРИПТАМИ (включая путь к AkelPad'у).

Posted: Fri Aug 03, 2007 9:07 pm
by Instructor
Никак не могу понять как этим можно воспользоваться. SendMеssage на EM_EXLINEFROMCHAR кажет "определение отсутствует", т.е. похоже нужно использовать ActiveX для работы с RichEdit'ом. Перерыл весь инет - нигде нет нормальной доки по нему, также нигде не нашёл использование RichEdit'а в JavaScript
Для примера: скрипт под заголовком "//Check end of document".

Posted: Fri Aug 03, 2007 10:57 pm
by Instructor
Changed: AkelPad 3.3.6 required.
Changed: now scripts sorted by names.

Added: InputBox method.

Fixed: hotkey check.
Fixed: GetAkelDir method didn't work on XP.


Scripts plugin v1.7

Posted: Sun Aug 05, 2007 1:02 pm
by Instructor
Added: possibility to call AkelPad plugin with parameters (like ContextMenu's Call() method). For example:

Code: Select all

AkelPad.Call("Macros::Main", 1, "123", 1, 0);
// 1 -execute, "123" -macro name, 1 -repeat count, 0 -reserved
Scripts plugin v1.8

Posted: Sun Aug 05, 2007 5:36 pm
by Instructor
VladSh
SelCompliteLine.js - в скрипте реализована функция выделения полных строк.