Navigation Menu

Skip to content

Альтернативный редактор скриптов для программы "Домашний медиа-сервер" с IntelliSense, возможностью внедрения и отладки

License

WendyH/HMSEditor

Repository files navigation

HMSEditor

Данный проект больше не развивается. Он перерос в другой - HMSEditor_addon.

HMSEditor - это альтернативный редактор скриптов для программы "Домашний медиа-сервер" с IntelliSense и дополнительными возможностями, который был нечаянно создан.

Возможно, будет полезен начинающим разбираться в программе при написании скриптов или другим кодерам, которые хотят облегчить себе жизнь при их написании или отладке.

Возможности

  • IntelliSense - подсказки ключевых слов, функций, классов, методов...
  • Альтернативная и более полная подсветка синтаксиса языков скрипта
  • Подсказки для параметров функций
  • Подсказки по функциям, переменным и константам при наведении курсора мыши
  • Наиполная база на данный момент по описанию встроенных функций, свойств и методов
  • Подсветка одинаковых слов
  • Замена по Ctrl-H
  • Подсказка значений переменных при наведении курсора мыши во время отладки скрипта
  • Возможность вычисления выделенной области при наведении курсора мыши во время отладки
  • Использование шаблонов кода (автоматическое обновление их с GitHub)
  • Возможность использование цветовых тем оформления и подсветки синтаксиса. Поддержка внешних файлов тем от Sublime Text.
  • И некоторые другие....

Для того, чтобы во время отладки при наведении курсора мыши показывалось значение переменной нужно вызвать окно "Вычислить выражение" и закрыть его или при первом наведении редактор сам попытается его вызвать нажав на кнопки и автоматически закрыв, но это не всегда может сработать.

Режимы работы

Редактор может работать как автономном режиме (простой запуск редактора), так и в фоне (запуск с ключём -givemesomemagic), проявляя себя только при открытии окон редактирования скриптов в программе Домашний медиа-сервер и заменяя штатный редактор собой.

Для работы только в режиме замены штатного редактора необходимо, чтобы HMSEditor был загружен в память после запуска программы Домашний медиа-сервер.

Инсталляция

Чтобы редактор автоматически запускался в фоне с программой Домашний медиа-сервер и автоматически выгружался при выходе из неё, нужно запускать HMSEditor.exe с ключём -givemesomemagic из самой программы в скрипте, который бы сработал при запуске программы.

Более подробная пошаговая инструкция:

  1. Скачиваем файл HMSEditor.exe;
  2. Копируем его в любое удобное место, откуда мы потом будем его запускать. Например, можно скопировать в каталог, где установлен Home Media Server (типа "C:\Program Files (x86)\Home Media Server");
  3. Скачиваем файл HMSEditor.cfg;
  4. В программе "Домашний медиа-сервер" нажать "Настройки", cлева выбрать категорию "Медиа-ресурсы", cправа выбрать "Обработка";
  5. Нажать "Загрузить" и выбрать этот файл. На вопрос об очистке текущего списка выберите "Нет";
    После этого будет загружен скрипт запуска HMSEditor.exe.
  6. Далее, в программе "Домашний медиа-сервер", в настройках выбрать категорию "События";
  7. В поле "После запуска программы" выбрать из выпадающего списка наш скрипт "Запуск HMSEditor".

Также, скрипт можно отредактировать, например для того, чтобы изменить место запуска HMSEditor.exe.

Для этого всего-лишь нужно изменить в скрипте строку:

filepath: String = '"'+ProgramPath+'\hmseditor.exe" -givemesomemagic';

где ProgramPath можно заменить на свой путь, откуда будет запускаться HMSEditor.exe. Например, эта строка может выглядеть так:

filepath: String = "D:\HMSEditor\hmseditor.exe -givemesomemagic";

Загрузка скрипта запуска HMSEditor.exe в картинках

Указание скрипта срабатывания при событии загрузки программы:

После этого, при запуске программы "Домашний медиа-сервер", автоматически будет запущен альтернативный редактор в фоне, который никак себя не будет проявлять, кроме как появляться при открытии окон для редактирования скриптов. При закрытии программы, HMSEditor будет выгружен из памяти автоматически.

Горячие клавиши

  • F11 - отображение/скрытие дополнительной панели инструментов
  • F12 - Goto Definition - переход к определению переменной/функции
  • Esc - скрытие всех подсказок
  • F2 - переименование переменной/функции (рефакторинг)
  • F9 - запуск скрипта
  • F8 - пошаговая отладка
  • F5 - установка/снятие точки остановки (breakpoint)
  • F3 - найти следующее совпадение
  • Alt +1...9 - установка номерной закладки
  • Ctrl+1...9 - переход к номерной закладке
  • Ctrl+D - переключение на "родной" встроенный редактор (переключение назад - некоторое время ничего не делать)
  • Alt+Влево - переход назад по истории переходов
  • Alt+Вправо - переход вперёд по истории переходов
  • Ctrl+Shift+C - закомментировать/раскомментировать выделенные строки
  • Ctrl+F, Ctrl+H - показывает окно расширенного поиска и замены
  • Ctrl+G - переход к к строке по номеру
  • Ctrl+(C, V, X) - стандартные операции копировать/вставить/вырезать
  • Ctrl+A - выбор всего текста
  • Ctrl+Z, Alt+Backspace, Ctrl+R, Ctrl+Shift+Z - Отмена/Повтор действия
  • Tab, Shift+Tab - увеличить/уменьшить отступ слева для выделенной области
  • Ctrl+Home, Ctrl+End - переход в начало/конец текста
  • Shift+Ctrl+Home, Shift+Ctrl+End - переход в начало/конец текста выделенной области
  • Ctrl+Влево, Ctrl+Вправо - переход влево/вправо по словам
  • Shift+Ctrl+Влево, Shift+Ctrl+Вправо - переход влево/вправо по словам с выделением области
  • Ctrl+U, Shift+Ctrl+U - конвертирование выделенного текста в верхний/нижний регистр
  • Ins - переключение режима вставки
  • Ctrl+Backspace, Ctrl+Del - удаление слова слева/справа
  • Alt+Mouse, Alt+Shift+(Ввехр, Вниз, Вправо, Влево) - включение режима выделения столбцов
  • Alt+Вверх, Alt+Вниз - передвигание текущей строки целиком вверх/вниз
  • Shift+Del - удаление текущей строки
  • Ctrl+B, Ctrl+Shift-B, Ctrl+N, Ctrl+Shift+N - добавление, удаление и перемещение к закладкам
  • Ctrl+Wheel - изменение масштаба
  • Ctrl+M, Ctrl+E - включение/остановка записи макро (действий), запуск макро
  • Alt+F [символ] - найти ближайший [символ]
  • Ctrl+(Вверх, Вниз) - скроллирование вверх/вниз
  • Ctrl+(NumpadPlus, NumpadMinus, 0) - увеличение масштаба, уменьшение масштаба, сброс масштаба в 100%

Некоторые особенности работы HMSEditor

  • Настройки хранятся отдельно для нескольких режимов: 1) автономного, 2) редактирование профиля транскодирования, 3) редактирование скрипта обработки, 4) редактирование любых других скриптов.
    Это значит, что настроив редактор (включение опций подсказок, цветовой темы и проч.) в одном режиме, в другом режиме будут использоваться свои - совсем другие настройки и настраивать нужно их отдельно.
  • Настройки загружаются при открытии окна редактора, сохраняются - при закрытии окна.
  • Файлы настроек, загруженных шаблонов и тем хранятся в общей папке программ (в Windows 7 это "C:\ProgramData\HMSEditor", в XP это "C:\Document and settings\All users\Application data\HMSEditor").
  • Проверка наличия обновлений шаблонов и программы делается только при открытии окна "О программе", запускается в фоне и занимает некоторое время.
  • Все проверки делаются с использованием API GitHub.
  • После загрузки файла обновления редактора, проверяется наличие валидной цифровой подписи. Если не валидна - отказ от обновления.
  • Т.к. GitHub работает только по протоколу https, то также проверяется наличие защищённого соединения (проверяется системой). Если сертификат использующийся для соединения не является доверенным - обновлений не будет. Идёт проверка на правильность соединения защищённого протокола. Это значит, если будет использоваться прокси с подставленным сертификатом или ваш провайдер тоже будет делать его подмену - соединения с GitHub не будет, а значит и обновлений.
  • Из-за того, что настройки github.com безопасных протоколов соединения не поддерживают операционную систему Windowx XP - автоматически обновиться или скачать шаблоны под данной ОС не получиться. Только скачать вручную и обновить файл самостоятельно.
  • "Умные" подсказки работают только с языком PascalScript и C++Script. Ибо в JScript все переменные изначально с типом Variant и их объявление не обязательно.
  • По Ctrl-D происходит переключение на стандартный редактор. Т.к. события от встроенного редактора никак пока не получить, то обратное переключение происходит по тайм-ауту ("времени ничего неделания") через некоторое время.
  • Анализ контекста не совершенен, делается на лету, через некоторое время после редактирования. Если синтаксис выбранного языка нарушен, то список видимых переменных и их типы для подсказок могут быть не адекватны.

Использование шаблонов

Нажав правой клавишей мышки на поле редактора, можно в появившемся меню выбрать пункт "Вставить шаблон". Где для конкретного языка скрипта будут варианты шаблонов с участками кода, которые можно выбрав, вставить в текст.

Наборы шаблонов выложены тут, могут периодически обновляться и добавляться.
Загрузить шаблоны с github для редактора можно в окне "О программе" (пункт в меню панели инструментов).

Можно создавать свои собственные шаблоны. Достаточно сохранить файл с кодом шаблона в папку %ProgramData%\HMSEditor\Templates в соответствующую подпапку языка кода.

Существующие шаблоны сделаны как пример или костяк, который необходимо редактировать под свои конкретные нужды и не является примером как именно нужно делать. Теоретически, могут содержать даже ошибки или неверный подход. И никак не могут являться решением на все случаи жизни.

Предложения по добавлению шаблонов в общую коллекцию приветствуются.

Пример использования шаблонов в HMSEditor

Показан пример создания подкаста, практически в реальном времени с использованием HMSEditor и шаблонов кода.
http://www.youtube.com/watch?v=dCKhdEFSiVY

Цветовые темы

Кроме встроенных цветовых тем, также можно добавлять свои файлы тем. Поддерживаются пока только темы совместимые с Sublime Text 2 / 3. Которые скачать, например, можно отсюда.

Чтобы добавить темы в редактор, нужно поместить файлы в директорию %ProgramData%\HMSEditor\Themes.

Примеры использования тем

Наведение указателя мыши на переменную mpFilePath во время отладки:

About

Альтернативный редактор скриптов для программы "Домашний медиа-сервер" с IntelliSense, возможностью внедрения и отладки

Resources

License

Stars

Watchers

Forks

Packages

No packages published