Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ace编辑器使用括号的PHP语法_Javascript_Php_Wordpress_Ace Editor - Fatal编程技术网

Javascript Ace编辑器使用括号的PHP语法

Javascript Ace编辑器使用括号的PHP语法,javascript,php,wordpress,ace-editor,Javascript,Php,Wordpress,Ace Editor,试图找出在Ace编辑器中使用PHP模式时如何处理短代码的语法错误(在PHP代码中包含短代码)。高亮显示看起来已经很好了,问题在于使用短代码时显示的PHP语法错误 一个简单的短代码是[shortcode],而一个扩展的短代码则有一个开括号和一个闭括号[shortcode]something[/shortcode] function foo( $title ) { // Example single shortcode (without closing shortcode), [...]

试图找出在Ace编辑器中使用PHP模式时如何处理短代码的语法错误(在PHP代码中包含短代码)。高亮显示看起来已经很好了,问题在于使用短代码时显示的PHP语法错误

一个简单的短代码是
[shortcode]
,而一个扩展的短代码则有一个开括号和一个闭括号
[shortcode]something[/shortcode]

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;
}
有人能帮我弄清楚如何扩展PHP模式/工作者,或者当包含短代码时,需要做些什么来防止PHP语法错误显示在编辑器中?除了在短代码上出现简单的PHP语法错误外,一切都很好

小提琴示例:

后端用于用自定义值/代码替换
[…]
的正则表达式是:

\[(\[?)(get_input|check_question)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\[]*+(?:\[(?!\/\2\])[^\[]*+)*+)\[\/\2\])?)(\]?)
这是直接从WordPress短代码处理:

在将值传递给php lexer之前,可以使用该正则表达式替换处的括号。
不幸的是,如果不直接修改worker-php.js文件中的源代码,就无法做到这一点。

是的,但我是否应该能够扩展php模式(创建我自己的模式),然后在
createWorker()
上定义一个自定义worker或某种类型的修改过的worker?我猜车把是如何支持定制花括号的,等等,你不需要修改模式文件,工作文件是不同的