Avante avanterules guide - paulopatto/dotfiles GitHub Wiki
O Avante.nvim é um plugin para Neovim que oferece funcionalidades de codificação assistida por IA, inspirado no Cursor AI IDE. Ele permite personalizar o comportamento da IA por meio de arquivos .avanterules
, que são modelos Jinja usados para definir prompts em diferentes modos, como planejamento, edição e sugestão.
Outline
Este guia detalha:
- como configurar esses arquivos
- compara os
.avanterules
com os recursos @Docs e .mdc do Cursor IDE - fornece exemplos práticos
- lista todas as referências relevantes.
Os arquivos .avanterules
são modelos Jinja que personalizam os prompts enviados à IA do Avante.nvim.
Eles são nomeados com base no modo (ex.: planning, editing, suggesting) e, opcionalmente, no tipo de arquivo (ex.: typescript.planning.avanterules). Esses arquivos são colocados na raiz do projeto e detectados automaticamente pelo plugin com base no contexto do buffer atual.
- Flexibilidade: Permitem definir instruções específicas para a IA, como seguir padrões de projeto ou otimizar código.
- Modularidade: Suportam herança de modelos base (ex.: base.avanterules) para reutilização.
- Integração: Funcionam com diferentes provedores de IA configurados no Avante.nvim.
Uma vez instalado e configurado o Avante.nvim podemos seguir os seguintes passos para a configuração e uso de .avanterules.
Crie arquivos .avanterules
na raiz do projeto com nomes que correspondam ao modo e, se necessário, ao tipo de arquivo. Por exemplo:
-
suggesting.avanterules
: Para sugestões gerais. -
typescript.planning.avanterules
: Para planejamento em arquivos TypeScript.
Use a sintaxe Jinja para definir prompts. Veaj alguns exemplos:
1. Prompt para Modo de Sugestão
-
Arquivo:
suggesting.avanterules
- Uso: Garante que sugestões sejam claras e otimizadas.
{% extends "base.avanterules" %}
{% block extra_prompt %}
Sempre forneça sugestões que melhorem a legibilidade e o desempenho do código. Priorize soluções que sigam as convenções do projeto.
{% endblock %}
2. Prompt para Planejamento em TypeScript
-
Arquivo:
typescript.planning.avanterules
- Uso: Orienta a IA a planejar código TypeScript com boas práticas.
{% extends "base.avanterules" %}
{% block extra_prompt %}
Considere as melhores práticas do TypeScript ao planejar a estrutura do código. Inclua tipagem forte e evite any sempre que possível.
{% endblock %}
3. Prompt para Modo de Edição
- Arquivo: snippets.editing.avanterules
- Uso: Mantém edições alinhadas com o estilo do projeto.
{% extends "base.avanterules" %}
{% block extra_prompt %}
Certifique-se de que todas as edições mantenham a consistência do código e sigam os padrões do projeto, como formatação e nomenclatura.
{% endblock %}
O Avante.nvim verifica a raiz do projeto (geralmente onde está o .git/
) para encontrar arquivos .avanterules
. Exemplo de estrutura:
project_dir/
├── .git/
├── typescript.planning.avanterules
├── snippets.editing.avanterules
├── suggesting.avanterules
├── tests/
└── src/
Abra um arquivo no Neovim e use comandos do Avante.nvim (ex.: :AvanteSuggest
) para verificar se os prompts personalizados estão sendo aplicados. O plugin carrega automaticamente o arquivo .avanterules
correspondente ao modo e tipo de arquivo.
Gerado com a ajuda da IA Grok 3.
O Cursor IDE oferece recursos como @Docs e .mdc para melhorar a experiência de codificação assistida por IA. Abaixo, uma comparação detalhada com os avanterules do Avante.nvim:
@Docs no Cursor IDE
- Função: Permite referenciar documentação externa diretamente no código, usando a sintaxe @LibraryName ou mencionando o nome do documento.
- Exemplo: Digitar @React pode trazer documentação oficial do React.
- Uso: Ideal para acessar rapidamente informações externas sem sair do IDE.
- Integração: Indexa links fornecidos pelo usuário no workspace (Cursor @Doc).
.mdc no Cursor IDE
- Função: Arquivos de regras MDC (Machine-Driven Code) que definem como a IA deve lidar com padrões de código ou fornecer sugestões.
- Exemplo: Um arquivo .mdc pode especificar como formatar código em um projeto Rails.
- Uso: Colocado no diretório .cursor/rules para personalizar o comportamento da IA (MDC Rules).
- Flexibilidade: Focado em regras estruturadas, mas menos dinâmico que prompts personalizados.
avanterules no Avante.nvim
- Função: Modelos Jinja que personalizam prompts para modos específicos (planejamento, edição, sugestão).
- Exemplo: Um arquivo editing.avanterules pode garantir que edições sigam padrões de projeto.
- Uso: Colocado na raiz do projeto, detectado automaticamente pelo plugin.
- Flexibilidade: Altamente personalizável, mas exige conhecimento de Jinja e configuração manual.
- Foco: avanterules são voltados para prompts dinâmicos, enquanto @Docs foca em documentação e .mdc em regras fixas.
- Integração: @Docs e .mdc são mais integrados ao fluxo do Cursor IDE, enquanto avanterules exigem configuração explícita.
- Complexidade: avanterules oferecem maior controle, mas demandam mais esforço para configurar comparado à simplicidade de @Docs.
Benefícios
- Personalização Avançada: avanterules permitem adaptar a IA a necessidades específicas do projeto.
- Integração com Neovim: Ideal para usuários que preferem o fluxo de trabalho do Neovim.
- Suporte a Múltiplos Provedores: Funciona com diferentes APIs de IA, como OpenAI ou Claude.
Limitações
- Curva de Aprendizado: Configurar Jinja requer conhecimento técnico.
- Falta de Integração Direta: Não suporta @Docs ou .mdc, exigindo soluções alternativas para documentação externa.
- Dependência de Configuração Manual: Diferente do Cursor IDE, que automatiza mais processos.
Avante.nvim Wiki Avante.nvim Templates Cursor AI IDE Features Cursor AI IDE Documentation MDC Rules in Cursor Forum Exploring Cursor @Doc Feature