emacs

Crates.ioemacs
lib.rsemacs
version0.19.0
sourcesrc
created_at2016-05-23 10:46:51.189001
updated_at2024-03-16 14:18:39.290449
descriptionRust library for creating Emacs's dynamic modules
homepagehttps://github.com/ubolonton/emacs-module-rs
repository
max_upload_size
id5155
size89,684
Tuấn-Anh Nguyễn (ubolonton)

documentation

https://ubolonton.github.io/emacs-module-rs/

README

Emacs Module in Rust

crates.io doc.rs Azure Pipelines GitHub Actions

User Guide | Change Log | Examples

This provides a high-level binding to emacs-module, Emacs's support for dynamic modules.

Code for a minimal module looks like this:

use emacs::{defun, Env, Result, Value};

emacs::plugin_is_GPL_compatible!();

#[emacs::module(name = "greeting")]
fn init(_: &Env) -> Result<()> { Ok(()) }

#[defun]
fn say_hello(env: &Env, name: String) -> Result<Value<'_>> {
    env.message(&format!("Hello, {}!", name))
}
(require 'greeting)
(greeting-say-hello "Emacs")

Example Modules

Development

  • Building:
    bin/build
    
  • Testing:
    bin/test
    
  • Continuous testing (requires cargo-watch):
    bin/test watch
    

On Windows, use PowerShell to run the corresponding .ps1 scripts.

Commit count: 0

cargo fmt