emacs / spacemacs是否支持嵌入在Rust Macro中的嵌套C ++模式?

时间:2016-12-11 10:13:33

标签: emacs macros rust spacemacs rust-macros

参考:rust-cpp

emacs / spacemacs可以在主模式下支持嵌套模式吗?我曾经习惯于对emacs / spacemacs进行vim和new。

1 个答案:

答案 0 :(得分:7)

一般信息

您可以访问wiki列出一些解决方案,以便同时运行多种主要模式:

  

在您的情况下,您需要运行2种主要模式才能在同一缓冲区中识别C ++和Rust:

  • c++-mode(默认情况下可用)
  • rust-mode

mmm-mode

的实际示例

我想您的Emacs中已经配置了Rust环境。在Rust主模式运行时,以下内容将添加c++-mode。在您的Emacs配置文件中,添加以下代码段:

(require 'mmm-mode)
(setq mmm-global-mode 'maybe)

(mmm-add-classes
 '((rust-cpp ; Name of the mmm class
    :submode c++-mode ; Additional major mode, here it is C++
    :front "^cpp! {[\n\r]+" ; Start tag for c++-mode
    :back "^}$"))) ; Stop tag for c++-mode

(mmm-add-mode-ext-class 'rust-mode nil 'rust-cpp)

在Rust代码中,当出现以下模式时,c++-mode将被激活:

cpp! {
    // your C++ code...
}

我会让你对正则表达式进行微调,因为在混合使用Rust和C ++时我不知道rust-cpp的规则。