Пример #1
0
        public IEnumerable <CodeFix> GetFixes(SemanticModel semanticModel, IReadOnlyList <SyntaxBase> matchingNodes)
        {
            if (matchingNodes.OfType <ParameterDeclarationSyntax>().FirstOrDefault() is not {
            } parameterSyntax ||
                semanticModel.GetSymbolInfo(parameterSyntax) is not ParameterSymbol parameterSymbol ||
                parameterSymbol.HasDecorator(decoratorName))
            {
                yield break;
            }
            if (!supportedTypes.Any(t => parameterSyntax.ParameterType?.TypeName == t))
            {
                yield break;
            }

            var decorator       = SyntaxFactory.CreateDecorator(decoratorName, decoratorParams);
            var decoratorText   = $"{decorator.ToText()}{Environment.NewLine}";
            var newSpan         = new TextSpan(parameterSyntax.Span.Position, 0);
            var codeReplacement = new CodeReplacement(newSpan, decoratorText);

            yield return(new CodeFix(
                             $"Add @{decoratorName}",
                             false,
                             CodeFixKind.Refactor,
                             codeReplacement));
        }
Пример #2
0
            private void AddCodeFix(TextSpan span, string name)
            {
                var codeReplacement = new CodeReplacement(span, name);
                var fix             = new CodeFix($"Remove unnecessary string interpolation", true, codeReplacement); // TODO: localize

                spanFixes[span] = fix;
            }
Пример #3
0
            private void AddCodeFix(TextSpan span, string name)
            {
                var codeReplacement = new CodeReplacement(span, name);
                var fix             = new CodeFix(CoreResources.SimplifyInterpolationFixTitle, true, CodeFixKind.QuickFix, codeReplacement);

                spanFixes[span] = fix;
            }
        private async Task <IHttpActionResult> Save(CodeReplacementDTO codeReplacementDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var isNew = codeReplacementDTO.CodeReplacementId == Guid.Empty;

            CodeReplacement codeReplacement;

            if (isNew)
            {
                codeReplacement = new CodeReplacement();
                DbContext.Entry(codeReplacement).State = EntityState.Added;
                codeReplacementDTO.SortOrder           = (await DbContext.CodeReplacements.Where(o => o.EntityId == codeReplacementDTO.EntityId).MaxAsync(o => (int?)o.SortOrder) ?? 0) + 1;
            }
            else
            {
                codeReplacement = await DbContext.CodeReplacements.SingleOrDefaultAsync(o => o.CodeReplacementId == codeReplacementDTO.CodeReplacementId);

                if (codeReplacement == null)
                {
                    return(NotFound());
                }

                DbContext.Entry(codeReplacement).State = EntityState.Modified;
            }

            ModelFactory.Hydrate(codeReplacement, codeReplacementDTO);

            await DbContext.SaveChangesAsync();

            return(await Get(codeReplacement.CodeReplacementId));
        }
Пример #5
0
 private CodeReplacement?GetCodeReplacement(FunctionCallSyntax functionCallSyntax)
 {
     if (RewriteConcatToInterpolate(functionCallSyntax) is StringSyntax newSyntax)
     {
         return(CodeReplacement.FromSyntax(functionCallSyntax.Span, newSyntax));
     }
     return(null);
 }
Пример #6
0
        public static void NoSunDecrease(PvZProcess process)
        {
            CodeReplacement cr = new CodeReplacement(0x41BA76, 6);

            cr.Activate();
        }