Упрощаем работу с кодом - CodeBox

26 November 2011 #mac #soft #programming

При работе с любым кодом значительно упрощают работу так называемые snippets, то есть кусочки кода, которые в нужный момент вставляются в текст, значительно сокращая время написания.

Есть немало редакторов, в которых присутствует работа со snippets, к примеру TextMate, Vim, Emacs и другие. Но ведь было бы не плохо использовать определенные заготовки при работе с вебинтерфейсом Gmail, например? Оказывается и это возможно.

Dash

Первая программа, которую хотелось бы рассмотреть – Dash. Она находиться в разработке, и на период тестирования является бесплатной.

dashp

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

Использование кода снипета возможна в двух вариантах – это либо создание аббревиатуры, которая затем при написании будет автоматически разворачиваться, либо поиск нужного снипета в окне программы, дальнейшее его копирование в буфер обмена и затем уже его использование в своей программе.

Отсюда возникает несколько проблем. Во-первых, аббревиатуры разворачиваются автоматически именно при написании слова, как только будет набрана нужная аббревиатура, она тут же, не дожидаясь подтверждения, автоматически разворачивается. Это уменьшает число слов, которые можно использовать в качестве аббревиатуры.

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

В-третьих, в трее висит иконка, из которой можно только вызвать главное окно программы, вызвать настройки или прочесть инструкцию по использованию (довольно скудную, кстати). Лишняя сущность на экране, только занимающая место.

В итоге получаем альтернативную программу для ведения своей коллекции кусков кода, несколько неудобную и пока еще развивающуюся, но на данный момент бесплатную, что несколько скрашивает все ее недостатки.

CodeBox

Другая программа, позволяющая организовывать свою коллекцию снипетов – CodeBox.

codeboxp

CodeBox платная программа, мне удалось в Черную Пятницу приобрести ее за полцены. Отличается от Dash тем, что умеет делать те же самые операции, в то же время не имеет ее недостатков и к тому же умеет несколько большее!

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

Вызвать нужный кусок кода – это не только вставка его в определенное место программы, можно скопировать его в буфер обмена, можно вставить в текущее место курсора, можно отредактировать код перед вставкой. Все очень гибко и продумано до мелочей!

Так же, как и в Dash, можно создавать абберивиатуры, по умолчанию они так же разворачиваются автоматически во время написания. Но есть возможность изменить данное поведение. На официальном сайте на странице Tips and Tricks предлагаются следующие варианты:

# To define Tab as delimiter
$ defaults write com.shpakovski.mac.codebar ShortcutFormat -string "%@"$'\t'
# To define Space as delimiter
$ defaults write com.shpakovski.mac.codebar ShortcutFormat -string "%@ "
# To reset default behavior
$ defaults delete com.shpakovski.mac.codebar ShortcutFormat

Используя первую команду можно изменить поведение программы таким образом, что аббревиатуры будут разворачиваться только в том случае, если после ее написания была нажата клавиша Tab. Что значительно расширяет круг слов, которые можно использовать в качестве аббревиатур.

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

К примеру, есть такой ресурс, как Code Snippets, на котором собирается обширная коллекция снипетов, часть которых было бы не плохо добавить к себе. А сделать это довольно просто, достаточно открыть требуемую страницу, выделить кусок кода, кликнуть по букмарклету, после чего откроется окно CodeBox с уже заполненными значениями. Будет определен заголовок, ссылка и сам текст кода, при необходимости можно эти значения изменить, и затем сохранить коллекцию. Дело нескольких секунд!

Заключение

Любой разработчик, работает он программистом, веб-дизайнером или кем-то еще, в любом случае сталкивается с необходимостью организации собственной библиотеки функций, определений. Каждый создает ее и ведет по своему. Многие используют для этого встроенные функции редакторов или систем редактирования.

Но есть возможность организации общесистемной коллекции снипетов, которая будет доступна в любом редакторе и, соответственно, сокращения или куски текста можно будет использовать в любом месте, будь то обычный TextEdit или интерфейс Wordpress. На мой взгляд – это замечательно!

Недостаток подобной системы заключается в том, что нет возможности отслеживать тип файла, который редактируется в данный момент времени и поэтому нет возможности организовывать коллекции аббревиатур, работающих только для определенного языка. Как это, к примеру, организовано в специализированных программах, типа Vim или TextMate. То есть открываем файл html, и получаем аббревиатуры именно для него, открываем файл css, аббревиатуры уже будут совершенно другими. В случае же с CodeBox или Dash используется единая система аббревиатур.