Friday, December 23, 2011

Syntax-highlighting textbox for Winforms, ASP.NET, WPF


Perhaps consider CodeMirror items for the web. Obviously this won't work for WPF as you'd asked, but it'll work for any web framework - Webforms, ASP.NET MVC, plain HTML, PHP and others.
CodeMirror is a JavaScript library that can be used to create a relatively pleasant editor interface for code-like content ― computer programs, HTML markup, and similar. If a parser has been written for the language you are editing (see below for a list of supported languages), the code will be coloured, and the editor will help you with indentation.
Parsers for :
  • JavaScript
  • XML/HTML
  • CSS
  • HTML mixed-mode
  • SPARQL
  • HTML+PHP mixed-mode
  • Python
  • Lua
  • Ruby
  • SQL
  • PLSQL
  • diff
  • Groovy
  • C#
  • Scheme
  • Java
  • XQuery
  • OmetaJS
  • Freemarker
Implementation:
<textarea  rows="30" cols="120" id="someCode" >
    //some comments
    var foo = "bar";</textarea>
You include 2 .js references, and then this bit of JavaScript replaces your textarea elements with new syntax highlighted elements.
<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>

No comments: