Текстовый редактор SynWrite — вводный обзор

в 15:54, , рубрики: html-верстка, open source, windows, текстовый редактор, метки: ,

В этом посте я хотел бы обозначить основные «приятности» SynWrite — свободного текстового редактора для программистов (и верстальщиков) под Windows. Будут показаны далеко не все фичи, а только часть.

Редактор появился относительно недавно, так что многие про него не знают.

Многие каретки

Эта фича уже есть в бета-версии, а в релиз-версии она появится на следующей неделе. Можно устанавливать много кареток сразу: или отдельные каретки Ctrl+кликом, или каретки «в ряд» кликом и потом Ctrl+Shift+кликом по другой строке. Многих выделений нет, пока что. Вот анимированная картинка:

много кареток

Дерево структуры

Панель дерева показывает доступные функции/процедуры/классы исходного кода, причем, для большинства языков, в виде дерева, а не одно-уровневым списком. Весь поиск построен на regex, и можно полностью настроить поиск элементов дерева для всех языков. Данная фича — основная выделяющаяся в редакторе, полного аналога в других редакторах нет, только в некоторых IDE и только для «основных» языков (вроде C/C++/PHP/Java/JS). Здесь же дерево 100%-настраиваемое.

Подсветка синтаксиса

Скажу только, что подсветки в SynWrite 100%-настраиваемые через визуальный редактор. Нет зашитого кода подсветок, как в Notepad++, нет ограниченного набора конструкций, которые можно как-то подсветить.

Менеджер проектов

Менеджер проектов есть во всех уважающих себя редакторах. Здесь он сделан с посмотром в сторону редактора HippoEdit — по-моему, именно в Hippo самая понятная реализация проектов. Я (являюсь автором редактора) смотрел также как сделано в Notepad++ или Sublime Text, не впечатлило. Разве что, в N++ можно открывать 3 проекта сразу, здесь этого пока нет.

менеджер проектов

Есть и поиск по проекту:

поиск

Интеграция внешних инструментов

Это сильная сторона редактора. Вся возможность встроена в программу, и все выполнено диалоговыми окнами.
Если сравнить с Notepad++ — гораздо удобнее, не надо плагина NppExec, не надо ручного ввода каких-то макросов. Если сравнить с Sublime Text, тоже удобнее — не надо чтения документации по текстовым конфигам и ручного набивания этих конфигов.

Настройки инструментов снова подсмотрены у HippoEdit — там довольно удобно.

внешние инструменты

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

Можно вызывать файлы справки CHM по ключевому слову в тексте, т.е. например нажатием F1 на слове в PHP-тексте можно открыть PHP-справку по этому слову.

Разные возможности

Авто-завершение

Авто-завершение пока работает только для известного набора имен (в HTML, CSS) или имен функций (для других языков). Умного авто-завершения с анализом исходника пока нет, но, возможно, в будущем будут плагины для некоторых языков. Для plain text есть завершение по текущим набитым в файле словам.

Авто-закрытие тегов

Есть опция авто-закрытия открытых тегов HTML/XML и скобок.

Шаблоны кода

Шаблонами кода являются сниппеты, привязанные к некоторой подсветке (т.е. лексеру). Шаблоны можно вызывать по спец-клавише или по Таб. Есть фича «Клипы» — это шаблоны, не привязанные к лексеру, например это наборы «спец-символы HTML», «греческий алфавит» и т.д. Через шаблоны можно вставлять и date/time stamp в нужном формате.

Быстрая вставка тегов HTML

Это фича, подсмотренная в редакторе Intype. Можно ввести имя тега, нажать Таб, и имя будет расширено в полную форму тега. После этого можно «прыгать» через параметры раскрытого тега по Таб. Очень удобная при написании HTML фича, экономит много времени. Вот ее анимированная картинка:

Smart tabbing

Синхро-правки

Фича, подсмотренная в IDE Delphi. Можно выделить блок и править одновременно все одинаковые имена в этом блоке. Вот анимированная картинка:

SyncEdit

Emmet

Про Emmet (Zen coding) на Хабр говорилось много. Тут есть минус — не поддерживаются всякие спец-действия Emmet-а, такие как «balance tag», «increment value». Это из-за того, что нет полного JScript API к редактору, поэтому сделана только базовая команда «расширить аббревиатуру».

Работа с цветом

В коде HTML или CSS можно подводить мышь в кодам вида #rrggbb и видеть цветовую подсказку. Можно вызывать встроенный color picker для вставки новых кодов. Цвета, выбранные через color picker, добавляются в отдельное верхнее меню для быстрого доступа.

Работа с картинками

Картинки, файловые пути к которым заданы в HTML, можно предпросматривать в маленьком окне подсказки.
Можно также вставлять полную форму тега IMG для графических файлов, для этого есть отдельная команда «Вставить тег картинки».

Проверка орфографии

Проверка орфографии основана на движке Addict Spell и работает для многих языков. Фича — синтаксис-зависимая проверка в исходниках. При включенной подсветке неверных слов будут подсвечены только слова в синтаксических строках и комментариях (но не в идентификаторах).

Портабельные закладки

Можно помещать в текст спец-комментарии вида /*TODO: nnnnnnn*/, которые будут искаться окном «Перейти к закладке». Таким образом, закладки можно делать в любом исходнике и они не потеряются при переносе файлов.
Фича была предложена пользователем RJ TextEd, встречается в редакторах очень нечасто.

Мини- и микро-карта

Мини-карта — это уменьшенный вид редактора справа от самого редактора. Сделана с посмотром на Sublime Text. Лично я не считаю эту фичу полезной, разглядеть что-то на карте сложно, но другим может нравиться.

А микро-карта уже полезнее — это раскрашенный узкий столбец справа от редактора. По нему можно видеть все последние правки, или подсвеченные проверкой орфографии слова. Вот примерный вид:

micro map

Поиск

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

диалог поиска

Заключение

Есть еще много возможностей — плагины, темы интерфейса, итд, но описывать сразу все мне не хотелось бы, это просто вводный обзор.

Что касается плагинов, то выбор небольшой пока — Проводник, FTP/SFTP. Нет такого большого набора, как в Notepad++. В общем-то, именно большой набор плагинов в N++ это и есть главное преимущество этого редактора. Возможно, нужные плагины из N++ будут делаться и для SynWrite в будущем. То же можно сказать и про Sublime Text — там действительно много хороших плагинов.


PS. Просьба не постить в комментарии предложения по Synwrite, это лучше всего делать на форуме редактора.
Я могу не читать все комментарии.

Автор: Alex222

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js