问题标签 [cc-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
98 浏览

emacs - 不能正确地要求 c-common-init 和其他 c-mode 函数

这一定是在过去一两个月内发生的。我不确定谁应该为此负责,但是现在当我尝试对从 c-mode 派生的模式进行字节编译时,Emacs 找不到派生模式中引用的任何 c-mode 函数。我查看了 cc-bytecom.el 并且(我不确定它是否是新的,但看起来像是)它定义了两个宏:cc-requrecc-provide. 我不能真正理解他们在做什么,但他们似乎阻止 Emacs 发现这些功能必须可用。如果,在我的代码中,我尝试替换(requre 'cc-mode)(cc-requre 'cc-mode)没有任何变化。

上述宏似乎只适用于编译时间,但我不能确定,它们也调用(eval-when-compile (cc-bytecomp-restore-environment))and (eval-when-compile (cc-bytecomp-load (symbol-name ,cc-part)))。我很难弄清楚它有什么作用。

0 投票
3 回答
109 浏览

emacs - 通过参数列表移动

我是一名 C++ 程序员,使用的设置包括当然cc-mode还有CEDET我们心爱的 emacs (v24.2)。

我缺少的一个功能是一个通过参数列表快速移动点的函数。考虑这个例子:

其中点就在第一个之前int。现在我想要一种简单的方法来快速浏览参数列表,即一个forward-argumentbackward-argument以及)在第一个非空白字符之前移动到逗号(参数分隔符)之前的函数。
我已经编写了一个小函数来完成它,但它并不是我想要的工作方式:

原则上,这个函数只是跳转到下一个逗号。这不是我想要的行为。

我想要一个功能:

  • 编辑:跳转到下一个参数分隔符(即 C++ 的逗号)并将点放在该参数分隔符之后
  • 检查逗号后是否有空格;如果有一个,点将移动到第一个非空白字符(即,而不是,| int它看起来像标记指向 的, |int位置)|
  • 在参数列表的末尾停止并打印一条消息(例如“在参数列表的末尾”)
  • 停留在它的“范围”内,即它会从标记指向 |int b3|make_pair( int b4, int b5 )地方|int a6到达|

elisp感谢您“黑客”的任何帮助!

编辑:添加了一些说明。
Edit2:修复了该示例“代码”

0 投票
1 回答
351 浏览

emacs - emacs 批量缩进与 cc-mode 访问标签

我正在尝试使用 emacs 批量缩进源文件。我正在使用命令:

其中 emacs-format-file.el 包含:

Emacs 根据我的喜好缩进文件,但有一个例外。“public”、“private”和“protected”关键字都缩进了一个额外的空格:

我想将这些关键字与前面的左括号对齐。基于这个问题,我认为设置“访问标签”可以解决这个问题,但它似乎没有任何效果。

我错过了什么?

0 投票
1 回答
243 浏览

emacs - `hideshow` 模式不适用于以注释开头的行

我将 emacs (24.3.1) 与cc-mode编程hideshow一起使用c++。我正在做一个项目,其中编码样式要求头文件中存在的任何关键字都必须在源文件中重复。如果标准不允许这样做,则必须将关键字放在注释中。让我给你和例子:

显然有一条评论开始了。似乎hideshow无法应对这种格式。当我调用hs-hide-all所有代码块都正确折叠时,如果我hs-hide-block从函数内的任何位置调用也是如此。但是,如果我在函数的开头行(我的代码片段的第一行)的某处 调用hs-hide-blockwhith beeing,现在会发生折叠并且错误消息:point

被打印。hideshow到目前为止,我所做 的唯一显式配置是:

然而,删除这一行会使情况变得更糟:之后甚至调用都不能hs-hide-all正常工作:所有内部块都被折叠,但是对于带有前导注释的函数,函数级别的折叠不会发生。

任何人都知道如何解决这个问题?

0 投票
1 回答
128 浏览

emacs - 如何在抄送模式下自由格式化评论

我对 cc-mode 很陌生,我想对其进行配置以允许我在多行注释中自由格式化和使用选项卡。这对我很重要,因为我想在我的源文件中使用cog.py并且需要能够正确格式化注释中的 python 源。我可以接受根本不自动缩进的注释,但是我想继续自动缩进其余的源代码。

例子:

在标有 > 的行中,我想按 TAB 缩进该行。如果我这样做,cc-mode 根本什么都不做。我可以在那里使用空格(这很不方便),但是这个块的每次(半)自动重新缩进都会导致空格消失,因此 python 代码被错误地缩进(如果我碰巧在某处按下制表符会发生这种情况在用空格缩进后在这一行上)。

我尝试在没有我的 .init 的情况下启动 emacs,以确保这是默认行为,并且到目前为止没有被我的配置修改。我在搜索解决方案(即 c-indent-comments- syntactically -p、c-indent-command , c-tab-always-indent,...) 但这些似乎都不能解决我的问题。

EDIT1: 感谢 abo-abo 的“多主要模式”设置的想法,我偶然发现了 mmm-mode,并为 cog 部分设置了自动切换到 python 模式,这解决了我的大部分问题。

剩下的唯一问题是重新缩进整个文件或包含 cog 部分的区域。我可以以某种方式告诉 cc-mode 在重新缩进文件时不要更改注释中的任何内容吗?mmm-mode + 这对我来说是一个完美的解决方案。

0 投票
1 回答
647 浏览

qt - Emacs C++ 缩进被 Qt 宏混淆

Q_OBJECT 和信号之类的 Qt 宏正在搞乱 Emacs 对我的 C++ 代码的缩进。如何让 Emacs 识别 Qt 宏并相应地缩进我的 C++ 代码?

Emacs 版本:23.3.1
CC 模式版本:5.31.8

根据Emacs wiki,我的 CC 模式应该支持开箱即用的 Qt 宏,但我没有这样做。

这是一个屏幕截图。 在此处输入图像描述

有人问过类似的问题,但没有提供解决方案。

0 投票
1 回答
4572 浏览

emacs - 讽刺模式不选择包含路径

我最近开始irony-mode在 emacs (24.3.1) 中使用完成。但是,我似乎无法为包添加额外的系统包含路径。

我的配置中有这段代码:

irony-mode 正确加载,并且编译器明确知道的包含路径(即由 打印的所有内容)完美地完成,但没有拾取 echo "" | g++ -v -x c++ -E -附加的包含路径(无论它是相对路径还是绝对路径都无关紧要)。inc

但是,如果我将信息添加到.clang_complete文件并使用C-c C-b包含路径加载它,则会识别并使用它。显然这是一个不太理想的设置,因为

  1. 我不想为.clang_complete我正在处理的每一段代码创建一个文件
  2. .clang_complete文件不会自动加载。

是否有一些工作方法(不涉及每个项目的设置,我不想为每段代码创建项目管理文件)来告诉irony-mode在哪里寻找头文件?

0 投票
1 回答
825 浏览

c++ - 构造函数中初始化列表的缩进是错误的

我正在使用emacs 24.3emacs 缩进引擎和新的C++11初始化列表时遇到了以下问题。让我举个例子:考虑一个类Class,它有一个std::vector<int>名为的类型的成员m_vector。Emacs 将构造函数缩进如下:

而我希望这种语法:

有一个简单的解决方法吗?

0 投票
0 回答
196 浏览

emacs - 在 Emacs 24.3.50.4 中加载 d 模式失败

当尝试在最近的 Emacs 快照上加载d-mode.eld-mode.elchttps://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode )加载失败时

0 投票
2 回答
1157 浏览

emacs - Emacs 中 ccmode 中的新行和自动缩进大括号

我正在使用 Emacs。当我写这篇文章时,我想要那个(| 是重点):

然后我按 Enter (或其他键,无论如何),我得到了这个:

所以我可以立即开始输入块的内容,块会自动关闭。

我怎样才能做到这一点?