Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Portada
mantenimiento
Páginas nuevas
Página aleatoria
Cambios recientes
Páginas especiales
Ayuda
Comunidad
Portal de la comunidad
Centro de reportes
Tablón de solicitudes
Tutorial de edición
Políticas
Buscar
Buscar
Apariencia
Crear una cuenta
Acceder
Herramientas personales
Crear una cuenta
Acceder
Páginas para editores desconectados
más información
Contribuciones
Discusión
Edición de «
Módulo:SimpleDebug/doc
»
Módulo
Discusión
español
Leer
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar código
Ver historial
Actualizar
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Enlace corto
En otros proyectos
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
Contiene funciones para ayudar a [[Ayuda:Lua#Depuración de los módulos|depurar los módulos lua]]: Permite recoger y visualizar los valores de varias variables y/o puntos de su programa lua, desde un módulo (lo habitual) o en varios módulos (que son requeridos desde el módulo principal). Está diseñado para que sus funciones sean llamadas desde dentro del módulo que se quiere depurar, llamadas que deberán formar parte del código (del módulo que ha diseñado, o que quiere mejorar o adaptar) hasta que decida eliminarlas (cuando ya haya determinado el error). Así, no se ha de llamar ninguna de sus funciones con un ''invoke''. '''Atención''': el uso de este módulo debería limitarse a la creación y depuración de otros módulos en zonas de pruebas. ==Usos== {| class="wikitable" |- ! colspan="3" | Uno o diversos puntos a ver |- | colspan="3" | Abreviaciones de las funciones: w: where (donde). n: names (nombres). v: variables. s: string (cadena). |- | colspan="3" |'''Variables''' |- | '''Nombre'''||'''Por defecto'''|| |- | <code>tab.oneline</code> || true || * Si es ''false'' o es ''true'' y contiene tablas anidadas, mostrará una línea por cada elemento de la tabla y con un sangrado para cada tabla anidada. * Si es ''true'' y no contiene tablas anidadas, muestra la tabla en una línea. |- | <code>tab.allidx</code> || false || Si es ''true'', también muestra los índices numéricos de una tabla. |- | <code>dec</code> || -1 || Espacios para los decimales: * -1: muestra todos los decimales necesarios. * 0: sin decimales. * n: 1: un decimal, 2: dos decimales, etc, |- |<code>enabled</code> || true || Si es ''false'', todas las llamadas a las funciones siguientes no hacen nada. |- |<code>nohtml</code> || false || Sustituye < por ⪡ y > por ⪢ en las cadenas. |- |<code>plaintext</code> || false || Elimina el formato html. |- ! colspan="3" |Un punto a ver |- | colspan="2" |'''Funciones''' |- | colspan="2" |<code>w (where)</code> || *''where'': etiqueta del punto. |- | colspan="2" |<code>v (...)</code> || *''...'': un seguido de variables => var1, var2... |- | colspan="2" |<code>wv (where, ...)</code> || *''where'': etiqueta del punto. *''...'': un seguido de variables => var1, var2... |- | colspan="2" |<code>nv (...)</code> || *''...'': un seguido de parejas de nombre-variable = name1, var1, name2, var2.... |- | colspan="2" |<code>wnv (where, ...)</code> || *''where'': etiqueta del punto. *''...'': un seguido de parejas de nombre-variable = name1, var1, name2, var2.... |- ! colspan="3" |Diversos puntos a ver |- | colspan="3" |'''Variables''' |- | '''Nombre'''||'''Por defecto'''|| |- | <code>s</code> || || La variable de cadena que contiene los valores devueltos de las funciones. |- | <code>maxlines.num</code> || 100 || Número máximo de líneas (al llamar a las funciones siguientes). |- | <code>maxlines.doerror</code> || true || Si es ''true'' y se alcanza <code>maxlines.num</code>, entonces se llama <code>error(s).</code> |- |<code>counter</code> || false || Añade un número autoincremental al principio de cada utilización de una función. |- | colspan="3" |'''Funciones''' |- | colspan="2" |<code>breakline ()</code> || Añade un retorno de línea a <code>s</code>. |- | colspan="2" |<code>wtos (where)</code> || Igual a <code>w</code>, pero la cadena devuelta se guarda en <code>s</code>. |- | colspan="2" |<code>vtos (...)</code> || Igual a <code>v</code>, pero la cadena devuelta se guarda en <code>s</code>. |- | colspan="2" |<code>wvtos (where, ...)</code> || Igual a <code>wv</code>, pero la cadena devuelta se guarda en <code>s</code>. |- | colspan="2" |<code>nvtos (...)</code> || Igual a <code>nv</code>, pero la cadena devuelta se guarda en <code>s</code>. |- | colspan="2" |<code>wnvtos (where, ...)</code> || Igual a <code>wnv</code>, pero la cadena devuelta se guarda en <code>s</code>. |} ==Ejemplos== === Un punto a ver === ====Siguiendo el flujo==== <syntaxhighlight lang="lua"> local SD = require "Module:SimpleDebug" return SD.w ("Se ha pasado por aquí") </syntaxhighlight> devuelve: Se ha pasado por aquí ====Número de decimales y valor de una variable==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" SD.dec = 2 return SD.v (1/3) </syntaxhighlight> devuelve: 0.33 ==== Nohtml ==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" SD.nohtml = true return SD.v ("<b>bold</b>") </syntaxhighlight> devuelve: "⪡b⪢bold⪡/b⪢" ==== Plaintext ==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" SD.plaintext = true return SD.v ("<b>bold</b>") </syntaxhighlight> devuelve: "bold" ====El valor de varias variables==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" local a = 12 local b = 'Hola' return SD.v (a,b) </syntaxhighlight> devuelve: 12 • "Hola" ==== Detección de variable no assignada ==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" local a = true return SD.v (a,b) </syntaxhighlight> devuelve: true • nil ====El valor de una tabla==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" local a = {1, tab='a', 'b'} return SD.v (a) </syntaxhighlight> devuelve: { 1, "b", [tab]="a", } <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" local a = {{1,2,3},{4,5,6},{7,8,9}} return SD.v (a) </syntaxhighlight> devuelve: { [1] = {1, 2, 3, }, [2] = {4, 5, 6, }, [3] = {7, 8, 9, }, } <syntaxhighlight lang="lua"> local SD = require "Module:SimpleDebug" local a = {{Primero=1,2,3},{4,Segundo=5,6},{7,8,9}} return SD.v (a) </syntaxhighlight> devuelve: { [1] = {2, 3, [Primero]=1, }, [2] = {4, 6, [Segundo]=5, }, [3] = {7, 8, 9, }, } <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" SD.tab.allidx = true local a = {{1,2,3},{4,nil,6},{7,8,9}} return SD.v (a) </syntaxhighlight> devuelve: { [1]={[1]=1, [2]=2, [3]=3, }, [2]={[1]=4, [3]=6, }, [3]={[1]=7, [2]=8, [3]=9, }, } Normalmente, implementará estas funciones con la función de error: <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" local a = {{1,2,3},{4,5,6},{7,8,9}} error (SD.v (a)) </syntaxhighlight> muestra: {{color|red|'''Error de Lua: Módulo:''SuMódulo'':''Linea'': {}} <font color="red"><b> [1] = {1, 2, 3, }, [2] = {4, 5, 6, }, [3] = {7, 8, 9, }, }</b></font> ====Todos los valores de una tabla en multilínea==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" SD.tab.oneline = false local a = {{Primero=1,2,3},'En medio',{4,Segundo=5,6}} return SD.v (a) </syntaxhighlight> devuelve: <pre> { [1] = { [1] = 2, [2] = 3, ["Primero"] = 1, }, [2] = "En medio", [3] = { [1] = 4, [2] = 6, ["Segundo"] = 5, }, } </pre> ====El valor de varias variables con su nombre en un punto==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" local a = 12 local b = 'Hola' return SD.nv ('a',a,'b',b) </syntaxhighlight> devuelve: a: 12 • b: "Hola" === Diversos puntos a ver === ====Siguiendo el flujo==== <syntaxhighlight lang="lua"> local SD = require "Module:SimpleDebug" local tab = {1,12,7} function p.CheckValues () local function LittleNum() SD.wtos ('número pequeño') end local function BigNum(num) SD.wtos ('grande='..num) end for i, num in ipairs(tab) do if num > 9 then BigNum(num) else LittleNum() end end error (SD.s) end </syntaxhighlight> devuelve: {{color|red|'''Error de Lua:''SuMódulo'':''Linea'':}} {{color|red|número pequeño'''}} {{color|red|'''grande{{=}}12'''}} {{color|red|'''número pequeño.'''}} ====Con contador==== <syntaxhighlight lang="lua"> local SD = require "Module:SimpleDebug" function Increm() local n = 0 for i = 1, 3 do n = n + 2 SD.vtos (n) end end SD.counter = true Increm() return SD.s </syntaxhighlight> devuelve: 1 • 2 2 • 4 3 • 6 ====Seguimiento de varias variables==== <syntaxhighlight lang="lua"> local SD = require "Module:SimpleDebug" a = 12 b = 'Hola' SD.vtos (1,a,b) a = a + a b = b..' mundo!' SD.vtos ('Finalmente',a,b) return SD.s </syntaxhighlight> devuelve: 1 => 12 • "Hola" Finalmente => 24 • "Hola mundo!" <syntaxhighlight lang="lua"> local SD = require "Module:SimpleDebug" SD.breakline () a = 12 b = 'Hola' c = false SD.nvtos (1, 'a',a,'b',b,'c',c) a = a + a b = b..' mundo!' SD.nvtos ('Finalmente', 'a',a,'b',b) error (SD.s) </syntaxhighlight> muestra: {{color|red|'''Error de Lua: Módulo:''SuMódulo'':''Linea'':'''}} {{color|red|'''1 {{=}}> a: 12 • b: "Hola" • c: false'''}} {{color|red|'''Finalmente {{=}}> a: 24 • b: "Hola mundo!"'''}} ====Variables y su presentación con condiciones==== <syntaxhighlight lang="Lua"> local SD = require "Module:SimpleDebug" SD.breakline() SD.enabled = false SD.maxlines.num = 3 local a = 'AA' for i = 1, 10 do a = a + 'AA' if i == 3 then SD.enabled = true end SD.wvtos (i, string.len(a), a) end </syntaxhighlight> muestra: {{color|red|'''Error de Lua: Módulo:''SuMódulo'':''Linea'':'''}} {{color|red|'''3 {{=}}> 8 • "AAAAAAAA"'''}} {{color|red|'''4 {{=}}> 10 • "AAAAAAAAAA"'''}} {{color|red|'''5 {{=}}> 12 • "AAAAAAAAAAAA".'''}} <includeonly> [[Categoría:Wikipedia:Metamódulos Lua]] </includeonly>
Resumen:
Ten en cuenta que todas las contribuciones a Netxipedia se consideran publicadas bajo la Creative Commons Atribución-CompartirIgual (véase
Netxipedia:Derechos de autor
para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre.
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Plantillas usadas en esta página:
Plantilla:Color
(
editar
)
Plantilla:RGB
(
editar
)
Buscar
Buscar
Edición de «
Módulo:SimpleDebug/doc
»
Añadir tema