Just a bit of extra info in the source code.

master
Icedream 2014-12-13 22:02:52 +01:00
parent 850f291bff
commit 1f6cd33847
1 changed files with 8 additions and 2 deletions

View File

@ -17,7 +17,10 @@ namespace GarrysMod.AddonCreator.Addon
private byte[] _content; private byte[] _content;
private readonly string _stripCommentsRegex = string.Join("|", new[] /// <summary>
/// Contains regex which helps stripping out comments (and unnecessary whitespace lines)
/// </summary>
private readonly string _stripCommentsEmptylineRegex = string.Join("|", new[]
{ {
// block comments // block comments
@"\/\*.*?\*\/", @"\/\*.*?\*\/",
@ -32,6 +35,7 @@ namespace GarrysMod.AddonCreator.Addon
@"[\s]*$", @"[\s]*$",
@"^[\s]*" @"^[\s]*"
}); });
private string _luaCode; private string _luaCode;
public MinifiedLuaAddonFileInfo(AddonFileInfo actual) public MinifiedLuaAddonFileInfo(AddonFileInfo actual)
@ -45,11 +49,13 @@ namespace GarrysMod.AddonCreator.Addon
return _content; return _content;
_luaCode = Encoding.UTF8.GetString(_fi.GetContents()); _luaCode = Encoding.UTF8.GetString(_fi.GetContents());
// Remove comments and whitespace lines
string oldLuaCode; string oldLuaCode;
do do
{ {
oldLuaCode = _luaCode; oldLuaCode = _luaCode;
_luaCode = Regex.Replace(_luaCode, _stripCommentsRegex, _luaCode = Regex.Replace(_luaCode, _stripCommentsEmptylineRegex,
m => m.Groups["linebreak"] != null ? m.Groups["linebreak"].Value : "", RegexOptions.Multiline | RegexOptions.Singleline); m => m.Groups["linebreak"] != null ? m.Groups["linebreak"].Value : "", RegexOptions.Multiline | RegexOptions.Singleline);
_luaCode = _luaCode.Trim(); _luaCode = _luaCode.Trim();
} while (oldLuaCode != _luaCode); } while (oldLuaCode != _luaCode);