Scripts plugin
- Author
- Message
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Бляха-муха, сколько времени убил!..
Глючит метод ReadFile.
При получении содержимого файла таким способом:
var text = AkelPad.ReadFile(fFPath, 0xD, 0, 0);
если внутри файла есть символы [ ] (ini-файлы), то при любом обращении к text AkelPad выпадает.
Если из файла убрать эти символы, то файл метод нормально отрабатывает..
Глючит метод ReadFile.
При получении содержимого файла таким способом:
var text = AkelPad.ReadFile(fFPath, 0xD, 0, 0);
если внутри файла есть символы [ ] (ini-файлы), то при любом обращении к text AkelPad выпадает.
Если из файла убрать эти символы, то файл метод нормально отрабатывает..
-
Offline
- Posts: 767
- Joined: Mon Sep 28, 2009 10:03 am
- Location: Minsk, Belarus
поддерживаю эту очевидную доработку, надоели txt при сохраненииСоздали файл, установили вручную подсветку и автодополнение, а при сохранении файла было бы полезно узнать у плагов HighLight или AutoComplete какое расширение файла было задано, для того, чтобы при сохранении файла можно было бы по умолчанию указывать правильное расширение файла, а не txt.
ещё добавлю от себя: почему бы не добавить при сохранении другие форматы кроме txt и чтобы запоминалось последнее выбранное расширение для последующих файлов
та же беда с символами <>, отчего не работает скрипт newTemplate.js (не помню точно названия) когда пытаешься создать HTML из template.htmlVladSh wrote:если внутри файла есть символы [ ] (ini-файлы), то при любом обращении к text AkelPad выпадает.
Если из файла убрать эти символы, то файл метод нормально отрабатывает..
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Сейчас протестил newFileTemplate.js - работает для htm.se7h wrote:не работает скрипт newTemplate.js (не помню точно названия) когда пытаешься создать HTML из template.html
Но вылет Акела при чтении файлов, содержащих символы [ ] - это зло!..

Last edited by VladSh on Sun Feb 07, 2010 2:36 pm, edited 1 time in total.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Ещё одна "радость"...
Хочу написать всой обработчик клавиши Enter; обычный скрипт:прописываю его в Hotkeys-плагине, естественно на клавишу Enter. Так вот при нажатии клавиши Enter в окне редактирования ничего не происходит, а если навести указатель мыши на "управляющее окно" или вкладку, то видны периодически появляющиеся часики, т.е. Акел зациклился.
Как можно сделать так чтобы он не циклился и выполнялась команда Enter?
Вариант сходу: немного откорректировать Hotkeys-плагин, чтобы он реагировал только на реальные нажатия клавиш, исключая те, что инициируются из скрипта.
Ещё вариант: перед SendKeys иметь возможность, естессно программно, отключить, а после - включить Hotkeys-плагин.
Хочу написать всой обработчик клавиши Enter; обычный скрипт:
Code: Select all
var WshShell = new ActiveXObject("WScript.Shell");
WshShell.SendKeys("{ENTER}");
Как можно сделать так чтобы он не циклился и выполнялась команда Enter?
Вариант сходу: немного откорректировать Hotkeys-плагин, чтобы он реагировал только на реальные нажатия клавиш, исключая те, что инициируются из скрипта.
Ещё вариант: перед SendKeys иметь возможность, естессно программно, отключить, а после - включить Hotkeys-плагин.
-
Offline
- Posts: 767
- Joined: Mon Sep 28, 2009 10:03 am
- Location: Minsk, Belarus
оказалось что Akel вылетал из-за плагина XbracketsVladSh wrote:Сейчас протестил newFileTemplate.js - работает для htm.se7h wrote:не работает скрипт newTemplate.js (не помню точно названия) когда пытаешься создать HTML из template.html
Но вылет Акела при чтении файлов, содержащих символы [ ] - это зло!..
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 2248
- Joined: Tue Aug 07, 2007 2:03 pm
- Location: Vinnitsa, Ukraine
Сейчас - нет, и не думаю что стоит делать такую возможность.Это возможно?
Выполнение алгоритма(скрипта/программы) не должно зависеть от того, кто и как его запустил. Если так хотите - передавайте параметром признаки: откуда и как запущено. Если же будете пытаться самостоятельно выяснить - для пользователя это считается багом, и потому вашим скриптом пользоваться не будут.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Site Admin
- Posts: 6403
- Joined: Thu Jul 06, 2006 7:20 am
Добавлено: системный метод Call теперь может принять параметры за один вызов (без AddParameter).
Added: now system method Call can accept parameters at ones (without AddParameter).
Scripts plugin v4.8
Added: now system method Call can accept parameters at ones (without AddParameter).
Scripts plugin v4.8
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
Есть другая идеяVladSh wrote:Создали файл, установили вручную подсветку и автодополнение, а при сохранении файла было бы полезно узнать у плагов HighLight или AutoComplete какое расширение файла было задано, для того, чтобы при сохранении файла можно было бы по умолчанию указывать правильное расширение файла, а не txt.
Это частный случай, но универсальный метод опроса (получения параметров) плагинов, думаю, был бы не лишним.


1. Список структур, соответствующие каждому файлу (закладке).
2. Структура может содержать статические данные:
- hWndEdit;
- путь к файлу;
- имя файла;
- надпись на закладке;
- тип файла.
3. Структура может содержать динамические данные - любые, которые можно задать извне (из плагинов/скрипта).
4. Получение Структуры из списка всех структур (файлов-закладок) может выглядеть, например, так:
Code: Select all
var Doc_current = AkelPad.Documents(hWndEdit); //Получаем, естественно, только по хэндлу окна редактирования
5. Получние данных из структуры может выглядеть, к примеру, так:
Code: Select all
var pFileType = Doc_current.GetProperty("TYPENAME"); //Вернёт txt для текстового файла
Code: Select all
Doc_current.SetProperty("TYPENAME", "js"); //Для вновь создаваемого файла устанавливаем тип файла
Пример: создание файла на основе текущего:
1. Считываю параметры (путь к файлу и TYPENAME) текущего файла.
2. Создаю новый файл, устанавливаю ему те же параметры.
3. Плагинам даётся команда на отработку, т.е. они сразу же автоматически получают информацию о типе файла из структуры и применяют нужную подсветку, авто-подстановку и т.п.
Также решилась бы проблема с отображением окошка CodeFold, т.е. плагин бы был загружен всегда (галка), но отображал бы окошко только для файлов, указанных в настроечных файлах.
То же самое и с AutoComplete - он бы знал, что в txt ему работать ненужно.
Ну и со скриптами работать было бы очень удобно.
EDITED: Иногда работаешь со специфическими типами файлов, для которых включен тот же AutoComplete, т.е. действуют специальные комбинации клавиш. С такой структурой удобно работать потому, что при переключении на другую закладку (тип файла) для других типов файлов можно использовать эти же комбинации клавиш для других целей, т.е. плагин для txt-файла не работает и, соответственно, комбинации клавиш, присущие плагину, для данного типа файла свободны.
Т.о. всё, что мы сейчас делаем (флаги в реестре или запись в ini) относится к программе в целом (речь о динамически добавляемых параметрах, т.е. динамической части структуры), а так появится возможность работы/настройки конкретного файла. Также увеличится скорость работы, т.к. не надо лезть в реестр или работать с файлами (ini).
Last edited by VladSh on Mon Feb 15, 2010 8:58 am, edited 3 times in total.
-
Offline
- Posts: 3234
- Joined: Wed Nov 29, 2006 1:19 pm
- Location: Киев, Русь
- Contact:
И о5 метод Call.
вместо отключения плагина вылетает диалог настроек Hotkeys.
Для вызова окошка плагина AutoComplete пишу:раньше окошко показывалось, теперь вылетает диалог настроек AutoComplete.
Что я делаю не так
Для отключения плагина Hotkeys использую строку:Scripts-Methods.txt wrote:Call AkelPad plugin.
Call(pFunction[, ...]);
Return Value
-1 //UD_FAILED Operation failed.
0 //UD_UNLOAD Plugin unloaded
Code: Select all
if (AkelPad.Call("Hotkeys::Main") == 0)
Для вызова окошка плагина AutoComplete пишу:
Code: Select all
AkelPad.Call("AutoComplete::Main");
Что я делаю не так
