/// <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); }
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); }
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; }