diff --git a/External/Plugins/ProjectManager/Actions/ProjectActions.cs b/External/Plugins/ProjectManager/Actions/ProjectActions.cs
index 1d8f771dc5..34594e96b3 100644
--- a/External/Plugins/ProjectManager/Actions/ProjectActions.cs
+++ b/External/Plugins/ProjectManager/Actions/ProjectActions.cs
@@ -18,6 +18,7 @@
using ProjectManager.Projects;
using ProjectManager.Projects.AS3;
using ProjectManager.Projects.Haxe;
+using ProjectManager.Projects.Generic;
namespace ProjectManager.Actions
{
@@ -96,6 +97,32 @@ public Project OpenProjectSilent(string path)
}
}
+ public Project OpenFolder()
+ {
+ using (VistaFolderBrowserDialog dialog = new VistaFolderBrowserDialog())
+ {
+ if (dialog.ShowDialog(owner) == DialogResult.OK)
+ {
+ return OpenFolderSilent(dialog.SelectedPath);
+ }
+ }
+ return null;
+ }
+
+ public Project OpenFolderSilent(string path)
+ {
+ String[] hxmlFiles = Directory.GetFiles(path, "*.hxml");
+ if (hxmlFiles.Length > 0)
+ {
+ var project = new HaxeProject(path);
+ project.RawHXML = File.ReadAllLines(hxmlFiles[0]);
+ PatchProject(project);
+ PatchHxmlProject(project);
+ return project;
+ }
+ else return new GenericProject(path);
+ }
+
public string ImportProject() => ImportProject(null);
internal string ImportProject(string importFrom)
@@ -135,7 +162,6 @@ internal string ImportProject(string importFrom)
PatchProject(imported);
PatchFbProject(imported);
imported.SaveAs(newPath);
-
return newPath;
}
ErrorManager.ShowInfo(TextHelper.GetString("Info.NotValidFlashBuilderProject"));
diff --git a/External/Plugins/ProjectManager/Controls/FDMenus.cs b/External/Plugins/ProjectManager/Controls/FDMenus.cs
index 2ee5f77cc6..c0bdcf8887 100644
--- a/External/Plugins/ProjectManager/Controls/FDMenus.cs
+++ b/External/Plugins/ProjectManager/Controls/FDMenus.cs
@@ -123,11 +123,12 @@ public bool DisabledForBuild
public void SetProject(Project project)
{
+ var enable = !project.IsFolderProject();
RecentProjects.AddOpenedProject(project.ProjectPath);
- ConfigurationSelector.Enabled = true;
- ProjectMenu.ProjectItemsEnabled = true;
- TestMovie.Enabled = true;
- BuildProject.Enabled = true;
+ ConfigurationSelector.Enabled = enable;
+ ProjectMenu.ProjectItemsEnabled = enable;
+ TestMovie.Enabled = enable;
+ BuildProject.Enabled = enable;
ProjectChanged(project);
}
@@ -183,6 +184,7 @@ public class ProjectMenu : ToolStripMenuItem
{
public ToolStripMenuItem NewProject;
public ToolStripMenuItem OpenProject;
+ public ToolStripMenuItem OpenFolder;
public ToolStripMenuItem ImportProject;
public ToolStripMenuItem CloseProject;
public ToolStripMenuItem OpenResource;
@@ -203,6 +205,9 @@ public ProjectMenu()
PluginBase.MainForm.RegisterShortcutItem("ProjectMenu.NewProject", NewProject);
//AllItems.Add(NewProject);
+ OpenFolder = new ToolStripMenuItem(TextHelper.GetString("Label.OpenFolder"));
+ PluginBase.MainForm.RegisterShortcutItem("ProjectMenu.OpenFolder", OpenFolder);
+
OpenProject = new ToolStripMenuItem(TextHelper.GetString("Label.OpenProject"));
PluginBase.MainForm.RegisterShortcutItem("ProjectMenu.OpenProject", OpenProject);
//AllItems.Add(OpenProject);
@@ -250,6 +255,7 @@ public ProjectMenu()
base.Text = TextHelper.GetString("Label.Project");
base.DropDownItems.Add(NewProject);
base.DropDownItems.Add(OpenProject);
+ base.DropDownItems.Add(OpenFolder);
base.DropDownItems.Add(ImportProject);
base.DropDownItems.Add(CloseProject);
base.DropDownItems.Add(new ToolStripSeparator());
diff --git a/External/Plugins/ProjectManager/Controls/RecentProjectsMenu.cs b/External/Plugins/ProjectManager/Controls/RecentProjectsMenu.cs
index 41b6ac25a0..1bf27bc197 100644
--- a/External/Plugins/ProjectManager/Controls/RecentProjectsMenu.cs
+++ b/External/Plugins/ProjectManager/Controls/RecentProjectsMenu.cs
@@ -43,6 +43,7 @@ public RecentProjectsMenu() : base(TextHelper.GetString("Label.RecentProjects"))
public void AddOpenedProject(string projectPath)
{
+ if (!File.Exists(projectPath)) return;
if (PluginMain.Settings.RecentProjects.Contains(projectPath))
{
PluginMain.Settings.RecentProjects.Remove(projectPath);
diff --git a/External/Plugins/ProjectManager/PluginMain.cs b/External/Plugins/ProjectManager/PluginMain.cs
index 1790820109..837c3fed85 100644
--- a/External/Plugins/ProjectManager/PluginMain.cs
+++ b/External/Plugins/ProjectManager/PluginMain.cs
@@ -26,6 +26,7 @@ namespace ProjectManager
public static class ProjectManagerCommands
{
public const string NewProject = "ProjectManager.NewProject";
+ public const string OpenFolder = "ProjectManager.OpenFolder";
public const string OpenProject = "ProjectManager.OpenProject";
public const string SendProject = "ProjectManager.SendProject";
public const string BuildProject = "ProjectManager.BuildProject";
@@ -95,7 +96,7 @@ public class PluginMain : IPlugin
const EventType eventMask = EventType.UIStarted | EventType.UIClosing | EventType.FileOpening
| EventType.FileOpen | EventType.FileSave | EventType.FileSwitch | EventType.ProcessStart | EventType.ProcessEnd
- | EventType.ProcessArgs | EventType.Command | EventType.Keys | EventType.ApplySettings;
+ | EventType.ProcessArgs | EventType.Command | EventType.Keys | EventType.ApplySettings | EventType.FolderOpen;
#region Load/Save Settings
@@ -202,6 +203,7 @@ public void Initialize()
menus.ProjectMenu.NewProject.Click += delegate { NewProject(); };
menus.ProjectMenu.OpenProject.Click += delegate { OpenProject(); };
+ menus.ProjectMenu.OpenFolder.Click += delegate { OpenFolder(); };
menus.ProjectMenu.ImportProject.Click += ImportProject;
menus.ProjectMenu.CloseProject.Click += delegate { CloseProject(false); };
menus.ProjectMenu.OpenResource.Click += delegate { OpenResource(); };
@@ -228,6 +230,7 @@ public void Initialize()
pluginUI = new PluginUI(this, menus, fileActions, projectActions);
pluginUI.NewProject += delegate { NewProject(); };
+ pluginUI.OpenFolder += delegate { OpenFolder(); };
pluginUI.OpenProject += delegate { OpenProject(); };
pluginUI.ImportProject += ImportProject;
pluginUI.Rename += fileActions.Rename;
@@ -403,6 +406,14 @@ public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority)
}
break;
+ case EventType.FolderOpen:
+ if (Directory.Exists(te.Value))
+ {
+ te.Handled = true;
+ OpenFolderSilent(te.Value);
+ }
+ break;
+
case EventType.FileOpening:
// if this is a project file, we can handle it ourselves
if (FileInspector.IsProject(te.Value) || ProjectCreator.IsKnownProject(Path.GetExtension(te.Value).ToLower()))
@@ -458,6 +469,15 @@ public void HandleEvent(Object sender, NotifyEvent e, HandlingPriority priority)
NewProject();
e.Handled = true;
}
+ else if (de.Action == ProjectManagerCommands.OpenFolder)
+ {
+ if (de.Data != null && Directory.Exists((string)de.Data))
+ {
+ OpenFolderSilent((string)de.Data);
+ }
+ else OpenFolder();
+ e.Handled = true;
+ }
else if (de.Action == ProjectManagerCommands.OpenProject)
{
if (de.Data != null && File.Exists((string)de.Data))
@@ -773,6 +793,11 @@ void OpenProjectProperties()
Project project = activeProject;
using (PropertiesDialog dialog = project.CreatePropertiesDialog())
{
+ if (dialog == null)
+ {
+ NewProject();
+ return;
+ }
project.UpdateVars(false);
dialog.SetProject(project);
dialog.OpenGlobalClasspaths += delegate { OpenGlobalClasspaths(); };
@@ -1001,6 +1026,11 @@ private bool DisabledForBuild
public void UpdateUIStatus(ProjectManagerUIStatus status)
{
+ if (activeProject != null && activeProject.IsFolderProject())
+ {
+ status = ProjectManagerUIStatus.Disabled;
+ }
+
ToolStripMenuItem contextMenuItem = pluginUI.Menu.BuildProject;
ToolStripMenuItem menuItem = menus.ProjectMenu.BuildProject;
ToolStripButton menuButton = menus.BuildProject;
@@ -1061,6 +1091,18 @@ private void OpenProject()
if (project != null) SetProject(project);
}
+ private void OpenFolder()
+ {
+ Project project = projectActions.OpenFolder();
+ if (project != null) SetProject(project);
+ }
+
+ private void OpenFolderSilent(string path)
+ {
+ Project project = projectActions.OpenFolderSilent(path);
+ if (project != null) SetProject(project);
+ }
+
private void ImportProject(object sender, EventArgs eventArgs)
{
string importFrom = null;
diff --git a/External/Plugins/ProjectManager/PluginUI.cs b/External/Plugins/ProjectManager/PluginUI.cs
index 1accf50e07..d267f799fa 100644
--- a/External/Plugins/ProjectManager/PluginUI.cs
+++ b/External/Plugins/ProjectManager/PluginUI.cs
@@ -25,6 +25,7 @@ public class PluginUI : DockPanelControl
Boolean isEditingLabel;
public event EventHandler NewProject;
+ public event EventHandler OpenFolder;
public event EventHandler OpenProject;
public event EventHandler ImportProject;
public event RenameEventHandler Rename;
@@ -71,7 +72,7 @@ public PluginUI(PluginMain plugin, FDMenus menus, FileActions fileActions, Proje
help = new LinkLabel();
string[] helpParts = String.Format(TextHelper.GetString("Info.NoProjectsOpenLink"), "\n").Split('|');
- string[] helpActions = { "create", "open", "import|FlashBuilder", "import|hxml" };
+ string[] helpActions = { "folder", "create", "open", "import|FlashBuilder", "import|hxml" };
var helpActionsLength = helpActions.Length;
int[] linkStart = new int[helpActionsLength];
int[] linkLength = new int[helpActionsLength];
@@ -181,6 +182,7 @@ private void link_LinkClicked(Object sender, LinkLabelLinkClickedEventArgs e)
string action = e.Link.LinkData as string;
if (action == "create" && NewProject != null) NewProject(sender, e);
else if (action == "open" && OpenProject != null) OpenProject(sender, e);
+ else if (action == "folder" && OpenFolder != null) OpenFolder(sender, e);
else if (action != null && action.StartsWith("import|")) ImportProject?.Invoke(sender, e);
}
diff --git a/External/Plugins/ProjectManager/Projects/Haxe/HaxeProject.cs b/External/Plugins/ProjectManager/Projects/Haxe/HaxeProject.cs
index 70e7851ce9..21352ffbf2 100644
--- a/External/Plugins/ProjectManager/Projects/Haxe/HaxeProject.cs
+++ b/External/Plugins/ProjectManager/Projects/Haxe/HaxeProject.cs
@@ -24,7 +24,7 @@ public class HaxeProject : Project
public override string Language { get { return "haxe"; } }
public override string LanguageDisplayName { get { return "Haxe"; } }
public override bool IsCompilable { get { return true; } }
- public override bool ReadOnly { get { return false; } }
+ public override bool ReadOnly { get { return IsFolderProject(); } }
public override bool HasLibraries { get { return OutputType == OutputType.Application && IsFlashOutput; } }
public override bool RequireLibrary { get { return IsFlashOutput; } }
public override string DefaultSearchFilter { get { return "*.hx;*.hxp"; } }
diff --git a/External/Plugins/ProjectManager/Projects/Project.cs b/External/Plugins/ProjectManager/Projects/Project.cs
index 663e75ece7..aab7e1b469 100644
--- a/External/Plugins/ProjectManager/Projects/Project.cs
+++ b/External/Plugins/ProjectManager/Projects/Project.cs
@@ -59,6 +59,10 @@ public abstract class Project : IProject
public Project(string path, CompilerOptions compilerOptions)
{
+ if (IsDirectory(path))
+ {
+ path = Path.Combine(path, "Project.folder");
+ }
this.path = path;
this.compilerOptions = compilerOptions;
@@ -78,8 +82,8 @@ public Project(string path, CompilerOptions compilerOptions)
public abstract string Language { get; }
public abstract string LanguageDisplayName { get; }
+ public virtual bool ReadOnly { get { return IsFolderProject(); } }
public virtual bool IsCompilable { get { return false; } }
- public virtual bool ReadOnly { get { return false; } }
public virtual bool UsesInjection { get { return false; } }
public virtual bool HasLibraries { get { return false; } }
public virtual bool RequireLibrary { get { return false; } }
@@ -92,11 +96,17 @@ public Project(string path, CompilerOptions compilerOptions)
protected bool AllowedSaving(string fileName)
{
+ if (IsFolderProject()) return false;
if (ReadOnly && fileName == ProjectPath) return false;
if (BeforeSave != null) return BeforeSave(this, fileName);
else return true;
}
+ public bool IsFolderProject()
+ {
+ return path.EndsWith("Project.folder");
+ }
+
public virtual void PropertiesChanged()
{
OnClasspathChanged();
@@ -104,6 +114,7 @@ public virtual void PropertiesChanged()
public virtual PropertiesDialog CreatePropertiesDialog()
{
+ if (IsFolderProject()) return null;
return new PropertiesDialog();
}
@@ -371,13 +382,16 @@ public static String RemoveDiacritics(String s)
return stringBuilder.ToString();
}
- #endregion
-
-
+ ///
+ ///
+ ///
+ ///
public bool IsDirectory(string path)
{
return System.IO.Directory.Exists(path);
}
+
+ #endregion
}
public enum OutputType
diff --git a/External/Plugins/ProjectManager/Projects/ProjectLoader.cs b/External/Plugins/ProjectManager/Projects/ProjectLoader.cs
index 3c11463d92..b71b3bc82f 100644
--- a/External/Plugins/ProjectManager/Projects/ProjectLoader.cs
+++ b/External/Plugins/ProjectManager/Projects/ProjectLoader.cs
@@ -10,11 +10,9 @@ class ProjectLoader
public static Project Load(string file)
{
string ext = Path.GetExtension(file).ToLower();
-
if (ProjectCreator.IsKnownProject(ext) || FileInspector.IsProject(file, ext))
{
- Type projectType =
- ProjectCreator.GetProjectType(ProjectCreator.KeyForProjectPath(file));
+ Type projectType = ProjectCreator.GetProjectType(ProjectCreator.KeyForProjectPath(file));
if (projectType != null)
{
object[] para = new object[1];
diff --git a/FlashDevelop/MainForm.cs b/FlashDevelop/MainForm.cs
index 8e25ec162e..70c7679748 100644
--- a/FlashDevelop/MainForm.cs
+++ b/FlashDevelop/MainForm.cs
@@ -1527,12 +1527,12 @@ public void OnScintillaControlDropFiles(ScintillaControl sci, String data)
this.BeginInvoke((MethodInvoker)delegate { this.OnScintillaControlDropFiles(null, data); });
return;
}
- String[] files = Regex.Split(data.Substring(1, data.Length - 2), "\" \"");
- foreach (String file in files)
+ String[] entries = Regex.Split(data.Substring(1, data.Length - 2), "\" \"");
+ foreach (String entry in entries)
{
- if (File.Exists(file))
+ if (File.Exists(entry))
{
- DockContent doc = this.OpenEditableDocument(file);
+ DockContent doc = this.OpenEditableDocument(entry);
if (doc == null || Control.ModifierKeys == Keys.Control) return;
DockContent drop = DocumentManager.FindDocument(sci) as DockContent;
if (drop != null && drop.Pane != null)
@@ -1541,6 +1541,11 @@ public void OnScintillaControlDropFiles(ScintillaControl sci, String data)
doc.Activate();
}
}
+ else if (Directory.Exists(entry))
+ {
+ TextEvent de = new TextEvent(EventType.FolderOpen, entry);
+ EventManager.DispatchEvent(this, de);
+ }
}
}
diff --git a/PluginCore/PluginCore/Enumerators.cs b/PluginCore/PluginCore/Enumerators.cs
index 9ec4e208d5..4ee40f89a8 100644
--- a/PluginCore/PluginCore/Enumerators.cs
+++ b/PluginCore/PluginCore/Enumerators.cs
@@ -44,7 +44,8 @@ public enum EventType : long
Keys = 8589934592, // KeyEvent (keys)
Completion = 17179869184, // NotifyEvent
AppChanges = 34359738368, // NotifyEvent
- ApplyTheme = 68719476736 // NotifyEvent
+ ApplyTheme = 68719476736, // NotifyEvent
+ FolderOpen = 137438953472 // TextEvent (path)
}
public enum UpdateInterval
diff --git a/PluginCore/PluginCore/Resources/de_DE.resx b/PluginCore/PluginCore/Resources/de_DE.resx
index 6d46ea0803..ab6f35a33d 100644
--- a/PluginCore/PluginCore/Resources/de_DE.resx
+++ b/PluginCore/PluginCore/Resources/de_DE.resx
@@ -1768,7 +1768,7 @@ Ansonsten kann Adobe Flash Professional auch zum Überprüfen der Syntax verwend
Dieses Projekt hat keine Ausgabedatei und und keine Pre- oder Post-Build-Befehle definiert.
- |Erstelle neues Projekt|{0}oder{0}|Öffne existierende Projekt|{0}oder{0}|Importiere Flash Builder Projekt|{0}or{0}|Import a Haxe hxml project|
+ |Open a folder|{0}or{0}|Erstelle neues Projekt|{0}oder{0}|Öffne existierende Projekt|{0}oder{0}|Importiere Flash Builder Projekt|{0}or{0}|Import a Haxe hxml project|
Keine Vorlagen wurden im Vorlagenverzeichnis gefunden. Sie können keine Projekte erstellen. Sie können dieses Problem beheben, indem Sie FlashDevelop neu installieren.
@@ -6231,4 +6231,8 @@ AND - All conditions are met.
Vererbungsnavigation
Added after 5.2.1
+
+ Open &Folder...
+ Added after 5.3.1
+
\ No newline at end of file
diff --git a/PluginCore/PluginCore/Resources/en_US.resx b/PluginCore/PluginCore/Resources/en_US.resx
index 7846088260..f442885629 100644
--- a/PluginCore/PluginCore/Resources/en_US.resx
+++ b/PluginCore/PluginCore/Resources/en_US.resx
@@ -1751,7 +1751,8 @@ Alternatively, Adobe Flash Professional can also be used for syntax checking - p
This project has no output and not build command configured.
- |Create a new project|{0}or{0}|Open an existing project|{0}or{0}|Import a Flash Builder project|{0}or{0}|Import a Haxe hxml project|
+ |Open a folder|{0}or{0}|Create a new project|{0}or{0}|Open an existing project|{0}or{0}|Import a Flash Builder project|{0}or{0}|Import a Haxe hxml project|
+ Modified after 5.3.1
No templates were found in the templates directory. You will not be able to create new projects. You might try reinstalling FlashDevelop.
@@ -6246,4 +6247,8 @@ AND - All conditions are met.
Inheritance Navigation
Added after 5.2.1
+
+ Open &Folder...
+ Added after 5.3.1
+
\ No newline at end of file
diff --git a/PluginCore/PluginCore/Resources/eu_ES.resx b/PluginCore/PluginCore/Resources/eu_ES.resx
index 2539726050..ced5c4ce2d 100644
--- a/PluginCore/PluginCore/Resources/eu_ES.resx
+++ b/PluginCore/PluginCore/Resources/eu_ES.resx
@@ -1750,7 +1750,7 @@ Alternatiba gisa, Adobe Flash Professional ere sintaxi egiaztapenerako erabil da
Proiektu honek ez du irteerarik eta ezta eraikitzeko konfigurazio komandorik ere.
- |Proiektu berria sortu|{0}edo{0}|Existitzen den proiektu bat ireki|{0}edo{0}|Flex Builder proiektu bat inportatu|{0}or{0}|Import a Haxe hxml project|
+ |Open a folder|{0}or{0}|Proiektu berria sortu|{0}edo{0}|Existitzen den proiektu bat ireki|{0}edo{0}|Flex Builder proiektu bat inportatu|{0}or{0}|Import a Haxe hxml project|
Ez da txantiloirik aurkitu txantiloien directorioan. Ezin izanen duzu proiektu berririk sortu. FlashDevelop berriro instalatzen saia zaiztezke.
@@ -6228,4 +6228,8 @@ AND - All conditions are met.
Inheritance Navigation
Added after 5.2.1
+
+ Open &Folder...
+ Added after 5.3.1
+
\ No newline at end of file
diff --git a/PluginCore/PluginCore/Resources/ja_JP.resx b/PluginCore/PluginCore/Resources/ja_JP.resx
index 2cb3c6af04..323d0e8b40 100644
--- a/PluginCore/PluginCore/Resources/ja_JP.resx
+++ b/PluginCore/PluginCore/Resources/ja_JP.resx
@@ -1753,7 +1753,7 @@
このプロジェクトはなにも書き出さず、設定されたコマンドも実行しません。
- |新規プロジェクトを作成|{0}または{0}|既存のプロジェクトを開く|{0}または{0}|Flash Builder プロジェクトをインポート|{0}or{0}|Import a Haxe hxml project|
+ |Open a folder|{0}or{0}|新規プロジェクトを作成|{0}または{0}|既存のプロジェクトを開く|{0}または{0}|Flash Builder プロジェクトをインポート|{0}or{0}|Import a Haxe hxml project|
テンプレートディレクトリの中にテンプレートが見つかりません。新規プロジェクトが作成できない可能性があります。FlashDevelop を再インストールしてください。
@@ -6289,4 +6289,8 @@ AND - All conditions are met.
Sets the maximum number of processes for diagnostics (linting) that run at the same time. Defaults to 1.
Added after 5.2.1
+
+ Open &Folder...
+ Added after 5.3.1
+
\ No newline at end of file
diff --git a/PluginCore/PluginCore/Resources/ko_KR.resx b/PluginCore/PluginCore/Resources/ko_KR.resx
index 510e71f866..ac7e41b7bf 100644
--- a/PluginCore/PluginCore/Resources/ko_KR.resx
+++ b/PluginCore/PluginCore/Resources/ko_KR.resx
@@ -1751,7 +1751,7 @@
이 프로젝트는 출력이없고 구성에 빌드 명령도 없습니다.
- |새 프로젝트 만들기|{0}또는{0}|기존 프로젝트 열기|{0}또는{0}|Flash Builder 프로젝트 불러오기|{0}or{0}|Import a Haxe hxml project|
+ |Open a folder|{0}or{0}|새 프로젝트 만들기|{0}또는{0}|기존 프로젝트 열기|{0}또는{0}|Flash Builder 프로젝트 불러오기|{0}or{0}|Import a Haxe hxml project|
탬플릿 이렉토리에서 탬플릿을 찾을 수 없습니다. 새로운 프로젝트를 만들 수 없습니다. FlashDevelop를 다시 설치하는것을 권장합니다.
@@ -6250,4 +6250,8 @@ AND - 모든 조건을 만족할때.
Sets the maximum number of processes for diagnostics (linting) that run at the same time. Defaults to 1.
Added after 5.2.1
+
+ Open &Folder...
+ Added after 5.3.1
+
\ No newline at end of file
diff --git a/PluginCore/PluginCore/Resources/zh_CN.resx b/PluginCore/PluginCore/Resources/zh_CN.resx
index c378fdd152..1a84388d01 100644
--- a/PluginCore/PluginCore/Resources/zh_CN.resx
+++ b/PluginCore/PluginCore/Resources/zh_CN.resx
@@ -1751,7 +1751,7 @@
项目没有输出,也没有配置编译命令.
- |创建新项目|{0}或{0}|打开一个现有的项目|{0}或{0}|导入一个 Flash Builder 项目|{0}or{0}|Import a Haxe hxml project|
+ |Open a folder|{0}or{0}|创建新项目|{0}或{0}|打开一个现有的项目|{0}或{0}|导入一个 Flash Builder 项目|{0}or{0}|Import a Haxe hxml project|
无法在模板目录中找到模板.你将无法创建新项目.你可以尝试重新安装 FlashDevelop 软件.
@@ -6241,4 +6241,8 @@ AND - All conditions are met.
Sets the maximum number of processes for diagnostics (linting) that run at the same time. Defaults to 1.
Added after 5.2.1
+
+ Open &Folder...
+ Added after 5.3.1
+
\ No newline at end of file