Bonjour,
Je fais actuellement une extension pour Visual Studio en C#. Je voudrais colorer les commentaires multilignes (/* */
). J'ai donc fait une méthode ColorBetweenTwo
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | private SnapshotPoint startPoint = new SnapshotPoint(); /// <summary> /// Colore du texte entre deux chaines définies /// </summary> /// <param name="start">La chaine de départ</param> /// <param name="end">La chaine de fin</param> /// <param name="Text">La ligne actuellement parcourue par Visual Studio</param> /// <param name="classification">Le type de coloration pour cette chaîne</param> /// <param name="classifications">La liste des classifications à retourner à Visual Studio pour qu'il colore le texte.</param> private void ColorBetweenTwo (string start, string end, SnapshotSpan Text, IClassificationType classification, ref List<ClassificationSpan> classifications) { Regex startRgx = new Regex(start); Regex endRgx = new Regex(end); var startMatches = startRgx.Matches(Text.GetText()); var endMatches = endRgx.Matches(Text.GetText()); foreach (Match strmatch in startMatches) { startPoint = Text.Start + strmatch.Index; } foreach (Match endMatch in endMatches) { if(startPoint != new SnapshotPoint()) { classifications.Add(new ClassificationSpan(new SnapshotSpan(startPoint, Text.Start + endMatch.Index + 2), classification)); startPoint = new SnapshotPoint(); } } } |
Et je l'appelle comme ceci :
1 2 | ColorBetweenTwo(@"/\/\*/", @"/\*\//", span, _commentType, ref classifications); // span est défini par Visual Studio, _commmentType colore en vert, et classifications est la liste de classifications qui sera retournée au final. |
Et mon problème est que bien que mon code de test contienne un commentaire multiligne, la Regex ne trouve rien.
+0
-0