Aptana-プラグインの作成

最近、私はAptana Studio Community Editionをメインの作業エディターとして選択しました。 エディターは非常に優れており(その機能の詳細なレビューは別の投稿のトピックです)、無料で喜んでいます。
そのため、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
*/


このコメントは、プラグインがパネルおよびスクリプトメニューに表示される方法を説明しています。 この場合、プラグインはCompactというCSSセクションに分類されます。

この関数内にメイン関数を作成し、編集したコードに対するすべてのアクションを説明します。
function main(){
}


まず、アクティブなエディターが存在することを確認する必要があります。そのため、メイン関数に次のように記述します。

var sourceEditor = editors.activeEditor;
if (sourceEditor === undefined)
{
alert(" !");
}


editros.activeEditor(アクティブエディター)と同等の変数sourceEditorを作成します。 次に、アクティブなエディターがあるかどうかを確認し、エディターがない場合は警告を表示します。
次のステップは、編集中のファイルがCSSファイルであることを確認することです。 これを行うには、次の関数を作成します。

function getLanguage()
{
var result = "";

try
{
result = editors.activeEditor.textEditor.getFileContext().getDefaultLanguage();
}
catch(e)
{
}

return result;
}


この関数は、アクティブなエディターでファイルの種類を返します。 それを呼び出すには、メイン関数にifを追加します。

else if (getLanguage() != "text/css")
{
alert(" CSS-!");
}


アクティブなエディターがあり、その中のファイルがCSSであることを確認したら、コードの作業に直接進むことができます。 これを行うには、次のように追加します。

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 .


PSこの記事の例は、100%CSSファイルコンプレッサーであると主張していません!

Source: https://habr.com/ru/post/J50199/


All Articles