Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: pc51 en 7 Febrero 2016, 02:05 am



Título: Colorear sintaxis de código fuente en un edit-control, preferiblemente en C#.
Publicado por: pc51 en 7 Febrero 2016, 02:05 am
Como puedo crear un editor de texto que cambie de color automáticamente, como si fuera un editor de texto de programación, que si escribo por ejemplo la palabra:
"if" sin comillas , que se ponga de color verde u otro, o que si escribo "else" se ponga de rojo, Etc. O por lo menos el código para c#, gracias.


Título: Re: ayuda preferiblemente en C#
Publicado por: Eleкtro en 7 Febrero 2016, 04:00 am
@pc51
1.Publica las preguntas de C# en el subforo de C# y las preguntas generales en el foro de programación general, esto no tiene nada que ver con el scripting si no especificas un lenguaje de scripting.
2. El título de un tema debe ser descriptivo.




Si pretendes desarrollarlo desde (casi)Cero, entonces Microsoft pone a tu disposición Roslyn. Microsoft Roslyn es el motor open-source de análisis de código que utiliza Visual Studio, así que con mucha paciencia y dedicación el resultado obtenido podría ser simplemente maravilloso, nunca he profundizado mucho en el tema pero sabiendo que se puede obtener unos resultados similares al tratamiento de análisis y colorización de sintaxis de la IDE de Visual Studio solo con eso podemos dar por hecho que esta es la solución más eficiente de todas.

Necesitas unos requisitos instalados:
  • Visual Studio 2015 (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx) ( Nota: Instala la SDK de Visual Studio 2015 desde el instalador. )
  • .NET Compiler Platform SDK (https://aka.ms/roslynsdktemplates)

Aquí te dejo también por donde empezar a documentarte sobre su uso básico
  • Roslyn (GitHub) (https://github.com/dotnet/roslyn)
  • Getting Started C# Syntax Analysis (Roslyn's GitHub) (https://github.com/dotnet/roslyn/wiki/Getting-Started-C%23-Syntax-Analysis)
  • Getting Started VB Syntax Analysis (Roslyn's GitHub) (https://github.com/dotnet/roslyn/wiki/Getting-Started-VB-Syntax-Analysis)
  • Syntax Visualizer Overview (Roslyn's GitHub) (https://github.com/dotnet/roslyn/wiki/Syntax%20Visualizer)

Ejemplos funcionales:
  • CSharp Sample Editor Using Roslyn (GitHub) (https://github.com/TorontoDotNetHackers/Roslyn-CSharp-Sample-Editor-2013-03/blob/master/Program.cs)
  • C# and VB.NET Code Searcher Using Roslyn (CodeProject) (http://www.codeproject.com/Articles/416472/Csharp-and-VB-NET-Code-Searcher-Using-Roslyn)
  • C# to Html Syntax Highlighter Using Roslyn (http://www.matlus.com/c-to-html-syntax-highlighter-using-roslyn/)



Si lo que buscas es ahorrarte el 90% del trabajo gracias a una librería y/o control de edición (o Edit Control) capaz de resaltar/colorear la sintaxis de un lenguaje, entonces en .Net tienes varias opciones donde elegir, tanto gratuitas como de pago, estas son solo algunas de las más conocidas y usadas:

  • Fast Colored TextBox (CodeProject + GitHub) (http://www.codeproject.com/Articles/161871/Fast-Colored-TextBox-for-syntax-highlighting)
  • Scintilla .Net wrapper (GitHub) (https://github.com/jacobslusser/ScintillaNET)
  • Editor.Net (http://www.qwhale.net/products/editor.htm)
  • AvalonEdit for WPF (CodeProject) (http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor)
  • ColorCode - Syntax Highlighting/Colorization library for .Net (CodePlex) (https://colorcode.codeplex.com/)

Saludos.