Scripts plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 3217
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

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

Post 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) либо обрабатывать программно и корректировать вываливающиеся сообщения.

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

Post 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}");
Вопрос: заметно ли будет сказываться на скорости если все они будут в одном файле?
Тут можно пойти по пути эксперимента.

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

работает

Post by VladSh »

Instructor
Можо ли в новых версиях плагина добавить в Scripts-Rus.txt Ваши уточнения по SetSel, ReadFile?

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

Offline
Posts: 21
Joined: Sun May 06, 2007 10:14 am

Post 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".

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

Post by Instructor »

Idjo
For the moment you can't use ContextMenu's Call() syntax.

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

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

Post by VladSh »

Можно ли сделать чтобы окно скриптов было изменяемо в размерах и запоминало эти размеры после изменения? А то надоело тягать бегунок...

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

Неплохо было бы иметь возможность указать параметры запускаемого скрипта, причём чтобы скрипты с разными параметрами различались в списке.

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

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

Post by VladSh »

Пользователь выделяет несколько строк текста, он может их выделить неправильно (например для работы скрипта строки должны быть выделены целиком - от начала и до конца) либо пользователь просто указывает выделением на строки, с которыми нужно работать скриптом.
Просьба следующая - добавьте пожалуйста метод, позволяющий автоматически переносить выделение в самое начало первой строки выделения и в самое окончание последней строки выделения.

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

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

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

Post by Instructor »

Можно было бы получить номер символа начала выделения..
AkelPad.GetSelStart() - начало, AkelPad.GetSelEnd() - конец. Для вычисления начала/конца строки см. функции RichEdit'а - EM_EXLINEFROMCHAR, EM_LINEINDEX, EM_LINELENGTH.

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

Post by VladSh »

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

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

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

Post by VladSh »

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

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

Post by Instructor »

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

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

Post 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

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

Post 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

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

Post by Instructor »

VladSh
SelCompliteLine.js - в скрипте реализована функция выделения полных строк.
Post Reply