diff --git a/EditorExtensions/Margin/LessProjectCompiler.cs b/EditorExtensions/Margin/LessProjectCompiler.cs index 9c44244..29c26e8 100644 --- a/EditorExtensions/Margin/LessProjectCompiler.cs +++ b/EditorExtensions/Margin/LessProjectCompiler.cs @@ -38,15 +38,6 @@ private static bool CanCompile(string fileName) if (Path.GetFileName(fileName).StartsWith("_")) return false; - string minFile = MarginBase.GetCompiledFileName(fileName, ".min.css", WESettings.GetBoolean(WESettings.Keys.LessCompileToFolder)); - if (File.Exists(minFile) && WESettings.GetBoolean(WESettings.Keys.LessMinify)) - return true; - - string cssFile = MarginBase.GetCompiledFileName(fileName, ".css", WESettings.GetBoolean(WESettings.Keys.LessCompileToFolder)); - if (!File.Exists(cssFile)) - return false; - - return true; } @@ -56,26 +47,37 @@ private static void Completed(CompilerResult result) { string cssFileName = MarginBase.GetCompiledFileName(result.FileName, ".css", WESettings.GetBoolean(WESettings.Keys.LessCompileToFolder));// result.FileName.Replace(".less", ".css"); - if (File.Exists(cssFileName)) + bool cssFileExists = File.Exists(cssFileName); + string old = string.Empty; + if (cssFileExists) { - string old = File.ReadAllText(cssFileName); + old = File.ReadAllText(cssFileName); + } - if (old != result.Result) - { + if (!cssFileExists || old != result.Result) + { + if (cssFileExists) + { ProjectHelpers.CheckOutFileFromSourceControl(cssFileName); - try + } + + try + { + bool useBom = WESettings.GetBoolean(WESettings.Keys.UseBom); + using (StreamWriter writer = new StreamWriter(cssFileName, false, new UTF8Encoding(useBom))) { - bool useBom = WESettings.GetBoolean(WESettings.Keys.UseBom); - using (StreamWriter writer = new StreamWriter(cssFileName, false, new UTF8Encoding(useBom))) - { - writer.Write(result.Result); - } + writer.Write(result.Result); } - catch (Exception ex) + + if (!cssFileExists) { - Logger.Log(ex); + MarginBase.AddFileToProject(result.FileName, cssFileName); } } + catch (Exception ex) + { + Logger.Log(ex); + } } MinifyFile(result.FileName, result.Result); @@ -96,20 +98,28 @@ public static void MinifyFile(string lessFileName, string source) { string content = MinifyFileMenu.MinifyString(".css", source); string minFile = MarginBase.GetCompiledFileName(lessFileName, ".min.css", WESettings.GetBoolean(WESettings.Keys.LessCompileToFolder)); //lessFileName.Replace(".less", ".min.css"); - string old = File.ReadAllText(minFile); + string old = string.Empty; + bool minFileExist = File.Exists(minFile); + if (minFileExist) + { + old = File.ReadAllText(minFile); + } - if (old != content) + if (!minFileExist || old != content) { - bool fileExist = File.Exists(minFile); bool useBom = WESettings.GetBoolean(WESettings.Keys.UseBom); - ProjectHelpers.CheckOutFileFromSourceControl(minFile); + if (minFileExist) + { + ProjectHelpers.CheckOutFileFromSourceControl(minFile); + } + using (StreamWriter writer = new StreamWriter(minFile, false, new UTF8Encoding(useBom))) { writer.Write(content); } - if (!fileExist) + if (!minFileExist) MarginBase.AddFileToProject(lessFileName, minFile); } }