private Task UpdateGuidelinesFromCodingConventionAsync(ICodingConventionContext codingConventionContext, CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) { return(Task.FromCanceled(cancellationToken)); } StrokeParameters strokeParameters = null; if (codingConventionContext.CurrentConventions.TryGetConventionValue("guidelines_style", out string guidelines_style)) { if (TryParseStrokeParametersFromCodingConvention(guidelines_style, out strokeParameters)) { _isUsingCodingConvention = true; strokeParameters.Freeze(); } } ICollection <Guideline> guidelines = null; if (codingConventionContext.CurrentConventions.TryGetConventionValue("guidelines", out string guidelinesConventionValue)) { guidelines = ParseGuidelinesFromCodingConvention(guidelinesConventionValue, strokeParameters); } // Also support max_line_length: https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties#max_line_length if (codingConventionContext.CurrentConventions.TryGetConventionValue("max_line_length", out string max_line_length) && TryParsePosition(max_line_length, out int maxLineLengthValue)) { (guidelines ?? (guidelines = new List <Guideline>())).Add(new Guideline(maxLineLengthValue, strokeParameters)); } if (guidelines != null) { // Override 'classic' settings. _isUsingCodingConvention = true; // TODO: await JoinableTaskFactory.SwitchToMainThreadAsync(); _view.VisualElement.Dispatcher.BeginInvoke(new Action <IEnumerable <Guideline> >(GuidelinesChanged), guidelines); } if (_isUsingCodingConvention && !s_sentEditorConfigTelemetry) { var eventTelemetry = new EventTelemetry("EditorConfig"); if (!string.IsNullOrEmpty(guidelinesConventionValue)) { eventTelemetry.Properties.Add("Convention", guidelinesConventionValue); } if (!string.IsNullOrEmpty(max_line_length)) { eventTelemetry.Properties.Add(nameof(max_line_length), max_line_length); } if (!string.IsNullOrEmpty(guidelines_style)) { eventTelemetry.Properties.Add(nameof(guidelines_style), guidelines_style); } ColumnGuideAdornmentFactory.AddGuidelinesToTelemetry(eventTelemetry, guidelines); s_sentEditorConfigTelemetry = true; } return(Task.CompletedTask); }
private Brush GetGuidelineBrushFromFontsAndColors() { return(ColumnGuideAdornmentFactory.GetGuidelineBrushFromFontsAndColors(_formatMap)); }