diff options
| author | Matěj Cepl <mcepl@cepl.eu> | 2024-06-26 14:59:46 +0200 |
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2024-09-16 11:58:02 +0200 |
| commit | 3f15e57b2614c7849c5bbc1f32c7bd90f2a917b6 (patch) | |
| tree | a40d9c13deb583b85ddbc177bf29a1364b470836 /runtime/doc | |
| parent | a9031cc4a649f6ad5ef3db29a9bf52468332bcde (diff) | |
| download | rneovim-3f15e57b2614c7849c5bbc1f32c7bd90f2a917b6.tar.gz rneovim-3f15e57b2614c7849c5bbc1f32c7bd90f2a917b6.tar.bz2 rneovim-3f15e57b2614c7849c5bbc1f32c7bd90f2a917b6.zip | |
feat(vim.ui): configurable "gx" / vim.ui.open() tool
Problem:
User cannot configure the tool used by `vim.ui.open` (or `gx`). With
netrw this was supported by `g:netrw_browsex_viewer`.
Solution:
Introduce `opts.cmd`. Users that want to set this globally can
monkey-patch `vim.ui.open` in the same way described at `:help vim.paste()`.
Fixes https://github.com/neovim/neovim/issues/29488
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
Diffstat (limited to 'runtime/doc')
| -rw-r--r-- | runtime/doc/lua.txt | 6 | ||||
| -rw-r--r-- | runtime/doc/news.txt | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/runtime/doc/lua.txt b/runtime/doc/lua.txt index 0beee1507a..1283aac5ca 100644 --- a/runtime/doc/lua.txt +++ b/runtime/doc/lua.txt @@ -2559,7 +2559,7 @@ vim.ui.input({opts}, {on_confirm}) *vim.ui.input()* typed (it might be an empty string if nothing was entered), or `nil` if the user aborted the dialog. -vim.ui.open({path}) *vim.ui.open()* +vim.ui.open({path}, {opt}) *vim.ui.open()* Opens `path` with the system default handler (macOS `open`, Windows `explorer.exe`, Linux `xdg-open`, …), or returns (but does not show) an error message on failure. @@ -2570,6 +2570,8 @@ vim.ui.open({path}) *vim.ui.open()* -- Asynchronous. vim.ui.open("https://neovim.io/") vim.ui.open("~/path/to/file") + -- Use the "osurl" command to handle the path or URL. + vim.ui.open("gh#neovim/neovim!29490", { cmd = { 'osurl' } }) -- Synchronous (wait until the process exits). local cmd, err = vim.ui.open("$VIMRUNTIME") if cmd then @@ -2579,6 +2581,8 @@ vim.ui.open({path}) *vim.ui.open()* Parameters: ~ • {path} (`string`) Path or URL to open + • {opt} (`{ cmd?: string[] }?`) Options + • cmd string[]|nil Command used to open the path or URL. Return (multiple): ~ (`vim.SystemObj?`) Command object, or nil if not found. diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index 5884659ab7..515aef753d 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -194,7 +194,10 @@ TUI UI -• TODO +• |vim.ui.open()| (by default bound to |gx|) accepts an `opt.cmd` parameter + which controls the tool used to open the given path or URL. If you want to + globally set this, you can override vim.ui.open using the same approach + described at |vim.paste()|. ============================================================================== CHANGED FEATURES *news-changed* |