Manual:Coding conventions/Lua/cs

From Linux Web Expert

The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Mezery

  1. Pro odsazení použijte tabulátory. Dříve jsme používali 4 mezery, ale nyní jsme přešli na tabulátory poté, co se změnilo výchozí chování editoru kódu Wikipedie.
  2. Pokuste se omezit délku jednoho řádku, aby lidé s menšími monitory mohli kód snadno přečíst.
  3. Při volání funkce nebo indexování pole nebo slovníku se vyhněte nadbytečným mezerám. Bezprostředně před nebo uvnitř hranatého znaku ([, (, { a jejich shody) by se neměly používat žádné mezery.
-- Yes:
hi = {1, 2, 3}
foo(hi[1], blah['a'])

-- No:
hi = { 1, 2, 3 }
foo( hi[ 1 ], blah[ 'a' ] )
blah ['b'] = hi [3]
foo (0, '')

Řídící tok

Vkládání více příkazů na jeden řádek se nedoporučuje, pokud výraz není příliš krátký. Pokuste se tomu vyhnout i u vícečlenných výroků.

-- Ano:
if 1 then
	foo()
	bar()
else
	baz()
end

if 1 then foo() end

foo(); bar(); baz();

-- Ne:
if 1 then foo(); bar(); else baz(); end

if 1 then foo(); bar(); baz();
else lorem(); ipsum(); end

foo(); bar(); baz(); spam(); eggs(); lorem(); ipsum(); dolor(); sit(); amet();

Pokud by byl jeden řádek příliš dlouhý, můžete velký příkaz rozdělit na více řádků s předsazeným odsazením, které je zarovnáno s oddělovačem otevření. Pro výpisy if by měly být podmínky umístěny na dalším řádku.

-- Example:

hello = long_function_name(var_one, var_two,
                           var_three, var_four)

if ((condition1
	or condition2)
	and condition3
	and condition4) then
	foo()
	bar()
	baz()
end

Konvence pojmenování

Definujte metodu zadávání jako jednoduché rozbalení parametrů z rámce a jejich předání přes funkci se stejným názvem s předponou jedním podtržítkem. To lze ignorovat, pokud je funkce užitečná pouze z wikitextu nebo pokud potřebuje rámec pro něco jiného, než jsou její argumenty.

Ve standardní knihovně se názvy funkcí skládající se z více slov jednoduše skládají dohromady (např. setmetatable). Všimněte si, že camelCase je preferovaný způsob pojmenování funkcí, abyste se vyhnuli potenciálním garden-path názvům funkcí.

-- See https://en.wikipedia.org/w/index.php?oldid=540791109 for code

local p = {}

function p._url(url, text)
	-- Code goes here
end

function p.url(frame)
	-- Take parameters out of the frame and pass them to p._url(). Return the result.
	-- Adapt the below code to your specific template arguments
	local templateArgs = frame.args
	local url = templateArgs[1] or ''
	local text = templateArgs[2] or ''
	return p._url(url, text)
end

return p

Zvýraznění kódu Lua

Mimo modul (jako na talkpages) lze zvýraznění kódu přidat pomocí tagu <syntaxhighlight> s atributem lang="lua":

‎<syntaxhighlight lang="lua">
--code snippet
	function p.main()
		return "Hello world"
	end
‎</syntaxhighlight>

Zobrazí se:

--code snippet
	function p.main()
		return "Hello world"
	end



Související odkazy