Альтернативный редактор скриптов для Home Media Server
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
HMSEditor
Test
.gitattributes
.gitignore
HMSEditor_addon.VC.db
HMSEditor_addon.sln
LICENSE.txt
README.md

README.md

HMSEditor Addon

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

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

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

Возможности

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

Инсталляция

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

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

  • F1 - Открытие формы сравнения изменений в файлах скриптов/подкастов/обработок
  • F2 - переименование переменной/функции (рефакторинг)
  • F3 - найти следующее совпадение
  • 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.

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

В форме сравнения исходного кода по F1 можно открывать сохранённые файлы скриптов, обработок, профилей транскодирования (.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