2009-02-16 16 views
12

Estoy buscando un componente de cuadro de texto resaltador de sintaxis, preferiblemente libre, con fuente, y capaz de ser utilizado en Winforms, ASP.NET y WPF por igual. Además, debe admitir no solo la visualización, sino también la edición de contenidos.Cuadro de texto resaltado de sintaxis para Winforms, ASP.NET, WPF

he descubierto la excelente, GRATIS ActiPro SyntaxHighlighter for ASP.NET pero eso es, lamentablemente, sólo para ASP.NET y sólo se muestra el texto en la sintaxis resaltada de manera, que no tiene capacidades de edición .....

También sé de la ICSharp Text Editor componente que es parte de SharpDevelop pero eso es entonces una solución independiente, pero solo para Winforms.

¿Alguien sabe de un componente que tiene un núcleo para manejar el resaltado de sintaxis (configurable, así que puedo usarlo para código C#, XML y HTML, y más) y tiene tres "máscaras" para Winforms , ASP.NET y WPF? Realmente preferiría tener ONE núcleo que hace el trabajo pesado, y tres UI en la parte superior que comparten ese código central ....

¡Todos los consejos y sugerencias son bienvenidos!

Respuesta

6

Estoy contigo marc: Me encantaría ver un marco de resaltado de sintaxis extensible que podría generar un objeto tokenizado de "documento" que podría entonces se mostrará a través de controles para cada marco de visualización. ¡De esta forma, el analizador/tokenizador podría escribirse una vez!

Lo mejor que puedo decir es que this thread sugiere que ActiProSoftware está trabajando en un control WPF para su resaltador de sintaxis.

2

Todas esas plataformas son completamente diferentes y cada una tiene sus propios métodos de visualización de representación. Entonces no habrá ningún control universal que haga todo. Cada plataforma tendrá un control separado

Sin embargo, uno puede implementar un control web y usarlo en una página. Entonces, un objeto del navegador en winforms o wpf puede usar la dirección de la página para mostrarlo

+4

Oh, entiendo totalmente la prestación * * parte no puede ser la misma para todos - pero todas las otras cosas, como las reglas, las cuales partes para resaltar con qué color, y detectar palabras clave, etc., todos podrían ser compartidos ..... –

3

Quizás considere CodeMirror elementos para la web. Obviamente, esto no funcionará para WPF como lo había pedido, pero funcionará para cualquier marco web: Webforms, ASP.NET MVC, HTML simple, PHP y otros.

CodeMirror es una biblioteca de JavaScript que se puede utilizar para crear una interfaz de editor relativamente agradable para contenido tipo código: programas de computadora, marcado de HTML y similares. Si se ha escrito un analizador para el idioma que está editando (vea a continuación una lista de los idiomas admitidos), el código se coloreará y el editor lo ayudará con la sangría.

analizadores para:

  • JavaScript
  • XML/HTML
  • CSS
  • de modo mixto HTML
  • SPARQL
  • HTML + de modo mixto PHP
  • Python
  • Lua
  • Rubí
  • SQL
  • PLSQL
  • diff
  • Groovy
  • C#
  • Esquema
  • Java
  • XQuery
  • OmetaJS
  • Freemarker

Implementación:

<textarea rows="30" cols="120" id="someCode" > 
    //some comments 
    var foo = "bar"; 
</textarea> 

Se incluyen 2 Js referencias, a continuación, este fragmento de JavaScript reemplaza sus elementos de área de texto con la nueva sintaxis pone de relieve los elementos.

<script type="text/javascript"> 
    var textarea = document.getElementById('someCode'); 
    var editor = new MirrorFrame(CodeMirror.replace(textarea), { 
     height: "350px", 
     content: textarea.value, 
     parserfile: ["tokenizejavascript.js", "parsejavascript.js"], 
     stylesheet: "css/jscolors.css", 
     path: "js/", 
     autoMatchParens: true 
    }); 
</script> 

The CodeMirror manual helps.

Considera también los WikiPedia entry for Comparison of JavaScript-based source code editors

Cuestiones relacionadas