コード例 #1
0
        private void appendFiles(List <string> filePathList, List <string> includePathList, pluginVerilog.Verilog.Module module, codeEditor.Data.Project project)
        {
            string fileId = module.FileId;

            pluginVerilog.Data.VerilogFile file = module.File as pluginVerilog.Data.VerilogFile;
            if (file == null)
            {
                return;
            }
            string absolutePath = project.GetAbsolutePath(file.RelativePath);

            if (!filePathList.Contains(absolutePath))
            {
                filePathList.Add(absolutePath);
            }

            if (file.VerilogParsedDocument == null)
            {
                return;
            }

            // includes
            foreach (var include in file.VerilogParsedDocument.IncludeFiles.Values)
            {
                string includePath = project.GetAbsolutePath(include.RelativePath);
                includePath = includePath.Substring(0, includePath.LastIndexOf('\\'));
                if (!includePathList.Contains(includePath))
                {
                    includePathList.Add(includePath);
                }
            }

            foreach (pluginVerilog.Verilog.ModuleItems.ModuleInstantiation instance in module.ModuleInstantiations.Values)
            {
                pluginVerilog.Verilog.Module subModule = (project.GetProjectProperty(pluginVerilog.Plugin.StaticID) as pluginVerilog.ProjectProperty).GetModule(instance.ModuleName);
                if (subModule != null)
                {
                    appendFiles(filePathList, includePathList, subModule, project);
                }
            }
        }
コード例 #2
0
 public static pluginVerilog.ProjectProperty GetVerilogPluginProperty(this codeEditor.Data.Project project)
 {
     return(project.GetProjectProperty(pluginVerilog.Plugin.StaticID) as pluginVerilog.ProjectProperty);
 }