You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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 methodcreate_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:
localview_mem_layout=require("ferris.methods.view_memory_layout")
-- call the returned function to execute the requestview_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
please do not mind the terrible screenshots... i was too lazy
Expand 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.view_memory_layout")
View Item Tree
require("ferris.methods.view_item_tree")
View Syntax Tree
require("ferris.methods.view_syntax_tree")
Open Cargo.toml
require("ferris.methods.open_cargo_toml")
Open Parent Module
require("ferris.methods.open_parent_module")
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
About
Neovim plugin for interacting with Rust-Analyzer's LSP extensions