gpt4 book ai didi

perl - Emacs cperl - 常量 block 中的缩进

转载 作者:行者123 更新时间:2023-12-04 11:24:08 25 4
gpt4 key购买 nike

我正在运行基于 GNU Emacs 24.3.50.2 的 Aquamacs 3.0a。 cperl 版本是 6.2。当我编辑 Perl 常量块时,我得到了我不想要的额外缩进:-

use constant {
ONE => 1,
TWO => 2,
THREE => 3,
};

我想要的是这个:-
use constant {
ONE => 1,
TWO => 2,
THREE => 3,
};

问题似乎是 cperl-continued-statement-offset 被添加,因为我们在一个块内并且在前一行的末尾没有分号。

有没有办法告诉 cperl 使用“parens”规则缩进常量块?我确实尝试调整 cperl-indent-parens-as-block,但这没有帮助。我并不感到惊讶,我想我应该寻找一个名为 cperl-indent-constant-block-as-parens 的变量 :-)

最佳答案

对代码的一些挖掘表明这是 cperl-mode 中的一个错误 - 它应该像对待匿名 hashref 一样对待一个常量块 - 毕竟,这基本上就是它!这是 cperl-block-p 的一个补丁,使它如此。有人会关心批准或拒绝吗?我的 elisp 有点生疏了 :-)

$ 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))

关于perl - Emacs cperl - 常量 block 中的缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com