/// <summary>
 /// Generates the menu for the selected sci control
 /// </summary>
 public void GenerateSnippets(ScintillaNet.ScintillaControl sci)
 {
     String path;
     String content;
     PathWalker walker;
     List<String> files;
     items = new List<String>();
     String surroundFolder = "surround";
     path = Path.Combine(PathHelper.SnippetDir, surroundFolder);
     if (Directory.Exists(path))
     {
         walker = new PathWalker(PathHelper.SnippetDir + surroundFolder, "*.fds", false);
         files = walker.GetFiles();
         foreach (String file in files)
         {
             items.Add(file);
         }
     }
     path = Path.Combine(PathHelper.SnippetDir, sci.ConfigurationLanguage);
     path = Path.Combine(path, surroundFolder);
     if (Directory.Exists(path))
     {
         walker = new PathWalker(path, "*.fds", false);
         files = walker.GetFiles();
         foreach (String file in files)
         {
             items.Add(file);
         }
     }
     if (items.Count > 0) items.Sort();
     this.DropDownItems.Clear();
     foreach (String itm in items)
     {
         content = File.ReadAllText(itm);
         if (content.IndexOf("{0}") > -1)
         {
             this.DropDownItems.Insert(this.DropDownItems.Count, new ToolStripMenuItem(Path.GetFileNameWithoutExtension(itm)));
         }
     }
 }
        /// <summary>
        /// Gets the files
        /// </summary>
        public List<String> GetFiles()
        {
            switch (type)
            {
                case OperationType.FindInRange:
                    return this.files;

                case OperationType.FindInSource:
                    if (this.files == null)
                    {
                        this.files = new List<String>();
                        this.files.Add(path);
                    }
                    return files;

                case OperationType.FindInFile:
                    if (this.files == null)
                    {
                        this.files = new List<String>();
                        this.files.Add(path);
                    }
                    return this.files;

                case OperationType.FindInPath:
                    if (this.files == null)
                    {
                        PathWalker walker = new PathWalker(this.path, this.mask, this.recursive);
                        this.files = walker.GetFiles();
                    }
                    return this.files;
            }
            return null;
        }
 /// <summary>
 /// Gets search config for find and replace
 /// </summary>
 private FRConfiguration GetFRConfig(String path, String mask, Boolean recursive)
 {
     if (path.Trim() == "<Project>")
     {
         if (PluginBase.CurrentProject != null)
         {
             PathWalker walker;
             List<String> allFiles = new List<String>();
             IProject project = PluginBase.CurrentProject;
             String projPath = Path.GetDirectoryName(project.ProjectPath);
             walker = new PathWalker(projPath, mask, recursive);
             List<String> projFiles = walker.GetFiles();
             foreach (String file in projFiles)
             {
                 if (!IsFileHidden(file, project)) allFiles.Add(file);
             }
             for (var i = 0; i < project.SourcePaths.Length; i++)
             {
                 String sourcePath = project.GetAbsolutePath(project.SourcePaths[i]);
                 if (Directory.Exists(sourcePath) && !sourcePath.StartsWith(projPath))
                 {
                     walker = new PathWalker(sourcePath, mask, recursive);
                     allFiles.AddRange(walker.GetFiles());
                 }
             }
             return new FRConfiguration(allFiles, this.GetFRSearch());
         }
         else return null;
     }
     else return new FRConfiguration(path, mask, recursive, this.GetFRSearch());
 }