highlighting of errorneous lines in from tool output
authorChristian Weiske <cweiske@cweiske.de>
Fri, 13 Apr 2012 18:03:54 +0000 (20:03 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Fri, 13 Apr 2012 18:03:54 +0000 (20:03 +0200)
data/templates/display-file.htm
src/phorkie/File.php
src/phorkie/Renderer/Geshi.php

index d06c365..1049abb 100644 (file)
@@ -7,6 +7,6 @@
   <h3 id="{{file.getFilename}}">{{file.getFilename}}<a class="anchorlink" href="#{{file.getFilename}}"></a></h3>
  </div>
  <div class="code">
-  {{file.getHighlightedContent|raw}}
+  {{file.getHighlightedContent(toolres)|raw}}
  </div>
 </div>
index 869aa80..de8bde0 100644 (file)
@@ -58,7 +58,7 @@ class File
         return file_get_contents($this->path);
     }
 
-    public function getHighlightedContent()
+    public function getHighlightedContent(Tool_Result $res = null)
     {
         $ext = $this->getExt();
         if (isset($GLOBALS['phorkie']['languages'][$ext]['renderer'])) {
@@ -67,7 +67,7 @@ class File
             $class = '\\phorkie\\Renderer_Geshi';
         }
         $rend = new $class();
-        return $rend->toHtml($this);
+        return $rend->toHtml($this, $res);
     }
 
     /**
index 1a79e16..d2d3430 100644 (file)
@@ -6,11 +6,12 @@ class Renderer_Geshi
     /**
      * Converts the code to HTML
      *
-     * @param File $file File to render
+     * @param File        $file File to render
+     * @param Tool_Result $res  Tool result to integrate
      *
      * @return string HTML
      */
-    public function toHtml(File $file)
+    public function toHtml(File $file, Tool_Result $res = null)
     {
         /**
          * Yes, geshi needs to be in your include path
@@ -20,6 +21,12 @@ class Renderer_Geshi
         $geshi = new \GeSHi($file->getContent(), $this->getType($file));
         $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);
         $geshi->set_header_type(GESHI_HEADER_DIV);
+
+        if ($res !== null) {
+            $geshi->highlight_lines_extra(array_keys($res->annotations));
+            $geshi->set_highlight_lines_extra_style('background-color: #F2DEDE');
+        }
+
         return $geshi->parse_code();
     }