Syntaxhighlighting mit Redmine

Nachdem ich mich schon ein paarmal darüber geärgert hatte, das die Codeanzeige aus Repositorys unter Redmine nur bei "Online-Filetypen" Syntaxhighlighting zeigt wollte ich heute Abhilfe schaffen.

Am geeignetsten dafür (als Ersatz für den internen CodeRay) erschien mir das Pygments-Plugin was ich bereits im Einsatz hatte. Eine Installation auf dem Server zeigte aber statt schmuckem Code nur ein fahles Grau mit hellgelbem Hintergrund. Nicht das was ich erwartet habe, wenn ich ehrlich bin.

Da ich im Vorfeld bereits andere Syntax-Highlighter ausprobiert hatte, ging ich das Thema von der anderen Seite an: Wenn die Plugins nicht so tun wie ich das erwarte, warum nicht versuchen das bestehende CodeRay an meine Bedürfnisse anpassen?

Gesagt getan:
Einen Schnippsel C# / .NET  Code in das Beispiel Programm auf der Webseite gepostet und siehe da: C# sieht als C++ in CodeRay ganz manierlich aus. Und von da ab ging das anpassen recht einfach von statten.

Auf dem Server einloggen und los gehts:

cd /usr/share/redmine/vendor/plugins/coderay-0.9.2/lib/coderay/
sudo cp scanners/cpp.rb scanners/csharp.rb
sudo mcedit scanners/csharp.rb

Finde

module CodeRay
module Scanners
 
  class CPlusPlus < Scanner
 
    include Streamable
 
    register_for :cpp
    file_extension 'cpp'
    title 'C++'

und ändere das ganze in:

module CodeRay
module Scanners
 
  class CSharp < Scanner
 
    include Streamable
 
    register_for :csharp
    file_extension 'cs'
    title 'C#'

Damit hätten wir dann einen Scanner der C# / .NET lesen kann. Damit er auch verwendbar wird brauchte es noch Anpassungen im File-Parser, der entscheidet welche Dateien wie gelesen werden.

sudo mcedit helpers/file_type.rb 

Und finde folgenden Eintrag zum Erweitern mit "cs" und "csproj":

  TypeFromExt = {
    'c' => :c,
    'config' => :xml,
    'cs' => :csharp,
    'csproj' => :xml,
    'css' => :css,
    'diff' => :diff,
    'dpr' => :delphi,

Ein freundlicher Restart des Apachen macht die Änderung dann aktiv

sudo /etc/init.d/apache2 restart

Ab jetzt haben meine Quellcodedateien die aus dem Projektarchiv kommen wieder ein wenig Farbe. Liest sich einfach schöner.

Post new comment

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Lines and paragraphs break automatically.
  • No HTML tags allowed.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. The supported tag styles are: <foo>, [foo].
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.
© 2010 khype.org.. Drupal theme by Kiwi Themes.