2009-02-16 8 views
12

Sto cercando un componente Textbox con evidenziazione della sintassi, preferibilmente gratuito, con origine e in grado di essere utilizzato in Winforms, ASP.NET e WPF allo stesso modo. Inoltre, dovrebbe supportare non solo la visualizzazione, ma anche la modifica dei contenuti.Casella di testo con evidenziazione della sintassi per Winforms, ASP.NET, WPF

ho scoperto l'eccellente, LIBERO ActiPro SyntaxHighlighter for ASP.NET ma questo è purtroppo solo per ASP.NET e visualizza solo il testo nella sintassi evidenziata maniera, non ha capacità di editing .....

so anche della Il componente ICSharp Text Editor fa parte di SharpDevelop ma questa è una soluzione autonoma, ma solo di Winforms.

Qualcuno sa di un componente che ha un core per gestire l'evidenziazione della sintassi (configurabile, quindi posso usarlo per codice C#, file XML e HTML e altro), e che ha tre "skin" per Winforms , ASP.NET e WPF? Preferirei avere un core ONE che sollevi il carico pesante e tre UI in primo piano condividendo quel codice core ....

Qualsiasi suggerimento e suggerimento sono ben accetti!

risposta

6

Io sono con te marc: mi piacerebbe vedere un framework di evidenziazione della sintassi estensibile che potrebbe generare un oggetto "documento" tokenizzato che potrebbe quindi essere visualizzati tramite i controlli per ogni quadro di visualizzazione. In questo modo il parser/tokenizer potrebbe essere scritto una volta!

Il meglio che posso dire è che this thread suggerisce che ActiProSoftware sta lavorando a un controllo WPF per il loro evidenziatore di sintassi.

2

Tutte queste piattaforme sono completamente diverse e ognuna ha i propri metodi di visualizzazione dei rendering. Quindi non ci sarà alcun controllo universale che faccia tutto. Ogni piattaforma avrà un controllo separato

Tuttavia, è possibile implementare un controllo Web e utilizzarlo in una pagina. Quindi un oggetto browser in winforms o wpf può usare l'indirizzo della pagina per visualizzarlo

+4

Oh, capisco perfettamente il rendering * * parte non può essere la stessa per tutti -, ma tutte le altre cose, come le regole, quali parti per evidenziare con quale colore, e rilevando parole chiave ecc., tutto potrebbe essere condiviso ..... –

3

Forse considerare gli articoli CodeMirror per il web. Ovviamente questo non funzionerà per WPF come richiesto, ma funzionerà per qualsiasi framework Web: Webform, ASP.NET MVC, semplice HTML, PHP e altri.

CodeMirror è una libreria JavaScript che può essere utilizzata per creare un'interfaccia dell'editor relativamente piacevole per il contenuto simile al codice: programmi per computer, codice HTML e simili. Se un parser è stato scritto per la lingua che stai modificando (vedi sotto per un elenco delle lingue supportate), il codice sarà colorato e l'editor ti aiuterà con il rientro.

parser per:

  • JavaScript
  • XML/HTML
  • CSS
  • modalità mista HTML
  • SPARQL
  • HTML + modalità mista PHP
  • Python
  • Lua
  • Rubino
  • SQL
  • PLSQL
  • diff
  • Groovy
  • C#
  • Scheme
  • Java
  • XQuery
  • OmetaJS
  • Freemarker

Implementazione:

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

si includono 2 .js Riferimenti e quindi questo po 'di JavaScript sostituisce gli elementi textarea con nuova sintassi elementi evidenziato.

<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 anche i WikiPedia entry for Comparison of JavaScript-based source code editors