コード例 #1
0
ファイル: Project_txt.cs プロジェクト: loafbrad/NaturalDocs
        /* Function: AppendIgnoredSourceFolder
         * Appends an ignored source folder target and all its settings to the passed StringBuilder.
         */
        protected void AppendIgnoredSourceFolder(Targets.IgnoredSourceFolder target, StringBuilder output, Path projectFolder)
        {
            if (target.PropertyLocation.Source == PropertySource.SystemDefault)
            {
                return;
            }

            output.Append("Ignore Source Folder: ");

            Path relativePath = target.Folder.MakeRelativeTo(projectFolder);

            output.AppendLine((relativePath != null ? relativePath : target.Folder));
        }
コード例 #2
0
 public IgnoredSourceFolder(IgnoredSourceFolder toCopy) : base(toCopy)
 {
     folder = toCopy.folder;
     folderPropertyLocation = toCopy.folderPropertyLocation;
 }
コード例 #3
0
ファイル: Project_txt.cs プロジェクト: loafbrad/NaturalDocs
        /* Function: GetTargetHeader
         * If the passed identifier starts a target like "Source Folder", adds a new target for it in <projectConfig> and returns true.  If
         * it is a recognized target header but there is a syntax error in the value, it will add an error to <errorList> and still return true.
         * It only returns false for unrecognized identifiers.
         */
        protected bool GetTargetHeader(string lcIdentifier, string value, PropertyLocation propertyLocation, out Target newTarget)
        {
            // Source folder

            System.Text.RegularExpressions.Match match = sourceFolderRegex.Match(lcIdentifier);

            if (match.Success)
            {
                var target = new Targets.SourceFolder(propertyLocation);

                target.Folder = value;
                target.FolderPropertyLocation = propertyLocation;

                if (target.Folder.IsRelative)
                {
                    target.Folder = propertyLocation.FileName.ParentFolder + "/" + target.Folder;
                }

                int number = 0;

                if (int.TryParse(match.Groups[1].Value, out number))
                {
                    target.Number = number;
                    target.NumberPropertyLocation = propertyLocation;
                }

                projectConfig.InputTargets.Add(target);
                newTarget = target;
                return(true);
            }


            // Image folder

            match = imageFolderRegex.Match(lcIdentifier);

            if (match.Success)
            {
                var target = new Targets.ImageFolder(propertyLocation);

                target.Folder = value;
                target.FolderPropertyLocation = propertyLocation;

                if (target.Folder.IsRelative)
                {
                    target.Folder = propertyLocation.FileName.ParentFolder + "/" + target.Folder;
                }

                int number = 0;

                if (int.TryParse(match.Groups[1].Value, out number))
                {
                    target.Number = number;
                    target.NumberPropertyLocation = propertyLocation;
                }

                projectConfig.InputTargets.Add(target);
                newTarget = target;
                return(true);
            }


            // HTML output folder

            else if (htmlOutputFolderRegex.IsMatch(lcIdentifier))
            {
                var target = new Targets.HTMLOutputFolder(propertyLocation);

                target.Folder = value;
                target.FolderPropertyLocation = propertyLocation;

                if (target.Folder.IsRelative)
                {
                    target.Folder = propertyLocation.FileName.ParentFolder + "/" + target.Folder;
                }

                projectConfig.OutputTargets.Add(target);
                newTarget = target;
                return(true);
            }


            // Ignored source folder

            else if (ignoredSourceFolderRegex.IsMatch(lcIdentifier))
            {
                var target = new Targets.IgnoredSourceFolder(propertyLocation);

                target.Folder = value;
                target.FolderPropertyLocation = propertyLocation;

                if (target.Folder.IsRelative)
                {
                    target.Folder = propertyLocation.FileName.ParentFolder + "/" + target.Folder;
                }

                projectConfig.FilterTargets.Add(target);
                newTarget = target;
                return(true);
            }


            // Ignored source folder pattern

            else if (ignoredSourceFolderPatternRegex.IsMatch(lcIdentifier))
            {
                var target = new Targets.IgnoredSourceFolderPattern(propertyLocation);

                target.Pattern = value;
                target.PatternPropertyLocation = propertyLocation;

                projectConfig.FilterTargets.Add(target);
                newTarget = target;
                return(true);
            }


            else
            {
                newTarget = null;
                return(false);
            }
        }