Emacs 中使用 C++ 类内定义的成员函数的 Allman 缩进

Allman indentation in Emacs with C++ in-class-defined member-functions

提问人:L0ren2 提问时间:10/1/2023 更新时间:10/1/2023 访问量:30

问:

我想要 Allman 缩进。因此,我尝试将以下每个设置:、、。这些都没有解决我在下面的代码片段中看到的行为。c-default-stylestroustrupbsdlinux

注意:这个问题只与成员函数的类内定义有关,这就是为什么其他关于 Emacs 缩进的答案没有回答这个问题的原因。正如您在代码片段中看到的,类外定义正是我想要的样子。进一步注意:当我在 Emacs 中制作代码示例并将它们粘贴到这里时,我注意到它的格式类似于,我不得不调整 stackoverflow 的 markdown 编辑器中的缩进以匹配我在 Emacs 中看到的内容。我在这里得到的是,也许这可能是 Emacs 的显示问题,而不是实际的缩进问题?Emacs 版本为 29.1。2.)1.)

struct Foo
{
    // 1.)
    void bar()
    {
        std::cout << "\n" << std::endl;
    }

    // 2.)
    void printFoo()
        {
            std::cout << "foo" << std::endl;
        }

    // 3.)
    void printFoo() const {
        std::cout << "const foo" << std::endl;
    }

    void printFooNum(int foonum);
};

// 4.)
void Foo::printFooNum(int foonum)
{
    std::cout << "foonum: " << foonum << std::endl;
}

1.)是我试图实现的缩进样式。
是我尝试过的任何缩进样式的默认结果(见上文)。
是当我将大括号留在最后一行时我得到的,这可能是可以接受的,但它不是 Allman(因此不是我想要的)。
是我默认得到的(以及我想要的),但这是一个类外定义。我也希望这适用于课堂内定义。
2.)3.)4.)

我还为您提供了我的init.el的相关部分:

(setq c-default-style '((c++-mode . "stroustrup")
                        (c-mode   . "stroustrup"))
      c-basic-offset 4)
(setq evil-shift-width 4)
C++ Emacs 缩进 成员函数

评论


答: 暂无答案