В этом посте я хотел бы обозначить основные «приятности» 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 фича, экономит много времени. Вот ее анимированная картинка:
Синхро-правки
Фича, подсмотренная в IDE Delphi. Можно выделить блок и править одновременно все одинаковые имена в этом блоке. Вот анимированная картинка:
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. Лично я не считаю эту фичу полезной, разглядеть что-то на карте сложно, но другим может нравиться.
А микро-карта уже полезнее — это раскрашенный узкий столбец справа от редактора. По нему можно видеть все последние правки, или подсвеченные проверкой орфографии слова. Вот примерный вид:
Поиск
Про возможности поиска я писать особенно не буду, понятно, что и рег. выражения поддерживаются, и массовый поиск/замена по файлам есть, и поиск по открытым файлам есть. Есть много опций при поиске, приведу картинку диалога:
Заключение
Есть еще много возможностей — плагины, темы интерфейса, итд, но описывать сразу все мне не хотелось бы, это просто вводный обзор.
Что касается плагинов, то выбор небольшой пока — Проводник, FTP/SFTP. Нет такого большого набора, как в Notepad++. В общем-то, именно большой набор плагинов в N++ это и есть главное преимущество этого редактора. Возможно, нужные плагины из N++ будут делаться и для SynWrite в будущем. То же можно сказать и про Sublime Text — там действительно много хороших плагинов.
PS. Просьба не постить в комментарии предложения по Synwrite, это лучше всего делать на форуме редактора.
Я могу не читать все комментарии.
Автор: Alex222