/// <summary>
        /// Command handler which writes the active definition to a temporary merge script and opens that script in notepad.
        /// </summary>
        public static void OnOpenInNotepad(ICommandParameter parameter, ICompositionHost host, DocumentEditSite site)
        {
            var activeDefinition = site?.EditControl?.Document?.Envoy?.ReferenceDefinition;

            if (activeDefinition != null)
            {
                var fileName = Path.GetTempFileName();
                File.WriteAllText(fileName, MergeScriptBuilder.Create(activeDefinition.ToEnumerable(), host).ToString());
                Process.Start("Notepad.exe", fileName);
            }
        }
 private void AddIconToBuilder(MergeScriptBuilder builder, MethodCall methodCall, FunctionSignatureCache signatureCache)
 {
     if (signatureCache?.IconModel != null)
     {
         var generationOptions = new ElementGenerationOptions(GenerationReason.Merge);
         var table             = IconTable.GetIconTableToGenerate(methodCall, generationOptions);
         if (table != null)
         {
             table.AddIcon(methodCall.Target, signatureCache.IconModel);
             builder.AddElement(new MergeElementInfo(table));
         }
     }
 }