fix: when dev icons absent (#1214)
* Add helper function to check for dev icon availability * Add function to display dev icon or nothing if icon plugins unavailable * Fix existing use of icons * Reformat with stylua
This commit is contained in:
parent
6e18616c16
commit
cc46386130
@ -23,9 +23,7 @@ M.check = function()
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- Optional dependencies
|
-- Optional dependencies
|
||||||
local has_devicons = Utils.has("nvim-web-devicons")
|
if Utils.icons_enabled() then
|
||||||
local has_mini_icons = Utils.has("mini.icons") or Utils.has("mini.nvim")
|
|
||||||
if has_devicons or has_mini_icons then
|
|
||||||
H.ok("Found icons plugin (nvim-web-devicons or mini.icons)")
|
H.ok("Found icons plugin (nvim-web-devicons or mini.icons)")
|
||||||
else
|
else
|
||||||
H.warn("No icons plugin found (nvim-web-devicons or mini.icons). Icons will not be displayed")
|
H.warn("No icons plugin found (nvim-web-devicons or mini.icons). Icons will not be displayed")
|
||||||
|
@ -412,8 +412,8 @@ local function get_searching_hint()
|
|||||||
end
|
end
|
||||||
|
|
||||||
local thinking_spinner_chars = {
|
local thinking_spinner_chars = {
|
||||||
"🤯",
|
Utils.icon("🤯", "?"),
|
||||||
"🙄",
|
Utils.icon("🙄", "¿"),
|
||||||
}
|
}
|
||||||
local thinking_spinner_index = 1
|
local thinking_spinner_index = 1
|
||||||
|
|
||||||
@ -452,8 +452,10 @@ local function generate_display_content(replacement)
|
|||||||
return string.format(" > %s", line)
|
return string.format(" > %s", line)
|
||||||
end)
|
end)
|
||||||
:totable()
|
:totable()
|
||||||
local result_lines =
|
local result_lines = vim.list_extend(
|
||||||
vim.list_extend(vim.list_slice(lines, 1, replacement.last_search_tag_start_line), { "🤔 Thought content:" })
|
vim.list_slice(lines, 1, replacement.last_search_tag_start_line),
|
||||||
|
{ Utils.icon("🤔 ") .. "Thought content:" }
|
||||||
|
)
|
||||||
result_lines = vim.list_extend(result_lines, formatted_thinking_content_lines)
|
result_lines = vim.list_extend(result_lines, formatted_thinking_content_lines)
|
||||||
result_lines = vim.list_extend(result_lines, vim.list_slice(lines, last_think_tag_end_line + 1))
|
result_lines = vim.list_extend(result_lines, vim.list_slice(lines, last_think_tag_end_line + 1))
|
||||||
return table.concat(result_lines, "\n")
|
return table.concat(result_lines, "\n")
|
||||||
@ -860,7 +862,7 @@ function Sidebar:render_result()
|
|||||||
then
|
then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local header_text = " Avante"
|
local header_text = Utils.icon(" ") .. "Avante"
|
||||||
self:render_header(
|
self:render_header(
|
||||||
self.result_container.winid,
|
self.result_container.winid,
|
||||||
self.result_container.bufnr,
|
self.result_container.bufnr,
|
||||||
@ -882,13 +884,15 @@ function Sidebar:render_input(ask)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local header_text = string.format(
|
local header_text = string.format(
|
||||||
" %s (" .. Config.mappings.sidebar.switch_windows .. ": switch focus)",
|
"%s%s (" .. Config.mappings.sidebar.switch_windows .. ": switch focus)",
|
||||||
|
Utils.icon(" "),
|
||||||
ask and "Ask" or "Chat with"
|
ask and "Ask" or "Chat with"
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.code.selection ~= nil then
|
if self.code.selection ~= nil then
|
||||||
header_text = string.format(
|
header_text = string.format(
|
||||||
" %s (%d:%d) (<Tab>: switch focus)",
|
"%s%s (%d:%d) (<Tab>: switch focus)",
|
||||||
|
Utils.icon(" "),
|
||||||
ask and "Ask" or "Chat with",
|
ask and "Ask" or "Chat with",
|
||||||
self.code.selection.range.start.lnum,
|
self.code.selection.range.start.lnum,
|
||||||
self.code.selection.range.finish.lnum
|
self.code.selection.range.finish.lnum
|
||||||
@ -921,7 +925,8 @@ function Sidebar:render_selected_code()
|
|||||||
selected_code_lines_count = #selected_code_lines
|
selected_code_lines_count = #selected_code_lines
|
||||||
end
|
end
|
||||||
|
|
||||||
local header_text = " Selected Code"
|
local header_text = Utils.icon(" ")
|
||||||
|
.. "Selected Code"
|
||||||
.. (
|
.. (
|
||||||
selected_code_lines_count > selected_code_max_lines_count
|
selected_code_lines_count > selected_code_max_lines_count
|
||||||
and " (Show only the first " .. tostring(selected_code_max_lines_count) .. " lines)"
|
and " (Show only the first " .. tostring(selected_code_max_lines_count) .. " lines)"
|
||||||
@ -2329,7 +2334,7 @@ function Sidebar:create_selected_files_container()
|
|||||||
self:render_header(
|
self:render_header(
|
||||||
self.selected_files_container.winid,
|
self.selected_files_container.winid,
|
||||||
selected_files_buf,
|
selected_files_buf,
|
||||||
" Selected Files",
|
Utils.icon(" ") .. "Selected Files",
|
||||||
Highlights.SUBTITLE,
|
Highlights.SUBTITLE,
|
||||||
Highlights.REVERSED_SUBTITLE
|
Highlights.REVERSED_SUBTITLE
|
||||||
)
|
)
|
||||||
|
@ -918,4 +918,22 @@ function M.read_file_from_buf_or_disk(file_path)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---Check if an icon plugin is installed
|
||||||
|
---@return boolean
|
||||||
|
M.icons_enabled = function() return M.has("nvim-web-devicons") or M.has("mini.icons") or M.has("mini.nvim") end
|
||||||
|
|
||||||
|
---Display an string with icon, if an icon plugin is available.
|
||||||
|
---Dev icons are an optional install for avante, this function prevents ugly chars
|
||||||
|
---being displayed by displaying fallback options or nothing at all.
|
||||||
|
---@param string_with_icon string
|
||||||
|
---@param utf8_fallback string|nil
|
||||||
|
---@return string
|
||||||
|
M.icon = function(string_with_icon, utf8_fallback)
|
||||||
|
if M.icons_enabled() then
|
||||||
|
return string_with_icon
|
||||||
|
else
|
||||||
|
return utf8_fallback or ""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
Loading…
x
Reference in New Issue
Block a user