public PersonController(PersonRepository personRepository, IMapper mapper, IEmailHelper emailHelper, ITokenClass tokenClass) { _personRepository = personRepository; _mapper = mapper; _emailHelper = emailHelper; _tokenClass = tokenClass; }
internal static Syntax CreateSourceSyntax ( Syntax left, ITokenClass tokenClass, IToken token, Syntax right) => new Syntax(left, tokenClass, token, right);
public TokenController(IConfiguration config, PersonRepository personRepository, IEmailHelper emailHelper, ITokenClass tokenClass) { _config = config; _personRepository = personRepository; _emailHelper = emailHelper; _tokenClass = tokenClass; }
internal static ContactType Get(ITokenClass target) => target == null ? Compatible : Lexer.IsAlphaLike(target.Id) || target is Number ? AlphaNum : target is Text ? Text : Lexer.IsSymbolLike(target.Id) ? Symbol : Compatible;
internal ResultItems InternalGetWhitespaces ( ITokenClass leftTokenClass, int leadingLineBreaks, int indentLevel, IEnumerable<IItem> whiteSpaces, ITokenClass rightTokenClass ) { var result = new ResultItems(); var emptyLines = 0; var isBeginOfLine = leadingLineBreaks > 0; foreach(var token in whiteSpaces) { if(isBeginOfLine && !Lexer.IsLineEnd(token)) { result.AddLineBreak(leadingLineBreaks - emptyLines); result.AddSpaces(indentLevel * Configuration.IndentCount); emptyLines = leadingLineBreaks; leadingLineBreaks = 0; isBeginOfLine = false; } if(Lexer.IsWhiteSpace(token) || (Lexer.IsLineEnd(token) && !IsRelevantLineBreak(emptyLines, rightTokenClass))) result.AddHidden(token); else { result.Add(token); if(Lexer.IsLineEnd(token)) emptyLines++; else emptyLines = Lexer.IsLineComment(token) ? 1 : 0; isBeginOfLine = !Lexer.IsComment(token); } } if(isBeginOfLine) { result.AddLineBreak(leadingLineBreaks - emptyLines); result.AddSpaces(indentLevel * Configuration.IndentCount); leadingLineBreaks = 0; } if (result.IsEmpty && SeparatorType.Get(leftTokenClass, rightTokenClass) == SeparatorType.Close) result.AddSpaces(1); Tracer.Assert(leadingLineBreaks == 0); return result; }
bool IsRelevantLineBreak(int emptyLines, ITokenClass tokenClass) { if(Configuration.EmptyLineLimit == null) return true; if(tokenClass is RightParenthesis || tokenClass is LeftParenthesis || tokenClass is List) return false; return emptyLines < Configuration.EmptyLineLimit.Value; }
Syntax ( Syntax left, ITokenClass tokenClass, IToken token, Syntax right) : base(NextObjectId++) { Left = left; TokenClass = tokenClass; Token = token; Right = right; Option = new SyntaxOption(this); LocatePositionCache = new FunctionCache<int, Syntax>(LocatePositionForCache); if(Left != null) Left.Parent = this; if(Right != null) Right.Parent = this; }
internal ResultItems Item ( ITokenClass leftTokenClass, int leadingLineBreaks, int indentLevel, IToken token, ITokenClass tokenClass) { Tracer.Assert(IsRelevant(tokenClass)); Tracer.Assert(IsRelevant(leftTokenClass)); var trace = tokenClass.Id == " repeat"; StartMethodDump (trace, leftTokenClass, leadingLineBreaks, indentLevel, token, tokenClass); try { BreakExecution(); var result = InternalGetWhitespaces ( leftTokenClass, leadingLineBreaks, indentLevel, token.PrecededWith, tokenClass ); result.Add(token); return ReturnMethodDump(result); } finally { EndMethodDump(); } }
static bool IsRelevant(ITokenClass tokenClass) => (tokenClass as TokenClass)?.IsVisible ?? true;
public EmailController(PersonRepository personRepository, ITokenClass tokenClass) { _personRepository = personRepository; _tokenClass = tokenClass; }