/// <summary> /// AS2/AS3 detection /// </summary> /// <param name="doc">Document to check</param> /// <returns>Detected language</returns> private string DetectActionscriptVersion(ITabbedDocument doc) { ASFileParser parser = new ASFileParser(); FileModel model = new FileModel(doc.FileName); parser.ParseSrc(model, doc.SciControl.Text); if (model.Version == 1 && PluginBase.CurrentProject != null) { String lang = PluginBase.CurrentProject.Language; if (lang == "*") { return("as2"); } else { return(lang); } } else if (model.Version > 2) { return("as3"); } else if (model.Version > 1) { return("as2"); } else if (settingObject.LastASVersion != null && settingObject.LastASVersion.StartsWith("as")) { return(settingObject.LastASVersion); } else { return("as2"); } }
static public FileModel ParseFile(FileModel fileModel) { string src; using (StreamReader sr = new StreamReader(fileModel.FileName)) { src = sr.ReadToEnd(); sr.Close(); } ASFileParser parser = new ASFileParser(); try { fileModel.LastWriteTime = File.GetLastWriteTime(fileModel.FileName); if (parentPath != null) { cacheLastWriteTime = fileModel.LastWriteTime; } parser.ParseSrc(fileModel, src); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show("Error while parsing the file:\n" + fileModel.FileName, "Error: " + ex.Message, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return(fileModel); }
static public FileModel ParseFile(FileModel fileModel) { string src; using( StreamReader sr = new StreamReader(fileModel.FileName) ) { src = sr.ReadToEnd(); sr.Close(); } ASFileParser parser = new ASFileParser(); try { fileModel.LastWriteTime = File.GetLastWriteTime(fileModel.FileName); if (parentPath != null) cacheLastWriteTime = fileModel.LastWriteTime; parser.ParseSrc(fileModel, src); } catch(Exception ex) { System.Windows.Forms.MessageBox.Show("Error while parsing the file:\n"+fileModel.FileName, "Error: "+ex.Message, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); } return fileModel; }