MagicNumberCodeFix 3.0.11
dotnet add package MagicNumberCodeFix --version 3.0.11
NuGet\Install-Package MagicNumberCodeFix -Version 3.0.11
<PackageReference Include="MagicNumberCodeFix" Version="3.0.11"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="MagicNumberCodeFix" Version="3.0.11" />
<PackageReference Include="MagicNumberCodeFix"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add MagicNumberCodeFix --version 3.0.11
#r "nuget: MagicNumberCodeFix, 3.0.11"
#:package MagicNumberCodeFix@3.0.11
#addin nuget:?package=MagicNumberCodeFix&version=3.0.11
#tool nuget:?package=MagicNumberCodeFix&version=3.0.11
MagicNumberCodeFix
Code fix Roslyn que extrai magic numbers para constantes nomeadas, utilizando um modelo de IA local para sugerir nomes significativos com base no contexto do código.
Diagnósticos suportados
MAGIC_NUMBER_ISSUE— do MagicNumberAnalyserS109— do SonarAnalyzer
Funcionalidades
- Extrai literais numéricos para declarações
constcom nomes em PascalCase sugeridos por IA - Funciona com a lâmpada do Visual Studio (fix individual) e
dotnet format(fix em lote via FixAll) - Suporta todas as localizações de código: corpo de método/construtor, expression-bodied members, top-level statements
- Deduplica constantes dentro do mesmo escopo — reutiliza
constexistente com o mesmo valor - Cache em arquivo garante nomes consistentes em builds com múltiplos target frameworks
- Adiciona comentário
// TODO: Renamequando a IA não está disponível (modo fallback)
Requisitos
Um servidor LLM local compatível com a API do Ollama rodando em http://localhost:11434.
# Instalar Ollama — https://ollama.ai
ollama pull llama3.1:8b
O code fix funciona sem o Ollama rodando, mas usa nomes genéricos (ex: NomeClasse + NomeMetodo + número da linha) com um comentário // TODO: Rename.
Configuração
O code fix lê configurações de %LOCALAPPDATA%\MagicNumberCodeFix\config.json. Se o arquivo não existir, é criado automaticamente com valores padrão na primeira execução.
{
"model": "llama3.1:8b",
"namingStyle": "PascalCase"
}
model
Modelo do Ollama utilizado para sugerir nomes de constantes. Pode ser alterado para qualquer modelo disponível no Ollama (ex: codellama:7b, mistral:7b, qwen2.5:7b).
namingStyle
Estilo de nomenclatura das constantes geradas. Valores possíveis:
PascalCase(padrão) — ex:TaxRate,MaxRetryAttempts,FreeShippingThresholdScreamingSnakeCase— ex:TAX_RATE,MAX_RETRY_ATTEMPTS,FREE_SHIPPING_THRESHOLD
O estilo é aplicado tanto nos nomes sugeridos pela IA quanto nos nomes de fallback (quando a IA não está disponível).
Instalação
dotnet add package MagicNumberCodeFix
Uso
Visual Studio
Magic numbers sinalizados por MAGIC_NUMBER_ISSUE ou S109 exibem uma lâmpada com a opção "Extract magic number to constant". A IA analisa o nome da classe, nome do método e código ao redor para sugerir um nome significativo para a constante.
CLI (fix em lote)
dotnet format analyzers .\MeuProjeto.csproj --diagnostics MAGIC_NUMBER_ISSUE
Também funciona com .sln para processar toda a solução:
dotnet format analyzers .\MinhaSolution.sln --diagnostics MAGIC_NUMBER_ISSUE
Para corrigir diagnósticos do SonarAnalyzer:
dotnet format analyzers .\MeuProjeto.csproj --diagnostics S109
Utiliza o FixAll provider para processar todos os magic numbers de uma vez, com deduplicação por escopo.
Exemplo
Antes:
public double CalculateTotal(double subtotal)
{
var tax = subtotal * 0.21;
if (subtotal >= 150)
return subtotal + tax;
return subtotal + tax + 9.99;
}
Depois:
public double CalculateTotal(double subtotal)
{
const double TaxRate = 0.21;
const double FreeShippingThreshold = 150;
const double ShippingFee = 9.99;
var tax = subtotal * TaxRate;
if (subtotal >= FreeShippingThreshold)
return subtotal + tax;
return subtotal + tax + ShippingFee;
}
Cache
As respostas da IA são armazenadas em %LOCALAPPDATA%\MagicNumberCodeFix\name_cache.txt para garantir nomes determinísticos entre builds e target frameworks. Delete este arquivo para resetar o cache.
Logs
Logs de debug são escritos em %LOCALAPPDATA%\MagicNumberCodeFix\:
codefix.log— operações de fix individual (lâmpada)fixall.log— operações de fix em lote (dotnet format)ollama.log— requisições e respostas da IA
Licença
MIT
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.11 | 129 | 5/18/2026 |