使用 rust 和 org 模式进行文学编程
Literate Programming with rust and org mode
所以我尝试在 org 模式下使用 rust,安装 ob-rs 和 cargo-script 后它工作正常。但问题是,我不知道如何使用源代码块中的其他板条箱(如 rand)。我尝试将主项目转换为一个 cargo 项目,并将所有块缠绕到主文件中,但是,那时我还不如使用一个普通的 Rust 项目。那么有没有办法在组织模式块中使用外部板条箱。否则在 org 模式下使用 rust 会有点困难,因为很多基本功能都在外部 crate 中定义。
好的,所以我发现我们可以在 rustic 的 org 模式下使用带有 rust 的外部板条箱。这是主要自述文件中执行此操作的过程。
Org-babel
Blocks run asynchronously and a running babel process is indicated by
a spinner in the mode-line. It's possible to use crates in babel
blocks.
Execute babel block with org-babel-execute-src-block
#+BEGIN_SRC rustic :crates '((regex . 0.2)) extern crate regex;
use regex::Regex;
fn main() {
let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
assert!(re.is_match("2014-01-01")); }
#+END_SRC
Supported org babel parameters:
Write to file :results file :file ~/babel-output
Customization:
rustic-babel-format-src-block format block after successful build
rustic-babel-display-compilation-buffer display compilation buffer of babel process
rustic-display-spinner turn off spinner in the mode-line
它并不完美,因为使用 rustic 作为 src 类型意味着在 github 呈现 org 文档时没有语法高亮显示。此外,我们不能在块之间共享功能,但这是一个可以找到的未决问题 here,因此希望我们能在某个时候获得该功能。
所以我尝试在 org 模式下使用 rust,安装 ob-rs 和 cargo-script 后它工作正常。但问题是,我不知道如何使用源代码块中的其他板条箱(如 rand)。我尝试将主项目转换为一个 cargo 项目,并将所有块缠绕到主文件中,但是,那时我还不如使用一个普通的 Rust 项目。那么有没有办法在组织模式块中使用外部板条箱。否则在 org 模式下使用 rust 会有点困难,因为很多基本功能都在外部 crate 中定义。
好的,所以我发现我们可以在 rustic 的 org 模式下使用带有 rust 的外部板条箱。这是主要自述文件中执行此操作的过程。
Org-babel
Blocks run asynchronously and a running babel process is indicated by a spinner in the mode-line. It's possible to use crates in babel blocks.
Execute babel block with org-babel-execute-src-block
#+BEGIN_SRC rustic :crates '((regex . 0.2)) extern crate regex; use regex::Regex; fn main() { let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap(); assert!(re.is_match("2014-01-01")); } #+END_SRC
Supported org babel parameters:
Write to file :results file :file ~/babel-output
Customization:
rustic-babel-format-src-block format block after successful build rustic-babel-display-compilation-buffer display compilation buffer of babel process rustic-display-spinner turn off spinner in the mode-line
它并不完美,因为使用 rustic 作为 src 类型意味着在 github 呈现 org 文档时没有语法高亮显示。此外,我们不能在块之间共享功能,但这是一个可以找到的未决问题 here,因此希望我们能在某个时候获得该功能。