ContextMenu plugin

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

+1

Post by VladSh »

Instructor wrote:viewtopic.php?p=1297
Да, работает, отлично!

Я просто не хотел каждый раз беспокоить Вас по пустякам.
Хочется для контекста по списку свежих ещё пару действий:
1. Удалить из списка ненужный лейбл файла (наверняка функция удаления у Вас уже есть, похоже удаляются несуществующие файлы).
2. Создать новый файл на основе выделенного (текст из этого файла скопировать в новый).
Возможно, и даже скорее всего, хотелки будут рости :mrgreen: именно поэтому (да и Вам, возможно, было бы проще) я хотел несколько готовых функций в общей dll, чтобы дёргать их оттуда из разных мест, т.е. дать их в публичный доступ.
В файле "ContextMenu.zip\Source\AkelDLL.h" под заголовком "//AkelPad menu messages:"
Посмотрел, хэдэр документирован прилично, думаю разберусь :)

Спасибо!

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

+100!

Post by VladSh »

wisgest wrote:Огромное спасибо за EXPLORER!!!
Только сейчас понял всю прелесть!
Редактируешь htm-файл, затем на закладке RightClick -> Explorer -> Open - наслаждаешься результатами... :wink:
8)

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

ЕЩЁ ВОПРОС И ИДЕЯ

Post by VladSh »

1. :?: Теперь, когда всё так обалденно настраивается, не совсем понятен смысл ContextMenu::Show.

2. :idea: Задумал в конце каждой менюшки вызывать настройки, что-то типа того:

Code: Select all

"Settings" Call("ContextMenu::Main")
Всё бы ничего, но постоянно вылетает главное окно настройки плагина.
Хотелось бы чтобы либо вручную командовать параметром Main/Show(?!) для определённого меню, либо, что ещё лучше, - при вызове, как я указал вверху, чтобы автоматом открывалось именно то меню настроек, в котором я сейчас нахожусь, т.е. где клацаю на подменю "Settings".

Offline
Posts: 63
Joined: Sun Jun 24, 2007 4:03 pm
Contact:

Post by wisgest »

Было бы удобно иметь возможность, не переопределять меню объекта целиком, а дополнять имеющееся, добавив в синтаксис описания ключевое слово "DEFAULT" (или другое).
Чтобы можно было сделать, например для окна редактирования так:

Code: Select all

DEFAULT
SEPARATOR
"Lines" {
  ...
}
VladSh wrote:1. :?: Теперь, когда всё так обалденно настраивается, не совсем понятен смысл ContextMenu::Show.
Ну я, например, предпочитаю однооконный режим, так куда мне "EXPLORER" прикрутить?
VladSh wrote:Ещё хотелось бы номера команд (если это возможно) из меню "Правка\Выделение" для добавления в контекст.меню окна редактирования.
Вместо изучения документации можно открыть в редакторе ресурсов (например, в ResHacker) AkelPad.exe или какой-нибудь языковый модуль, напр. Russian.dll, и изучить ресурсы Menu:4001, Menu:4002. Хотя, из документации, наверно, можно узнать и многое другое.

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

МОИ РУССКИЕ МЕНЮХИ (+)

Post by VladSh »

Code: Select all

"CLIPBOARD"
{
  "Захват (окошко)" +Call("Clipboard::Capture") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 8)
  "Вставка серийного номера" Call("Clipboard::PasteSerial")
  SEPARATOR
  "Настроить..." Call("Clipboard::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
}

"CODER"
{
  "Настроить..." Call("Coder::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
  -"Обновить кэш" Call("Coder::Settings", 2) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 3)
  SEPARATOR
  "Подсветка синтаксиса" +Call("Coder::HighLight") Icon("%a\AkelFiles\Plugs\Coder.dll", 0)
  SEPARATOR
  "Автодополнение" +Call("Coder::AutoComplete") Icon("%a\AkelFiles\Plugs\Coder.dll", 2)
  SEPARATOR
  -"Активный столбец" Call("Scripts::Main", 1, "ActiveColumnSwitch.js", `"%m" "%i" -Local=true`) Icon("%a\AkelFiles\Plugs\ico\column.ico")
  -"Навигация (область слева)" Call("Scripts::Main", 1, "CodeFoldSwitcher.js") Icon("%a\AkelFiles\Plugs\Coder.dll", 1)
  -"Область навигации с окном" Call("Scripts::Main", 1, "CodeFoldSwitcher.js", `-ShowDock=1 -hideAll=1`) Icon("%a\AkelFiles\Plugs\Coder.dll", 3)
  SEPARATOR
  -"Удалить отладочные строки" Call("Scripts::Main", 1, "removeDebug.js")
  -"AStyle форматирование {}-кода: allman" Call("Log::Output", 1, `"%a\AkelFiles\Tools\AStyle.exe" -A1 -N -o -t -S -w -Y -M -H -U -p`, "", "", "", -1, -1, 1052673)
  -"AStyle форматирование {}-кода: java" Call("Log::Output", 1, `"%a\AkelFiles\Tools\AStyle.exe" -A2 -N -o -t -S -w -Y -M -H -U -p`, "", "", "", -1, -1, 1052673)
  -"Tidy форматирование XML" Call("Log::Output", 1, `"%a\AkelFiles\Tools\Tidy.exe" -utf8 -xml --indent auto --indent-spaces 3 --quiet yes --wrap 0 --show-errors 0`, "", "", "", 65001, 65001, 1052673)
  -"Tidy форматирование HTML" Call("Log::Output", 1, `"%a\AkelFiles\Tools\Tidy.exe" -utf8 --indent auto --indent-spaces 3 --quiet yes --wrap 0 --show-errors 1`, "", "", "", 65001, 65001, 1052673)
  SEPARATOR
   "Пробелы -> Символы табуляции" Menu("SPACESTOTABS")
  -"Символы табуляции -> Пробелы" Call("Scripts::Main", 1, "TabsToSpaces.js")
  -"Вставка цвета..." Call("Scripts::Main", 1, "ChooseColor.js", `-default="127 127 127" -lcase=1`) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 30)
  SEPARATOR
  -"Валидация JavaScript Lint" Call("Log::Output", 1, `"%a\AkelFiles\Tools\jsl.exe" -process "%f" -output-format "__FILENAME__   __LINE__   __ERROR__" -nologo -nofilelisting`, "%d", "^(.+)\t(\d+)", "/FILE=$1 /GOTOLINE=$2:1") Icon("%a\AkelFiles\Plugs\Log.dll", 1)
  -"Валидация XML" Call("Scripts::Main", 1, "XMLValidator.js", `-msgOpts=48 -append=1`)
  -"Тестирование RegExp-выражений..." Call("Scripts::Main", 1, "RegExpTestJS.js")
  "Hex-код" +Call("HexSel::Main")
}

"DOCS_ALL"
{
  "AkelPad4-Eng.chm" Exec(`"hh.exe" "%a\AkelFiles\Docs\AkelPad4-Eng.chm"`)
  "История изменений" OpenFile("%a\AkelFiles\Docs\AkelHistory-Rus.txt")

  SEPARATOR
  "Описание плагинов" Menu("DOCS_PLUGINS") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 18)

  SEPARATOR
  "FAQ" Exec(`"Explorer.exe" "%a\AkelFiles\Docs\FAQ.htm"`)
  "Дополнения к FAQ" Exec(`"Explorer.exe" "%a\AkelFiles\Docs\FAQ дополнения.htm"`)

  SEPARATOR
  "Описание AStyle" Exec(`"Explorer.exe" "%a\AkelFiles\Docs\Tools\AStyle\astyle.html"`)

  SEPARATOR
  -"Script Tehnologies (Win)" Call("Scripts::Main", 1, "ChmKeyword.js", `-Name="wsh.chm"`)
  -"Справочник JS" Call("Scripts::Main", 1, "ChmKeyword.js", `-Name="JS.chm"`)
  -"Справочник HTML" Call("Scripts::Main", 1, "ChmKeyword.js", `-Name="HTML.chm"`)
  -"Справочник CSS" Call("Scripts::Main", 1, "ChmKeyword.js", `-Name="css.chm"`)
  -"Справочник VBS" Call("Scripts::Main", 1, "ChmKeyword.js", `-Name="VBS.chm"`)

  SEPARATOR
  -"Изменить меню..." Call("ContextMenu::Main", 1, 0, '"DOCS_ALL"')
}

"DOCS_PLUGINS"
{
   "Информация с сайта" Exec(`"Explorer.exe" "%a\AkelFiles\Docs\Plugs\AkelPad plugins.mht"`)
   "Plugins-Eng.chm" Exec(`"hh.exe" "%a\AkelFiles\Docs\Plugs\Plugins-Eng.chm"`)
   SEPARATOR
   "Coder.txt" OpenFile("%a\AkelFiles\Docs\Plugs\Coder-Rus.txt") Icon("%a\AkelFiles\Plugs\Coder.dll", 4)
   "Scripts.txt" OpenFile("%a\AkelFiles\Docs\Plugs\Scripts-Rus.txt") Icon("%a\AkelFiles\Plugs\Scripts.dll", 0)
   "Scripts.idl" OpenFile("%a\AkelFiles\Docs\Sources\Scripts.idl")
   "AkelDLL.h" OpenFile("%a\AkelFiles\Docs\Sources\AkelDLL.h")
   SEPARATOR
   "ContextMenu.txt" OpenFile("%a\AkelFiles\Docs\Plugs\ContextMenu-Rus.txt")
   "Toolbar.txt" OpenFile("%a\AkelFiles\Docs\Plugs\Toolbar-Rus.txt")
   "Hotkeys.txt" OpenFile("%a\AkelFiles\Docs\Plugs\Hotkeys-Rus.txt")
   SEPARATOR
   "SpellCheck.txt" OpenFile("%a\AkelFiles\Docs\Plugs\SpellCheck-Rus.txt")
   SEPARATOR
   -"Каталог файлов-описаний" Call("Explorer::Main", 1, "%a\AkelFiles\Docs\Plugs")
}

"EXPLORE"
{
  -"К текущему файлу" Call("Explorer::Main", 1, "")
  SEPARATOR
  -"Корень AkelPad'а" Call("Explorer::Main", 1, "%a") Icon("%a\AkelPad.exe", 0)
  -"Каталог плагинов" Call("Explorer::Main", 1, "%a\AkelFiles\Plugs") Icon("%a\AkelFiles\Plugs\ToolBar.dll", 18)
  -"Каталог \Scripts\" Call("Explorer::Main", 1, "%a\AkelFiles\Plugs\Scripts") Icon("%a\AkelFiles\Plugs\Scripts.dll", 0)
  -"Каталог \Scripts\Include\" Call("Explorer::Main", 1, "%a\AkelFiles\Plugs\Scripts\Include") Icon("%a\AkelFiles\Plugs\Scripts.dll", 0)
  -"Синтаксические конфигурации" Call("Explorer::Main", 1, "%a\AkelFiles\Plugs\Coder")
  -"Белые списки ASpell" Call("Explorer::Main", 1, "%a\AkelFiles\Plugs\SpellCheck")
  -"Cессии" Call("Scripts::Main", 1, "OpenSessionsDir.js") Icon("%a\AkelFiles\Plugs\Sessions.dll", 0)
  -"Описания плагинов" Call("Explorer::Main", 1, "%a\AkelFiles\Docs\Plugs")
  -"Справочники..." Exec("explorer /e, %a\AkelFiles\Help")
  SEPARATOR
  -"Program Files" Call("Explorer::Main", 1, "%ProgramFiles%")
}

"FAVOURITESMANAGE"
{
  FAVOURITES
  SEPARATOR
  "Добавить в избранное..." Favourites(1) Icon(0)
  "Управление избранным..." Favourites(3) Icon(1)
  SEPARATOR
  -"Экспортировать..." Call("Scripts::Main", 1, "Favourites.js", "1") Icon("%a\AkelFiles\Plugs\ContextMenu.dll", 4)
  -"Импортировать (заменить)..." Call("Scripts::Main", 1, "Favourites.js", "2") Icon("%a\AkelFiles\Plugs\ContextMenu.dll", 5)
  -"Очистить избранное..." Call("Scripts::Main", 1, "Favourites.js", "0") Icon("%a\AkelFiles\Plugs\ContextMenu.dll", 6)
  SEPARATOR
  -"Изменить меню..." Call("ContextMenu::Main", 1, 0, '"FAVOURITESMANAGE"')
}

"FILEMANAGE"
{
  -"Поиск файлов..." Call("Scripts::Main", 1, "FindReplaceFiles.js") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 12)
  -"Сравнить файлы (WinMerge)..." Call("Scripts::Main", 1, "WinMerge.js")
  "Просмотр лога" Menu("LOGVIEW") Icon("%a\AkelFiles\Plugs\Log.dll", 0)
  SEPARATOR
  "Управление избранным..." Favourites(3) Icon(1)
  "Управление списком свежих..." Call("RecentFiles::Manage") Icon("%a\AkelFiles\Plugs\RecentFiles.dll", 0)
  -"Управление сессиями..." +Call("Sessions::Main") Icon("%a\AkelFiles\Plugs\Sessions.dll", 0)
  SEPARATOR
  "Сохранение файлов" Menu("SAVEFILE") Icon("%a\AkelFiles\Plugs\ToolBar.dll", 5)
}

"FONTSYZE"
{
  -"уменьшить	Ctrl+Num -" Command(4205) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 29)
  "10 pt" Font("", 0, 10)
  "11 pt" Font("", 0, 11)
  "12 pt" Font("", 0, 12)
  "14 pt" Font("", 0, 14)
  -"Увеличить	Ctrl+Num +"  Command(4204) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 28)
}

"FULLSCREEN"
{
  -"Обычный" Call("Scripts::Main", 1, "FullScreenEx.js")
  -"Только с тулбаром" Call("Scripts::Main", 1, "FullScreenEx.js", `-ToolBar='["ToolBar","1"]'`)
  -"Псевдо-SDI" Call("Scripts::Main", 1, "FullScreenEx.js", `-ToolBar='["ToolBar"]' -Menu=true -StatusBar=true`)
}

"SMARTSEL"
{
  "Умная клавиша Home" +Call("SmartSel::SmartHome")
  "Опция: инвертировать" +Call("SmartSel::altSmartHome")
  SEPARATOR1
  "Умная клавиша End" +Call("SmartSel::SmartEnd")
  "Опция: инвертировать" +Call("SmartSel::altSmartEnd")
  SEPARATOR1
  "Умные клавиши Up/Down" +Call("SmartSel::SmartUpDown")
  "Опция: +PageUp/PageDown" +Call("SmartSel::altSmartUpDown")
  SEPARATOR1
  "Исключить EOL из выделения" +Call("SmartSel::NoSelEOL")
  "Опция: только одна строка" +Call("SmartSel::altNoSelEOL")
  SEPARATOR1
  "Умная клавиша Backspace" +Call("SmartSel::SmartBackspace")
}

"KEY_ESC"
{
  "Включить" +Call("Exit::Main")
  SEPARATOR
  "Настроить..." Call("Exit::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
}

"SMARTKEYS"
{
  -"Горячие клавиши..." +Call("Hotkeys::Main") Icon("%a\AkelFiles\Plugs\Hotkeys.dll", 0)
  "Навигация" Menu("SMARTSEL")
  "Прокрутка" Menu("SCROLL")
  "Клавиша Esc" Menu("KEY_ESC") Icon("%a\AkelFiles\Plugs\Exit.dll", 0)
}

"INTERNET"
{
  -"Перевести: Ru -> En (Google)..." Call("Scripts::Main", 1, "TranslateWithGoogleAPI.js", `-lngS="ru" -lngT="en" -Msg=1`)
  -"Перевести: En -> Ru (Google)..." Call("Scripts::Main", 1, "TranslateWithGoogleAPI.js", `-lngS="en" -lngT="ru" -Msg=1`)
  -"Переводчик..." Call("Scripts::Main", 1, "Translator.js")
SEPARATOR
  -"Открыть страницу: Auto -> Ru (Google)" Call("Scripts::Main", 1, "InternetRequest.js", `"http://translate.google.com/#auto|ru|\s"`)
  -"Открыть страницу: Auto -> En (Google)" Call("Scripts::Main", 1, "InternetRequest.js", `"http://translate.google.com/#auto|en|\s"`)
  -"Открыть страницу: Словари (Lingvo)" Call("Scripts::Main", 1, "InternetRequest.js", `"http://lingvo.yandex.ru/en?text=\s"`)
SEPARATOR
  -"Открыть в Энциклопедиях (Яndex)" Call("Scripts::Main", 1, "InternetRequest.js", `"http://slovari.yandex.ru/\s/значение/"`)
  -"Открыть в Википедии (ru)" Call("Scripts::Main", 1, "InternetRequest.js", `"http://ru.wikipedia.org/w/index.php?Search&search=\s"`)
SEPARATOR
  -"Искать в Яndex" Call("Scripts::Main", 1, "InternetRequest.js", `"http://yandex.ua/yandsearch?text=\s"`)
  -"Искать в Google" Call("Scripts::Main", 1, "InternetRequest.js", `"http://www.google.com/search?&rls=ru&q=\s"`)
}

"LINEBOARD"
{
  "Включить / Выключить	Alt+L" Call("LineBoard::Main")  Icon("%a\AkelFiles\Plugs\LineBoard.dll", 0)
  "Линейка" Call("LineBoard::Main", 3, -1)
  SEPARATOR
  "Список закладок..." Call("LineBoard::Main::BookmarkList")
  "Перейти к предыдущей закладке	Alt+Up" Call("LineBoard::Main::PrevBookmark") Icon("%a\AkelFiles\Plugs\RecentFiles.dll", 1)
  "Перейти к следующей закладке	Alt+Down" Call("LineBoard::Main::NextBookmark") Icon("%a\AkelFiles\Plugs\RecentFiles.dll", 2)
  SEPARATOR
  "Удалить все закладки" Call("LineBoard::Main::DelAllBookmark") Icon("%a\AkelFiles\Plugs\RecentFiles.dll", 4)
  SEPARATOR
  "Настроить..." Call("LineBoard::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
}

"LOGVIEW"
{
  "В реальном времени (по текущему файлу)" Call("Log::Watch")
  "Консоль..." Call("Log::Output") Icon("%a\AkelFiles\Plugs\Log.dll", 1)
  SEPARATOR
  "Настроить..." Call("Log::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
}

"MACROS"
{
  -"Записать" Call("Macros::Main", 2, "%m", "%i") Icon("%a\AkelFiles\Plugs\Macros.dll", 1)
  -"Воспроизвести один раз" Call("Macros::Main", 1, "", 1) Icon("%a\AkelFiles\Plugs\Macros.dll", 3)
  -"Воспроизвести до конца" Call("Macros::Main", 3, "%m", "%i") Icon("%a\AkelFiles\Plugs\Macros.dll", 4)
}

"MODIFY_EDIT"
{
  "Убрать пустые символы В КОНЦЕ	Alt+Backspace" Command(4174)
  -"Убрать пустые символы ПО КРАЯМ" Call("Scripts::Main", 1, "DelLeadTrailSpaces.js")
  -"Убрать повторяющиеся пустые символы ВНУТРИ" Call("Scripts::Main", 1, "DelInsideSpaces.js")
  -"Удалить ВСЕ табы и пробелы" Command(4195)
  SEPARATOR
  -"Удалить пустые строки" Call("Scripts::Main", 1, "DelEmptyLines.js")
  -"Убрать переводы строк" Call("Scripts::Main", 1, "DelLineFeed.js")
  "Вставить разрыв строки в местах переноса" Call("Format::LineFixWrap")
  SEPARATOR
  "Пробелы -> Символы табуляции" Menu("SPACESTOTABS")
  -"Символы табуляции -> Пробелы" Call("Scripts::Main", 1, "TabsToSpaces.js")
  SEPARATOR
  "Сортировать строки по возрастанию" Call("Format::LineSortStrAsc") Icon("%a\AkelFiles\Plugs\Format.dll", 0)
  "Сортировать строки по убыванию" Call("Format::LineSortStrDesc") Icon("%a\AkelFiles\Plugs\Format.dll", 1)
  "Сортировать строки по числовому возрастанию" Call("Format::LineSortIntAsc") Icon("%a\AkelFiles\Plugs\Format.dll", 2)
  "Сортировать строки по числовому убыванию" Call("Format::LineSortIntDesc") Icon("%a\AkelFiles\Plugs\Format.dll", 3)
  SEPARATOR
  "Инвертировать порядок строк" Call("Format::LineReverse")
  "Получить дублирующиеся строки" Call("Format::LineGetDuplicates")
  "Удалить дублирующиеся строки" Call("Format::LineRemoveDuplicates")
  "Получить уникальные строки" Call("Format::LineGetUnique")
  SEPARATOR
  "" Command(4175)
  "" Command(4176)
  "" Command(4177)
  "" Command(4178)
  "" Command(4179)
  SEPARATOR
  "Раскладки/Кодировки"
  {
    -"Исправить набор En->Ru" Call("Scripts::Main", 1, "Keyboard.js", `-Type=Layout -Direction=En->Ru`)
    -"Исправить набор Ru->En" Call("Scripts::Main", 1, "Keyboard.js", `-Type=Layout -Direction=Ru->En`)
    -"Транслитерация En->Ru" Call("Scripts::Main", 1, "Keyboard.js", `-Type=Translit -Direction=En->Ru`)
    -"Транслитерация Ru->En" Call("Scripts::Main", 1, "Keyboard.js", `-Type=Translit -Direction=Ru->En`)
    "" Command(4182)
  }
  SEPARATOR
  -"Конвертировать..." Call("Scripts::Main", 1, "converter.js")
  -"Де/-шифровать..." Call("Scripts::Main", 1, "crypt.js")
  SEPARATOR
  -"Извлечь ссылки из текста" Call("Scripts::Main", 1, "getLinks.js")
}

"MODIFY_BBCode"
{
  -"[url=|]...[/url]" Insert('[url=\|]\s[/url]', 1) Icon("%a\AkelFiles\Plugs\ico\alink.ico")
  -"[url=  CB  ]...[/url]" Call("Scripts::Main", 1, "insertTag.js", `'-template="[url=%%C]%%S[/url]"'`)
  -"[url=...][img]...[/img][/url]" Insert('[url=\s][img]\s[/img][/url]', 1)
  -"[quote='''']...[/quote]" Insert(`[quote=""]\s[/quote]`, 1)
  -"[quote]...[/quote]	Ctrl+q" Insert("[quote]\s[/quote]", 1)
  -"[quote=''  CB  '']...[/quote]" Call("Scripts::Main", 1, "insertTag.js", `-template='[quote="%%C"]%%S%%|[/quote]'`)
  -"[code]...[/code]" Insert("[code]\s[/code]", 1)
  -"[more=''...''] | [/more]" Insert('[more="\s"]\n\|[/more]', 1)
  -"[b][more=''...''][/b] | [/more]" Insert('[b][more="\s"][/b]\n\|[/more]', 1)
  -"[more=''...''][code] | [/code][/more]" Insert('[more="\s"]\n[code]\|[/code]\n[/more]', 1)
  -"[spoiler=...][code] | [/code][/spoiler]" Insert('[spoiler=\s]\n[code]\|[/code]\n[/spoiler]', 1)
  -"[spoiler=][code]...[/code][/spoiler]" Insert('[spoiler=][code]\s[/code][/spoiler]', 1)
  -"[spoiler=...] | [/spoiler]" Insert('[spoiler=\|]\s[/spoiler]', 1)
  -"[b]...[/b]" Insert("[b]\s[/b]", 1) Icon("%a\AkelFiles\Plugs\ico\bold.ico")
  -"[i]...[/i]" Insert("[i]\s[/i]", 1) Icon("%a\AkelFiles\Plugs\ico\italic.ico")
  -"[u]...[/u]" Insert("[u]\s[/u]", 1) Icon("%a\AkelFiles\Plugs\ico\underline.ico")
  -"[list]...[/list]" Call("Scripts::Main", 1, "insertStructure.js", `-rootOpen="[list]" -lineOpen="[*]" -rootClose="[/list]" -shift=""`)
}

"MODIFY_HTML"
{
  -"<a href=''  CB  ''>...</a>" Call("Scripts::Main", 1, "insertTag.js", `'-template="<a href=\"%%C\">%%S</a>"'`) Icon("%a\AkelFiles\Plugs\ico\alink.ico")
  -"<h3>...</h3>" Insert("<h3>\s</h3>", 1) Icon("%a\AkelFiles\Plugs\ico\head.ico")
  -"<center>...</center>" Insert("<center>\s</center>", 1) Icon("%a\AkelFiles\Plugs\ico\center.ico")
  -"<p>...</p>" Insert("<p>\s</p>", 1)
  -"<ul>...</ul>" Call("Scripts::Main", 1, "insertStructure.js", `-rootOpen="<ul>" -lineOpen="<li>" -lineClose="</li>" -rootClose="</ul>"`)
  -"<b>...</b>" Insert("<b>\s</b>", 1) Icon("%a\AkelFiles\Plugs\ico\bold.ico")
  -"<i>...</i>" Insert("<i>\s</i>", 1) Icon("%a\AkelFiles\Plugs\ico\italic.ico")
  -"<u>...</u>" Insert("<u>\s</u>", 1) Icon("%a\AkelFiles\Plugs\ico\underline.ico")
  SEPARATOR
  -"Неразрывный пробел" Insert(" ") Icon("%a\AkelFiles\Plugs\ico\space.ico")
  -"<br> + переводы строк" Call("Scripts::Main", 1, "HTMLlinefeed.js") Icon("%a\AkelFiles\Plugs\ico\br.ico")
  SEPARATOR
  -"Убрать лишние тэги" Call("Scripts::Main", 1, "HTMLDelUselessTags.js")
  -"Убрать все HTML-тэги" Call("Scripts::Main", 1, "HTMLDelAllTags.js")
}

"MODIFY_MARK"
{
  #Highlight selected
  "Оранжевым" Call("Coder::HighLight", 2, 0, "#FFA000", 0, 0, 12) Icon("%a\AkelFiles\Plugs\ico\pen-orange.ico")
  "Жёлтым" Call("Coder::HighLight", 2, 0, "#FFFF9B", 1, 0, 13) Icon("%a\AkelFiles\Plugs\Coder.dll", 8)
  "Зелёным" Call("Coder::HighLight", 2, 0, "#00A000", 0, 0, 14) Icon("%a\AkelFiles\Plugs\Coder.dll", 10)
  "Сиреневым" Call("Coder::HighLight", 2, 0, "#A0A0FF", 0, 0, 15) Icon("%a\AkelFiles\Plugs\ico\pen-lilac.ico")
  "Фиолетовым" Call("Coder::HighLight", 2, 0, "#BE7DFF", 1, 0, 16) Icon("%a\AkelFiles\Plugs\Coder.dll", 9)
  "Красным" Call("Coder::HighLight", 2, 0, "#FF0000", 0, 0, 17) Icon("%a\AkelFiles\Plugs\ico\pen-red.ico")
  "Бирюзовым" Call("Coder::HighLight", 2, 0, "#9BFFFF", 1, 0, 18) Icon("%a\AkelFiles\Plugs\Coder.dll", 6)
  SEPARATOR
  -"Убрать все отметки" Call("Coder::HighLight", 3, 0) Icon("%a\AkelFiles\Plugs\Coder.dll", 11)
  SEPARATOR
  -"Маркеры..." Call("Scripts::Main", 1, "TextMarker.js")
}

"MODIFY_OTHER"
{
  -"AutoComplete: $[...]" Insert("$[\s]", 1)
  SEPARATOR
  -"Wiki: '''Ж''' " Insert("'''\s'''", 1) Icon("%a\AkelFiles\Plugs\ico\bold.ico")
  -"Wiki:  ''К'' " Insert("''\s''", 1) Icon("%a\AkelFiles\Plugs\ico\italic.ico")
  -"Wiki:  _П_" Insert("__\s__", 1) Icon("%a\AkelFiles\Plugs\ico\underline.ico")
  -"Wiki: [ CB _ ... ]" Call("Scripts::Main", 1, "insertTag.js", `'-template="[%%C %%S]"'`) Icon("%a\AkelFiles\Plugs\ico\alink.ico")
  SEPARATOR
  "i.ua: [cit]...[/cit]" Insert("[cit]\s[/cit]", 1)
  "i.ua: <cite>...</cite>" Insert("<cite>\s</cite>", 1)
}

"MODIFY_SELECT"
{
  -"[code]{...}[/code]" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="[code]" -tagEnd="[/code]" -inclTags=0`)
  -"[quote]{...}[/quote]" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="[quote]" -tagEnd="[/quote]" -inclTags=0`)
  -"{[b][more][/b]...[/more]}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="[b][more" -tagEnd="[/more]" -inclTags=1`)
  -"{[b][more]...[/more][/b]}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="[b][more" -tagEnd="[/more][/b]" -inclTags=1`)
  SEPARATOR
  -"{<tr>...</tr>}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="<tr" -tagEnd="</tr>" -inclTags=1`)
  -"{<table>...</table>}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="<table" -tagEnd="</table>" -inclTags=1`)
  -"{<div>...</div>}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="<div" -tagEnd="</div>" -inclTags=1`)
  -"{<a>...</a>}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="<a" -tagEnd="</a>" -inclTags=1`)
  -"{<section>...</section>}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="<section" -tagEnd="</section>" -inclTags=1`)
  -"{<binary>...</binary>}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="<binary" -tagEnd="</binary>" -inclTags=1`)
  SEPARATOR
  -"{<form>...</form>}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="<form" -tagEnd="</form>" -inclTags=1`)
  SEPARATOR
  -"{...}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="{" -tagEnd="}"`)
  -"{/*...*/}" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="/*" -tagEnd="*/"`)
  -"\r{...}\r" Call("Scripts::Main", 1, "BlockSelect.js", `-tagStart="\r" -tagEnd="\r" -inclTags=0`)
}

"QSEARCH"
{
  "Быстрое переключение диалогов" +Call("QSearch::DialogSwitcher") Icon("%a\AkelFiles\Plugs\ToolBar.dll", 34)
}

"OPEN"
{
  RECENTFILES
  SEPARATOR
 "Удалить несуществующие" Call("RecentFiles::DeleteNonExistent")
}

"PLUGINS"
{
  "Программирование" Menu("CODER") Icon("%a\AkelFiles\Plugs\Coder.dll", 5)
  "Парные скобки" Menu("XBRACKETS")
  "Специальные символы" Menu("SPECIALCHAR") Icon("%a\AkelFiles\Plugs\SpecialChar.dll", 0)
  "Номера строк, закладки" Menu("LINEBOARD") Icon("%a\AkelFiles\Plugs\LineBoard.dll", 0)
  SEPARATOR
  "Управление файлами" Menu("FILEMANAGE")
  "Буфер обмена" Menu("CLIPBOARD") Icon("%a\AkelFiles\Plugs\Clipboard.dll", 0)
  -"Макросы..." +Call("Macros::Main") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 17)
  "Скрипты" Menu("SCRIPTS") Icon("%a\AkelFiles\Plugs\Scripts.dll", 0)
  
  SEPARATOR
  "Клавиши и навигация" Menu("SMARTKEYS")
  "Панели инструментов" Menu("TOOLBARS") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 14)
  "Полноэкранный режим" Menu("FULLSCREEN") Icon("%a\AkelFiles\Plugs\FullScreen.dll", 0)
  SEPARATOR
  "Свернуть в трей" Call("MinimizeToTray::Now") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 15)
  "Сворачивать в трей всегда" +Call("MinimizeToTray::Always")
  "Быстрое переключение диалогов" +Call("QSearch::DialogSwitcher")

  SEPARATOR
  SET(32, "%a\AkelFiles\Plugs\Sounds.dll")
    "Звуковой набор текста" Icon("%a\AkelFiles\Plugs\Sounds.dll", 0)
    {
      "Включить" +Call("Sounds::Main")
      SEPARATOR
      "Настроить..." Call("Sounds::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
    }
  UNSET(32)
  SET(32, "%a\AkelFiles\Plugs\Speech.dll")
    "Машинное чтение текста" +Call("Speech::Main") Icon("%a\AkelFiles\Plugs\Speech.dll", 0)
  UNSET(32)

  SEPARATOR
  -"Ассоциировать файлы" Call("Scripts::Main", 1, "reassoc.js")
  SEPARATOR
  -"Изменить меню..." Call("ContextMenu::Main", 1, 0, '"PLUGINS"')
}

"SAVE"
{
  -"Сохранить как...	Ctrl+Shift+S" Call("Scripts::Main", 1, "SaveAs.js") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 33)
  SEPARATOR
  -"Сохранить с исходным временем" Call("Scripts::Main", 1, "saveStoreTime.js") Icon("%a\AkelFiles\Plugs\SaveFile.dll", 0)
  -"Сохранить в UTF-8 без BOM" Command(4137) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 4)
  -"Сохранить исходную версию" Call("Scripts::Main", 1, "backupVersion.js")
  -"Упаковать в zip" Call("Scripts::Main", 1, "ZipCurrentFile.js") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 5)
  SEPARATOR
  -"" Command(4110) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 32)
}

"SAVEFILE"
{
  "Автосохранение" +Call("SaveFile::AutoSave")
  "Сохранение без BOM" +Call("SaveFile::SaveNoBOM")
  SEPARATOR
  "Настроить..." Call("SaveFile::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
}

"SCRIPTS"
{
  -"Поиск/Замена с регулярными выражениями..." Call("Scripts::Main", 1, "SearchReplace.js") Icon("%a\AkelFiles\Plugs\ToolBar.dll", 13)
  -"Фильтр строк с регулярными выражениями..." Call("Scripts::Main", 1, "LinesFilter.js")
  -"Расширенная сортировка строк..." Call("Scripts::Main", 1, "SortLines.js")
  SEPARATOR
  -"Текстовый калькулятор" Call("Scripts::Main", 1, "Calculator.js")
  "Сумма чисел" Menu("SUMNUMBER")
  -"Конвертер величин..." Call("Scripts::Main", 1, "measuresConverter.js")
  SEPARATOR
  -"Выполнить команду..." Call("Scripts::Main", 1, "ConsoleRun.js")
  -"Запустить программу..." Call("Scripts::Main", 1, "ConsoleExec.js", `-sep="="`)
  SEPARATOR
  -"Имя скрипта -> Строка меню" Call("Scripts::Main", 1, "ScriptNamesToContextMenuStrings.js")
  -"Редактировать текст меню (из ini)..." Call("Scripts::Main", 1, "PlugTextReadFromIni.js")
  SEPARATOR
  -"Версия WScript.exe" Call("Scripts::Main", 1, "EvalCmd.js", `"AkelPad.MessageBox(0, 'Версия сервера сценариев WScript: ' + ScriptEngineMajorVersion() + '.' + ScriptEngineMinorVersion(), "AkelPad", 64);"`)
}

"SCROLL"
{
  "Вертикальная синхронизация" Call("Scroll::SyncVert") Icon("%a\AkelFiles\Plugs\Scroll.dll", 1)
  "Горизонтальная синхронизация" Call("Scroll::SyncHorz") Icon("%a\AkelFiles\Plugs\Scroll.dll", 0)
  SEPARATOR
  "Автоматическая прокрутка текста" +Call("Scroll::AutoScroll")
  "Автоматическая передача фокуса" +Call("Scroll::AutoFocus")
  "Обработка непрокручиваемых операций" +Call("Scroll::NoScroll")
  SEPARATOR
  "Настроить..." Call("Scroll::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
}

"SPACESTOTABS"
{
  -"Скрипты (кол-во пробелов из настроек)" Call("Scripts::Main", 1, "SpacesToTabs.js")
  -"Скрипты (кол-во пробелов = 2)" Call("Scripts::Main", 1, "SpacesToTabs.js", `-bSpaces=2`)
  -"Скрипты (запрос...)" Call("Scripts::Main", 1, "SpacesToTabs.js", `-bSpaces=-1`)
  SEPARATOR
  -"Все вхождения (запрос...)" Call("Scripts::Main", 1, "SpacesToTabs.js", `-lead=0 -bSpaces=-1 -oActn=1`)
}

"SPECIALCHAR"
{
  "Включить" +Call("SpecialChar::Main")
  SEPARATOR 
  -"Пробелы и Табуляции" Call("Scripts::Main", 1, "SpecialCharSwitcher.js", `"1,2,4,5,6"`)
  -"Новая строка и Перенос строки" Call("Scripts::Main", 1, "SpecialCharSwitcher.js", `"3,7"`)
  -"Линия отступа" Call("Scripts::Main", 1, "SpecialCharSwitcher.js", `"8"`)
  SEPARATOR
  "Настроить..." Call("SpecialChar::Settings")
}

"SPELLCHECK"
{
  -"Правописание: подсветить (txt)" Call("SpellCheck::Background", 0, "txt")
  -"Правописание: подсветить (html)" Call("SpellCheck::Background", 0, "html")
  SEPARATOR
  -"Орфография ASpell: в белый список (txt)" Call("Scripts::Main", 1, "SpellCheckAddToWhiteList.js", `-ext="txt"`)
  "Орфография ASpell: варианты..." Call("SpellCheck::Suggest") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 35)
  "Орфография ASpell: проверить выделение..." Call("SpellCheck::CheckSelection")
  "Орфография ASpell: проверить документ..." Call("SpellCheck::CheckDocument")
  "Орфография ASpell: настройки..." Call("SpellCheck::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
  SEPARATOR
  -"Орфография MSWord: проверить..." Call("Scripts::Main", 1, "SpellCheckMSWord.js")
  SEPARATOR
  -"Откорректировать пунктуацию" Call("Scripts::Main", 1, "PunctuationFixer.js", "-ignorecase")
  -"Откорректировать пунктуацию с Прописными" Call("Scripts::Main", 1, "PunctuationFixer.js", "")
}

"SPLITSWITCH"
{
  "2 вертикальные части *" Command(4213)
  "2 горизонтальные части" Command(4214)
  "4 части" Command(4212)
}

"SCROLL"
{
  "Вертикальная синхронизация" Call("Scroll::SyncVert") Icon("%a\AkelFiles\Plugs\Scroll.dll", 1)
  "Горизонтальная синхронизация" Call("Scroll::SyncHorz") Icon("%a\AkelFiles\Plugs\Scroll.dll", 0)
  SEPARATOR
  "Автоматическая прокрутка текста" +Call("Scroll::AutoScroll")
  "Автоматическая передача фокуса" +Call("Scroll::AutoFocus")
  "Обработка непрокручиваемых операций" +Call("Scroll::NoScroll")
  SEPARATOR
  "Настроить..." Call("Scroll::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
}

"SOUND"
{
SET(32, "%a\AkelFiles\Plugs\Sounds.dll")
  "Звуковой набор текста" Icon("%a\AkelFiles\Plugs\Sounds.dll", 0)
  {
    "Включить" +Call("Sounds::Main")
    SEPARATOR
    "Настроить..." Call("Sounds::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
  }
UNSET(32)
SET(32, "%a\AkelFiles\Plugs\Speech.dll")
  "Машинное чтение текста" +Call("Speech::Main") Icon("%a\AkelFiles\Plugs\Speech.dll", 0)
UNSET(32)
}

"SUMNUMBER"
{
  -"По всему тексту" Call("Scripts::Main", 1, "SumNumbers.js")
  -"Только между xml-тэгами" Call("Scripts::Main", 1, "SumNumbers.js", `-qStart="<" -qEnd=">"`)
}

"THEMECOLOR"
{
  "SIMPLE" Call("Coder::Settings", 5, "SIMPLE")
  "Default" Call("Coder::Settings", 5, "Default")
  SEPARATOR
  "Bespin+Wombat" Call("Coder::Settings", 5, "Bespin+Wombat")
  "Masik" Call("Coder::Settings", 5, "Masik")
  "Bespin" Call("Coder::Settings", 5, "Bespin")
  "Cobalt Invert" Call("Coder::Settings", 5, "CobaltInvert")
  "Cobalt" Call("Coder::Settings", 5, "Cobalt")
  "Zenburn" Call("Coder::Settings", 5, "Zenburn")
;  "Monokai" Call("Coder::Settings", 5, "Monokai")
;  "Solarized Dark" Call("Coder::Settings", 5, "Solarized Dark")
;  "SpaceCadet" Call("Coder::Settings", 5, "SpaceCadet")
;  "Sunburst" Call("Coder::Settings", 5, "Sunburst")
;  "Twilight" Call("Coder::Settings", 5, "Twilight")
  SEPARATOR
  "Active4D" Call("Coder::Settings", 5, "Active4D")
  "Dawn" Call("Coder::Settings", 5, "Dawn")
  "Earth" Call("Coder::Settings", 5, "Earth")
  "iPlastic" Call("Coder::Settings", 5, "iPlastic")
  "Lazy" Call("Coder::Settings", 5, "Lazy")
  "Mac Classic" Call("Coder::Settings", 5, "Mac Classic")
  "Solarized Light" Call("Coder::Settings", 5, "Solarized Light")
}

"THEMESYNTAX"
{
  "BBCode" Call("Coder::Settings", 1, "bbc")
  "TXT" Call("Coder::Settings", 1, "txt")
   SEPARATOR
   "log" Call("Coder::Settings", 1, "log")
   "LSS" Call("Coder::Settings", 1, "lss")
   "l@" Call("Coder::Settings", 1, "l@")
   "Java" Call("Coder::Settings", 1, "java")
   "JS" Call("Coder::Settings", 1, "js")
   "HTML" Call("Coder::Settings", 1, "html")
   "CSS" Call("Coder::Settings", 1, "css")
   "XML / DXL" Call("Coder::Settings", 1, "xml")
   "fb2" Call("Coder::Settings", 1, "fb2")
   "php" Call("Coder::Settings", 1, "php")
   "vb / vbScript" Call("Coder::Settings", 1, "vbs")
   "ini" Call("Coder::Settings", 1, "ini")
   "bat" Call("Coder::Settings", 1, "bat")
   "C++" Call("Coder::Settings", 1, "cpp")
;   "pascal" Call("Coder::Settings", 1, "dpr")
   "SQL" Call("Coder::Settings", 1, "sql")
;  "py" Call("Coder::Settings", 1, "py")
   SEPARATOR
   "spck" Call("Coder::Settings", 1, "spck")
   "coder" Call("Coder::Settings", 1, "coder")
   "mnu" Call("Coder::Settings", 1, "mnu")
   SEPARATOR
   "без подсветки" Call("Coder::Settings", 1, "?")
}

"TOOLBARS"
{
  -"Стандартная" Call("ToolBar::Main", 1, "1")
  -"Расширенная" Call("ToolBar::Main", 1, "2")
  SEPARATOR
  -"Отобразить все" Call("ToolBar::Main", 1, "")
}

"XBRACKETS"
{
  "Включить" +Call("XBrackets::Main")
  SEPARATOR
  "Перейти к парной скобке" Call("XBrackets::GoToMatchingBracket")
  "Выделить до парной скобки" Call("XBrackets::SelToMatchingBracket")
  SEPARATOR
  "Настроить..." Call("XBrackets::Settings") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 19)
}



Code: Select all

"Избранное" Menu("FAVOURITESMANAGE") Index(-3)

"Плагины" Menu("PLUGINS") Index(2)



Code: Select all

"Интернет" Menu("INTERNET") Icon("%a\AkelFiles\Plugs\ico\alink.ico")

SET(8)
  SEPARATOR
  "Копировать 	Ctrl+C" Command(4154) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 8)
  "Вырезать	Ctrl+X" Command(4153) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 7)
  "Вставить	Ctrl+V" Command(4155) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 9)
UNSET(8)

SEPARATOR
"Выделить" Menu("MODIFY_SELECT")

"Копировать"
{
  "Текст (с форматированием)	Ctrl+Alt+C" Call("Coder::Settings", 4)
  "В RTF формате" Call("Coder::Settings", 4, 4144, "FILE") Icon("%a\AkelFiles\Plugs\ico\Word.ico")
  SEPARATOR
  -"Дату" Call("Scripts::Main", 1, "DateCopyToCB.js", `""`)
  -"Дату наоборот (слитно)" Call("Scripts::Main", 1, "DateCopyToCB.js", `"yyyyMMdd"`)
  -"Дату наоборот (.)" Call("Scripts::Main", 1, "DateCopyToCB.js", `"yyyy.MM.dd"`)
  -"Дату и Время наоборот" Call("Scripts::Main", 1, "DateCopyToCB.js", `"yyyyMMdd_HHmmss"`) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 26)
}

"Вставить"
{
  -"Файл..." Call("Scripts::Main", 1, "InsertFileEx.js", `"%f"`)
  -"> ..." Call("Scripts::Main", 1, "InsertBefore.js")
  -"Дату" Call("Scripts::Main", 1, "DateInsert.js", `"dd.MM.yyyy"`, 0)
  -"Дату наоборот" Call("Scripts::Main", 1, "DateInsert.js", `"yyyy.MM.dd"`, 0)
  -"Дату и Время наоборот" Call("Scripts::Main", 1, "DateInsert.js", `"yyyy.MM.dd HH:mm:ss"`, 0) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 26)
  SEPARATOR
  "Короткое тире (en dash)" Insert("–") Icon("%a\AkelFiles\Plugs\ico\en-dash.ico")
  "Символ..." Command(4163) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 14)
}

"HTML" Menu("MODIFY_HTML")
"BBCode" Menu("MODIFY_BBCode")
"Другое" Menu("MODIFY_OTHER")
"Преобразовать" Menu("MODIFY_EDIT") Icon("%a\AkelFiles\Plugs\ContextMenu.dll", 8)

SEPARATOR
-"Отменить всё" Call("Scripts::Main", 1, "UndoAllNoScroll.js") Icon("%a\AkelFiles\Plugs\ToolBar.dll", 10)
SEPARATOR
-"Переименовать файл..." Call("Scripts::Main", 1, "RenameFileDialog.js", `"-ext=0"`)

SEPARATOR
-"В белый список (txt)" Call("Scripts::Main", 1, "SpellCheckAddToWhiteList.js", `-ext="txt"`)
"Правописание: варианты" Call("SpellCheck::Suggest") Icon("%a\AkelFiles\Plugs\Toolbar.dll", 35)

SEPARATOR
"Отметить" Menu("MODIFY_MARK") Icon("%a\AkelFiles\Plugs\Coder.dll", 0)

SEPARATOR
-"Изменить меню..." Call("ContextMenu::Main", 1, 2)



Code: Select all

"" Command(4319)
-"Закрыть безымянные" Call("Scripts::Main", 1, "CloseUnnamedAll.js", `-CloseUnnamed=true`)
"Закрыть все, кроме активной" Command(4320)
"Вернуть закрытую вкладку	Ctrl+Shift+T" Command(5002)

SEPARATOR
"Копировать" Icon("%a\AkelFiles\Plugs\ToolBar.dll", 8)
{
  -"Только имя файла" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<file>"`)
  -"Имя файла и расширение" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<file>.<ext>"`)
  -"Только путь" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<path>"`)
  -"Полное имя файла" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<path>/<file>.<ext>"`)

  SEPARATOR
  -"Имя файла для BBCode" Call("Scripts::Main", 1, "ScriptNameCopyAsBBCode.js", `"%f"`)
  -"Файл в [more]..."  Call("Scripts::Main", 1, "ScriptCopyToBlock.js", `-file="%f" -block="more"`)
  -"Файл в [b][more][/b]..."  Call("Scripts::Main", 1, "ScriptCopyToBlock.js", `-file="%f" -block="more" -bold=1`)
}
"Добавить в избранное" Favourites(2) Icon(0)
-"Отменить всё" Call("Scripts::Main", 1, "UndoAllNoScroll.js") Icon("%a\AkelFiles\Plugs\ToolBar.dll", 10)

SEPARATOR
-"Новый на основе текущего" Call("Scripts::Main", 1, "NewFilebyRecent.js") Icon("%a\AkelFiles\Plugs\ToolBar.dll", 1)
-"Переименовать файл..." Call("Scripts::Main", 1, "RenameFileDialog.js")
-"Удалить файл" Call("Scripts::Main", 1, "DeleteFile.js") Icon("%a\AkelFiles\Plugs\ToolBar.dll", 25)

SEPARATOR
-"Открыть из папки файла..." Call("Scripts::Main", 1, "OpenEx.js", `-source="%d\"`) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 2)
-"Открыть все файлы папки" Call("Scripts::Main", 1, "OpenAllFilesFromFileFolder.js", `-file="%f" -binary="ignoreAll"`)
 "Показать в Проводнике Windows..." Exec("explorer /e,/select, %f") Icon("%a\AkelFiles\Plugs\Explorer.dll", 0)
-"Показать в TotalCommander'е..." Call("Scripts::Main", 1, "openFileIn.js", '"Total Commander" "%f\:"') Icon("%a\AkelFiles\Plugs\ico\TC.ico")
-"Показать в панели Проводника" Call("Explorer::Main", 1, "%f") Icon("%a\AkelFiles\Plugs\ico\explorer.ico")
"Контекстное меню Проводника"
{
  EXPLORER
}

SEPARATOR
SET(4)  #Только для MDI
"Окна &вертикально" Command(4308) Icon("%a\AkelFiles\Plugs\Toolbar.dll", 23)
UNSET(4)
SET(1)
"Выбор окна...	F10" Command(4327)
UNSET(1)

;SEPARATOR
-"Информация о файле..." Call("FileInfo::Main") Icon("%a\AkelFiles\Plugs\FileInfo.dll", 0)

SEPARATOR
-"Изменить меню..." Call("ContextMenu::Main", 1, 3)



Code: Select all

-"Открыть URL в IE" Call("Scripts::Main", 1, "URLOpen.js", `-url="%u" -cmdLine="iexplore.exe"`)

SEPARATOR
-"Перейти к сайту (по умолчанию)" Call("Scripts::Main", 1, "URLOpen.js", `-url="%u" -siteOpen=true`)
-"Перейти к сайту в IE" Call("Scripts::Main", 1, "URLOpen.js", `-url="%u" -siteOpen=true -cmdLine="iexplore.exe"`)

SEPARATOR
-"Открыть (автовыбор)" Call("Scripts::Main", 1, "OpenByLSC.js", `"%u"`)
-"Закачать при помощи DM" Call("Scripts::Main", 1, "DownloadMaster.js", `-url="%u" -dmpath="%ProgramFiles%\Download Master\dmaster.exe" -cmdline="hidden=1"`)
-"Добавление закачки в DM..." Call("Scripts::Main", 1, "DownloadMaster.js", `-url="%u" -dmpath="%ProgramFiles%\Download Master\dmaster.exe"`) Icon("%a\AkelFiles\Plugs\ico\DM.ico")

SEPARATOR
"Копировать" Link(2) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 8)
"Заменить" Link(5)
"Удалить" Link(6) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 25)
"Вырезать" Link(4) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 7)
"Выделить" Link(3)

SEPARATOR
-"Изменить меню..." Call("ContextMenu::Main", 1, 4)



Code: Select all

"Копировать" Icon("%a\AkelFiles\Plugs\ToolBar.dll", 8)
{
  -"Только имя файла" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<file>"`)
  -"Имя файла и расширение" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<file>.<ext>"`)
  -"Только путь" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<path>"`)
  -"Полное имя файла" Call("Scripts::Main", 1, "copyPath.js", `"%f" "<path>/<file>.<ext>"`)
  SEPARATOR
  -"Имя файла для BBCode" Call("Scripts::Main", 1, "ScriptNameCopyAsBBCode.js", `"%f"`)
}
"Добавить в избранное" Favourites(2) Icon(0)
-"Убрать запись" Call("Scripts::Main", 1, "DeleteRecentFile.js", `'%f'`) Icon("%a\AkelFiles\Plugs\RecentFiles.dll", 6)
-"Удалить файл" Call("Scripts::Main", 1, "DeleteFile.js", `-file="%f" -warn=true -updRecent=true`) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 25)

SEPARATOR
-"Новый на основе выбранного" Call("Scripts::Main", 1, "NewFilebyRecent.js", `"%f"`)  Icon("%a\AkelFiles\Plugs\ToolBar.dll", 1)
#-"Письмо в LN на основе содержимого" Call("Scripts::Main", 1, "CreateLNMemo.js", `"%f"`)
SEPARATOR
-"Вставить файл..." Call("Scripts::Main", 1, "InsertFileEx.js", `"%f"`)

SEPARATOR
-"Выполнить..." Exec('rundll32.exe shell32,ShellExec_RunDLL "%f"', "%d")
-"Открыть из папки файла..." Call("Scripts::Main", 1, "OpenEx.js", `-source="%d\"`) Icon("%a\AkelFiles\Plugs\ToolBar.dll", 2)
-"Открыть все файлы папки" Call("Scripts::Main", 1, "OpenAllFilesFromFileFolder.js&
Last edited by VladSh on Wed Apr 01, 2015 12:07 am, edited 56 times in total.

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

Post by Instructor »

Updated: Замечено, что EXPLORER -> Open в любом меню работает корректно, т.е. если жму в окне редактирования/на текущей вкладке, то открывается именно открытый в текущей вкладке файл; если вызываю из меню последних файлов - открывается именно выделенный файл из меню последних файлов.
Именно поэтому в релизе к 3.3.4 значится "Добавлено: сообщение AKD_GETRECENTFILES."

Code: Select all

"OpenFileDirectory" Call("Scripts::Main", 1, "OpenFileDirectory.js", "%f", 0) 

"CopyFileNameToClipboard" Call("Scripts::Main", 1, "CopyEditFile.js", "%f", 0)
В параметре %f есть необходимость, только, если в скрипте идет обработка аргументов вызова (например как в OpenFileDirectoryArg.js).

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

Post by Instructor »

Added: ContextMenu::Main index menu parameter to external plugin call.


ContextMenu plugin v1.3

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

Post by Instructor »

VladSh
Хотелось бы чтобы либо вручную командовать параметром Main/Show(?!) для определённого меню...
Для открытия "Меню вкладок":

Code: Select all

"Settings" Call("ContextMenu::Main", 1, 2)
; Parameters: 1 -execute, 2 -menu index

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

ОТЛИЧНО

Post by VladSh »

Instructor wrote:Added: ContextMenu::Main index menu parameter to external plugin call.
Сила!

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

Глюк

Post by VladSh »

Ситуация: я сдуру назначил для ContextDLL (старого плагина) комбинацию клавиш Alt+P, теперь когда удалил плагин и нажимаю, то вылетает такое сообщение: "Heвoзмoжнo oткpыть фaйл "C:\Program Files\AkelPad\AkelFiles\Plugs\ContextDLL.dll"!"
Где бы можно было переопределить эту комбинацию клавиш (настройки, ini) - не нашёл.
Хотелось бы вернуть обратно, т.е. чтобы по Alt+P вылетало окошко с плагинами.

Вопрос: как с этим бороться? :?
Вопрос 2: можно ли сделать так, чтобы запрещать изменять комбинации клавиш, которые уже используются в самом AkelPad (указанные справа от команды в главном меню)?

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

Post by Instructor »

... теперь когда удалил плагин и нажимаю, то вылетает такое сообщение: "Heвoзмoжнo oткpыть фaйл...
Поможет кнопка "Почистить" в диалоге плагинов.

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

+

Post by VladSh »

Instructor wrote:Поможет кнопка "Почистить" в диалоге плагинов.
Действительно помогла :) с перезагрузкой Akel'а.

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

Вопросы уже уехали

Post by VladSh »

Instructor

Назад в будущее :)
VladSh wrote:Я просто не хотел каждый раз беспокоить Вас по пустякам.
Хочется для контекста по списку свежих ещё пару действий:
1. Удалить из списка ненужный лейбл файла (наверняка функция удаления у Вас уже есть, похоже удаляются несуществующие файлы).
2. Создать новый файл на основе выделенного (текст из этого файла скопировать в новый).
Возможно, и даже скорее всего, хотелки будут рости :mrgreen: именно поэтому (да и Вам, возможно, было бы проще) я хотел несколько готовых функций в общей dll, чтобы дёргать их оттуда из разных мест, т.е. дать их в публичный доступ.
По 1-му вопросу. Может можно что-то сделать?
:idea: Вообще по последним файлам есть идея сделать подшивки, т.е. чтобы пользователь мог по какому-то признаку формировать подшивки "излюбленных" :) файлов. Выбираем подшивку, и далее работаем со списком последних файлов из неё. По моему было бы удобно. Но идея ещё сырая, путь пока "поварится".
Мне хотябы скриптец по удалению лейбла наименования файла из списка последних... :oops:

По 2-му можно сделать вставку файла (выбором, как Файл\Открыть...) с заменой выделения.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Плагин - бомба (в хорошем смысле слова) :-)
А где описание всех его функций и параметров?

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

Post by Instructor »

DV
А где описание всех его функций и параметров?
Используюмые методы можно посмотреть в дефолтных меню. Что касаемо метода Call() с дополнительными параметрами, то это уже зависит от вызываемого плагина.
Post Reply