Skip to content

WendyH/HMSEditor_addon

Repository files navigation

HMSEditor Addon

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

Минимальная версия Home Media Server - 2.03, начиная с которой есть поддержка внешних дополнений.

Может быть полезен кодерам при написании скриптов.

Возможности

  • Более богатая подсветка синтаксиса языков скрипта
  • IntelliSense - подсказки ключевых слов, функций, классов, методов, переменных
  • Подсказки для параметров функций
  • Всплывающие подсказки по описанию функций, переменных и констант при наведении курсора мыши
  • Полнее база по описанию встроенных функций, свойств и методов
  • Подсветка одинаковых слов
  • Замена по Ctrl-H
  • Сохранение и открытие файлов по Ctrl-S и Ctrl-O
  • Подсказка значений переменных и выделенной области при наведении курсора мыши во время отладки скрипта
  • Использование шаблонов кода (возможность обновления их с GitHub)
  • Автоматическая проверка скрипта на ошибки
  • Поиск по справочнику описаний функций, классов, переменных и констант
  • Форматирование кода
  • Рефакторинг (переименование имён переменных и функций в видимых областях)
  • Выбор цветовой темы оформления
  • Сравнение изменений кода во время редактирования скрипта по F1
  • И некоторые другие....

Инсталляция

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

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

  • F2 - переименование переменной/функции (рефакторинг)
  • F3 - найти следующее совпадение
  • F4 - Открытие формы сравнения изменений в файлах скриптов/подкастов/обработок (в версиях ниже 2.0.3 клавиша F1)
  • F5 - установка/снятие точки остановки (breakpoint)
  • F7 - (только во время отладки) отображение окна "Вычислить выражение"
  • F8 - пошаговая отладка
  • F9 - запуск скрипта
  • F11 - отображение/скрытие дополнительной панели инструментов
  • F12 - Goto Definition - переход к определению переменной/функции
  • Esc - скрытие всех подсказок
  • Alt +1...9 - установка номерной закладки
  • Ctrl+1...9 - переход к номерной закладке
  • Alt+Влево - переход назад по истории переходов
  • Alt+Вправо - переход вперёд по истории переходов
  • Ctrl+Shift+C - закомментировать/раскомментировать выделенные строки
  • Ctrl+S, Ctrl+O - сохранение и открытие скрипта в/из файл(а)
  • 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%

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

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

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

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

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

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

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

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

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

Сравнение изменений в скрипте или файлах

В форме сравнения исходного кода по F4 можно открывать сохранённые файлы скриптов, обработок, профилей транскодирования (.cfg) и подкастов (.zip, .hdf).
При открытии файлов обработок или профилей транскодирования возможно отктыть сам скрипт в них содержащийся, а не весь текст файла в формате xml. При открытии готовых файлов подкастов возможно выбрать скрипт для загрузки из данного подкаста.
Таким образом, можно сравнивать отдельно конкретные скрипты содержащиеся в двух разных сохранённых подкастах.

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

  • Файлы настроек, загруженных шаблонов и тем хранятся в общей папке программ (в Windows 7/8/10 это "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 и их объявление не обязательно.
  • Анализ контекста несовершенен, делается на лету, через некоторое время после редактирования. Если синтаксис выбранного языка нарушен, то список видимых переменных и их типы для подсказок могут быть неадекватны.
  • При нажатии клавиши Esc убираются все активные подсказки с экрана и не будут появляться до тех пор, пока не будет начат набор нового слова.

Исходный код

Дополнение основано на использовании исходных кодов компонента FastColoredTextBox, за что его автору большущее уважение и благодарность за очень хорошую и качественную работу.
Т.к. компонент был сильно изменён, то использьзование его из этого проекта в других практически невозможно. Потеряна масштабируемость и добавлены очень специфические изменения.

Также, код в данном проекте написан непрофессионалом, замечания приветствуются.

Скриншоты

Подсказки методов и свойств класса по типу переменной:

Подсказка по набранной части слова (тёмная тема):

Пожелания, вопросы и комментарии можно оставить в ветке форума по этому адресу: https://hms.lostcut.net/viewtopic.php?id=131

About

Альтернативный редактор скриптов для Home Media Server

Resources

License

Stars

Watchers

Forks

Packages

No packages published