1

我在 jrockway 的 cperl-mode 存储库的最后一次提交中使用 cperl-mode 6.2 在 Windows 上运行 Emacs 26.3。

我对 Emacs 有以下配置:

(setq-default tab-width 4)
(setq-default indent-tabs-mode nil)
(setq cperl-indent-level 4)
(setq cperl-indent-parens-as-block t)
(setq cperl-close-paren-offset -4)
(setq cperl-continued-statement-offset 4)
(setq cperl-tab-always-indent t)
(setq cperl-fix-hanging-brace-when-indent t)
(setq cperl-indent-subs-specially nil)

当我用 qw() 初始化一个数组时,它给了我以下信息:

my @toto = qw(
                 toto
                 tutu
         );

my @tutu = qw[
                 tata
                 titi
         ];

use constant CR => qw(
                         87800
                         76400
                         80200
                         81000
                 );

这不是我的指导方针,因为我遵循 80 个字符的规则……我不知道这是正常行为还是错误。我尝试了多种配置,查看了 cperl 的自定义组,但我找不到一种方法来制作我想要的东西。这是我想做的:

my @toto = qw(
    toto
    tutu
);

my @tutu = qw[
    tata
    titi
];

use constant CR => qw(
    87800
    76400
    80200
    81000
);

任何人都有想法或 Elisp hack 来做到这一点?

感谢您的帮助 :)

4

2 回答 2

1

master我刚刚向 Emacs 的分支推送了一个补丁来修复qwin的缩进perl-mode
它现在几乎可以像您想要的那样工作(结束括号除外)。例如:

my @tutu = qw[
    tata
    titi
    ];
于 2019-11-15T18:21:53.997 回答
1

由@HåkonHægland的https://github.com/jrockway/cperl-mode/pull/54解决。

于 2019-11-19T10:35:23.763 回答