В последнее время в качестве основного рабочего редактора я выбрал Aptana Studio Community Edition. Редактор очень хорош (подробный обзор его возможностей тема для отдельного поста) и радует своей бесплатностью.
Так вот, Aptana поддерживает плагины Eclipse Monkey, которые можно создавать и самостоятельно! Как это делать? Сейчас расскажу на примере создания плагина для сжатия CSS-файлов.
Для начала нам необходимо создать в любом проекте (для скриптов я создал отдельный проект) папку «Monkey» или «Scripts». Затем создаем в новой папке JavaScript файл и открываем его.
В самом начале пишем следующее:
Этот комментарий описывает как будет отображаться ваш плагин на панели и в меню Scripts. В данном случае плагин попадет в раздел CSS под названием Compact.
Создаем функцию main, внутри этой функции и будут описываться все действия над редактируемым кодом:
Первым делом нам надо убедиться что существует активный редактор, для этого в функцию main пишем следующее:
Создаем переменную sourceEditor, которую приравниваем к editros.activeEditor (активный редактор). Затем проверяем есть ли активный редактор и в случае отсутствия оного — выводим предупреждение.
Следующим шагом нам необходимо удостовериться, что редактируемый файл — это CSS-файл. Для этого создадим следующую функцию:
Эта функция вернет нам тип файла в активном редакторе. Для ее вызова допишем наш if в функции main:
Удостоверившись что существует активный редактор и файл в нем именно CSS, можно приступать непосредственно к работе над кодом. Для этого в наш if допишем:
Вот и все. Сохранив этот плагин и перезапустив Aptana можно будет обнаружить в меню Scripts > CSS запись Compact вызвав которую, Вы сможете сжать свой CSS-файл.
Таким образом, совершая различные действия над переменной comString Вы можете создать плагин, который нужен именно Вам!
Конечный результат:
P.S. Пример, приведенный в этой статье не претендует на звание 100% компрессора CSS-файлов!
Так вот, Aptana поддерживает плагины Eclipse Monkey, которые можно создавать и самостоятельно! Как это делать? Сейчас расскажу на примере создания плагина для сжатия CSS-файлов.
Для начала нам необходимо создать в любом проекте (для скриптов я создал отдельный проект) папку «Monkey» или «Scripts». Затем создаем в новой папке JavaScript файл и открываем его.
В самом начале пишем следующее:
/*
* Menu: CSS > Compact
* DOM: download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
* DOM: localhost/com.aptana.ide.scripting
*/
Этот комментарий описывает как будет отображаться ваш плагин на панели и в меню Scripts. В данном случае плагин попадет в раздел CSS под названием Compact.
Создаем функцию main, внутри этой функции и будут описываться все действия над редактируемым кодом:
function main(){
}
Первым делом нам надо убедиться что существует активный редактор, для этого в функцию main пишем следующее:
var sourceEditor = editors.activeEditor;
if (sourceEditor === undefined)
{
alert("Нет активного редактора!");
}
Создаем переменную sourceEditor, которую приравниваем к editros.activeEditor (активный редактор). Затем проверяем есть ли активный редактор и в случае отсутствия оного — выводим предупреждение.
Следующим шагом нам необходимо удостовериться, что редактируемый файл — это CSS-файл. Для этого создадим следующую функцию:
function getLanguage()
{
var result = "";
try
{
result = editors.activeEditor.textEditor.getFileContext().getDefaultLanguage();
}
catch(e)
{
}
return result;
}
Эта функция вернет нам тип файла в активном редакторе. Для ее вызова допишем наш if в функции main:
else if (getLanguage() != "text/css")
{
alert("Сжимать можно только CSS-файлы!");
}
Удостоверившись что существует активный редактор и файл в нем именно CSS, можно приступать непосредственно к работе над кодом. Для этого в наш if допишем:
else
{
var comString = sourceEditor.source; // comString приравняли к тексту редактируемого файла
var reg = /\t/g; //Описали и
var comString = comString.replace(reg,''); //убрали все табы
var reg = /\/\*.*\*\//g; //Описали и убрали
var comString = comString.replace(reg,''); //все комментарии
var reg = /:\s*/g; // Описали и убрали все пробелы
var comString = comString.replace(reg,':'); // в конструкциях display: none;
var reg = /\r\n\r\n/g; // Описали и убрали
var comString = comString.replace(reg,''); // переводы строки
// Заменяем текст в редакторе, на отредактированный текст
sourceEditor.applyEdit(0, sourceEditor.sourceLength, comString);
}
Вот и все. Сохранив этот плагин и перезапустив Aptana можно будет обнаружить в меню Scripts > CSS запись Compact вызвав которую, Вы сможете сжать свой CSS-файл.
Таким образом, совершая различные действия над переменной comString Вы можете создать плагин, который нужен именно Вам!
Конечный результат:
/*
* Menu: CSS > Compact
* DOM: download.eclipse.org/technology/dash/update/org.eclipse.eclipsemonkey.lang.javascript
* DOM: localhost/com.aptana.ide.scripting
*/
function main()
{
var sourceEditor = editors.activeEditor;
if (sourceEditor === undefined)
{
alert("Нет активного редактора!");
}
else if (getLanguage() != "text/css")
{
alert("Сжимать можно только CSS-файлы!");
}
else
{
var comString = sourceEditor.source;
var reg = /\t/g;
var comString = comString.replace(reg,'');
var reg = /\/\*.*\*\//g;
var comString = comString.replace(reg,'');
var reg = /:\s*/g;
var comString = comString.replace(reg,':');
var reg = /{\s*/g;
var comString = comString.replace(reg,'{');
var reg = /}\s*/g;
var comString = comString.replace(reg,'}');
var reg = /\s*{/g;
var comString = comString.replace(reg,'{');
var reg = /;\s*/g;
var comString = comString.replace(reg,';');
var reg = /\r\n/g;
var comString = comString.replace(reg,'');
sourceEditor.applyEdit(0, sourceEditor.sourceLength, comString);
}
}
function getLanguage()
{
var result = "";
try
{
result = editors.activeEditor.textEditor.getFileContext().getDefaultLanguage();
}
catch(e)
{
}
return result;
}
* This source code was highlighted with Source Code Highlighter.
P.S. Пример, приведенный в этой статье не претендует на звание 100% компрессора CSS-файлов!