From d2a08abb38a413dddd19edb69971d2b0657bff6f Mon Sep 17 00:00:00 2001 From: Thomas Wetzlmaier Date: Thu, 11 May 2023 16:32:53 +0200 Subject: Annotation rule for exported local functions Annotation for the following local function func1 is required. local mod = { } local function func1() end mod.Func1 = func1 return mod; --- test/diagnostics/init.lua | 1 + test/diagnostics/missing-local-export-doc.lua | 211 ++++++++++++++++++++++++++ 2 files changed, 212 insertions(+) create mode 100644 test/diagnostics/missing-local-export-doc.lua (limited to 'test/diagnostics') diff --git a/test/diagnostics/init.lua b/test/diagnostics/init.lua index fbea6680..c2fe720d 100644 --- a/test/diagnostics/init.lua +++ b/test/diagnostics/init.lua @@ -88,4 +88,5 @@ require 'diagnostics.common' require 'diagnostics.type-check' require 'diagnostics.incomplete-signature-doc' require 'diagnostics.missing-global-doc' +require 'diagnostics.missing-local-export-doc' require 'diagnostics.global-element' diff --git a/test/diagnostics/missing-local-export-doc.lua b/test/diagnostics/missing-local-export-doc.lua new file mode 100644 index 00000000..bdbf1cfb --- /dev/null +++ b/test/diagnostics/missing-local-export-doc.lua @@ -0,0 +1,211 @@ +local config = require 'config' +local util = require 'utility' + +-- disable all default groups to make isolated tests +config.set(nil, 'Lua.diagnostics.groupFileStatus', +{ + ['ambiguity'] = 'None', + ['await'] = 'None', + ['codestyle'] = 'None', + ['conventions'] = 'None', + ['duplicate'] = 'None', + ['global'] = 'None', + ['luadoc'] = 'None', + ['redefined'] = 'None', + ['strict'] = 'None', + ['strong'] = 'None', + ['type-check'] = 'None', + ['unbalanced'] = 'None', + ['unused'] = 'None' +}) + +-- enable single diagnostic that is to be tested +config.set(nil, 'Lua.diagnostics.neededFileStatus', +{ + ['missing-local-export-doc'] = 'Any!' -- override groupFileStatus +}) + + +-- check global functions +TEST [[ +local mod = {} + +local + +---comment +local function fl1() +end + +local function fl2() +end + +function FG0() +end + +mod.fl0 = fl0 +mod.fl1 = fl1 +return mod +]] + +TEST [[ +local mod = {} + +local function flp0() + print(p) +end + +---comment +local function flp1() + print(p) +end + +---comment +---@param p any +local function flp2(p) + print(p) +end + +mod.flp0 = flp0 +mod.flp1 = flp1 +return mod +]] + +TEST [[ +local mod = {} + +local function flpp0(, ) + print(p0, p1) +end + +---comment +local function flpp1(, ) + print(p0, p1) +end + +---comment +---@param p0 any +local function flpp2(p0, ) + print(p0, p1) +end + +---comment +---@param p0 any +---@param p1 any +local function flpp3(p0, p1) + print(p0, p1) +end + +mod.flpp0 = flpp0 +mod.flpp1 = flpp1 +mod.flpp2 = flpp2 +mod.flpp3 = flpp3 +return mod +]] + +TEST [[ +local mod = {} + +local function flr0() + return +end + +---comment +local function flr1() + return +end + +---comment +---@return integer +local function flr2() + return 0 +end + +mod.flr0 = flr0 +mod.flr1 = flr1 +mod.flr2 = flr2 +return mod +]] + +TEST [[ +local mod = {} + +local function flrr0() + return , +end + +---comment +local function flrr1() + return , +end + +---comment +---@return integer +local function flrr2() + return 0, +end + +---comment +---@return integer +---@return integer +local function flrr3() + return 0, 1 +end + +mod.flrr0 = flrr0 +mod.flrr1 = flrr1 +mod.flrr2 = flrr2 +return mod +]] + +TEST [[ +local mod = {} + +local function flpr0() + print(p) + return +end + +---comment +local function flpr1() + print(p) + return +end + +---comment +---@param p any +local function flpr2(p) + print(p) + return +end + +---comment +---@return integer +local function flpr3() + print(p) + return 0 +end + +---comment +---@param p any +---@return integer +local function flpr4(p) + print(p) + return 0 +end + +mod.flpr0 = flpr0 +mod.flpr1 = flpr1 +mod.flpr2 = flpr2 +mod.flpr3 = flpr3 +mod.flpr4 = flpr4 +return mod +]] + +-- reset configurations +config.set(nil, 'Lua.diagnostics.groupFileStatus', +{}) +config.set(nil, 'Lua.diagnostics.neededFileStatus', +{}) +config.set(nil, 'Lua.diagnostics.globals', +{}) \ No newline at end of file -- cgit v1.2.3