SkillAgentSearch skills...

Ferris.nvim

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

Install / Use

/learn @vxpm/Ferris.nvim
About this skill

Quality Score

0/100

Supported Platforms

Universal

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 view_mem_layout = require("ferris.methods.view_memory_layout")

-- call the returned function to execute the request
view_mem_layout()

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

<sub><sup>please do not mind the terrible screenshots... i was too lazy</sub></sup>

<details> <summary>Expand Macro</summary>

require("ferris.methods.expand_macro")

image.png

</details> <details> <summary>Join Lines</summary>

require("ferris.methods.join_lines")

</details> <details> <summary>View HIR</summary>

require("ferris.methods.view_hir")

image.png

</details> <details> <summary>View MIR</summary>

require("ferris.methods.view_mir")

image.png

</details> <details> <summary>View Memory Layout</summary>

require("ferris.methods.view_memory_layout")

image.png

</details> <details> <summary>View Item Tree</summary>

require("ferris.methods.view_item_tree")

</details> <details> <summary>View Syntax Tree</summary>

require("ferris.methods.view_syntax_tree")

</details> <details> <summary>Open Cargo.toml</summary>

require("ferris.methods.open_cargo_toml")

</details> <details> <summary>Open Parent Module</summary>

require("ferris.methods.open_parent_module")

</details> <details> <summary>Open Documentation</summary>

require("ferris.methods.open_documentation")

</details> <details> <summary>Reload Workspace</summary>

require("ferris.methods.reload_workspace")

</details> <details> <summary>Rebuild Macros</summary>

require("ferris.methods.rebuild_macros")

</details>

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

Related Skills

View on GitHub
GitHub Stars120
CategoryDevelopment
Updated1mo ago
Forks8

Languages

Lua

Security Score

100/100

Audited on Feb 17, 2026

No findings