Exemplo n.º 1
0
        /// <summary>
        /// Converts this script (when it's LSLI) to expanded lsl and writes it.
        /// </summary>
        /// <returns></returns>
        private string ConvertLSLI()
        {
            LSLIConverter lsliConverter = new LSLIConverter();
            string        lsl           = lsliConverter.ExpandToLSL(editForm);
            string        nameExpanded  = LSLIPathHelper.CreateExpandedScriptName(editForm.FullPathName);
            string        path          = LSLIPathHelper.CreateExpandedPathAndScriptName(editForm.FullPathName);

            LSLIPathHelper.DeleteFile(path);

            using (StreamWriter sw = new StreamWriter(path))
            {
                sw.Write(lsl);
            }

            LSLIPathHelper.HideFile(path);
            return(lsl);
        }
Exemplo n.º 2
0
        public bool SyntaxCheck()
        {
            bool blnResult = false;

            //if (this.disableCompilesyntaxCheckToolStripMenuItem.Checked)
            //	return false;

            if (this.IsScript)
            {
                string lsl = SourceCode;

                // If it is LSLI, it needs to import scripts first, before it recognizes imported functions
                if (LSLIPathHelper.IsLSLI(this.FullPathName))
                {
                    LSLIConverter converter = new LSLIConverter();
                    lsl = converter.ExpandToLSL(this);
                }

                LSL2CSharp translator = new LSL2CSharp(ConfLSL);
                string     strCSharp  = translator.Parse(lsl);

                if (System.Diagnostics.Debugger.IsAttached)
                {
                    for (int intI = this.tabControl1.TabPages.Count - 1; intI > 0; intI--)
                    {
                        this.tabControl1.TabPages.RemoveAt(intI);
                    }

                    // TODO
                    TabPage tabPage = new TabPage("C#");
                    NumberedTextBox.NumberedTextBoxUC numberedTextBoxUC1 = new NumberedTextBox.NumberedTextBoxUC();
                    numberedTextBoxUC1.TextBox.Init(null, this.ConfCSharp);
                    numberedTextBoxUC1.TextBox.Text     = strCSharp;
                    numberedTextBoxUC1.TextBox.ReadOnly = true;
                    numberedTextBoxUC1.Dock             = DockStyle.Fill;
                    tabPage.Controls.Add(numberedTextBoxUC1);
                    this.tabControl.TabPages.Add(tabPage);
                }
                blnResult = (null != CompilerHelper.CompileCSharp(this, strCSharp));
            }
            return(blnResult);
        }
Exemplo n.º 3
0
        public void SaveCurrentFile(string strPath)
        {
            // Check if this is an expanded.lsl
            if (LSLIPathHelper.IsExpandedLSL(strPath))
            {
                string LSLIfilePath = LSLIPathHelper.CreateCollapsedPathAndScriptName(strPath);
                // Check if an LSLI version of this script exists
                if (File.Exists(LSLIfilePath))
                {
                    // Save the LSLI file as well
                    File.WriteAllText(LSLIfilePath, LSLIConverter.CollapseToLSLI(this.numberedTextBoxUC1.TextBox.Text));
                    EditForm form = null;

                    // If it's currently open, then refresh it
                    for (int i = 0; i < Application.OpenForms.Count; i++)
                    {
                        Form   openForm = Application.OpenForms[i];
                        string filename = LSLIPathHelper.TrimStarsAndWhiteSpace(openForm.Text);
                        if (filename == Path.GetFileName(LSLIfilePath))
                        {
                            form = (EditForm)openForm;
                        }
                    }

                    if (form != null && form.Enabled)
                    {
                        parent.OpenFile(LSLIfilePath, Guid.NewGuid(), true);
                        form.Close();
                    }
                }
                this.numberedTextBoxUC1.TextBox.Dirty = false;
                this.Text = LSLIPathHelper.GetExpandedTabName(strPath);
            }
            else
            {
                this.FullPathName = strPath;
                Encoding encodeAs = this.encodedAs;
                if (this.IsScript && encodeAs == null)
                {
                    switch (Properties.Settings.Default.OutputFormat)
                    {
                    case "UTF8":
                        encodeAs = Encoding.UTF8;
                        break;

                    case "Unicode":
                        encodeAs = Encoding.Unicode;
                        break;

                    case "BigEndianUnicode":
                        encodeAs = Encoding.BigEndianUnicode;
                        break;

                    default:
                        encodeAs = Encoding.Default;
                        break;
                    }
                }
                else if (encodeAs == null)
                {
                    encodeAs = Encoding.UTF8;
                }

                this.numberedTextBoxUC1.TextBox.SaveCurrentFile(strPath, encodeAs);
                this.encodedAs = encodeAs;
            }
            this.m_IsNew = false;
        }