我正在尝试为新的模板c语言编写一个新的emacs模式,我必须将其用于一些学术研究。
我希望代码在c-mode中被着色和缩进,但以下情况除外:
是否可以创建派生模式(来自c模式)并将其设置为忽略'%'和';'的原始用途?是否可以在没有';'的情况下使“按RET后自动缩进”功能工作?
类似的语言是否有类似的模式(带有'{}'括号,但没有分号)我可以尝试修补?
我应该尝试从头开始编写主要模式吗?
我考虑过从http://ess.r-project.org/修补R模式,但此模式不支持“/ * comment * /”形式的注释。
我正在寻找的最重要的功能是括号缩进,即在按下RET之后在'{}'块内缩进代码(并且在没有以';'结尾的行之后没有额外缩进) 。部分解决方案也会有所帮助。
答案 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模式完整。