Correction pour google-code-prettify w / c #

Prettify donne des types et des méthodes de la même classe lors du tokening c #, de sorte qu'ils sont colorés de la même manière. C'est parce que les méthodes sont pascal case dans c # au lieu de cas de chameau comme dans java. Cela affecte mon blog et tout code c # stackoverflow puisqu'ils utilisent également des prétotypes.

Quelqu'un a-t-il une solution pour cela?

Sinon, vous pouvez au moins classer / voter le bug officiel qui a été signalé en mars 2009 pour que les auteurs regardent.

J'ai effectivement écrit ma propre bibliothèque de mise en surbrillance de syntaxe pour résoudre des problèmes comme celui-ci. C'est plutôt similaire à la préparation, mais il faut spécifier la langue de manière explicite.

  • Site Internet
  • Démonstration

Il est possible que la syntaxe identique ait des significations différentes. Il n'y a pas assez d'informations pour syntaxe appropriée mettre en évidence tout.

Jetez un oeil à cet exemple:

static class Program { class Foo { public class Bar { public static void Func() { } } } class Foo2 { public static Baz Bar2 { get; set; } } class Baz { public void Func2() { } } static void Main() { Foo.Bar.Func(); Foo2.Bar2.Func2(); } } 

Dans la première ligne, Bar est une classe intérieure, et devrait être en surbrillance verte. Dans la deuxième ligne, Bar2 est une propriété du type Foo2 et doit être surligné en noir. Func et Func2 sont des fonctions et doivent être en surbrillance en noir.

Voici comment Visual Studio met en évidence ce code.

Texte alt

Le problème est que sans contexte, il est impossible de savoir s'il s'agit d'une méthode ou d'un type.

Prenez l'exemple suivant:

 var value = new Test(); Test(); 

Cet exemple crée un nouveau Test puis appelle la méthode Test . La seule façon de savoir quelle est une classe et quel type est en ayant 1. la base de code entière et 2. un compilateur.

Et puis je n'ai même pas touché un code invalide.

Cela dit, je pense que le prétentieux actuel tel qu'utilisé par SO fait un travail formidable de mettre en évidence les échantillons de code sans aucun contexte.

TextMate (OS X) ou E-TextEditor (Windows)

TextMate / E-TextEditor générera HTML et CSS à partir de la mise en surbrillance de syntaxe pour de nombreuses langues.

Voici ce que vous faites:

  1. Ouvrez le fichier dans TextMate / E-TextEditor
  2. Sélectionnez la langue dans le menu en bas de l'écran si elle ne la choisit pas automatiquement
  3. Aller à Bundles-> TextMate-> Créer un HTML à partir du document
    • Cela créera tous les HTMl / CSS dans un nouveau document.
    • Remarque: les utilisateurs de Windows choisissent également le paquetage 'TextMate' (non 'E-TextEditor')
  4. Profit!

Remarque: Vous devrez installer le lot C # pour la syntaxe C # (toutes les autres langues communes sont incluses). Pour ce faire, installez le paquet "Get Bundles" et utilisez-le pour installer le lot C #.

EDIT: Lire les commentaires que j'ai réalisés TextMate n'est qu'une solution pour les utilisateurs de Mac. Parfois, j'oublie Windows.

Vous pouvez également utiliser E-TextEditor pour Windows. Les étapes sont les mêmes.