Javascript Ace编辑器使用括号的PHP语法
试图找出在Ace编辑器中使用PHP模式时如何处理短代码的语法错误(在PHP代码中包含短代码)。高亮显示看起来已经很好了,问题在于使用短代码时显示的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), [...]
[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?我猜车把是如何支持定制花括号的,等等,你不需要修改模式文件,工作文件是不同的