Pular para o conteúdo
Skillpedia
Código em geral40 mil · #5349

roslyn-analyzers

Desenvolve e testa ferramentas que analisam e corrigem código C# e VB.NET. Ajuda a garantir a qualidade e a conformidade do código.

O que ela faz

Esta ferramenta ajuda desenvolvedores a criar e melhorar verificações automáticas de código (analisadores Roslyn) e geradores de código. Ela garante que o código siga regras específicas e ajude a encontrar erros.

Quando usar

  • ✓Ao criar novas verificações para encontrar erros comuns no código.
  • ✓Ao corrigir problemas que os analisadores já encontraram.
  • ✓Ao otimizar como o código é gerado automaticamente.

Exemplo do que pedir para a IA

“Como posso criar um analisador que verifica se todas as variáveis têm nomes descritivos?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/roslyn-analyzers/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/roslyn-analyzers/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela funciona inspecionando o código enquanto ele é escrito ou compilado. Usa regras para entender a estrutura e os símbolos do código, identificando padrões que precisam de atenção ou correção.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill roslyn-analyzers

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/roslyn-analyzers/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Analisadores Roslyn e Geradores de Código Fonte

Use este fluxo de trabalho ao adicionar ou alterar um analisador Roslyn, correção de código, gerador de código fonte, testes, dependências ou layout de pacote. Primeiro, inspecione os frameworks de destino do repositório, o gerenciamento central de pacotes, o framework de teste, as convenções de analisadores e geradores, a alocação de IDs de diagnóstico, a localização e a embalagem. Preserve as convenções estabelecidas, a menos que elas entrem em conflito com as regras de compatibilidade abaixo.

Regras de design inegociáveis

  • Prefira a análise baseada em IOperation sempre que possível. Registre o OperationKind mais restrito aplicável e inspecione operações tipadas como IInvocationOperation, IAwaitOperation ou IObjectCreationOperation. Isso geralmente suporta C# e VB com um analisador e fornece acesso direto a símbolos e conversões.
  • Use análise de sintaxe apenas para regras inerentemente sintáticas ou sintaxe não representada adequadamente por IOperation. Um callback de nó de sintaxe já possui um SemanticModel; não chame Compilation.GetSemanticModel ou obtenha outro modelo semântico dele. A criação repetida de modelos semânticos é cara e muitas vezes indica que uma ação de operação ou símbolo é a melhor abstração.
  • Todo analisador deve suportar C#. O suporte a VB.NET é opcional até ser solicitado ou o precedente estabelecido no repositório exigir. Um analisador de operação independente de linguagem pode declarar ambas as linguagens. Se o suporte a VB for prometido, inclua trechos equivalentes em C# e VB nos testes; não infira a correção do VB apenas pela implementação compartilhada.
  • Mantenha os provedores de analisadores e correções de código em assemblies distintos. O projeto do analisador nunca deve referenciar pacotes Roslyn Workspaces. Dependências de Workspaces pertencem apenas aos projetos de correção de código e teste.
  • Callbacks de analisadores devem ser sem estado ou seguros para concorrência. Chame EnableConcurrentExecution(). Faça uma escolha explícita de código gerado com ConfigureGeneratedCodeAnalysis(...); siga a política do repositório em vez de aceitar silenciosamente o padrão.
  • Respeite o cancelamento onde as APIs expõem um token. Não retenha compilações, operações, árvores de sintaxe, símbolos ou modelos semânticos em estado estático.
  • Evite InternalsVisibleTo. Teste analisadores por meio de suas APIs públicas DiagnosticAnalyzer e CodeFixProvider e do harness de teste do Roslyn. Um pequeno auxiliar de analisador pode ser público quando o teste direto é genuinamente útil, mas a maior parte do comportamento deve ser testada de ponta a ponta.
  • Centralize nomes de metadados e nomes de membros em vez de propagar strings mágicas. Use um catálogo estático compartilhado para nomes de tipos totalmente qualificados, namespaces e nomes de membros de API.
  • Nunca identifique um símbolo, incluindo uma classe de atributo, chamando ToDisplayString() e comparando o resultado com um literal de string. Resolva um tipo nomeado esperado do Compilation uma vez por nome de metadado. Para resolver um método, propriedade, campo ou evento, primeiro resolva seu tipo contêiner, depois selecione o membro esperado por nome e assinatura. Compare os símbolos encontrados com SymbolEqualityComparer.Default.Equals(actual, expected). Quando as substituições genéricas forem irrelevantes, compare tipos nomeados, propriedades, campos e eventos por OriginalDefinition; compare métodos após substituir um método de extensão reduzido por ReducedFrom ?? method e, em seguida, obter OriginalDefinition. Normalize os símbolos esperados e encontrados, e inspecione os argumentos de tipo separadamente quando eles fazem parte da correspondência. Strings de exibição são para apresentação, não para identidade, e podem variar com formatação, aliases, qualificação, nulidade e outro contexto.
  • Documente cada ID de diagnóstico. Quando o repositório usa Docfx, coloque a documentação do analisador sob sua árvore Docfx, tipicamente docfx/analyzers, e inclua cada página na tabela de conteúdo relevante.
  • Defina a versão de cada assembly de analisador com precisão suficiente para que cada commit produza uma versão de assembly única. Ao usar Nerdbank.GitVersioning, dê a cada projeto de analisador seu próprio version.json com assemblyVersion.precision definido como revision e garanta que as propriedades MSBuild de todo o repositório não impeçam que esse arquivo seja descoberto.
  • Geradores de código fonte devem implementar IIncrementalGenerator, não ISourceGenerator. Projete o grafo do provedor para que as entradas inalteradas permaneçam em cache e não regenerem a saída.
  • Geradores de código fonte devem usar uma pequena abstração SourceWriter para novas linhas determinísticas, indentação, codificação e saída balanceada. Comece em SourceWriter.cs e adapte seu namespace e detalhes de framework de destino ao repositório receptor.

…

Perguntas frequentes

O que são 'analisadores Roslyn'?

São ferramentas que analisam seu código C# ou VB.NET para encontrar possíveis problemas, sugerir melhorias ou até mesmo corrigir automaticamente.

O que são 'geradores de código'?

São programas que criam código automaticamente com base em outras partes do seu projeto, economizando tempo e reduzindo erros manuais.

Preciso saber muito sobre programação para usar isso?

Esta ferramenta é para desenvolvedores que já escrevem código. Ela ajuda a tornar o código deles melhor e mais eficiente.

Detalhes

Descrição original do autor

Build, review, debug, package, and test Roslyn diagnostic analyzers, code fix providers, and incremental source generators. Use for DiagnosticAnalyzer, CodeFixProvider, IIncrementalGenerator, IOperation analysis, Microsoft.CodeAnalysis dependency pinning, Roslyn test harnesses, C#/VB tests, and analyzer NuGet packaging.

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5349
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas