コード例 #1
0
ファイル: MemberNodes.cs プロジェクト: VoidXH/DocSharp
 /// <summary>
 /// Split up dot-separated namespaces to child namespaces.
 /// </summary>
 public static void Diverge(this TreeNodeCollection items)
 {
     for (int i = 0; i < items.Count; ++i)
     {
         MemberNode item = (MemberNode)items[i];
         if (item.Kind != Element.Namespaces)
         {
             continue;
         }
         int dot = item.Name.IndexOf('.');
         if (dot >= 0)
         {
             string     namespaceName   = item.Name.Substring(0, dot);
             MemberNode parentNamespace = MemberNode.MakeNamespace(namespaceName);
             parentNamespace.NodeFont = item.NodeFont;
             item.Text = item.name = item.Name = item.Name.Substring(dot + 1);
             parentNamespace.SwapWith(item);
             item.Nodes.Add(parentNamespace);
         }
         Diverge(item.Nodes);
     }
 }
コード例 #2
0
        /// <summary>
        /// Load code from a directory.
        /// </summary>
        /// <param name="path">Directory path</param>
        /// <param name="defines">Defined constants</param>
        void LoadFrom(string path, string defines)
        {
            if (task.IsOperationRunning)
            {
                MessageBox.Show("Another operation is already running.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (!Directory.Exists(path))
            {
                MessageBox.Show("The selected directory does not exist.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            lastLoaded          = path;
            currentDefines.Text = "Code loaded with: " + (defines.Equals(string.Empty) ? "-" : defines);
            sourceInfo.BeginUpdate();
            sourceInfo.Nodes.Clear();
            import = MemberNode.MakeNamespace(path.Substring(path.LastIndexOf('\\') + 1));
            sourceInfo.Nodes.Add(import);
            Parser parser = new Parser(path, import, sourceInfo, defines, task);

            task.Run(parser.Process);
        }