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

sno*_*now 2 emacs macros rust spacemacs rust-macros

参考:rust-cpp

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

Lud*_*Lud 7

一般信息

您可以访问维基列表,其中列出了一些可以同时运行多种主要模式的解决方案:

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

一个实际的例子 mmm-mode

我想您的Emacs中已经配置了Rust环境.c++-mode在Rust主模式运行时,以下内容将添加.在您的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)
Run Code Online (Sandbox Code Playgroud)

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

cpp! {
    // your C++ code...
}
Run Code Online (Sandbox Code Playgroud)

我会让你微调正则表达式,因为我不知道rust-cpp混合Rust和C++时的规则.