<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>At risk of sounding like an advertisement, I strongly recommend the ActiPro SyntaxEditor controls.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>We have used the WPF and Silverlight versions with great success. It supports all of the features you mention (syntax highlighting, Intellisense, code completion scopes) and many more. They have a functional demo application with source code that exhibits all of those features.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Performance is great (be sure to enable ambient background parsing). We even have it wired up so that after parsing/lexing, we take the python source and run it through the IronPython compiler using a custom ErrorListener, which is used to collect compilation errors that are then fed into the ParseData output. And since we have a ParseErrorTagger and custom SquiggleTooltipProvider installed into the parser, we get those nice red squiggles directly under compiler errors in the source text itself, along with detailed tooltips.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Sorry if I get carried away, but it&#8217;s extremely cool stuff! Our python editing environment is very slick; while it does not quite have the features of Visual Studio&#8217;s editor, it comes really close (we even support breakpoints and stepping)&#8230; and it fully embeds in our WPF / Silverlight products.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span style='font-size:14.0pt;color:#1F497D'>Keith Rome<o:p></o:p></span></b></p><p class=MsoNormal><b><span style='font-size:10.0pt;color:#1F497D'>Senior Consultant and Architect<o:p></o:p></span></b></p><p class=MsoNormal><span style='font-size:10.0pt;color:#1F497D'>MCPD-EAD, MCSD, MCDBA, MCTS-WPF, MCTS-TFS, MCTS-WSS<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;color:#1F497D'>Wintellect | 770.617.4016 | <a href="mailto:rome@wintellect.com">krome@wintellect.com</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;color:#1F497D'><a href="http://www.wintellect.com/">www.wintellect.com</a><o:p></o:p></span></p></div><p class=MsoNormal><span style='color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> ironpython-users-bounces+rome=wintellect.com@python.org [mailto:ironpython-users-bounces+rome=wintellect.com@python.org] <b>On Behalf Of </b>Nick Aschberger<br><b>Sent:</b> Monday, March 12, 2012 7:35 AM<br><b>To:</b> ironpython-users@python.org<br><b>Subject:</b> [Ironpython-users] IronPython hosting - providing syntax highlighting (and intellisense?!) to customers<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span lang=EN-AU>Hi All,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-AU>We are intending to use IronPython to provide a simple expression engine to our customers.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU>This will give them the ability to calculate some of their own results from data stored in the database.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-AU>Being a software project, I say &#8220;simple expression&#8221; but I can easily see it migrating towards a &#8220;complex expression&#8221; when customers get more familiar with python.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-AU>Now, I can just give them a text area to stick some text in, and maybe some tools to help build this text but&#8230; it seems like I should be able to do better than this, and it seems like something that others would have solved.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-AU>I&#8217;d really like the UI that the customer uses to compose an expression to have python syntax highlighting to help them.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU>Furthermore, if we make .NET objects/functions available to the python script, it would be fantastic if the user had some kind of intellisense available to help them when interacting with the types we would make available to the scripts to use.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-AU>Any advice, or experience with this?<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-AU>Cheers<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-AU>Nick Aschberger<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-AU><o:p>&nbsp;</o:p></span></p></div></body></html>