Esempio n. 1
0
        //////////////////////////////////////////////////////////////////////////
        private void OnIntegrate(object sender, EventArgs e)
        {
            string ScitePath = Path.Combine(WmeUtils.ToolsPath, "scite");

            if (!Directory.Exists(ScitePath))
            {
                Directory.CreateDirectory(ScitePath);
            }

            string[] Extensions  = ParentForm.GetExtensions();
            string   Extensions2 = "";

            foreach (string Ext in Extensions)
            {
                if (Extensions2 != "")
                {
                    Extensions2 += ";";
                }
                Extensions2 += "*." + Ext;
            }

            // generate syntax file
            try
            {
                // read XML docs
                ScriptInfo Info = new ScriptInfo();
                Info.ReadXml(WmeUtils.XmlDocsPath);

                string KwdFile = Path.Combine(ScitePath, "wme_kwd.properties");

                using (StreamWriter sw = new StreamWriter(KwdFile, false, Encoding.Default))
                {
                    sw.WriteLine(FileHeader);

                    sw.WriteLine("file.patterns.script=" + Extensions2);
                    sw.WriteLine("filter.script=WME Scripts|$(file.patterns.script)|");
                    sw.WriteLine();

                    WordHolder wh;

                    // keywords
                    sw.WriteLine("keywords.$(file.patterns.script)=\\");
                    wh = new WordHolder();
                    foreach (string Keyword in ScriptTokenizer.Keywords)
                    {
                        wh.AddWord(Keyword);
                    }
                    sw.WriteLine(wh.GetWords());


                    // methods
                    sw.WriteLine("keywords2.$(file.patterns.script)=\\");
                    wh = new WordHolder();
                    foreach (ScriptObject Obj in Info.Objects)
                    {
                        foreach (ScriptMethod Method in Obj.Methods)
                        {
                            foreach (string Header in Method.Headers)
                            {
                                int Brace = Header.IndexOf("(");
                                if (Brace >= 0)
                                {
                                    wh.AddWord(Header.Substring(0, Brace).Trim());
                                }
                            }
                        }
                    }
                    sw.WriteLine(wh.GetWords());

                    // attributes
                    sw.WriteLine("keywords4.$(file.patterns.script)=\\");
                    wh = new WordHolder();
                    foreach (ScriptObject Obj in Info.Objects)
                    {
                        foreach (ScriptAttribute Attr in Obj.Attributes)
                        {
                            if (Attr.Name.StartsWith("["))
                            {
                                continue;
                            }
                            wh.AddWord(Attr.Name);
                        }
                    }
                    sw.WriteLine(wh.GetWords());
                }

                // tools
                string ToolsFile = Path.Combine(ScitePath, "wme_tools.properties");

                using (StreamWriter sw = new StreamWriter(ToolsFile, false, Encoding.Default))
                {
                    sw.WriteLine(FileHeader);

                    sw.WriteLine("command.compile.$(file.patterns.script)=\"" + WmeUtils.CompilerPath + "\" -script \"$(FilePath)\" -format scite");
                    sw.WriteLine("command.help.$(file.patterns.script)=reference!" + Path.Combine(WmeUtils.ToolsPath, "wme.chm"));
                    sw.WriteLine("command.help.subsystem.$(file.patterns.script)=4");
                    sw.WriteLine("api.$(file.patterns.script)=" + Path.Combine(WmeUtils.ToolsPath, "SciTE\\wme.api"));
                }

                // api
                string ApiFile = Path.Combine(ScitePath, "wme.api");

                using (StreamWriter sw = new StreamWriter(ApiFile, false, Encoding.Default))
                {
                    WordHolder wh;

                    wh = new WordHolder();
                    foreach (ScriptObject Obj in Info.Objects)
                    {
                        foreach (ScriptMethod Method in Obj.Methods)
                        {
                            foreach (string Header in Method.Headers)
                            {
                                wh.AddWord(Header + Method.Desc);
                            }
                        }
                    }
                    foreach (ScriptObject Obj in Info.Objects)
                    {
                        foreach (ScriptAttribute Attr in Obj.Attributes)
                        {
                            if (Attr.Name.StartsWith("["))
                            {
                                continue;
                            }
                            wh.AddWord(Attr.Name);
                        }
                    }

                    sw.WriteLine(wh.GetWordsApi());
                }
            }
            catch
            {
            }
        }
        //////////////////////////////////////////////////////////////////////////
        private void OnIntegrate(object sender, EventArgs e)
        {
            string ScitePath = Path.Combine(WmeUtils.ToolsPath, "scite");
            if (!Directory.Exists(ScitePath)) Directory.CreateDirectory(ScitePath);

            string[] Extensions = ParentForm.GetExtensions();
            string Extensions2 = "";
            foreach (string Ext in Extensions)
            {
                if (Extensions2 != "") Extensions2 += ";";
                Extensions2 += "*." + Ext;
            }

            // generate syntax file
            try
            {
                // read XML docs
                ScriptInfo Info = new ScriptInfo();
                Info.ReadXml(WmeUtils.XmlDocsPath);

                string KwdFile = Path.Combine(ScitePath, "wme_kwd.properties");

                using (StreamWriter sw = new StreamWriter(KwdFile, false, Encoding.Default))
                {
                    sw.WriteLine(FileHeader);

                    sw.WriteLine("file.patterns.script=" + Extensions2);
                    sw.WriteLine("filter.script=WME Scripts|$(file.patterns.script)|");
                    sw.WriteLine();

                    WordHolder wh;

                    // keywords
                    sw.WriteLine("keywords.$(file.patterns.script)=\\");
                    wh = new WordHolder();
                    foreach (string Keyword in ScriptTokenizer.Keywords)
                    {
                        wh.AddWord(Keyword);
                    }
                    sw.WriteLine(wh.GetWords());

                    // methods
                    sw.WriteLine("keywords2.$(file.patterns.script)=\\");
                    wh = new WordHolder();
                    foreach (ScriptObject Obj in Info.Objects)
                    {
                        foreach (ScriptMethod Method in Obj.Methods)
                        {
                            foreach (string Header in Method.Headers)
                            {
                                int Brace = Header.IndexOf("(");
                                if (Brace >= 0)
                                {
                                    wh.AddWord(Header.Substring(0, Brace).Trim());
                                }
                            }
                        }
                    }
                    sw.WriteLine(wh.GetWords());

                    // attributes
                    sw.WriteLine("keywords4.$(file.patterns.script)=\\");
                    wh = new WordHolder();
                    foreach (ScriptObject Obj in Info.Objects)
                    {
                        foreach (ScriptAttribute Attr in Obj.Attributes)
                        {
                            if (Attr.Name.StartsWith("[")) continue;
                            wh.AddWord(Attr.Name);
                        }
                    }
                    sw.WriteLine(wh.GetWords());
                }

                // tools
                string ToolsFile = Path.Combine(ScitePath, "wme_tools.properties");

                using (StreamWriter sw = new StreamWriter(ToolsFile, false, Encoding.Default))
                {
                    sw.WriteLine(FileHeader);

                    sw.WriteLine("command.compile.$(file.patterns.script)=\"" + WmeUtils.CompilerPath + "\" -script \"$(FilePath)\" -format scite");
                    sw.WriteLine("command.help.$(file.patterns.script)=reference!" + Path.Combine(WmeUtils.ToolsPath, "wme.chm"));
                    sw.WriteLine("command.help.subsystem.$(file.patterns.script)=4");
                    sw.WriteLine("api.$(file.patterns.script)=" + Path.Combine(WmeUtils.ToolsPath, "SciTE\\wme.api"));
                }

                // api
                string ApiFile = Path.Combine(ScitePath, "wme.api");

                using (StreamWriter sw = new StreamWriter(ApiFile, false, Encoding.Default))
                {
                    WordHolder wh;

                    wh = new WordHolder();
                    foreach (ScriptObject Obj in Info.Objects)
                    {
                        foreach (ScriptMethod Method in Obj.Methods)
                        {
                            foreach (string Header in Method.Headers)
                            {
                                wh.AddWord(Header + Method.Desc);
                            }
                        }
                    }
                    foreach (ScriptObject Obj in Info.Objects)
                    {
                        foreach (ScriptAttribute Attr in Obj.Attributes)
                        {
                            if (Attr.Name.StartsWith("[")) continue;
                            wh.AddWord(Attr.Name);
                        }
                    }

                    sw.WriteLine(wh.GetWordsApi());
                }

            }
            catch
            {
            }
        }