public CodeColorizerBase(StyleDictionary Styles, ILanguageParser languageParser) { this.languageParser = languageParser ?? new LanguageParser(new LanguageCompiler(Languages.CompiledLanguages, Languages.CompileLock), Languages.LanguageRepository); this.Styles = Styles ?? StyleDictionary.DefaultLight; }
/// <summary> /// Initializes a new instance of the <see cref="CodeColorizerBase"/> class for creating Syntax Highlighted code. /// </summary> /// <param name="styles">The Custom styles to Apply to the formatted Code.</param> /// <param name="languageParser">The language parser that the <see cref="CodeColorizerBase"/> instance will use for its lifetime.</param> public CodeColorizerBase(StyleDictionary styles, ILanguageParser languageParser) { LanguageParser = languageParser ?? new LanguageParser(new LanguageCompiler(Languages.CompiledLanguages), Languages.LanguageRepository); Styles = styles ?? StyleDictionary.DefaultLight; }
public void Init(ILanguageParser parser) { this.parser = parser; TextStyleRed.normal.textColor = Color.red; TextStyleBlue.normal.textColor = Color.blue; ShowEditorWindow(); isInited = true; }
public ParserUnit(Language language, Thread thread) { Language = language ?? throw new NullReferenceException(nameof(language)); parser = language.CreateParser(); logger = new ParserUnitLogger(); parser.Logger = logger; this.thread = thread; }
/// <summary> /// Initializes a new instance of the <see cref="CodeColorizer"/> class. /// </summary> /// <param name="languageParser">The language parser that the <see cref="CodeColorizer"/> instance will use for its lifetime.</param> public CodeColorizer(ILanguageParser languageParser) { Guard.ArgNotNull(languageParser, "languageParser"); this.languageParser = languageParser; }
/// <summary> /// Initializes a new instance of the <see cref="CodeColorizer"/> class. /// </summary> public CodeColorizer() { languageParser = new LanguageParser(new LanguageCompiler(Languages.CompiledLanguages), Languages.LanguageRepository); }
/// <summary> /// Creates a <see cref="HtmlClassFormatter"/>, for creating HTML to display Syntax Highlighted code, with Styles applied via CSS. /// </summary> /// <param name="Style">The Custom styles to Apply to the formatted Code.</param> /// <param name="languageParser">The language parser that the <see cref="HtmlClassFormatter"/> instance will use for its lifetime.</param> public HtmlClassFormatter(StyleDictionary Style = null, ILanguageParser languageParser = null) : base(Style, languageParser) { }
/// <summary> /// Initializes a new instance of the <see cref="CodeColorizer"/> class. /// </summary> /// <param name="languageParser">The language parser that the <see cref="CodeColorizer"/> instance will use for its lifetime.</param> public CodeColorizer(ILanguageParser languageParser) { Guard.ArgNotNull(languageParser, "languageParser"); this.languageParser = languageParser; }
/// <summary> /// Initializes a new instance of the <see cref="CodeColorizer"/> class. /// </summary> public CodeColorizer() { languageParser = new LanguageParser(new LanguageCompiler(Languages.CompiledLanguages), Languages.LanguageRepository); }
/// <summary> /// Creates a <see cref="RichTextBlockFormatter"/>, for rendering Syntax Highlighted code to a RichTextBlock. /// </summary> /// <param name="Style">The Custom styles to Apply to the formatted Code.</param> /// <param name="languageParser">The language parser that the <see cref="RichTextBlockFormatter"/> instance will use for its lifetime.</param> public RichTextBlockFormatter(StyleDictionary Style = null, ILanguageParser languageParser = null) : base(Style, languageParser) { }
/// <summary> /// Creates a <see cref="RichTextBlockFormatter"/>, for rendering Syntax Highlighted code to a RichTextBlock. /// </summary> /// <param name="Theme">The Theme to use, determines whether to use Default Light or Default Dark.</param> public RichTextBlockFormatter(ElementTheme Theme, ILanguageParser languageParser = null) : this(Theme == ElementTheme.Dark ? StyleDictionary.DefaultDark : StyleDictionary.DefaultLight, languageParser) { }
public ParserUnit(ILanguageParser parser, LoggerMessageCounter logger, Task task) { Parser = parser; Logger = logger; Task = task; }
public static void RegisterLanguageParser(string identifier, string extension, ILanguageParser languageParser) { ParsersByIdentifier.Remove(identifier); ParsersByIdentifier.Add(identifier, languageParser); ParsersByExtension.Remove(extension); ParsersByExtension.Add(extension, languageParser); }
public DiffViewTextColorizer(StyleDictionary Style = null, ILanguageParser languageParser = null) : base(Style, languageParser) { }
public Md(ILanguageParser languageParser, ILanguageBuilder languageBuilder) { this.languageParser = languageParser; this.languageBuilder = languageBuilder; }
public override Language?Detect(string sourceCode, Language[] languages = null) { List <Language> langs = (languages ?? LanguageExt.Languages).ToList(); // Any PHP file contains start tag. if (!sourceCode.Contains("<?")) { langs.Remove(Language.Php); } // Aspx and html code contains at least one tag. if (!openTagRegex.IsMatch(sourceCode) || !closeTagRegex.IsMatch(sourceCode)) { langs.Remove(Language.Aspx); langs.Remove(Language.Html); } var sourceCodeFile = new SourceCodeFile("Temp Source Code") { Code = sourceCode }; var parseUnits = new Queue <Tuple <Language, ParserUnit> >(langs.Count); langs = langs .GroupBy(l => ParserConverterBuilder.GetParserConverterSet(l).Parser.Language) .Select(l => l.First()) .ToList(); if (langs.Count == 1) { return(langs[0]); } foreach (var language in langs) { var logger = new LoggerMessageCounter(); ILanguageParser languageParser = ParserConverterBuilder.GetParserConverterSet(language).Parser; var task = Task.Factory.StartNew(() => { languageParser.Logger = logger; languageParser.Parse(sourceCodeFile); }); parseUnits.Enqueue(Tuple.Create(language, new ParserUnit(languageParser, logger, task))); } int minErrorCount = int.MaxValue; Language?resultWithMinErrors = null; // Check every parseUnit completion every 50 ms. while (parseUnits.Count > 0) { var pair = parseUnits.Dequeue(); if (!pair.Item2.Task.IsCompleted) { parseUnits.Enqueue(pair); Thread.Sleep(50); continue; } if (pair.Item2.Logger.ErrorCount == 0 && pair.Item1 != Language.Aspx) { return(pair.Item1); } var errorCount = pair.Item2.ParseErrorCount; if (errorCount < minErrorCount) { minErrorCount = errorCount; resultWithMinErrors = pair.Item1; } } return(resultWithMinErrors); }