Scripts discussion (3)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Обновил скрипты, архив тут:
viewtopic.php?p=23556#p23556


Изменены скрипты в теме:

Code: Select all

 CreateFile.vbs - Создание различных типов файлов
 ClipboardPlus.vbs - Скрипт библиотека различных преобразований теста и отправки его в буфер
 InsertPlus.vbs - Скрипт библиотека различных преобразований текста и вставка
 BookmarksPlus.vbs - Различные действия с закладками
 MenuBarTextInFile.vbs - Создание единого файла всех меню и панелей инструментов 
 OpenInNewTab.vbs - В новой вкладке открывает выделенный или весь текст
 RenameOfSelectOrClip.vbs - Переименование файла открытого на редактирование именем выделенного или из буфера
 DublicateFile.vbs - Создание дубликата файла с добавлением счетчика _N и его открытие...
 MarkerDublWords.vbs - Отметить дублирующие слова в тексте
 OpenCoderExtFile.vbs - Открытие xxx.coder файла для редактируемого файла и переход к выделенному слову
 OpenFileNameFromBuffer.vbs - Открыть файл(ы), имя(ена)/путь(и) которого, находится в выделении или в буфере обмена
 TCIMG.vbs - Скрипт для вызова утилиты TCIMG с различными параметрами
 InfoLine.vbs - В начале выделенных строк отображает подробную информацию строки + дополнительная сортировка
 DeletePlus.vbs - Скрипт библиотека удаления различных объектов теста
 ConversionButtonTC.vbs - Преобразование команд и кнопок Total Commander + дополнительные действия
 CreateFileWithUniqueString.vbs - Сравнение 2-х файлов и создание файла с уникальными строками.
 CreateTable.vbs - Создание таблиц из символов
 Descript.vbs - Внесение выделенного текста в файл комментариев Descript.ion
 RunScript.vbs - Запуск не AkelPad'овского скрипта
 StartCommand&Save.vbs - Вызывает команду AkelPad и сохраняет документ + поддержка по горячим клавишам в окнах редактирования
 ZipArhiveAkelPad.vbs - Архивирование AkelPad
 ZipArhiveTC.vbs - Архивирование Total Commander
 WriteInWhiteSpellCheckList.vbs - Добавляет к белому списку SpellCheck выделенное слово или выделенный вертикальный список слов
 TabCloseN.vbs - Закрывает нужное количество вкладок
 UncheckMarker.vbs - Снять отметки в выделенном
 CountPhrasesInText.vbs - Подсчёт количества раз встречающейся фразы в выделенном и вывод отчёта
 LeftOrRightInsertFromBuffer.vbs - Вертикальная вставка текста из буфера до/после/до и после выделенного
 DeleteLinesInComingOther.vbs - Удаление строк полностью входящих в другие в выделенном
 RenameRandom.vbs - Переименование имени файла открытого на редактирование случайными БУКВАМИ или Цифрами
 SearhInFiles.vbs - Круговой поиск в тексте указанного файла выделенной фразы или из буфера
 GotoMarkOrOpenUrl.vbs - Переход по внутренним ссылкам документа или открытие ссылки в браузере
 getPathScanFolder.vbs - Ищет в папке и подпапках необходимые текстовые файлы,
 getPath.vbs - Извлекает пути файлов из выделенного текста и отображает их в новой вкладке
 URLOpen.vbs - Открывает адрес или сайт в указанном браузере, с проверкой запущенности процесса
 Start.vbs - Вызов любой программы с сохранением Портабельности и добавлением дополнительных параметров (программы берутся из AkelPadImage.ini)
 SuperMultiMarker.vbs - Отмечает маркером выделенное - слово/фразу/строки
 OpenAllFiles.vbs - Универсальное открытие всех файлов
 RunScriptA.vbs - Запуск скриптов AkelPad
 Associations.vbs - Ассоциация типов файлов с AkelPad
 OpenFileNameFromBuffer.vbs - Открыть файл(ы), имя(ена)/путь(и) которого, находится в выделении или в буфере обмена
 SetBackgroundForTheme.vbs - Установка фонового изображения для темы + установка фонового цвета
 CreateFileAllCmdTC.vbs - Создание общего файла с пользовательскими и встроенными командами
 SearchInfoCmdTC.vbs - Выдаёт полную информацию для выделенной команды Total Commander или информацию о всех командах, в параметрах которого есть выделенный текст
 AkelPadImage.vbs - Запись различных настроек в AkelPadImage.ini
 EditSession.vbs - Добавление/Удаление текущего файла в/из сессию/и
 RunFiles&Program.vbs - Запуск выделенных путей программ и файлов в программе, ассоциированной в Total Commander
 ReplaceListWord.vbs - Поиск и замена в текущем документе из списка
 SearchInfoButtonTC.vbs - Выдаёт информацию о кнопках для выделенной фразы/команды Total Commander (для вставки на панель инструментов)
 ExportAllFiles.vbs - Экспорт всех файлов открытых на редактирование в 4 формата по выбору: html, doc, rtf, bbcode с сохранением расцветки
 SaveAllAnonym.vbs - Сохранение всех безымянных вкладок
 Export4Format.vbs - Экспортирует файл открытый на редактирование в 4 формата: html, doc, rtf, bbcode с сохранением расцветки
 ZebraOnOff.vbs - Включить/Выключить зебру указанной величины
 ReFormatTextByLine.vbs - Скрипт-библиотека различных преобразований текста построчно
 SaveAs.vbs - Сохранение выделенного или всего текста. Имя вводится/выбирается в диалоге
 SpecFolders.vbs - Вывод путей заголовков всех возможных специальных папок.
 AddSelectToClip.vbs - Добавить выделение к буферу обмена
 InsertInDialogueSearch.vbs - Вставка в окно диалога поиска и замены
 InsertParagraph.vbs - Вставляет отступы (нужный текст) в начале выделенных строк.
 SaveFileNameData.vbs - Сохранение безымянного документа именем даты
 KeybAvtoRusEng.vbs - Автоматическое клавиатурное конвертирование Ru\En или Транслитерация Латиница\Кириллица выделенного
 GetExtHTML.vbs - Извлечение ссылок, имеющих заданное вхождение
 SaveFileNameFirstLine.vbs - Сохранение/Переименование именем первой строки
 TextFormat.vbs - Скрипт библиотека форматирования выделенного текста
 AnagramWord.vbs - Создание анаграмм выделенного слова (если выделения нет, можно ввести)
 SearhWithConditions.vbs - Поиск в документе с заданными условиями (с выделением и без)
 DelOrCommMsgBox.vbs - Удаляет, закомментирует, раскомментирует MsgBox в vbs скриптах
 InsertMsgBox.vbs - В файлах скриптинга (Vbs, Js, Au3...) вставляет соответствующую функцию MsgBox...
 SplitTextOnLine.vbs - Разбить выделенный текст на строки, каждое предложение с новой строки. 
 ColorMarker.vbs - Отмечает маркером все значения цвета соответствующим цветом в выделенном тексте
 ClearBBCode.vbs - Удаление BBcode из выделенного текста
 NumbersNewLine.vbs - Нумерация выделенных подстрок относительно номера предыдущей
 NumericSelectText.vbs - Специальная нумерация выделенных строк/колонок текста с выбором начала нумерации, позиции в номере, шага, вставки текста перед, после, внутри цифр
 LinkAction.vbs - Различные действия со ссылкой и сохранение файла открытого на редактирование
 DeleteMarker.vbs - Удаление отмеченного маркером
 getLineBetweenQuotes.vbs - Извлечение фраз между двойными и одинарными кавычками из выделенного текста
 getWords.vbs - Извлечение русских\английских слов\цифр из выделенного текста
 CopyTextToClip.vbs - Отправить в буфер различные части текста
 SearhInOutput.vbs - Поиск в выделенном с регулярными выражениями и вывод найденного в новую вкладку
 DeleteZebraLines.vbs - В выделенном вырезать/удалить строки с условиями не перемещая. "зеброй"
 ReplaceOnCounter.vbs - Поиск в документе с заданными условиями и замена найденного на счётчик
 InsertBBCodeList.vbs - Выделенный текст обрамляет в список для BBCode
 Glasnye.vbs - Подсчёт гласных в строке и отображение информации
 FormatLinesLenght.vbs - Преобразование выделенного текста по указываемой длине строки (текст в столбик)
 DelSymLine.vbs - Удаление с конца или с начала выделенных строк определённого количества символов
 InsertDublTextPlus.vbs - Вставка дублирующего текста из буфера обмена, между которым вставляется необходимый текст
 Invert_Revers.vbs - Инвертирование, перевёртывание выделения
 DeletePhrasesInText.vbs - Удаление/замещение строк содержащих/не содержащих фразу в выделенном. А так же добавление к найденным строкам...
 InsertNLine.vbs - Вставляет нужное количество строк с необходимым содержимым
 DeleteNoMarker.vbs - Удаление всего, кроме отмеченного маркером
 getLenLines.vbs - Извлечение строк заданной длины из выделенного текста
 getMail.vbs - Извлекает e-mail адреса из выделенного текста и отображает их в новой вкладке
 InfoFile.vbs - Информация о файле
 ReturnsTabs.vbs - Возвращает заданное число закрытых вкладок
 SwitchingRuler.vbs - Включение/выключение линейки LineBoard плагина
Добавлены скрипты в тему:

Code: Select all

 MarkerPlus.vbs - Различные действия с маркерованным текстом
Изменены вспомогательные скрипты в теме:

Code: Select all

 Functions.vbs - Скрипт с различными Функциями, которые можно использовать в других скриптах AkelPad
 FunctionsSave.vbs - Настраиваемая функция сохранения файла
 FunctionsDialog.vbs - Скрипт с различными Функциями для вызова диалога Открытия/Сохранения файла (WinAPI) и выбора папки

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

(отсюда)
Infocatcher wrote:Пока что сделал список версий и обновил архив. Насчет времени на правку всех сообщений пока не уверен. :|
Прочие описания, пожалуй, тоже позже.
Уфф, теперь с описаниями и авторством: https://github.com/Infocatcher/AkelPad_ ... c306a37f6c
Архив обновлен: Infocatcher.zip, сообщения – по-прежнему нет. :|

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

RunCommand.js
Added: "Files" button.

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Подскажите как получить?
1. величину вертикальной и горизонтальной прокрутки
2. как установить нужную величину прокрутки (и гориз. и верт.)

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Озаботился выделением строки без дёргания и без конечного символа переноса строки (SmartSel::NoSelEOL работает о-очень заметно),

Code: Select all

var hWndEdit = AkelPad.GetEditWnd();
var nStart   = AkelPad.GetSelStart();
var oSys     = AkelPad.SystemFunction();
var nLine;
var nLineIndex;
var nLineLength;

SetRedraw(hWndEdit, false);

nWordWrap = AkelPad.SendMessage(hWndEdit, 3241 /*AEM_GETWORDWRAP*/, 0, 0);
if (nWordWrap > 0)
  AkelPad.Command(4209 /*IDM_VIEW_WORDWRAP*/);

nLine = AkelPad.SendMessage(hWndEdit, 1078 /*EM_EXLINEFROMCHAR*/, 0, nStart);
nLineIndex = AkelPad.SendMessage(hWndEdit, 187 /*EM_LINEINDEX*/, nLine, 0);
nLineLength = AkelPad.SendMessage(hWndEdit, 193 /*EM_LINELENGTH*/, nStart, 0);
nEndSel = nLineIndex + nLineLength

AkelPad.SetSel(nLineIndex, nEndSel, 0x008 /*AESELT_LOCKSCROLL*/);

if (nWordWrap > 0)
  AkelPad.Command(4209 /*IDM_VIEW_WORDWRAP*/);

SetRedraw(hWndEdit, true);

function SetRedraw(hWnd, bRedraw)
{
  AkelPad.SendMessage(hWnd, 11 /*WM_SETREDRAW*/, bRedraw, 0);
  bRedraw && oSys.Call("User32::InvalidateRect", hWnd, 0, true);
}


Сразу несколько вопросов:
1. Где ошибся? :)
2. Насколько вообще допустимо заворачивать определение переменных в конструкции вида

Code: Select all

nLineIndex = AkelPad.SendMessage(hWndEdit, 187 /*EM_LINEINDEX*/, AkelPad.SendMessage(hWndEdit, 1078 /*EM_EXLINEFROMCHAR*/, 0, nStart), 0);
?
Со строками вроде нормально работает "вложение", но тут отправка сообщений.
3. Как определить, куда лучше посылать сообщения - AkelPad.GetMainWnd() или AkelPad.GetEditWnd() ?

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

TextMarker.js
Added: "Whole word" button.

Offline
Posts: 366
Joined: Mon Jan 10, 2011 5:28 pm
Contact:

Post by Lenchik »

Lenchik wrote:Предложение скриптописателям (а хорошо бы ещё и плагинописатели прислушались): сделать какую-нибудь общую для вас всех библиотеку, чтобы можно было нормально поддерживать выставленные в акельпаде и в системе изменения размера шрифта. А то неудобно — всё увеличил, а весь шрифт в окошках дополнительных мелкий-мелкий.
Да, придётся как-то более гибко относиться к размерам кнопок и полей под текст.

Image
К этой теме
http://blog.lexa.ru/2015/01/04/zagadka_dpi.html
http://blog.lexa.ru/2014/12/17/pro_hidpi_na_vinde.html
Может быть что-то полезное в тексте и комментах выудите.

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Поясните, пожалуйста, что нужно изменить в InsertUnicodeChar.js в связи с крайними изменениями плага:
Добавлено: поддержка 8-ми байтовых чисел (__int64) на x64.
Добавлено: методы _PtrAdd, vbPtrAdd, _PtrMath, vbPtrMath для выполнения математических действий над 8-ми байтовыми числами.

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

Post by Instructor »

Skif_off
Используйте _PtrAdd, если выполняется смещение указателя на память. Например:
nY = AkelPad.MemRead(lpRect + 4, 3 /*DT_DWORD*/);
nY = AkelPad.MemRead(_PtrAdd(lpRect, 4), 3 /*DT_DWORD*/);

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor
Исправил, спасибо.
В ваших скриптах иногда используется и с нулевым смещением:

Code: Select all

AkelPad.MemRead(_PtrAdd(lpRect, 0) /*offsetof(RECT, left)*/, 3 /*DT_DWORD*/);
AkelPad.MemCopy(_PtrAdd(lpRect, 0) /*offsetof(RECT, left)*/, rcRect.left, 3 /*DT_DWORD*/);
AkelPad.MemRead(_PtrAdd(lpFindData, 0) /*offsetof(WIN32_FIND_DATAW, dwAttributes)*/, 3 /*DT_DWORD*/);
По какому принципу отбор? Упало/нет как-то не очень подходит :)

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

Post by Instructor »

Skif_off
Это для красоты :)

Offline
Posts: 1161
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

Instructor wrote:Это для красоты :)
Это было первой мыслью :)) Но решил, что всё сложнее.

InsertUnicodeChar.js проверил/обновил.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

SpellCheck.js - как оно должно работать? Никогда не пользовался, поиск по форуму - много перекрывается с плагином, тяжело разгребать.
Суть в том что запускаю скрипт(что через список скриптов, что через горячую клавишу), Ворд грузится, но блин так и на заднем фоне и остается(с диалогом проверки). Как бы ожидалось что-то оно всплывет вперед и я сразу проверять смогу.
Windows 8 x64, Microsoft Word 15.0.4675.1000

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

FeyFre
На старой системе работает в точности так, как вы ожидали.
(WinXP SP3, Word 11.8169.8172). На новой нет возможности проверить.

Locked