close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

#1519 new defect

Log arbóreo

Reported by: Javier Gallardo Owned by: Víctor de Buen Remiro
Priority: lowest Milestone: Mantainance
Component: Kernel Version: 3.1
Severity: normal Keywords:
Cc:

Description

Hola.

En sólo una sugerencia porque no sé qué implicaciones podría tener, pero me gustaría que el .log que rellena tol tuviese este aspecto:

  Incluyendo C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/_init_stdlib.tol
    Incluyendo C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/TolConfigManager/TolConfigManager.tol
      Ha sido incrustado el archivo C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/TolConfigManager/default.tol
      Ha sido incrustado el archivo C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/TolConfigManager/methods.tol
      Incluyendo C:/Users/Administrador/AppData/Roaming/tol/.tolConfig.v3.1.tol
      Ha sido incluido el fichero C:/Users/Administrador/AppData/Roaming/tol/.tolConfig.v3.1.tol [0.031 sec.]
    Ha sido incluido file C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/TolConfigManager/TolConfigManager.tol [0.097 sec.]
  OIS: Loading module stdlib::_packages.tol
    Including C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/general/various/_tools.tol
    Included file C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/general/various/_tools.tol [0.011 sec.]
    Including C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/tol_release_check.tol
    Included file C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/tol_release_check.tol [0.027 sec.]
  Last TOL updating check TOL was made at y2012m04d24h23i43s23.000
  Ha sido incluido file C:/Program Files (x86)/Tol-Project/tolbase-v3.1/bin/stdlib/_init_stdlib.tol [0.761 sec.]

Es decir, hacer un sangrado mayor a aquellos ficheros que cuelgan de uno incluido anteriormente. La razón es para saber de un vistazo qué ficheros dependen de cuáles.

Una función que hace esto la pongo al final: TreeLogTol(), pero lo suyo sería que se hiciese a medida que se va escribiendo en el .log

Gracias y un abrazo.

//////////////////////////////////////////////////////////////////////////////
Text TreeLogTol(Text txtLog){
//////////////////////////////////////////////////////////////////////////////
  Set comienzos = SetOfSet(
   // de apertura
    [["Incluyendo"        , Real 1, Real  0]],
    [["Including"         , Real 1, Real  0]],
   // de cierre
    [["Ha sido incluido"  , Real 0, Real -1]],
    [["Included"          , Real 0, Real -1]],
   // únicos
    [["Ha sido incrustado", Real 1, Real -1]]
  );

  Real numChars = 2;

  Set comienzos.propiedades = EvalSet(comienzos, Set(Set reg){
    Text comienzo = reg[1];
    Real antes    = reg[2];
    Real despues  = reg[3];
    Real length   = TextLength(comienzo);
  
    [[comienzo, antes, despues, length]]
  });
  
  Set partes = Tokenizer(txtLog, "\n");
  
  Real cursor    = Copy(0);
  Text txtLogNew = Copy("");
  
  Set byLinea = EvalSet(partes, Real(Text linea){

    Set filt = Select(comienzos.propiedades, Real(Set regComienzo){
      Text comienzo = regComienzo["comienzo"];
      Real length   = regComienzo["length"];
      Text sub = Sub(linea, 1, length);
      sub==comienzo
    });
  
    Real withFilt = Card(filt);
    
    Real If(withFilt, 
      Real cursor := Copy(cursor) + filt[1]["antes"],
      0
    );
  
    Text sangrado = Repeat(" ", numChars*cursor);
  
    Text txtLogNew := txtLogNew +"\n"+ sangrado + linea;
  
    Real If(withFilt, 
      Real cursor := Copy(cursor) + filt[1]["despues"],
      0
    );
  
    1
  });
  
  Copy(txtLogNew)
};
//////////////////////////////////////////////////////////////////////////////
PutDescription("
  Devuelve el contenido del .log generado por Tol, pero con sangrados en los
Includes()
", TreeLogTol);
//////////////////////////////////////////////////////////////////////////////

Change History (0)

Note: See TracTickets for help on using tickets.