Neovim plugin for interacting with Rust-Analyzer's LSP extensions
ferris.nvim ๐ฆ
a simple neovim plugin for interacting with Rust Analyzer's LSP extensionsinstallation & usage
note: this plugin has only been tested with neovim 0.9+with lazy.nvim:
{ 'vxpm/ferris.nvim', opts = { -- your options here } } the available options (and their default values) are: { -- If true, will automatically create commands for each LSP method create_commands = true, -- bool -- Handler for URL's (used for opening documentation) url_handler = "xdg-open", -- string | function(string) } you can also manually call the methods by requiring them: local viewmemlayout = require("ferris.methods.viewmemorylayout")
-- call the returned function to execute the request viewmemlayout()
don't forget to call setup on require("ferris") beforehand, though! (not needed if you're using the opts field in lazy.nvim)
available methods
please do not mind the terrible screenshots... i was too lazyExpand Macro
require("ferris.methods.expand_macro")
Join Lines
require("ferris.methods.join_lines")
View HIR
require("ferris.methods.view_hir")
View MIR
require("ferris.methods.view_mir")
View Memory Layout
require("ferris.methods.viewmemorylayout")
View Item Tree
require("ferris.methods.viewitemtree")
View Syntax Tree
require("ferris.methods.viewsyntaxtree")
Open Cargo.toml
require("ferris.methods.opencargotoml")
Open Parent Module
require("ferris.methods.openparentmodule")
Open Documentation
require("ferris.methods.open_documentation")
Reload Workspace
require("ferris.methods.reload_workspace")
Rebuild Macros
require("ferris.methods.rebuild_macros")
contributing
just send a PR! i'll review & (hopefully) merge it as soon as i can :)special thanks
rust-tools for being the reason why this plugins exists. initially, i didn't want any of the features it offered except for recursive expansion of macros, so i made rust-expand-macro.nvim.however, i found myself wanting to use other methods as well, which led me to making ferris!
in comparison to rust-tools, this plugin is "simpler": it does not configure Rust Analyzer for you nor does it provide debugging utilities. whether that's better or not depends on your use case!
related projects
- rustaceanvim: spiritual successor to rust-tools, the standard plugin for configuring rust in nvim
- crates.nvim: plugin to manage crates.io dependencies in your Cargo.toml



