-- .luacheckrc
-- Defines globals to prevent false positives during the sacred linting process.
read_globals = {
  "require",
  "print",
  "io",
  "os",
  "string",
  "table",
  "math",
  "pcall",
  "setmetatable",
  "getmetatable",
  "ipairs",
  "pairs",
  "tonumber",
  "tostring",
  "type",
  "next",
  "rawget"
}
exclude_files = {
    "lib/",
    "src/"
}
-- Ignore specific, non-critical warnings by their numeric code.
-- 111: Line is too long
-- 211: Unused variable
-- 212: Unused argument
-- 213: Unused argument 'self'
-- 631: skyweave/utils.lua:187:121: line is too long (135 > 120)
ignore = {
    "111",
    "211",
    "212",
    "213",
    "631"
}

-- Telling the linter to ignore Busted framework related keywords within the spec dir
['spec/'] = {
    -- It inherits the global rules and adds these new ones.
    read_globals = {
        'describe',
        'it',
        'assert', -- Busted extends the standard assert library.
        'before_each', -- Adding other common Busted globals for future use.
        'after_each',
        'setup',
        'teardown'
    }
}