Manuel:Conventions de codage/Lua
Espace blanc
- Utiliser la tabulation pour indenter. Auparavant, nous utilisions 4 espaces, mais nous sommes passés aux tabulations après que le comportement par défaut de l'éditeur de code de Wikipedia ait changé.
- Essayez de limiter la longueur des lignes simples, de sorte que les utilisateurs avec des écrans moins larges puissent lire le code plus aisément.
- Eviter les espaces blancs non nécessaires pour appeler une fonction ou indexer un tableau ou un dictionnaire. Aucun espace ne doit être utilisé juste avant ou à l'intérieur de parenthèses/crochets/accolades (
[, (, {
et les fermetures associées).
-- 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, '')
Flux de contrôle
Mettre plusieurs déclarations sur une ligne est déconseillé, sauf si elles sont très courtes. Essayez aussi d'éviter cela avec les déclarations multi-clauses.
-- Oui : 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();
Si elle ne tient pas sur une seule ligne, vous pouvez diviser une longue déclaration en plusieurs lignes avec une indentation en attente alignée sur le délimiteur d'ouverture.
Pour les déclarations if
, les conditions doivent être placées sur la ligne suivante.
-- 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
Conventions de nommage
Définir la méthode d'entrée comme l'extraction simple des paramètres de la structure, puis de les passer à travers une fonction de même nom préfixé d'un seul caractère de soulignement '_'. Cela peut être ignoré si la fonction ne sert qu'au wikicode, ou si elle a besoin d'une structure pour autre chose que ses arguments.
Dans la bibliothèque standard, les noms de fonctions composés de plusieurs mots sont simplement mis ensemble (par exemple setmetatable
).
Notez que le camelCase est la façon préférée de nommer les fonctions, afin d'éviter les noms de fonctions potentiellement ambigus (garden-path).
-- 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
Mise en surbrillance du code Lua
En dehors d'un module (comme sur les pages de discussion), la mise en surbrillance du code peut être ajoutée en utilisant la balise <syntaxhighlight> avec l'attribut lang="lua"
:
--code snippet function p.main() return "Hello world" end
produit:
--code snippet function p.main() return "Hello world" end