RU

Пакет QSP для Sublime Text (подсветка синтаксиса и билдер)

Aleks Versus Moderator 16.03.2021 15:42 23 comments 9398 views

Всем привет.

В общем, тут как-то звёзды сошлись.

Вопросы Викара и попытка редизайнить свой сайт заставили ознакомиться с git и github; перелопачивание старого QSP-кода заставило пожалеть об отсутствии системы контроля версий в Qgen; а Pseudopod показал, что оказывается можно разрабатывать игры на QSP и не в QGen. Ещё до кучи я возобновил своё знакомство с Python, ну а поскольку моим любимым текстовым редактором уже многие годы остаётся Sublime Text, всё это вылилось в попытку написать скрипт вроде того, что предлагал evp когда-то (https://qsp.org/forum/777-sovmestnaa-razrabotka).
И к моему удивлению заработал сначала скрипт, а потом мне даже удалось превратить это в почти самостоятельную Build System (ну, конечно, многое придётся прописать руками).
Получился QSP-Builder for Sublime Text и умеет он: собирать из разрозненных файлов в формате TXT2GAM файлы “.qsp” и запускать их в плеере. Таким образом осуществляется как бы прямой запуск игры (на основе только что написанных файлов) из Sublime Text.

Сейчас для установки вам достаточно:
1. Скачать архив с последним релизом со страницы релизов https://github.com/AleksVersus/JAD_for_QSP/releases
2. Распаковать архив и скопировать файл QSP.sublime-package в папку Packages в месте установки Sublime Text (Например, в C:\Program Files\Sublime Text\Packages)
3. Profit. Подсветка синтаксиса QSP и билдер установлены в Sublime Text.

Предварительно должен быть установлен по особому пути плеер, либо в файле проекта прописан путь к нужному плееру. Внимательно читайте документацию: https://github.com/AleksVersus/JAD_for_QSP#readme

*https://github.com/AleksVersus/JAD_for_QSP*

О проблемах, замечаниях и предложениях просьба отписываться сюда, или на aleksversus@mail.ru. За остальными ресурсами мне тяжело будет следить.

Что даёт QSP-Builder для Sublime Text:

  • Контроль версий. Поскольку все части игры хранятся в виде текстовых файлов (исходного кода), они легко обрабатываются системами контроля версий, например GIT. Таким образом, вы можете проследить все этапы создания вашей игры, и быстрее находить ошибки.
  • Совместная разработка. Вы можете организовать общий репозиторий, например на GitHub, и разрабатывать игру командой, при этом видя, кто и какие изменения вносит в проект.
  • Удобство модульной разработки. Вы можете одновременно в одной программе работать над всеми модулями вашей игры, или открывать для каждого модуля своё окно, или пользоваться любыми иными возможностями Sublime Text, а затем собрать и запустить игру, нажав всего одну комбинацию клавиш. QBST соберёт все нужные вам файлы “.qsp” и запустит игру в плеере по нажатию пары клавиш.
  • Один редактор - много плееров. В специальном файле проекта можно для каждой игры указать собственный плеер. Таким образом, одну игру вы можете разрабатывать например для qSpider, одну для Quest Navigator, а другую для классики. И вам не придётся ставить себе три Quest Generator с разными настройками для плееров.
  • Sublime Text. Sublime Text умеет подсвечивать HTML, JavaScript и CSS, что очень сильно облегчает разработку игр для Quest Navigator и qSpider. Если вам сильно не хватало проверки орфографии в QGen, то здесь вы можете себе её сделать. Поиск и замена лишь по определённым файлам и папкам (а значит и локациям)? В Sublime Text есть и это. Сложно придумать, что умеет QGen и не умеет Sublime Text — гораздо проще придумать, что умеет ST и не умеет Quest Generator.

В конечном счёте всё превратилось в рекламу Sublime Text, но я и правда фанат этой программы.

Edited at 06.06.2023 15:07 (2 years ago)
Aleks Versus Moderator 22.02.2023 12:45 (3 years ago)

Оказалось, что написать скрипт для конвертирования было проще, чем я думал. Поэтому выпускаю новый релиз.
https://github.com/AleksVersus/JAD_for_QSP/releases/tag/v.0.6

(Не форматирую, лень.)
Изменения в билдере и пакете для SublimeText:

Вспомогательные скрипты:
[2022.07.01] Багфикс. Ругался на отсутствие .qproj.
[2023.02.22] Написаны конвертеры в одну и в другую сторону. Все подключаемые модули вынесены в пакет qSpy.
[2022.07.24] Исправлена ошибка в препроцессоре, которая не позволяла использовать имена меток, состоящие из уже существующих имён меток.
Описание вспомогательных скриптов в папке qSpy.
Подсветка синтаксиса:
[2022.07.18] Багфикс. Неверно подсвечивались ключевые слова в составе других слов.
[2022.07.24] Багфикс. Неверно подсвечивались операторы +=, -= и т.п. Не подсвечивалась, как конец локации строка с отступом и -, теперь подсвечивается, как ошибка.
[2022.07.24] Изменены горячие клавиши для вызова сниппетов HTML-форматирования. Скорее всего я их совсем исключу:
ctrl+alt+b - Оборачивает выделенный текст в теги <b> и </b>
ctrl+alt+i - Оборачивает выделенный текст в теги <i> и </i>
ctrl+alt+p - Оборачивает выделенный текст в теги <p> и </p>
ctrl+alt+f - Оборачивает выделенный текст в теги <font color=#000000 size=0> и </font>
ctrl+alt+d - Оборачивает выделенный текст в теги <div> и </div>
ctrl+alt+h - Оборачивает выделенный текст в теги <h1>-<h6> и </h1>-</h6>
alt+h - Оборачивает выделенный текст в теги <qhtml> и </qhtml>
[2022.08.30] Добавлен сниппет цикла. Вызывается набором ключевого слова loop.

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

Aleks Versus Moderator 06.06.2023 14:01 (2 years ago)

Билдер перенесён внутрь пакета QSP и подключается к Sublime Text автоматически как плагин.
То есть. Теперь не нужно устанавливать отдельный интерпретатор Python, не нужно править пути ни в самом билдере, ни в файле настроек. Просто:

  1. Качаете данный релиз github.com/JAD_QBST_v.0.7.rar
  2. Распаковываете архив
  3. Копируете QSP.sublime-package в папку Packages установленного Sublime Text (например в C:\Program Files\Sublime Text\Packages)
  4. Билдер запускается из Sublime Text сочетанием клавиш Сtrl+F5, сам собирает вам игру и запускает в плеере (плеер должен быть предварительно установлен, иначе игра соберётся, но не запустится).

Ну и внимательно читайте документацию, по-прежнему нужен файл проекта, если вы пишете каждую локацию в отдельном файле. Если пишете всё в одном файле, игра соберётся и без файла проекта.

Aleks Versus Moderator 24.06.2023 12:16 (2 years ago)

Новый релиз пакета QSP для Sublime Text v.0.8

Изменены различные scopes для подсветки синтаксиса. Они стали более адекватными семантике Sublime Text.
Добавлены в основное меню Tools вспомогательные инструменты, облегчающие конвертирование игр и перенос проекта игры с Quest Generator на Sublime Text

Конвертеры позволяют конвертировать одиночные файлы. QSP-файл можно сконвертить в qsps и наоборот.

Сплиттер одиночного файла позволяет сконвертировать QSP-файл и/или разбить получившийся qsps-файл на отдельные файлы, каждый из которых будет содержать только одну локацию. При этом, если рядом находится одноимённый файл .qproj файлы-локации будут рассортированы по папкам соответственно этому .qproj.

Сплиттер проекта делает то же самое, только обрабатывает все файлы QSP или qsps в папке.

Установка не изменилась. Нужно просто скопировать QSP.sublime-package из архива в папку с установленным Sublime Text в подпапку Packages.

https://github.com/AleksVersus/JAD_for_QSP/releases/tag/v.0.8

Aleks Versus Moderator 19.01.2024 09:44 (2 years ago)

Не публиковал здесь новостей о выходе новых версий пакета QSP для Sublime Text, поскольку изменения были незначительны и связаны в основном с багфиксами. Но теперь пришло время объявить, что
вышла версия 0.11 пакета QSP для Sublime Text.

Со страницы релизов вы можете скачать как отдельный установочник пакета, так и архив, в котором лежат: установочник, инструкция и примеры в папке [disdocs].

Вот список основных изменений, не считая версии 0.9:
* Добавлены все операторы, функции и системные переменные в списки автоподстановок.
* При создании новой локации редактор подскажет вам, что эта локация уже существует в проекте (пока что полноценно работает только на новых проектах)
* Различные мелкие правки алгоритмов и синтаксиса.
* Добавлен инструмент для быстрой генерации проекта.
* Создан установочник для пакета. Теперь пользователям Windows пакет можно ставить в несколько кликов.
* Добавлен инструмент для быстрого создания файла игры.
* Некритические ошибки теперь тоже выводятся в консоль.
* Добавлены подсказки по ключевым словам в статусбаре.
* Исправлены scopes и списки Символов для удобного поиска названий локаций и меток.
* Добавлен файл рабочего пространства для проекта QSP `qsp-project-workspace.json` — не удаляйте его.
* Добавлена автоподстановка названий локаций при вводе конструкции неявного вызова функций.
* Удалены сниппеты для оборачивания текста в HTML-теги.

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

Aleks Versus Moderator 01.03.2024 13:17 (1 year ago)

Пакет QSP для Sublime Text, версия 0.13.

Релиз.

Исправления:
- исправлены ошибки автоподстановки имён локаций.
- устранено подтягивание в workspace локаций из не сохранённых файлов
- исправлены ошибки в подсветке неизвестного действия (ложная подсветка перед ключевыми словами)
- исправлены ошибки в подсветке унарного минуса.
- исправлена некорректная подсветка “склеившихся” системных переменных. Теперь они подсвечиваются, как ошибка.
- обновлена подсветка подвыражений в строках.
- исправлены некоторые ошибки в логике плагина.

Новое:
- Добавлена подсветка локальных и глобальных переменных в новых инструментах Analyse
- Добавлен поиск повторяющихся имён локаций в новом инструменте Analyse
- Всплывающее окно при вводе повторяющегося имени локации или метки заменено на аннотацию.

Aleks Versus Moderator 09.05.2024 17:46 (1 year ago)

Пакет QSP для Sublime Text v.0.15

Релиз

Основным изменением в данном релизе стало внедрение конвертера QGC от studentik, что ускорило сборку проектов в несколько раз.

Aleks Versus Moderator 21.10.2024 09:14 (1 year ago)

Пакет QSP для Sublime Text, v.0.16

Релиз, как всегда, доступен на гитхабе

Подсветка обновлена, поддерживаются нововведения в синтаксисе для плееров 5.9.0.
Ещё появился новый параметр в qsp-project.json, который называется assets. Этот параметр позволяет автоматически копировать файлы из папок с исходниками в релизные папки.

Aleks Versus Moderator 13.02.2026 12:56 (1 week ago)

Пакет QSP для Sublime Text, v.0.18

Релиз качаем с гитхаба.

Если подзабыли, как устанавливать.

Масштабный рефакторинг и переписывание отдельных модулей плагина, как подготовка к написанию анализатора кода.

**Исправления:**

- Аннотация типов и масштабный рефакторинг.
- Полностью переписаны конвертер и препроцессор, встроенные в плагин.

**Новое:**

- Работа с базовыми описанием и действиями согласно нового формата **TXT2GAM**.
- Препроцессор теперь умеет выводить ошибки, допущенные в директивах или базовом синтаксисе QSP.
- Новый параметр для модулей ‘start_qsploc_file’, позволяющий указать, локации из какого файла будут первыми в конечной игре/модуле. Этот параметр позволяет игнорировать порядок файлов в элементах ‘files’ и ‘folders’ и всегда собирать модуль с одними и теми же локациями в начале. Не влияет на обработку игры препроцессором. Препроцессор по-прежнему “читает” файлы сначала из элемента ‘files’, и лишь затем из элемента ‘folders’, что позволяет подключать qsps-файлы без локаций с одними лишь командами препроцессора. **Большое спасибо, devgor88, за первичную реализацию параметра и предложенный пулреквест**.

**Не исправлено:**

- Подвисания, когда в Sublime Text открывается большой проект. Это связано со сканированием всех файлов проекта и обновлением их в WS. Пока что думаю, как это победить.

Log in or Register to post comments.