Awesome
ferris.nvim 🦀
a 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")
require("ferris.methods.join_lines")
require("ferris.methods.view_hir")
require("ferris.methods.view_mir")
require("ferris.methods.view_memory_layout")
require("ferris.methods.view_item_tree")
require("ferris.methods.view_syntax_tree")
require("ferris.methods.open_cargo_toml")
require("ferris.methods.open_parent_module")
require("ferris.methods.open_documentation")
require("ferris.methods.reload_workspace")
require("ferris.methods.rebuild_macros")
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. i myself consider this a benefit, but it's up to your judgement.