emacs-module-rs icon indicating copy to clipboard operation
emacs-module-rs copied to clipboard

Rust binding and tools for Emacs's dynamic modules

Results 25 emacs-module-rs issues
Sort by recently updated
recently updated
newest added

Hello, Thanks for this project, I wanted to try a first FFI project so I wrote small bindings, and I was wondering how a more fleshed out implementation would look...

question

- Module code can store values for later use, e.g. in background threads. - Frequently-used symbols won't require repeated `intern` calls into the Lisp runtime. We can have `emacs::sym::nil`, `emacs::sym::t`....

enhancement

It's mostly about generating a useful type name, for error reporting. Using [typename](https://docs.rs/typename/0.1.1/typename/) crate is one option.

- [x] Signature should use argument names defined in Rust, instead of `ARG1`, `ARG2`, like currently. This can be done by either: + Using `advertised-signature-table`. + Adding `usage:` to the...

enhancement

This is useful to check if the user pressed C-g during a long running computation. From the documentation: > If your module includes potentially long-running code, it is a good...

enhancement

Often time, there's no initialization logic needed. Modules should be able to put `#![emacs::module]` at the root of the crate, instead of this: ```rust // So much boilerplate! #[emacs::module] fn...

waiting for external changes

Writing a module still involves many ad-hoc scripts (`test.sh`, `load.sh`) and manual steps (e.g. renaming files). There should be a cargo's subcommand that supports at least the following: - `new`:...

Could we get `#[defun]` to be able to take parameters to annotate for `'pure` and `'side-effect-free` ? This can help the byte-compiler to make some optimizations. So something like: ```rust...

There're no LICENSE file. It seems this repository is published under BSD-3-Clause. https://github.com/ubolonton/emacs-module-rs/blob/9a29b076681abe3507cec50d9fa424f3ccd70e91/Cargo.toml#L13 Please add LICENSE file to clarify the repository license.

To allow [Crates.io](https://crates.io/) , [lib.rs](https://lib.rs/) and the [Rust Digger](https://rust-digger.code-maven.com/) to link to it. See [the manifest](https://doc.rust-lang.org/cargo/reference/manifest.html#the-repository-field) for the explanation.