public static string GetHeader(AuthorInformation authorInfo, StandardHeaderPolicy policy, TextStylePolicy textPolicy,
                                       string fileName, bool newFile)
        {
            string[] comment = Document.GetCommentTags(fileName);
            if (comment == null)
            {
                return("");
            }

            if (string.IsNullOrEmpty(policy.Text) || (newFile && !policy.IncludeInNewFiles))
            {
                return("");
            }

            string result;
            string eolMarker = TextStylePolicy.GetEolMarker(textPolicy.EolMarker);

            if (comment.Length == 1)
            {
                string cmt = comment[0];
                //make sure there's a space between the comment char and the license text
                if (!char.IsWhiteSpace(cmt[cmt.Length - 1]))
                {
                    cmt = cmt + " ";
                }

                StringBuilder sb    = new StringBuilder(policy.Text.Length);
                string[]      lines = policy.Text.Split('\n');
                foreach (string line in lines)
                {
                    if (string.IsNullOrWhiteSpace(line))
                    {
                        sb.Append(cmt.TrimEnd());
                        sb.Append(eolMarker);
                        continue;
                    }
                    sb.Append(cmt);
                    sb.Append(line);
                    sb.Append(eolMarker);
                }
                result = sb.ToString();
            }
            else
            {
                //multiline comment
                result = String.Concat(comment[0], "\n", policy.Text, "\n", comment[1], "\n");
            }

            return(StringParserService.Parse(result, new string[, ] {
                {   "FileName", Path.GetFileName(fileName) },
                {   "FileNameWithoutExtension", Path.GetFileNameWithoutExtension(fileName) },
                {   "Directory", Path.GetDirectoryName(fileName) },
                {   "FullFileName", fileName },
                { "AuthorName", authorInfo.Name },
                { "AuthorEmail", authorInfo.Email },
                { "CopyrightHolder", authorInfo.Copyright },
            }));
        }
        public static string GetHeader(SolutionItem policyParent, string fileName, bool newFile)
        {
            StandardHeaderPolicy headerPolicy = policyParent != null?policyParent.Policies.Get <StandardHeaderPolicy> () : MonoDevelop.Projects.Policies.PolicyService.GetDefaultPolicy <StandardHeaderPolicy> ();

            TextStylePolicy textPolicy = policyParent != null?policyParent.Policies.Get <TextStylePolicy> ("text/plain") : MonoDevelop.Projects.Policies.PolicyService.GetDefaultPolicy <TextStylePolicy> ("text/plain");

            AuthorInformation authorInfo = policyParent != null ? policyParent.AuthorInformation : AuthorInformation.Default;

            return(GetHeader(authorInfo, headerPolicy, textPolicy, fileName, newFile));
        }
 public void LoadFrom(StandardHeaderPolicy policy)
 {
     headerText.Buffer.Text  = policy.Text ?? "";
     includeAutoCheck.Active = policy.IncludeInNewFiles;
 }