Emacs模式用于类似c语言

时间:2012-02-24 04:35:07

标签: emacs colors development-environment indentation auto-indent

我正在尝试为新的模板c语言编写一个新的emacs模式,我必须将其用于一些学术研究。

我希望代码在c-mode中被着色和缩进,但以下情况除外:

  • '%'不是用作运算符,而是用作某些特定关键字中的第一个字符(例如:“%p”,“%action”等)
  • 代码行不以分号结尾。

是否可以创建派生模式(来自c模式)并将其设置为忽略'%'和';'的原始用途?是否可以在没有';'的情况下使“按RET后自动缩进”功能工作?

类似的语言是否有类似的模式(带有'{}'括号,但没有分号)我可以尝试修补?

我应该尝试从头开始编写主要模式吗?

我考虑过从http://ess.r-project.org/修补R模式,但此模式不支持“/ * comment * /”形式的注释。

我正在寻找的最重要的功能是括号缩进,即在按下RET之后在'{}'块内缩进代码(并且在没有以';'结尾的行之后没有额外缩进) 。部分解决方案也会有所帮助。

3 个答案:

答案 0 :(得分:3)

更一般地说,随着时间的推移,CC模式已被扩展和推广以适应更多语言,并且最新的CC模式应该相当擅长将通用代码与特定于语言的代码隔离开来。所以看一下使用CC模式的一些主要模式(例如awk模式),并与CC模式的维护者联系,他们将能够帮助你弄清楚hwo做你想做的事。

答案 1 :(得分:2)

查看arduino模式:https://github.com/bookest/arduino-mode/blob/master/arduino-mode.el

这是一个基于C的模式,它使用cc模式功能快速创建一些非常有用和独特的arduino编程。使用它作为一个简单的模板应该会有很多帮助。

答案 2 :(得分:2)

如果您不介意真的简单,您可以查看Gosu mode。 Gosu是一种花括号,没有分号的语言,所以你应该尽量减少。它还使用与C。

相同的注释语法

它的模式实现真的简单并且基于通用模式,所以修改它以你想要的方式工作应该很容易。它基于C模式

这就是我曾经为我的编译器类编写的语言模式,即使有限的elisp经验也很容易。另一方面,缩进非常简单 - 它适用于大多数代码,但不如C模式完整。