forked from fdorg/flashdevelop
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCleanupManager.cs
More file actions
56 lines (54 loc) · 2.67 KB
/
Copy pathCleanupManager.cs
File metadata and controls
56 lines (54 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.IO;
using System.Text;
using System.Collections.Generic;
using PluginCore.Localization;
using PluginCore.Managers;
using PluginCore.Helpers;
namespace FlashDevelop.Managers
{
class CleanupManager
{
private const String coloringStart = "<!-- COLORING_START -->";
private const String coloringEnd = "<!-- COLORING_END -->";
/// <summary>
/// Reverts the language config files fully or keeping the coloring.
/// </summary>
public static void RevertConfiguration(Boolean everything)
{
String appSettingDir = Path.Combine(PathHelper.AppDir, "Settings");
String appLanguageDir = Path.Combine(appSettingDir, "Languages");
String userLanguageDir = Path.Combine(PathHelper.SettingDir, "Languages");
if (everything) FolderHelper.CopyFolder(appLanguageDir, userLanguageDir);
else
{
String[] userFiles = Directory.GetFiles(userLanguageDir);
foreach (String userFile in userFiles)
{
String appFile = Path.Combine(appLanguageDir, Path.GetFileName(userFile));
if (File.Exists(appFile))
{
try
{
String appFileContents = FileHelper.ReadFile(appFile);
String userFileContents = FileHelper.ReadFile(userFile);
Int32 appFileColoringStart = appFileContents.IndexOf(coloringStart);
Int32 appFileColoringEnd = appFileContents.IndexOf(coloringEnd);
Int32 userFileColoringStart = userFileContents.IndexOf(coloringStart);
Int32 userFileColoringEnd = userFileContents.IndexOf(coloringEnd);
String replaceTarget = appFileContents.Substring(appFileColoringStart, appFileColoringEnd - appFileColoringStart + coloringEnd.Length);
String replaceContent = userFileContents.Substring(userFileColoringStart, userFileColoringEnd - userFileColoringStart + coloringEnd.Length);
String finalContent = appFileContents.Replace(replaceTarget, replaceContent);
FileHelper.WriteFile(userFile, finalContent, Encoding.UTF8);
}
catch (Exception ex)
{
String desc = TextHelper.GetString("Info.ColoringTagsMissing");
ErrorManager.ShowError(desc, ex);
}
}
}
}
}
}
}