2017-03-27 10 views
0

ショートコード(PHPコード内にショートコードを含める)のためにAceエディタでPHPモードを使用するときに構文エラーを処理する方法を理解しようとしています。強調表示はすでに正常に動作していますが、問題はショートコードが使用されたときに表示されるPHP構文エラーです。拡張1は[shortcode]something[/shortcode]Ace Editor角括弧を使用するためのPHP構文

function foo($title) { 

    // Example single shortcode (without closing shortcode), [...] will be replaced with "Some value entered by user" 
    $site_name = [get_input type="text" desc="Please enter the site name"]; 

    // Example with open closing shortcodes 
    [check_question question="Do you want to add period to the end of the title?"] 
     $title .= '.'; 
    [/check_question] 

    $title = ucfirst($title); 

    return $title; 
} 

オープンとクローズブラケットを持っているだろうが

シンプルなショートは[shortcode]だろう誰かがPHPモード/労働者、または何行われる必要がありますを拡張する方法を見つけ出すために私を助けることができますショートコードが含まれているときにPHP構文エラーがエディタに表示されないようにするには?ショートコードでのPHP構文の単純なエラーの他に、すばらしいことがあります。

https://github.com/ajaxorg/ace/wiki/Creating-or-Extending-an-Edit-Mode

フィドル例: http://jsfiddle.net/tripflex/crm4ywu0/

カスタム値で[...]を置き換えるためにバックエンドで使用されている正規表現は/コードは次のとおりです。WordPressのショートコードの取り扱いから直接である

\[(\[?)(get_input|check_question)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\[]*+(?:\[(?!\/\2\])[^\[]*+)*+)\[\/\2\])?)(\]?) 

https://github.com/WordPress/WordPress/blob/master/wp-includes/js/shortcode.js#L105 https://github.com/WordPress/WordPress/blob/master/wp-includes/shortcodes.php#L264

答えて

0

https://github.com/ajaxorg/ace/blob/v1.2.6/lib/ace/mode/php_worker.js#L51に角括弧を置き換えて、その値をPHPレクサーに渡すことができます。 残念ながら、worker-php.jsファイルのソースコードを直接変更しなければ、これを行う方法はありません。

+0

私は自分自身を作成し​​てPHPモードを拡張することはできませんし、 'createWorker()'でカスタムワーカーや変更されたワーカーを何らかの種類で定義する必要がありますか? https://github.com/ajaxorg/ace/wiki/Creating-or-Extending-an-Edit-Mode – sMyles

+0

Sorta私は、カスタム中括弧などをサポートするためにハンドルバーでどのように行われたかと思います。 – sMyles

+0

モードファイル、ワーカーファイルは異なります –

関連する問題