PowerArgs.Cli.PowerArgsRichCommandLineReader.InitHighlighters C# (CSharp) Method

InitHighlighters() private method

private InitHighlighters ( ) : void
return void
        private void InitHighlighters()
        {
            this.Highlighter = new SimpleSyntaxHighlighter();
            this.Highlighter.AddTokenHighlighter(new ValidationEnforcementTokenHighlighter(this.Definition));
            foreach(var argument in Definition.Arguments)
            {
                foreach(var alias in argument.Aliases)
                {
                    this.Highlighter.AddKeyword("-" + alias, ArgumentNameForeground, comparison: argument.IgnoreCase ? StringComparison.InvariantCultureIgnoreCase : StringComparison.InvariantCulture);
                }
            }

            foreach(var action in Definition.Actions)
            {
                foreach(var alias in action.Aliases)
                {
                    this.Highlighter.AddConditionalKeyword(alias, (readerContext, highlighterContext) => { return highlighterContext.CurrentTokenIndex == 0; }, ActionForeground, comparison: action.IgnoreCase ? StringComparison.InvariantCultureIgnoreCase : StringComparison.InvariantCulture);
                }

                foreach(var argument in action.Arguments)
                {
                    foreach(var alias in argument.Aliases)
                    {
                        this.Highlighter.AddConditionalKeyword("-" + alias, (context, highlighterContext) =>
                            {
                                return action.IsMatch(context.Tokens.First().Value);
                            }
                        , ArgumentNameForeground, comparison: argument.IgnoreCase ? StringComparison.InvariantCultureIgnoreCase : StringComparison.InvariantCulture);
                    }
                }
            }

            this.Highlighter.SetNumericHighlight(NumericForeground);
            this.Highlighter.SetQuotedStringLiteralHighlight(StringLiteralForeground);
        }