diff --git a/README.md b/README.md index 4a33aa1..7cd08fe 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ RustDebuggables RustViewCrateGraph RustReloadWorkspace RustSSR +RustOpenExternalDocs ``` ## Standalone File Support diff --git a/lua/rust-tools.lua b/lua/rust-tools.lua index 700e629..7ebbe36 100644 --- a/lua/rust-tools.lua +++ b/lua/rust-tools.lua @@ -15,6 +15,9 @@ local function setup_commands() RustSetInlayHints = { require("rust-tools.inlay_hints").set_inlay_hints, }, + RustOpenExternalDocs= { + require("rust-tools.external_docs").open_external_docs, + }, RustDisableInlayHints = { require("rust-tools.inlay_hints").disable_inlay_hints, }, diff --git a/lua/rust-tools/external_docs.lua b/lua/rust-tools/external_docs.lua new file mode 100644 index 0000000..d633e12 --- /dev/null +++ b/lua/rust-tools/external_docs.lua @@ -0,0 +1,17 @@ +local M = {} +local utils = require("rust-tools.utils.utils") + +function M.open_external_docs() + utils.request( + 0, + "experimental/externalDocs", + vim.lsp.util.make_position_params(), + function(_, url) + if url then + vim.fn["netrw#BrowseX"](url, 0) + end + end + ) +end + +return M