コードスニペットの操作

logo cloud IDE Cloud IDE

logo desktop IDE Desktop IDE

これは進行中のベータリリースです。ベータ状態での Anypoint Code Builder の使用には、該当するベータサービス契約条件が適用されます。

コードスニペット​は、IDE から Mule アプリケーションフローまたはサブフローの設定 XML ファイルに挿入するコードパターンです。 再利用可能なコードパターンのコードスニペットを使用すると、より効率的に作業でき、設定エラーの可能性を減らすことができます。

スニペットを使用して、一般的に使用されるコネクタ操作、コアコンポーネントでサポートされるメッセージ処理パターン、設定 XML 内の複数要素の設定など、Mule DSL でサポートされる任意の要素の設定を提供します。 コネクタ操作、コアプロセッサー、およびその他のプロセッサーのスニペットを Mule アプリケーションの XML 設定ファイルで設定できます。​Mule アプリケーションへのスニペットの追加​を参照してください。

Anypoint Code Builder では組み込みスニペットが提供されるほか、独自のユーザースニペットを JSON 形式で設定できます。​ユーザースニペットの作成​を参照してください。

スニペットを Mule アプリケーションの設定 XML に追加すると、スニペットは Anypoint Code Builder により XML に変換されます。

スニペットは JSON 形式で作成されたテンプレートです。 スニペットを Mule アプリケーションフローまたはサブフローの設定 XML に挿入すると、スニペットの JSON は XML に自動的に変換されます。 ユーザースニペットを ​mule-xml.json​ ファイルに作成します。

コードスニペットは VS Code 機能です。詳細は、 「Snippets in Visual Studio Code (Visual Studio Code のスニペット)」​を参照してください。

組み込みスニペットを使用する利点

スニペットから生成された XML を使用すると、設定 XML で使用できる基本 XML 要素を使用するよりも迅速かつ一貫した方法でアプリケーションを設定できます。次に例を示します。

  • 組み込み Logger スニペット:

    <logger level="" message='$2' doc:name="Logger" doc:id="xgsmzm" />

    Mule アプリケーションのスニペット XML を設定するには、Logger の ​message​ など、属性の値を指定します。

  • 基本 Logger XML:

    <logger doc:name="Logger" doc:id="xlkhkz" />

    基本 Logger XML を設定するには、属性と値を指定する必要があります。

Mule アプリケーションへのスニペットの追加

キャンバスまたは設定 XML のいずれかからスニペットを追加します。

  • キャンバスからは、 Anypoint Code Builder により、作業している ​<flow/>​ または ​<sub-flow/>​ 要素にすべてのユーザースニペットが挿入されます。

  • 設定 XML からは、​オートコンプリート​を使用してユーザースニペットを見つけて挿入します。

    たとえば、​<flow/>​ または ​<sub-flow/>​ と同じレベルに存在する必要があり、このどちらの要素にも存在しないグローバル設定では、オートコンプリートを使用します。 オートコンプリートメニューでは、スニペットはその名前と 2 次元ボックスアイコンで識別されます。

組み込みスニペットまたはユーザースニペットをインテグレーションまたは実装に追加します。

フローまたはサブフローに組み込みスニペットを追加する

組み込みスニペットを追加する手順は、次のとおりです。

  1. キャンバスで、スニペットを追加する場所で ​​ (​[Add component (コンポーネントを追加)]​) アイコンをクリックします。

    Mule アプリケーションキャンバス
  2. [Snippets (スニペット)]​ > ​[Built-in Snippets (組み込みスニペット)]​ を選択します。

  3. フローまたはサブフローに追加する組み込みスニペットをクリックします。

    キャンバスで選択した場所にあるアプリケーションの ​<flow/>​ または ​<sub-flow/>​ 要素内にスニペットの XML が挿入されます。

オートコンプリート機能を使用して組み込みスニペットを XML 設定ファイルに直接挿入することもできます。 オートコンプリートを使用してスニペットを設定 XML に挿入する​ を参照してください。

フローまたはサブフローにユーザースニペットを追加する

作成するユーザースニペットをインテグレーションまたは実装に追加します。スニペットを作成するには、​ユーザースニペットの作成​を参照してください。

フローまたはサブフローにユーザースニペットを追加する手順は、次のとおりです。

  1. キャンバスで、スニペットを追加する場所で ​​ (​[Add component (コンポーネントを追加)]​) アイコンをクリックします。

    Mule アプリケーションキャンバス
  2. [Snippets (スニペット)]​ > ​[User Snippets (ユーザースニペット)]​ を選択します。

    定義されたスニペットがない場合、Anypoint Code Builder により、編集するサンプルスニペットが含まれる新しい ​mule-xml.json​ スニペットファイルが作成されます。 ユーザースニペットの作成​を参照してください。

  3. フローまたはサブフローに追加するユーザースニペットをクリックします。

    キャンバスで選択した場所にあるアプリケーションの ​<flow/>​ または ​<sub-flow/>​ 要素内にスニペットの XML が挿入されます。

ユーザースニペットの作成

キャンバスまたはコマンドパレットのいずれかからユーザースニペットを作成します。

キャンバスからユーザースニペットを作成する

Mule アプリケーション用の再利用可能なユーザースニペットを作成します。

ユーザースニペットは IDE インスタンスに固有です。また、他のユーザーがインポートして使用するためにエクスポートされるアプリケーションのプロジェクトではユーザースニペットは共有されません。

  1. キャンバスで、スニペットを追加する場所で ​​ (​[Add component (コンポーネントを追加)]​) アイコンをクリックします。

    Mule アプリケーションキャンバス
  2. [Snippets (スニペット)]​ > ​[User Snippets (ユーザースニペット)]​ を選択します。

  3. ​ (​[Create user snippet (ユーザースニペットを作成)]​) アイコンをクリックします。

    Anypoint Code Builder で ​mule-xml.json​ が開きます。ここで、ユーザースニペットを設定します。 定義されたスニペットがない場合、Anypoint Code Builder により、編集するサンプルスニペットが含まれる新しい ​mule-xml.json​ スニペットファイルが作成されます。

    たとえば、​Example​ 以降のすべての項目のコメントを解除して、​[Log a message]​ (メッセージを記録) ユーザースニペットを作成します。

    {
        // Example:
    	  "Log a message": { (1)
    	 	"prefix": "log", (2)
    	 	"body": [ (3)
    	 		"<logger level=\"${1:INFO}\" message='$2' doc:name=\"Logger\" doc:id=\"$RANDOM_HEX\" />$0",
    	 	],
    	 	"description": "Log output to console"
    	 }
    }
    1 スニペットリストに表示される名前
    2 スニペットのオートコンプリートを実行するトリガーテキスト
    3 再利用可能なコード
  4. スニペットを保存し、​​ (​[Refresh snippet list (スニペットリストを更新)]​) アイコンをクリックします。

  5. サンプルスニペットをフローに追加します。

    1. [User Snippets (ユーザースニペット)]​ で ​[Log a message (メッセージを記録)]​ をクリックします。

      Anypoint Code Builder によりスニペットが設定 XML に追加されます。

      <logger level="" message='$2' doc:name="Logger" doc:id="sgxbfo" />

      スニペットの ​$RANDOM_HEX​ 値のため、​doc:id​ の値はランダムに生成されます。

  6. level​ や ​message​ の値など、必要な値または設定を XML に追加します。次に例を示します。

    <logger level="WARN" message='This is a warning message.' doc:name="Logger" doc:id="sgxbfo" />
  7. 他のスニペットを ​mule-xml.json​ に追加するには、​}​ の後にカンマを追加し、新しいスニペットを定義します。次に例を示します。

    {
        // Example:
    	 "Log a message": {
    	 	"prefix": "log",
    	 	"body": [
    	 		"<logger level=\"${1:INFO}\" message='$2' doc:name=\"Logger\" doc:id=\"$RANDOM_HEX\" />$0",
    	 	],
    	 	"description": "Log output to console"
    	 },
    	 "Add your snippet title here": {
    	 	"prefix": "Add your snippet trigger here",
    	 	"body": [
    	 		"Add your code here",
    	 	],
    	 	"description": "Add your description here"
    	 }
    }

オートコンプリート機能を使用してユーザースニペットを XML 設定ファイルに直接挿入することもできます。

設定ファイルでユーザースニペットを作成する

ユーザースニペットを設定する手順は、次のとおりです。

  1. [Configure User Snippets (ユーザースニペットを制御)] に移動します。

    手順を表示
    • デスクトップ IDE で、​[Code (コード)]​ > ​[Settings (設定)]​ > ​[Configure User Snippets (ユーザースニペットを設定)]​ を選択する。

    • クラウド IDE で、​​ (メニュー) アイコンをクリックし、​[Preferences (プリファレンス)]​ > ​[Configure User Snippets (ユーザースニペットを設定)]​ を選択する。

    • いずれかの IDE で次の操作を実行する。

      1. キーボードショートカットを使用してコマンドパレットを開く。

        • Mac: Cmd+Shift+p

        • Windows: Ctrl+Shift+p

      2. 次のコマンドを選択する。

        Snippets: Configure User Snippets
  2. 開いた ​[Select Snippets File or Create Snippets (スニペットファイルを選択またはスニペットを作成)]​ 項目で、次を選択します。

    mule-xml.json (Mule XML)
  3. ファイルに設定が含まれていない場合、​mule-xml.json​ では、中括弧内にコメントが提供されます。

    {
    	// Place your snippets for mule-xml here. Each snippet is defined under a snippet name and has a prefix, body and
    	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
    	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
    	// same ids are connected.
    	// Example:
    	// "Print to console": {
    	// 	"prefix": "log",
    	// 	"body": [
    	// 		"console.log('$1');",
    	// 		"$2"
    	// 	],
    	// 	"description": "Log output to console"
    	// }
    }
  4. ファイルにスニペットコードを追加します。

    スニペットコードの例
    {
    	"Mule Flow": {
    		"prefix": "muledx:flow",
    		"body": [
    		  "<flow name=\"${1:$TM_FILENAME_BASE-Flow}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\">",
    		   "",
    		  "</flow>"
    		]
    	 },
    	"HTTP Listener Config": {
    		"prefix": "muledx:http-listener-config",
    		"body": [
    		  "<http:listener-config name=\"${1:httpListenerConfig}\" doc:name=\"${2:Listener Config}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\">",
    		   "  <http:listener-connection host=\"${3:Host}\" port=\"${4:Port}\"/>",
    		  "</http:listener-config>"
    		]
    	 },
    	 "HTTP Listener": {
    		"prefix": "muledx:http-listener",
    		"body": [
    		  "<http:listener path=\"/${1:path}\" config-ref=\"${2:httpListenerConfig}\" doc:name=\"${3:Listener}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\"/>"
    		]
    	 },
    	 "Set Payload": {
    		"prefix": "muledx:set-payload",
    		"body": [
    		  "<set-payload value=\"${1:#[payload]}\" doc:name=\"${2:Set Payload}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\"/>"
    		]
    	 },
    	 "Set Variable": {
    		"prefix": "muledx:set-variable",
    		"body": [
    		  "<set-variable variableName=\"${1:name}\" value=\"${2:#[payload]}\" doc:name=\"${3:Set Variable}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\"/>"
    		]
    	 },
    	 "Logger": {
    		"prefix": "muledx:logger",
    		"body": [
    		  "<logger level=\"INFO\" message=\"${1:#[payload]}\" doc:name=\"${2:Logger}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\"/>"
    		]
    	 },
    	 "Database Config - MySQL": {
    		"prefix": "muledx:db-config-mysql",
    	  "body": [
    		 "<db:config name=\"${1:DatabaseConfig}\" doc:name=\"${2:mySQL DB}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\">",
    		 "  <db:my-sql-connection host=\"${3:Host}\" port=\"${4:Port}\" user=\"${5:Username}\" password=\"${6:Password}\" database=\"${7:DatabaseName}\" />",
    		 "</db:config>"
    	  ]
    	 },
    	 "Database Select": {
    		"prefix": "muledx:db-select",
    	  "body": [
    		 "<db:select config-ref=\"${1:DatabaseConfigRef}\" doc:name=\"${2:Select}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\">",
    			"  <db:sql>",
    			"    <![CDATA[${3:SQL}]]>",
    			"  </db:sql>",
    		 "</db:select>"
    	  ]
    	 },
    	 "Transform Message": {
    		"prefix": "muledx:transform-message",
    		"body": [
    		 "<ee:transform doc:name=\"${1:Transform Message}\" doc:id=\"$RANDOM_HEX-$RANDOM_HEX\">",
    		 "  <ee:message>",
    		   "    <ee:set-payload>",
    		   "      <![CDATA[${2:DataWeave}]]>",
    		   "    </ee:set-payload>",
    		   "  </ee:message>",
    		   "</ee:transform>"
    		]
    	 }
      }

オートコンプリートを使用してスニペットを設定 XML に挿入する

スニペットを Mule アプリケーションの設定 XML に直接追加する手順は、次のとおりです。

  1. 設定 XML ファイル内をクリックします。

  2. [Auto Complete (オートコンプリート)] メニューを開きます。

    手順を表示
    • Mac: Ctrl+Space

    • Windows: Cmd+Space

  3. フローまたはサブフローにスニペットを挿入します。

    • 組み込みスニペットの場合、組み込みスニペットの名前を検索して選択します。次に例を示します。

      Choice ルーターのオートコンプリートオプション

      組み込み Choice スニペット設定をこのコンポーネントの基本 XML 設定と比較します。

      <choice doc:name="Choice" doc:id="vcfaqr" > (1)
        <when expression='#[]' doc:name="When" >
        </when>
        <otherwise doc:name="Otherwise" >
        </otherwise>
      </choice>
      
      <choice doc:name="Choice" doc:id="hhdehz" > (2)
      
      </choice>
      1 組み込み Choice スニペットの XML はオートコンプリートリストの ​flow:choice​ です。このメニュー内のスニペットのアイコンは 1 次元ボックスです。
      2 最小設定の Choice コンポーネントの XML。これは、キャンバス UI から ​[Core Processors (コアプロセッサー)]​ > ​[Flow Control (フロー制御)]​ > ​[Choice]​ に移動しても使用できます。 この XML のアイコンは 3 次元ボックスです。
      • ユーザースニペットの場合、(​mule-xml.json​ で設定されている) ユーザースニペットの名前を検索して選択します。次に例を示します。

        [Log a message (メッセージを記録)] ユーザースニペットのオートコンプリートオプション