From 78387ba46fe72c7f137b4efdafd424dea526d52c Mon Sep 17 00:00:00 2001 From: Jaime Paredes <35391305+jameswalls@users.noreply.github.com> Date: Wed, 15 Jan 2025 10:57:35 -0600 Subject: [PATCH] add minimal data model to config so that palette param gets completions (#162) Co-authored-by: 5-pebbles <5-pebble@protonmail.com> --- lua/nordic/colors/init.lua | 2 +- lua/nordic/colors/nordic.lua | 1 + lua/nordic/config.lua | 5 +++++ lua/nordic/groups/init.lua | 1 + lua/nordic/groups/integrations.lua | 1 + lua/nordic/groups/native.lua | 1 + lua/nordic/groups/terminal.lua | 1 + lua/nordic/init.lua | 5 +++-- 8 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lua/nordic/colors/init.lua b/lua/nordic/colors/init.lua index 2f42bc2..f44e68a 100644 --- a/lua/nordic/colors/init.lua +++ b/lua/nordic/colors/init.lua @@ -1,7 +1,7 @@ local U = require('nordic.utils') local P = require('nordic.colors.nordic') ----@class NordicPalette: NordicColors +---@class ExtendedPalette: BasePalette local C = {} function C.build_palette() diff --git a/lua/nordic/colors/nordic.lua b/lua/nordic/colors/nordic.lua index 16b32f3..36c776f 100644 --- a/lua/nordic/colors/nordic.lua +++ b/lua/nordic/colors/nordic.lua @@ -2,6 +2,7 @@ -- This file has a bunch of added colors. -- NOTE: All hex codes must be uppercase (for testing) +---@class BasePalette local palette = { none = 'NONE', diff --git a/lua/nordic/config.lua b/lua/nordic/config.lua index aba079e..9446e8b 100644 --- a/lua/nordic/config.lua +++ b/lua/nordic/config.lua @@ -1,5 +1,9 @@ local M = {} +---@class NordicOptions +---@field on_palette fun(palette: BasePalette) +---@field after_palette fun(palette: ExtendedPalette) +---@field on_highlight fun(highlights: Highlights, palette: ExtendedPalette) local defaults = { -- This callback can be used to override the colors used in the base palette. on_palette = function(palette) end, @@ -56,6 +60,7 @@ local defaults = { M.options = defaults -- called automatically by load +---@type fun(options: NordicOptions) function M.setup(options) -- backwards compatibility options = require('nordic.compatibility')(options) diff --git a/lua/nordic/groups/init.lua b/lua/nordic/groups/init.lua index 5bdc774..af71cbd 100644 --- a/lua/nordic/groups/init.lua +++ b/lua/nordic/groups/init.lua @@ -6,6 +6,7 @@ function M.get_groups() local native = require('nordic.groups.native').get_groups() local integrations = require('nordic.groups.integrations').get_groups() + ---@class Highlights: IntegrationHighlights, NativeHighlights local groups = {} merge_inplace(groups, native) merge_inplace(groups, integrations) diff --git a/lua/nordic/groups/integrations.lua b/lua/nordic/groups/integrations.lua index b6c9c26..c0cb827 100644 --- a/lua/nordic/groups/integrations.lua +++ b/lua/nordic/groups/integrations.lua @@ -4,6 +4,7 @@ function M.get_groups() local C = require('nordic.colors') local O = require('nordic.config').options + ---@class IntegrationHighlights local G = {} -- Dashboard.lua diff --git a/lua/nordic/groups/native.lua b/lua/nordic/groups/native.lua index 6e9f206..87a19c5 100644 --- a/lua/nordic/groups/native.lua +++ b/lua/nordic/groups/native.lua @@ -9,6 +9,7 @@ function M.get_groups() local C = require('nordic.colors') local O = require('nordic.config').options + ---@class NativeHighlights local G = {} -- SYNTAX diff --git a/lua/nordic/groups/terminal.lua b/lua/nordic/groups/terminal.lua index 82f9923..7051538 100644 --- a/lua/nordic/groups/terminal.lua +++ b/lua/nordic/groups/terminal.lua @@ -2,6 +2,7 @@ local M = {} function M.get_groups() local C = require('nordic.colors') + ---@class TerminalHighlights local G = {} G.terminal_color_0 = C.black0 diff --git a/lua/nordic/init.lua b/lua/nordic/init.lua index ca3db28..c3a7857 100644 --- a/lua/nordic/init.lua +++ b/lua/nordic/init.lua @@ -2,14 +2,15 @@ local U = require('nordic.utils') local M = {} -function M.load(opts) +---@type fun(options: NordicOptions) +function M.load(options) if not U.loaded() then vim.api.nvim_command('hi clear') vim.o.termguicolors = true vim.g.colors_name = U.NAME end - if opts then require('nordic.config').setup(opts) end + if options then require('nordic.config').setup(options) end -- Setup colors require('nordic.colors').build_palette()