vxpm/ferris.nvim

github github
lspneovim-0.5
stars 84
issues 0
subscribers 3
forks 4
CREATED

2023-10-09

UPDATED

3 months ago


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

please do not mind the terrible screenshots... i was too lazy

require("ferris.methods.expand_macro")

image.png

require("ferris.methods.join_lines")

require("ferris.methods.view_hir")

image.png

require("ferris.methods.view_mir")

image.png

require("ferris.methods.view_memory_layout")

image.png

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.