Наверное, имеет смысл подвести какие-то итоги по моей работе над пакетом QSP для Sublime Text.
Во-первых, теперь это действительно Пакет. И в этот пакет входят:
- Default.sublime-keymap - файл настройки сочетаний клавиш при работе с QSP-файлом
- Indentation Rules.tmPreferences - файл настройки поведения отступов
- Location in Goto-List.tmPreferences - файл настройки распознавания локаций в проекте
- Markup in Goto-List.tmPreferences - файл настройки распознавания меток на локации
- QSP.sublime-build - файл настройки build-system для сборки файлов `.qsp`.
- qsp.sublime-syntax - файл со схемой подсветки синтаксиса QSP
- qsp_locations.sublime-syntax - дополнительный файл со схемой подсветки синтаксиса QSP, предназначенный для встраивания подсветки QSP в схемы подсветки других языков.
- syntax_test_qsp.qsps - файл с образцом синтаксиса QSP для теста подсветки (не билдится сублаймом).
Во-вторых, из-за того что файл назначения клавиш, и файл build-system перенесены в общий Пакет, немного изменился порядок установки. Теперь необходимо отредактировать эти файлы и потом упаковать в Пакет, либо извлечь из релизного Пакета, отредактировать и упаковать обратно.
В самой подсветке внесены некоторые изменения:
- Изменена подсветка операторов многострочных конструкций act, if, else, elseif, loop, end - они подсвечиваются голубым курсивом в теме monokai.
- Добавлена подсветка конструкций неявного вызова, а так же подсветка ошибочной записи таких конструкций:
- Текст между локациями подсвечивается таким же цветом, как комментарий, но ведёт себя, как код. К нему применяется scope meta.diff. Это сделано для того, чтобы работали сниппеты вставки локаций.
- Добавлена правильная подсветка `end loop`, `end act`, `end if` - теперь такие сочетания подсвечиваются, как отдельное ключевое слово.
Добавлены сниппеты в привязке к клавишам. Если выделить какой-то текст и нажать определённые клавиши, будет выполнено следующее:
- b - Оборачивает выделенный текст в теги `<b>` и `</b>`
- i - Оборачивает выделенный текст в теги `<i>` и `</i>`
- p - Оборачивает выделенный текст в теги `<p>` и `</p>`
- f - Оборачивает выделенный текст в теги `<font color=#000000 size=0>` и `</font>`
- d - Оборачивает выделенный текст в теги `<div>` и `</div>`
- h - Оборачивает выделенный текст в теги `<h1>`-`<h6>` и `</h1>`-`</h6>`
- alt+h - Оборачивает выделенный текст в теги `<html>` и `</html>`
Добавлены так же сниппеты, вызываемые по вводу ключевых слов, или части строки кода. Нажав клавишу Tab, можно вставить сниппет. Переключаться между полями вставленного фрагмента так же можно с помощью клавиши Tab.
Вот какие сниппеты вы можете использовать:
- newloc или последовательный ввод # (диез и пробел) - добавляет новую локацию:
# название_локации
!@ Код, выполняемый при посещении локации
--- название_локации ---------------------------------
- addobj - добавляет одну из строк кода:
addobj "Название предмета","путь к файлу картинки/picture.jpg",позиция
addobj "Название предмета"
- act - добавляет действие:
act "Название действия":
!@ Код действия
end
- if - добавляет конструкцию условия:
if условие_выполнено:
!@ Если условие выполнено
!@ Код, который выполняется, если условие выполнено
end
- ifelse - добавляет условие с ветвлением:
if условие_выполнено:
!@ Если условие выполнено
!@ Код, который выполняется, если условие выполнено
else:
!@ Если условие не выполнено
!@ Код, который выполняется, если условие не выполнено
end
Добавлено поведение отступов. Если пишешь `act`, `loop`, `if` и т.п., затем после двоеточия нажимаешь `Enter`, в следующей строке автоматически добавляется отступ. Если после этого вводишь `end`, отступ перед `end` сокращается.
Сочетание `Ctrl+Shift+R` запускает GOTO по проекту, при этом открывается список локаций по всему проекту, а так же меток на текущей локации.
Сочетание `Ctrl+R` запускает GOTO по текущему файлу, при этом открывается список локаций и меток по текущему файлу.
Вот такие изменения произошли в Пакете QSP для Sublime Text. Непосредственно сам скрипт пока не менялся, но в скором времени будет изменён. Будет добавлена обработка простейшего препроцессора. На сколько в скором? Боюсь это зависит уже не от меня.
Очередной релиз доступен по этой ссылке: https://github.com/AleksVersus/JAD_for_QSP/releases/tag/v.0.3
|