2016-07-11 1 views
-2

HTMLソースファイルを変更するためのEclipseプラグインを作成したいと思います。特定の状況に応じてhrefまたはsrcを検索して変更してください。私はかなりEclipseに慣れていませんが、これを達成できるものを探し出し、Javaコードを修正することができる唯一のAPIであるものは何も見つかりませんでした。Eclipseプラグインを使用してHTMLソースを変更するにはどうすればよいですか?

これを実現するために変更できるオープンソースのEclipseプラグインはありますか?

答えて

2

Eclipseプラグインを作成している場合は、Web Tools Platform(WTP)HTMLプラグインからAPI(以下の注意書き)を使用できます。ヘッドレスプラグインが必要になります:

  • org.eclipse.wst.html.core
  • org.eclipse.wst.xml.core
  • org.eclipse.wst.sse.core
  • org.eclipse.text
  • org.eclipse.core.resources

それは取るために、依存関係の多くのですが、これらはWTPのHTMLエディタ(とが提供する編集者のほとんどの下で実行する同じモデルでありますWTP、脇にJavaScriptツールから)。

import org.eclipse.wst.sse.core.internal.provisional.IModelManager; 
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; 
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; 
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; 
import org.eclipse.jface.text.IDocument; 
import org.w3c.dom.Element; 
... 
IModelManager modelManager = StructuredModelManager.getModelManager(); 
IDOMModel model = null; 
try { 
    model = (IDOMModel) modelManager.getModelForEdit(anIFile); 
    // W3C-like DOM manipulation 
    IDOMDocument doc = model.getDocument(); 
    Element ele = doc.createElement(HTML40Namespace.ElementName.P); 
    doc.appendChild(ele); 
    // JFace IDocument compatibility 
    IDocument textDocument = model.getStructuredDocument(); 
    textDocument .replace(0, textDocument .getLength(), "<tag>some text</tag>"); 
    Element ele2 = doc.createElement(HTML40Namespace.ElementName.P); 
    doc.appendChild(ele2); 
    /* You can do more with either, or both, mechanisms here. DOM 
    * changes are reflected in the text immediately and vice versa, 
    * with a best effort by the DOM side if the source itself is 
    * "broken". 
    */ 
} 
finally { 
    if (model != null) { 
     model.save(); 
     model.releaseFromEdit(); 
    } 
} 
  • ロードされたら、EclipseのJFaceのドキュメントAPIやW3C DOMのAPIに非常に近いものを使用してファイルの内容を変更することができます。私たちのモデルはテキスト文書として完全に変更可能であり、W3C APIのいくつかはそれを念頭に置いて作成されていません。また、いくつかの歴史上の実装ミスもあります。 XML宣言のXML DOMに間違ったノードタイプがあります。
  • 一部の必須クラスは、従来のバイナリ互換性のために依然としてinternalまたはprovisionalパッケージにあります。それらを変更すると、未知の量のダウンストリームプラグインが破損します。
  • NeonはAngularJSスタイルの属性名を扱います(以前のリリースよりもbetter)。
  • CSSとJavaScriptのセクションと属性の値は、自動的に処理されます。
  • ファイルには、org.eclipse.wst.sse.ui/actioncontributor/debugstatusfields=true(トレースオプション)を入力し、このファイルを引数の値として-debugに設定すると、サポートされているファイルタイプのステータスバーに、選択したテキストオフセットがオープンエディタ。それをダブルクリックすると、その選択に関するいくつかの不自然な情報が表示されます。実際のインストールでこれを設定することもできます。表示されている数値とは別に、パフォーマンスの唯一の影響は、そこをダブルクリックすることです。 status field

プラグインをテストするためのEclipseから起動するときに、あなただけの起動の設定]ダイアログボックスから、それを設定することができます。

Tracing tab in the Launch Config dialog

-1

あなたは質問をする前に検索に関してあなたのデューデリジェンスをしていないようです。

eclipseにhtml用のプラグインが既にあります。HTML Editorと呼ばれています。

This linkはあなたのものと同じ前回のスタックオーバーフローの質問です。

+0

質問はOTですが、ポスターは何かを求めています手動エディタで構文を強調表示するだけでなく、プログラム可能です。 – chrylis

+0

ああ、私の謝罪。私は私のデュー・ディリジェンスもしていないようだ! – Scrambo

関連する問題