vxpm
ferris.nvim
Lua

Neovim plugin for interacting with Rust-Analyzer's LSP extensions

Last updated Jul 4, 2026
123
Stars
8
Forks
1
Issues
0
Stars/day
Attention Score
21
Language breakdown
No language data available.
โ–ธ Files click to expand
README

ferris.nvim ๐Ÿฆ€

a simple neovim plugin for interacting with Rust Analyzer's LSP extensions

installation & 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 lazy

Expand Macro

require("ferris.methods.expand_macro")

image.png

Join Lines

require("ferris.methods.join_lines")

View HIR

require("ferris.methods.view_hir")

image.png

View MIR

require("ferris.methods.view_mir")

image.png

View Memory Layout

require("ferris.methods.viewmemorylayout")

image.png

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
๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท vxpm/ferris.nvim ยท Updated daily from GitHub