From 7e1f3b2a040e37895cc6797e5fb6032f9165e5c9 Mon Sep 17 00:00:00 2001 From: akianonymus Date: Wed, 22 Feb 2023 18:43:01 +0530 Subject: fix: Improve individual opts behaviour | #48 See https://github.com/NvChad/nvim-colorizer.lua/issues/48 css is true, names is true: Show names css is true, names is unset: Show names css is true, names is false: Don't show names --- lua/colorizer/buffer.lua | 3 ++- lua/colorizer/matcher.lua | 16 ++++++++++------ lua/colorizer/sass.lua | 5 +++-- 3 files changed, 15 insertions(+), 9 deletions(-) (limited to 'lua/colorizer') diff --git a/lua/colorizer/buffer.lua b/lua/colorizer/buffer.lua index 2035d52..36588af 100644 --- a/lua/colorizer/buffer.lua +++ b/lua/colorizer/buffer.lua @@ -142,7 +142,7 @@ function buffer.highlight(buf, ns, line_start, line_end, options, options_local) -- only update sass varibles when text is changed if options_local.__event ~= "WinScrolled" and options.sass and options.sass.enable then table.insert(returns.detach.functions, sass_cleanup) - sass_update_variables(buf, 0, -1, nil, make_matcher(options.sass.parsers or { css = true }), options, options_local) + sass_update_variables(buf, 0, -1, nil, make_matcher(options.sass.parsers), options, options_local) end local data = buffer.parse_lines(buf, lines, line_start, options) or {} @@ -199,6 +199,7 @@ local function getrow(buf) end local a = api.nvim_buf_call(buf, function() + ---@diagnostic disable-next-line: redundant-return-value return { vim.fn.line "w0", vim.fn.line "w$", diff --git a/lua/colorizer/matcher.lua b/lua/colorizer/matcher.lua index d55a673..21d7b4f 100644 --- a/lua/colorizer/matcher.lua +++ b/lua/colorizer/matcher.lua @@ -68,15 +68,19 @@ local MATCHER_CACHE = {} ---@param options table: options created in `colorizer.setup` ---@return function|boolean: function which will just parse the line for enabled parsers function matcher.make(options) - local enable_names = options.css or options.names + if not options then + return false + end + + local enable_names = options.names local enable_sass = options.sass and options.sass.enable local enable_tailwind = options.tailwind - local enable_RGB = options.css or options.RGB - local enable_RRGGBB = options.css or options.RRGGBB - local enable_RRGGBBAA = options.css or options.RRGGBBAA + local enable_RGB = options.RGB + local enable_RRGGBB = options.RRGGBB + local enable_RRGGBBAA = options.RRGGBBAA local enable_AARRGGBB = options.AARRGGBB - local enable_rgb = options.css or options.css_fns or options.rgb_fn - local enable_hsl = options.css or options.css_fns or options.hsl_fn + local enable_rgb = options.rgb_fn + local enable_hsl = options.hsl_fn local matcher_key = 0 + (enable_names and 1 or 0) diff --git a/lua/colorizer/sass.lua b/lua/colorizer/sass.lua index 5f08137..02d5701 100644 --- a/lua/colorizer/sass.lua +++ b/lua/colorizer/sass.lua @@ -163,10 +163,10 @@ local function sass_parse_lines(buf, line_start, content, name) if last_modified then -- grab the full path v = uv.fs_realpath(v) - SASS[buf].CURRENT_IMPORTS[name][v] = true + SASS[buf].CURRENT_IMPORTS[name][v or ""] = true if not SASS[buf].WATCH_IMPORTS[name][v] then - SASS[buf].IMPORTS[name][v] = last_modified + SASS[buf].IMPORTS[name][v or ""] = last_modified local c, ind = {}, 0 for l in io.lines(v) do ind = ind + 1 @@ -177,6 +177,7 @@ local function sass_parse_lines(buf, line_start, content, name) local function watch_callback() local dimen = vim.api.nvim_buf_call(buf, function() + ---@diagnostic disable-next-line: redundant-return-value return { vim.fn.line "w0", vim.fn.line "w$", vim.fn.line "$", vim.api.nvim_win_get_height(0) } end) -- todo: Improve this to only refresh highlight for visible lines -- cgit v1.2.3-70-g09d2