mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	feat(lsp): inlay_hint.is_enabled({filter}) #28523
vim.diagnostic.enable and vim.diagnostic.is_enabled() use the same pattern.
This commit is contained in:
		@@ -1645,13 +1645,15 @@ get({filter})                                       *vim.lsp.inlay_hint.get()*
 | 
				
			|||||||
        • {client_id} (`integer`)
 | 
					        • {client_id} (`integer`)
 | 
				
			||||||
        • {inlay_hint} (`lsp.InlayHint`)
 | 
					        • {inlay_hint} (`lsp.InlayHint`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
is_enabled({bufnr})                          *vim.lsp.inlay_hint.is_enabled()*
 | 
					is_enabled({filter})                         *vim.lsp.inlay_hint.is_enabled()*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Note: ~
 | 
					    Note: ~
 | 
				
			||||||
      • This API is pre-release (unstable).
 | 
					      • This API is pre-release (unstable).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Parameters: ~
 | 
					    Parameters: ~
 | 
				
			||||||
      • {bufnr}  (`integer?`) Buffer handle, or 0 for current
 | 
					      • {filter}  (`table`) Optional filters |kwargs|, or `nil` for all.
 | 
				
			||||||
 | 
					                  • {bufnr} (`integer?`) Buffer number, or 0 for current
 | 
				
			||||||
 | 
					                    buffer, or nil for all.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Return: ~
 | 
					    Return: ~
 | 
				
			||||||
        (`boolean`)
 | 
					        (`boolean`)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -148,6 +148,8 @@ BREAKING CHANGES IN HEAD                                    *news-breaking-dev*
 | 
				
			|||||||
The following changes to UNRELEASED features were made during the development
 | 
					The following changes to UNRELEASED features were made during the development
 | 
				
			||||||
cycle (Nvim HEAD, the "master" branch).
 | 
					cycle (Nvim HEAD, the "master" branch).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					• Changed the signature of `vim.lsp.inlay_hint.is_enabled()`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
• `vim.lsp.inlay_hint.enable()` now take effect on all buffers by default.
 | 
					• `vim.lsp.inlay_hint.enable()` now take effect on all buffers by default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
• Removed `vim.treesitter.foldtext` as transparent foldtext is now supported
 | 
					• Removed `vim.treesitter.foldtext` as transparent foldtext is now supported
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -364,12 +364,29 @@ api.nvim_set_decoration_provider(namespace, {
 | 
				
			|||||||
  end,
 | 
					  end,
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--- @param bufnr (integer|nil) Buffer handle, or 0 for current
 | 
					--- @param filter vim.lsp.inlay_hint.enable.Filter
 | 
				
			||||||
--- @return boolean
 | 
					--- @return boolean
 | 
				
			||||||
--- @since 12
 | 
					--- @since 12
 | 
				
			||||||
function M.is_enabled(bufnr)
 | 
					function M.is_enabled(filter)
 | 
				
			||||||
 | 
					  ---@type integer
 | 
				
			||||||
 | 
					  local bufnr
 | 
				
			||||||
 | 
					  if type(filter) == 'number' then
 | 
				
			||||||
 | 
					    vim.deprecate(
 | 
				
			||||||
 | 
					      'vim.lsp.inlay_hint.is_enabled(bufnr:number)',
 | 
				
			||||||
 | 
					      'vim.lsp.inlay_hint.is_enabled(filter:table)',
 | 
				
			||||||
 | 
					      '0.10-dev'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    bufnr = filter
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    vim.validate({ filter = { filter, 'table', true } })
 | 
				
			||||||
 | 
					    filter = filter or {}
 | 
				
			||||||
 | 
					    bufnr = filter.bufnr
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vim.validate({ bufnr = { bufnr, 'number', true } })
 | 
					  vim.validate({ bufnr = { bufnr, 'number', true } })
 | 
				
			||||||
  if bufnr == nil or bufnr == 0 then
 | 
					  if bufnr == nil then
 | 
				
			||||||
 | 
					    return globalstate.enabled
 | 
				
			||||||
 | 
					  elseif bufnr == 0 then
 | 
				
			||||||
    bufnr = api.nvim_get_current_buf()
 | 
					    bufnr = api.nvim_get_current_buf()
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
  return bufstates[bufnr].enabled
 | 
					  return bufstates[bufnr].enabled
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -163,7 +163,7 @@ describe('vim.lsp.inlay_hint', function()
 | 
				
			|||||||
        screen:expect({ grid = grid_with_inlay_hints, unchanged = true })
 | 
					        screen:expect({ grid = grid_with_inlay_hints, unchanged = true })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        exec_lua(
 | 
					        exec_lua(
 | 
				
			||||||
          [[vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled(bufnr), { bufnr = bufnr })]]
 | 
					          [[vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({ bufnr = bufnr }), { bufnr = bufnr })]]
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        screen:expect({ grid = grid_without_inlay_hints, unchanged = true })
 | 
					        screen:expect({ grid = grid_without_inlay_hints, unchanged = true })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user