mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Code refactoring
This commit is contained in:
parent
6d980e60db
commit
e0904c0488
2 changed files with 21 additions and 13 deletions
|
@ -63,8 +63,13 @@ public override string Parse(string text)
|
|||
return base.Parse(text);
|
||||
}
|
||||
|
||||
protected override string CallFunction(string functionName, string[] parameters)
|
||||
protected override string CallFunction(string functionName, string[] parameters = null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(functionName))
|
||||
{
|
||||
throw new Exception("Function name cannot be empty.");
|
||||
}
|
||||
|
||||
foreach (CustomUploaderFunction function in Functions)
|
||||
{
|
||||
if (function.Name.Equals(functionName, StringComparison.OrdinalIgnoreCase))
|
||||
|
|
|
@ -43,13 +43,12 @@ public virtual string Parse(string text)
|
|||
return "";
|
||||
}
|
||||
|
||||
return ParseSyntax(text, false, 0, out _);
|
||||
return Parse(text, false, 0, out _);
|
||||
}
|
||||
|
||||
private string ParseSyntax(string text, bool isFunction, int startPosition, out int endPosition)
|
||||
private string Parse(string text, bool isFunction, int startPosition, out int endPosition)
|
||||
{
|
||||
StringBuilder sbResult = new StringBuilder();
|
||||
List<string> parameters = new List<string>();
|
||||
StringBuilder sbOutput = new StringBuilder();
|
||||
bool escape = false;
|
||||
int i;
|
||||
|
||||
|
@ -61,8 +60,8 @@ private string ParseSyntax(string text, bool isFunction, int startPosition, out
|
|||
{
|
||||
if (c == SyntaxStart)
|
||||
{
|
||||
string parsed = ParseSyntax(text, true, i + 1, out i);
|
||||
sbResult.Append(parsed);
|
||||
string parsed = Parse(text, true, i + 1, out i);
|
||||
sbOutput.Append(parsed);
|
||||
continue;
|
||||
}
|
||||
else if (c == SyntaxEnd || c == SyntaxParameterDelimiter)
|
||||
|
@ -76,30 +75,34 @@ private string ParseSyntax(string text, bool isFunction, int startPosition, out
|
|||
}
|
||||
else if (isFunction && c == SyntaxParameterStart)
|
||||
{
|
||||
List<string> parameters = new List<string>();
|
||||
|
||||
do
|
||||
{
|
||||
string parsed = ParseSyntax(text, false, i + 1, out i);
|
||||
string parsed = Parse(text, false, i + 1, out i);
|
||||
parameters.Add(parsed);
|
||||
} while (i < text.Length && text[i] == SyntaxParameterDelimiter);
|
||||
|
||||
break;
|
||||
endPosition = i;
|
||||
|
||||
return CallFunction(sbOutput.ToString(), parameters.ToArray());
|
||||
}
|
||||
}
|
||||
|
||||
escape = false;
|
||||
sbResult.Append(c);
|
||||
sbOutput.Append(c);
|
||||
}
|
||||
|
||||
endPosition = i;
|
||||
|
||||
if (isFunction)
|
||||
{
|
||||
return CallFunction(sbResult.ToString(), parameters.ToArray());
|
||||
return CallFunction(sbOutput.ToString());
|
||||
}
|
||||
|
||||
return sbResult.ToString();
|
||||
return sbOutput.ToString();
|
||||
}
|
||||
|
||||
protected abstract string CallFunction(string functionName, string[] parameters);
|
||||
protected abstract string CallFunction(string functionName, string[] parameters = null);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue