Wikipedia:Guía de estilo de Lua

Esta é unha guía de estilo para o código Lua. Contén unha serie de recomendacións a ter en conta para desenvolver Módulos.

Espazos en branco editar

  1. Procure empregar tabulacións para a indentación.
  2. Procure limitar a lonxitude das liñas individuais para facilitar a lectura do código.
  3. Procure evitar espazos en branco sobrantes nas chamadas a funcións ou nas definicións de matrices. Procure evitar incluír espazos en branco inmediatamente antes ou dentro dos caracteres de parénteses ou chaves [ ] ( ) { }.
-- Si:
ola = {1, 2, 3}
foo(ola[1], blah['a'])
blah['b'] = ola[3]
foo(0,'')

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

Control do fluxo editar

Procure non incluír sentenzas múltiples nunha soa liña, agás se a expresión é moi curta. Procure evitar as sentenzas con cláusulas múltiples tamén de ser posible.

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

if 1 then foo() end

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

-- Non:
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();

Se unha liña faise demasiado longa, pode dividir as sentenzas longas en múltiples liñas indentadas, aliñadas aos delimitadores de apretura. Para sentenzas if as condicións deberían ir expresadas na liña seguinte.

-- Exemplo:

ola = nome_funcion_longa(var_un, var_dous,
                           var_tres, var_catro)

if ((condicion1
     or condicion2)
    and condicion3
    and condicion4) then
	foo()
	bar()
	baz()
end

Convención de nomes editar

Procure definir o método de entrada de forma sinxela desempaquetando os parámetros do marco, e pasándoos a través dunha función có mesmo nome e un guión baixo único. the entry method as simply unpacking the parameters from the frame, and then passing those through a function with the same name prefixed with a single underscore. Pode obviar isto cando as funcións sexan curtas e sinxelas.

local p = {}

function p._url(url, texto)
	-- Liñas de código
end

function p.url(frame)
	-- Saca os parámetros fora do marco e pásaos a p._url(). Retorna o resultado
	-- Liñas de código
	return p._url(url, texto)
end

return p

Resalte do código Lua editar

Fora do espazo de nomes "Módulo", o resalte de código pode facerse empregando a etiqueta HTML <syntaxhighlight> có atributo lang="lua":

<syntaxhighlight lang="lua">
--comentario
	function p.main()
		return "Ola mundo"
	end
</syntaxhighlight>

Produce:

--comentario
	function p.main()
		return "Ola mundo"
	end

Véxase tamén editar