Skip to content

Commit 57dfa94

Browse files
fix(#572, #575): ensure icon overrides apply after refresh (#576)
* fix: ensure icon overrides apply after refresh * Don't apply icons without setup * org filetype newly added to nvim --------- Co-authored-by: Alexander Courtis <[email protected]>
1 parent 481bdaa commit 57dfa94

File tree

3 files changed

+46
-35
lines changed

3 files changed

+46
-35
lines changed

.pre-commit-config.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ repos:
2121
- id: colors
2222
name: colors
2323
description: Ensures Light Color Scheme version has been generated.
24-
entry: make colors
24+
entry: make colors-check
2525
language: system
2626
require_serial: true
2727
pass_filenames: false

lua/nvim-web-devicons.lua

+44-34
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ local M = {}
1111
-- NOTE: When adding new icons, remember to add an entry to the `filetypes` table, if applicable.
1212
local icons, icons_by_filename, icons_by_file_extension, icons_by_operating_system
1313
local icons_by_desktop_environment, icons_by_window_manager
14+
local user_icons
1415

1516
local filetypes = require "nvim-web-devicons.filetypes"
1617

@@ -197,39 +198,11 @@ local function get_highlight_ctermfg(icon_data)
197198
end
198199
end
199200

200-
local loaded = false
201-
202-
function M.has_loaded()
203-
return loaded
204-
end
205-
206-
local if_nil = vim.F.if_nil
207-
function M.setup(opts)
208-
if loaded then
201+
local function apply_user_icons()
202+
if type(user_icons) ~= "table" then
209203
return
210204
end
211205

212-
loaded = true
213-
214-
local user_icons = opts or {}
215-
216-
if user_icons.default then
217-
global_opts.default = true
218-
end
219-
220-
if user_icons.strict then
221-
global_opts.strict = true
222-
end
223-
224-
global_opts.color_icons = if_nil(user_icons.color_icons, global_opts.color_icons)
225-
226-
if user_icons.variant == "light" or user_icons.variant == "dark" then
227-
global_opts.variant = user_icons.variant
228-
229-
-- Reload the icons after setting variant option
230-
refresh_icons()
231-
end
232-
233206
if user_icons.override and user_icons.override.default_icon then
234207
default_icon = user_icons.override.default_icon
235208
end
@@ -283,6 +256,42 @@ function M.setup(opts)
283256
end
284257

285258
icons[1] = default_icon
259+
end
260+
261+
local loaded = false
262+
263+
function M.has_loaded()
264+
return loaded
265+
end
266+
267+
local if_nil = vim.F.if_nil
268+
function M.setup(opts)
269+
if loaded then
270+
return
271+
end
272+
273+
loaded = true
274+
275+
user_icons = opts or {}
276+
277+
if user_icons.default then
278+
global_opts.default = true
279+
end
280+
281+
if user_icons.strict then
282+
global_opts.strict = true
283+
end
284+
285+
global_opts.color_icons = if_nil(user_icons.color_icons, global_opts.color_icons)
286+
287+
if user_icons.variant == "light" or user_icons.variant == "dark" then
288+
global_opts.variant = user_icons.variant
289+
290+
-- Reload the icons after setting variant option
291+
refresh_icons()
292+
end
293+
294+
apply_user_icons()
286295

287296
M.set_up_highlights()
288297

@@ -419,14 +428,14 @@ function M.get_icon_cterm_color_by_filetype(ft, opts)
419428
return M.get_icon_cterm_color(name or "", nil, opts)
420429
end
421430

422-
function M.set_icon(user_icons)
423-
icons = vim.tbl_extend("force", icons, user_icons or {})
424-
global_opts.override = vim.tbl_extend("force", global_opts.override, user_icons or {})
431+
function M.set_icon(user_icons_opts)
432+
icons = vim.tbl_extend("force", icons, user_icons_opts or {})
433+
global_opts.override = vim.tbl_extend("force", global_opts.override, user_icons_opts or {})
425434
if not global_opts.color_icons then
426435
return
427436
end
428437

429-
for _, icon_data in pairs(user_icons) do
438+
for _, icon_data in pairs(user_icons_opts) do
430439
set_up_highlight(icon_data)
431440
end
432441
end
@@ -447,6 +456,7 @@ refresh_icons()
447456

448457
function M.refresh()
449458
refresh_icons()
459+
apply_user_icons()
450460
M.set_up_highlights(true)
451461
end
452462

lua/nvim-web-devicons/filetypes.lua

+1
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ return {
132132
["odin"] = "odin",
133133
["openscad"] = "scad",
134134
["opus"] = "opus",
135+
["org"] = "org",
135136
["otf"] = "otf",
136137
["pck"] = "pck",
137138
["pdf"] = "pdf",

0 commit comments

Comments
 (0)