view trunk/src/docgen/sourcelisting/latexwriter.d @ 449:757bd048482c

Depgraph test + minor modifications.
author Jari-Matti M?kel? <jmjm@iki.fi>
date Wed, 17 Oct 2007 20:35:56 +0300
parents c82b36b9cadf
children 3f44c38bf870
line wrap: on
line source

/**
 * Author: Jari-Matti Mäkelä
 * License: GPL3
 */
module docgen.sourcelisting.latexwriter;

public import docgen.sourcelisting.writer;
import dil.Parser;
import tango.io.protocol.Writer : Writer;
import tango.io.FileConduit : FileConduit;
import tango.io.Print;
import tango.io.FilePath;
import tango.text.convert.Layout : Layout;

/**
 * Adds a code listing section for the given file. 
 */
class LaTeXWriter : AbstractWriter!(ListingWriterFactory, 2), ListingWriter {
  this(ListingWriterFactory factory, OutputStream[] outputs) {
    super(factory, outputs);
  }

  void generateListing(Parser parser) {
    auto output2 = new Print!(char)(new Layout!(char), outputs[0]);
    auto output = new Print!(char)(new Layout!(char), outputs[1]);
    /* TODO */
  }
  
  void generateListing(InputStream input, char[] moduleName) {
    auto output2 = new Print!(char)(new Layout!(char), outputs[0]);

    if (cast(FileConduit)outputs[1]) {
      char[] fn = (cast(FileConduit)outputs[1]).toUtf8();
      fn = FilePath(fn).file;
      output2.format("\\section{{Module {0}}\n", moduleName);
      output2.format("\\lstinputlisting[language=d]{{{0}}\n", fn);
    }
    outputs[1].copy(input);
  }
}