🪟
ある window が floating window かどうか判定する(Neovim)
はじめに
Neovim には、ある window が floating window かどうか直接判定する API はありません。
しかしやり方はありますし、実は help にも書いています。
判定法
以下のように判定できます。
local function is_floating_win(winid)
local config = vim.api.nvim_win_get_config(winid)
return config.relative ~= ""
end
nvim_win_get_config()
のヘルプを引用します。
この関数の戻り値は、nvim_open_win()
に与えられた値になります。
しかし通常の window でも使用でき、その場合は relative が空(文字列)になります。
nvim_win_get_config({window}) *nvim_win_get_config()*
Gets window configuration.
The returned value may be given to |nvim_open_win()|.
`relative` is empty for normal windows.
Parameters:
• {window} Window handle, or 0 for current window
Return:
Map defining the window configuration, see |nvim_open_win()|
Discussion