首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >恒块压痕

恒块压痕
EN

Stack Overflow用户
提问于 2014-06-30 16:36:37
回答 1查看 268关注 0票数 7

我运行Aquamacs3.0a基于GNU Emacs 24.3.50.2。cperl-版本为6.2。当我编辑Perl常量块时,我会得到我不想要的额外缩进:-

代码语言:javascript
复制
use constant {
    ONE => 1,
        TWO => 2,
        THREE => 3,
    };

我想要的是:-

代码语言:javascript
复制
use constant {
    ONE => 1,
    TWO => 2,
    THREE => 3,
};

问题似乎是,cperl-继续-语句偏移正在添加,因为我们在一个块,没有分号在前一行的末尾。

有没有办法告诉cperl使用"parens“规则缩进常量块?我确实试过把cperl-缩进-parens-as块修改一下,但这没有帮助。我并不感到惊讶,我想我应该寻找一个名为cperl缩进常量块的变量:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-30 17:09:19

深入研究一下代码,就会发现这是cperl模式下的一个bug --它应该像对待匿名hashref一样对待一个常量块--毕竟,这就是它的本质!这是p的补丁,这说明了这一点。有人愿意批准还是拒绝?我的耳朵有点生锈:-)

代码语言:javascript
复制
$ 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))
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24494901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档