aboutsummaryrefslogtreecommitdiffstats
path: root/lua/mason-core/ui/display.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/mason-core/ui/display.lua')
-rw-r--r--lua/mason-core/ui/display.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/lua/mason-core/ui/display.lua b/lua/mason-core/ui/display.lua
index 009fb580..4c6a06c2 100644
--- a/lua/mason-core/ui/display.lua
+++ b/lua/mason-core/ui/display.lua
@@ -1,3 +1,4 @@
+local EventEmitter = require "mason-core.EventEmitter"
local log = require "mason-core.log"
local settings = require "mason.settings"
local state = require "mason-core.ui.state"
@@ -212,6 +213,8 @@ function M.new_view_only_win(name, filetype)
---@type WindowOpts
local window_opts = {}
+ local events = EventEmitter.new()
+
vim.diagnostic.config({
virtual_text = {
severity = { min = vim.diagnostic.severity.HINT, max = vim.diagnostic.severity.ERROR },
@@ -367,6 +370,24 @@ function M.new_view_only_win(name, filetype)
bufnr = vim.api.nvim_create_buf(false, true)
win_id = vim.api.nvim_open_win(bufnr, true, create_popup_window_opts(window_opts, false))
+ vim.api.nvim_create_autocmd("CmdLineEnter", {
+ buffer = bufnr,
+ callback = function()
+ if vim.v.event.cmdtype == "/" or vim.v.event.cmdtype == "?" then
+ events:emit "search:enter"
+ end
+ end,
+ })
+
+ vim.api.nvim_create_autocmd("CmdLineLeave", {
+ buffer = bufnr,
+ callback = function(args)
+ if vim.v.event.cmdtype == "/" or vim.v.event.cmdtype == "?" then
+ events:emit("search:leave", vim.fn.getcmdline())
+ end
+ end,
+ })
+
registered_effect_handlers = window_opts.effects
registered_keybinds = {}
registered_keymaps = {}
@@ -455,6 +476,7 @@ function M.new_view_only_win(name, filetype)
end
return {
+ events = events,
---@param _renderer fun(state: table): table
view = function(_renderer)
renderer = _renderer