Exemple #1
0
        static bool ParseFileTemplates(DirectoryInfo folder, out TreeNode node)
        {
            var files = folder.GetFiles();

            node = null;
            if (files.Length == 0)
            {
                return(false);
            }

            List <CodeTemplateInfo> list = new List <CodeTemplateInfo>(2);

            List <TreeNode> listNodes = new List <TreeNode>(2);

            foreach (DirectoryInfo fold in folder.GetDirectories())
            {
                TreeNode n;
                if (ParseFileTemplates(fold, out n))
                {
                    listNodes.Add(n);
                }
            }

            foreach (var file in files)
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(file.FullName);

                CodeTemplateInfo codeTemplateInfo = new CodeTemplateInfo();
                foreach (XmlNode i in xml.ChildNodes[1].ChildNodes)
                {
                    string name = i.Name.ToLower();
                    if (name == "ex")
                    {
                        codeTemplateInfo.ex = i.InnerText;
                    }
                    else if (name == "type")
                    {
                        codeTemplateInfo.type = i.InnerText;
                    }
                    else if (name == "descr")
                    {
                        codeTemplateInfo.desct = i.InnerText;
                    }
                    else if (name == "code")
                    {
                        codeTemplateInfo.code = i.InnerText;
                    }
                }
                codeTemplateInfo.fileName = file.Name;
                list.Add(codeTemplateInfo);
            }

            node = new TreeNode(folder.Name);
            node.Nodes.AddRange(listNodes.ToArray());
            node.Tag = list;

            return(true);
        }
Exemple #2
0
        void CreateTab(string pathArg, CodeTemplateInfo codeTemplateInfo)
        {
            if (IsOpened(pathArg))
            {
                return;
            }

            TabCodeInfo codeInfo = new TabCodeInfo(pathArg, codeTemplateInfo);

            codeInfo.tab.TextChanged += delegate(object s, System.EventArgs args) {
                AddOrRemAsteriksToName();

                void AddOrRemAsteriksToName()
                {
                    if (tabControl.SelectedIndex != -1)
                    {
                        if (tabCodeInfo[tabControl.SelectedIndex].name[tabCodeInfo[tabControl.SelectedIndex].name.Length - 1] != '*')
                        {
                            tabCodeInfo[tabControl.SelectedIndex].name   += "*";
                            tabCodeInfo[tabControl.SelectedIndex].isSaved = false;
                        }
                    }
                    SetTabTextToRichBoxNames();
                }
            };

            tabCodeInfo.Add(codeInfo);

            TreeNode solutionNode = new TreeNode(codeInfo.name)
            {
                Tag = codeInfo
            };

            solutionNode.Tag = codeInfo;
            codeInfo.solutionExprorerNode = solutionNode;

            CrateTabInTAbControl(codeInfo);

            tabControl.SelectedIndex = tabControl.TabCount - 1;

            Singletones.rightWindow.Explorer.Nodes.Add(solutionNode);

            codeInfo.syntaxChecker?.HighlightText(codeInfo.tab);
        }
Exemple #3
0
        public FileCreator()
        {
            InitializeComponent();
            foreach (TreeNode i in treeNodeInstalled.Nodes)
            {
                treeView1.Nodes.Add(i);
            }

            treeView1.AfterSelect += delegate(object send, TreeViewEventArgs args) {
                listView.Items.Clear();

                if (args.Node.Tag is List <CodeTemplateInfo> )
                {
                    List <CodeTemplateInfo> info = args.Node.Tag as List <CodeTemplateInfo>;
                    foreach (var i in info)
                    {
                        this.listView.Items.Add(new ListViewItem(i.fileName.Substring(0, i.fileName.LastIndexOf('.')))
                        {
                            Tag = i
                        });
                    }
                }

                if (textBox1.Text != "")
                {
                    textBox1.Text = "";
                }
                button1.Enabled = false;
            };

            listView.SelectedIndexChanged += delegate(object sender, EventArgs ar) {
                if ((sender as ListView).SelectedItems.Count != 0)
                {
                    CodeTemplateInfo i = ((sender as ListView).SelectedItems[0].Tag as CodeTemplateInfo);
                    textBox1.Text   = "Type: " + i.type + Environment.NewLine + Environment.NewLine + "Description: " + i.desct;
                    button1.Enabled = true;
                }
            };

            Reload();
        }
Exemple #4
0
        public TabCodeInfo(string Path, CodeTemplateInfo codeTemplateInfo)
        {
            SetTabWidth(tab, Singletones.settings.TabLength);
            isDefault             = false;
            tab.AutoWordSelection = false;
            tab.BackColor         = Singletones.settings.DefaultBackgroundText;
            tab.ForeColor         = Singletones.settings.DefaultForeground;

            if (Path != null)
            {
                isNew   = false;
                isSaved = true;
                path    = Path;
                name    = Path.Substring(Path.LastIndexOf('\\') + 1);
                ReadLinkedFile();
            }
            else
            {
                isNew   = true;
                isSaved = false;
                path    = name = "New File";
            }

            if (codeTemplateInfo != null)
            {
                name       = "New Code." + codeTemplateInfo.ex;
                tab.Text   = codeTemplateInfo.code;
                extensions = codeTemplateInfo.ex + " file" + "|*." + codeTemplateInfo.ex;
                isDefault  = true;

                string standartText = tab.Text;
                tab.KeyUp += delegate(object sender, KeyEventArgs args) {
                    if (!(args.KeyCode == Keys.Space || args.KeyCode == Keys.Tab || args.KeyCode == Keys.Enter || args.KeyCode == Keys.Up || args.KeyCode == Keys.Left || args.KeyCode == Keys.Right || args.KeyCode == Keys.Down || (args.KeyCode == Keys.C && args.Control) || (args.KeyCode == Keys.X && args.Control) || args.KeyCode == Keys.ShiftKey || args.KeyCode == Keys.ControlKey))
                    {
                        if (isDefault && standartText != tab.Text)
                        {
                            isDefault = false;
                        }
                        else if (!isDefault && standartText == tab.Text)
                        {
                            isDefault = true;
                        }
                    }
                };
            }

            if (name.Substring(name.LastIndexOf('.') + 1) == "cs")
            {
                syntaxChecker = Singletones.syntaxChekers.CSharp;
            }

            if (syntaxChecker != null)
            {
                tab.KeyUp += delegate(object sender, KeyEventArgs args) {
                    if (args.KeyCode == Keys.V && args.Control)
                    {
                        syntaxChecker.HighlightText(tab);
                        return;
                    }

                    if (args.KeyCode == Keys.Up || args.KeyCode == Keys.Left || args.KeyCode == Keys.Right || args.KeyCode == Keys.Down || (args.KeyCode == Keys.C && args.Control) || (args.KeyCode == Keys.X && args.Control) || args.KeyCode == Keys.ShiftKey || args.KeyCode == Keys.ControlKey)
                    {
                        return;
                    }

                    //Singletones.codeStudioMain.Text = (args.KeyData.ToString() + " :: " + KeyToChar(args).ToString());

                    bool isSep = false;
                    foreach (var i in syntaxChecker.separators)
                    {
                        if (KeyToChar(args) == i)
                        {
                            isSep = true;
                            break;
                        }
                    }
                    if (!isSep)
                    {
                        syntaxChecker.HighlightThisLine(tab);
                    }
                    else
                    {
                        int SELECTION_START = tab.SelectionStart, SELECTION_LENGTH = tab.SelectionLength;

                        tab.SelectionStart -= 1;
                        tab.SelectionLength = 1;
                        if (tab.SelectedText.IndexOfAny(syntaxChecker.separators) != -1)
                        {
                            syntaxChecker.HighlightThisLine(tab);
                        }

                        tab.SelectionStart  = SELECTION_START;
                        tab.SelectionLength = SELECTION_LENGTH;
                        ++tab.SelectionStart;
                        tab.SelectionLength = 1;
                        //if (tab.SelectedText.IndexOfAny(syntaxChecker.separators) != -1) {
                        tab.SelectionLength = 0;
                        syntaxChecker.HighlightThisLine(tab);
                        //}


                        tab.SelectionStart  = SELECTION_START;
                        tab.SelectionLength = SELECTION_LENGTH;
                    }
                };
            }

            var  EvenSymbols1 = new char[] { '[', '{', '(', '\"', '\'' };
            var  EvenSymbols2 = new char[] { ']', '}', ')', '\"', '\'' };
            bool prevIsEven   = false;
            char prevEven     = '\0';
            byte prevEvenId   = 0;

            tab.KeyDown += delegate(object sender, KeyEventArgs args) {
                if (args.KeyCode == Keys.ShiftKey || args.KeyCode == Keys.ControlKey)
                {
                    return;
                }

                if (prevIsEven)
                {
                    if (args.KeyCode == Keys.Back)
                    {
                        tab.SelectionLength = 1;
                        tab.SelectedText    = "";
                        if (prevEven == '{')
                        {
                            tab.SelectionLength = 1;
                            tab.SelectedText    = "";
                        }
                        tab.SelectionLength = 0;
                    }

                    if (KeyToChar(args) == EvenSymbols2[prevEvenId])
                    {
                        ++tab.SelectionStart;
                        if (prevEven == '{')
                        {
                            ++tab.SelectionStart;
                        }
                        args.Handled          = true;
                        args.SuppressKeyPress = true;
                    }
                }

                prevIsEven = false;
                for (byte i = 0; i < EvenSymbols1.Length; ++i)
                {
                    if (EvenSymbols1[i] == KeyToChar(args))
                    {
                        prevEven   = EvenSymbols1[i];
                        prevIsEven = true;
                        prevEvenId = i;
                        break;
                    }
                }
            };

            SetAutoComplete();
        }
Exemple #5
0
 public void AddNewFile(CodeTemplateInfo codeTemplateInfo)
 {
     CreateTab(null, codeTemplateInfo);
 }