修复Emacs中php模式下关闭try catch时的缩进

修复Emacs中php模式下关闭try catch时的缩进,php,emacs,elisp,indentation,Php,Emacs,Elisp,Indentation,在php模式下,我有一个try catch(当它是全局的-没有函数时) 缩进放两个空格(即使缩进是4个空格),我有一个函数,可以使用以下方法修复它: (取消取消取消默认关闭() (消息“%s”c-语法上下文);调试 (let((语法(mapcar'carc-syntactic-context))) (if(and)(成员的arglist cont非空语法) (或 (成员的语句块介绍语法) (成员大括号列表介绍语法) (成员的大括号列表关闭语法) (成员的块关闭语法) (省去远足 (行首) (删除

在php模式下,我有一个try catch(当它是全局的-没有函数时)

缩进放两个空格(即使缩进是4个空格),我有一个函数,可以使用以下方法修复它:

(取消取消取消默认关闭()
(消息“%s”c-语法上下文);调试
(let((语法(mapcar'carc-syntactic-context)))
(if(and)(成员的arglist cont非空语法)
(或
(成员的语句块介绍语法)
(成员大括号列表介绍语法)
(成员的大括号列表关闭语法)
(成员的块关闭语法)
(省去远足
(行首)
(删除字符(*“计数”arglist cont非空语法)
c-基本偏移量)
(if(成员的defun close语法)
(省去远足
(行首)
;顶级try缓存在关闭大括号之前有两个额外的空格
(如果(查看“^\\{2\\}[^]”)
(项目
(行首)
(删除字符2‘‘‘‘‘‘‘‘)
(添加钩子的php模式钩子(lambda()
(添加挂钩“c-特殊-缩进挂钩”未缩进闭合)
它还修复了闭包缩进,当我有4个空格作为缩进时,它可以正常工作,但当我有2个空格时,它失败了:

class foo extends Controler {
  function foo() {
}
}
在这两种情况下,语法都是
defun close
(在closing curly brase上)。有没有其他方法可以在php模式下修复try catch中的2个空格

class foo extends Controler {
  function foo() {
}
}