private void TryWriteApply()
        {
            if (!_applyOpened)
            {
                _applyOpened = true;

                IDisposable blockDisposable;

                var delegateString = _delegateType.HasValue() ? "(" + _delegateType + ")" : "";

                if (_applyPrefix != null)
                {
                    blockDisposable = _source.BlockInvariant(".{0}_XamlApply({2}({1} => ", _applyPrefix, _closureName, delegateString);
                }
                else
                {
                    blockDisposable = _source.BlockInvariant(".Apply({1}({0} => ", _closureName, delegateString);
                }

                _applyDisposable = new DisposableAction(() =>
                {
                    blockDisposable.Dispose();
                    _source.AppendLineInvariant("))");
                });
            }
        }
Example #2
0
        /// <summary>
        /// Outputs SuppressMessage attributes using the provided <see cref="IndentedStringBuilder"/>, and a list of suppressions.
        /// </summary>
        /// <param name="writer">An <see cref="IndentedStringBuilder"/> instance.</param>
        /// <param name="analyzerSuppressions">A list of analyzers definitions in the format of "Category|AnalyzerId"</param>
        internal static void Generate(IIndentedStringBuilder writer, string[] analyzerSuppressions)
        {
            var suppresses = from suppress in analyzerSuppressions
                             let parts = suppress.Split('|', '-')
                                         where parts.Length == 2
                                         let category                   = parts[0]
                                                                 let id = parts[1]
                                                                          select "[global::System.Diagnostics.CodeAnalysis.SuppressMessage(\"{0}\", \"{1}\", Justification=\"Generated code\")]".InvariantCultureFormat(category, id);

            foreach (var suppress in suppresses)
            {
                writer.AppendLineInvariant(suppress);
            }
        }
Example #3
0
        /// <summary>
        /// Outputs #pragma warning disable statements using the provided <see cref="IndentedStringBuilder"/>, and a list of suppressions.
        /// </summary>
        /// <param name="writer">An <see cref="IndentedStringBuilder"/> instance.</param>
        /// <param name="analyzerSuppressions">A list of analyzers definitions in the format of "Category|AnalyzerId"</param>
        internal static void GenerateCSharpPragmaSupressions(IIndentedStringBuilder writer, string[] analyzerSuppressions)
        {
            var suppresses = from suppress in analyzerSuppressions
                             let parts = suppress.Split('|', '-')
                                         where parts.Length == 2
                                         let category = parts[0]
                                                        where category == "csharp"
                                                        let id = parts[1]
                                                                 select $"#pragma warning disable {id}";

            foreach (var suppress in suppresses)
            {
                writer.AppendLineInvariant(suppress);
            }
        }