如何修复 emacs 的 C++ 缩进初始化器?

发布于 2024-11-06 08:31:25 字数 403 浏览 1 评论 0原文

Emacs 无法正确缩进具有带冒号的初始值设定项的分配器的 C++ 类定义。我认为这是因为在很多情况下带有冒号的行都是左缩进的。

我想解决这个问题。

这是我正在谈论的一个例子。

EMACS 像这样缩进代码:

class demo {
    int x;
    demo(){
    }
 demo(int y):x(y){
    };
};

但它实际上应该像这样缩进:

class demo {
    int x;
    demo(){
    }
    demo(int y):x(y){
    };
};

有没有办法修复此行为?想必我们需要一些 elisp...

谢谢!

Emacs doesn't properly indent C++ class definitions for allocators that have initializers with colons in them. I think that this is because lines with colons are left-indented in many cases.

I would like to fix this.

Here is an example of what I am talking about.

EMACS indents the code like this:

class demo {
    int x;
    demo(){
    }
 demo(int y):x(y){
    };
};

But it should really indent it like this:

class demo {
    int x;
    demo(){
    }
    demo(int y):x(y){
    };
};

Is there a way to fix this behavior? Presumably we need some elisp...

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

满栀 2024-11-13 08:31:25

Emacs(至少版本 23)在 C 模式下不会执行此操作,但在 C++ 模式下会执行此操作,因为在 C 中冒号之前的部分只能是标签。确保您处于 C++ 模式 (Mx c++-mode)。

Emacs (at least version 23) doesn't do this in C mode, but it does in C++ mode since in C the part before the colon can only be a label. Make sure you're in C++ mode (M-x c++-mode).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文