我运行Aquamacs3.0a基于GNU Emacs 24.3.50.2。cperl-版本为6.2。当我编辑Perl常量块时,我会得到我不想要的额外缩进:-
use constant {
ONE => 1,
TWO => 2,
THREE => 3,
};我想要的是:-
use constant {
ONE => 1,
TWO => 2,
THREE => 3,
};问题似乎是,cperl-继续-语句偏移正在添加,因为我们在一个块,没有分号在前一行的末尾。
有没有办法告诉cperl使用"parens“规则缩进常量块?我确实试过把cperl-缩进-parens-as块修改一下,但这没有帮助。我并不感到惊讶,我想我应该寻找一个名为cperl缩进常量块的变量:-)
发布于 2014-06-30 17:09:19
深入研究一下代码,就会发现这是cperl模式下的一个bug --它应该像对待匿名hashref一样对待一个常量块--毕竟,这就是它的本质!这是p的补丁,这说明了这一点。有人愿意批准还是拒绝?我的耳朵有点生锈:-)
$ diff -u cperl-mode.el.orig cperl-mode.el
--- cperl-mode.el.orig 2013-09-27 13:43:56.000000000 +0100
+++ cperl-mode.el 2014-06-30 18:02:30.000000000 +0100
@@ -4828,9 +4828,9 @@
(and (memq (char-syntax (preceding-char)) '(?w ?_))
(progn
(backward-sexp)
- ;; sub {BLK}, print {BLK} $data, but NOT `bless', `return', `tr'
+ ;; sub {BLK}, print {BLK} $data, but NOT `bless', `constant', `return', `tr'
(or (and (looking-at "[a-zA-Z0-9_:]+[ \t\n\f]*[{#]") ; Method call syntax
- (not (looking-at "\\(bless\\|return\\|q[wqrx]?\\|tr\\|[smy]\\)\\>")))
+ (not (looking-at "\\(bless\\|constant\\|return\\|q[wqrx]?\\|tr\\|[smy]\\)\\>")))
;; sub bless::foo {}
(progn
(cperl-backward-to-noncomment (point-min))https://stackoverflow.com/questions/24494901
复制相似问题