Exemple #1
0
        private void UpdateExpression(LambdaExpression expr)
        {
            trvExpr.Nodes.Clear();
            prgNode.SelectedObject = null;
            _ids.Clear();
            txtNode.Text   = "";
            txtResult.Text = expr.DebugView().ToString();

            var csharp = default(string);

            try
            {
                rtfCSharp.ForeColor = Color.Black;
                csharp         = expr.ToCSharp(); // TODO: specify namespaces
                rtfCSharp.Text = csharp;
            }
            catch (Exception ex)
            {
                rtfCSharp.ForeColor = Color.Red;
                rtfCSharp.Text      = ex.ToString();
            }

            try
            {
                HighlightCSharpishAsync(rtfCSharp, csharp).Wait(); // TODO: async all the way up
            }
            catch { } // NB: seen cases where this blows up because the code is invalid

            var root = new TreeNode();

            Expand(root, expr);
            trvExpr.Nodes.Add(root);

            trvExpr.ExpandAll();
            trvExpr.SelectedNode = root;

            UpdateIL(expr);
        }