Pular para o conteúdo principal

Melhores práticas para .cursor/rules

Este guia explica como configurar e utilizar efetivamente as regras do Cursor para melhorar a organização do código e a colaboração em equipe.

Entendendo .cursor/rules

O que são Regras do Cursor?

As regras do Cursor são configurações que definem:

  1. Padrões de Código

    • Estilo de formatação
    • Convenções de nomenclatura
    • Estrutura de arquivos
  2. Comportamento do Editor

    • Ações automáticas
    • Sugestões de código
    • Validações

Estrutura Básica

version: 1.0
rules:
formatting:
enabled: true
style: default
naming:
enabled: true
conventions: []
validation:
enabled: true
checks: []

Configuração Básica

Criando Arquivo de Regras

  1. Crie o diretório .cursor
  2. Adicione o arquivo rules.yaml:
version: 1.0
project:
name: meu-projeto
language: python

rules:
formatting:
enabled: true
indent_style: space
indent_size: 4
max_line_length: 88

Regras de Formatação

formatting:
enabled: true
style: black
options:
line_length: 88
indent_size: 4
quote_style: double
trailing_comma: true

Padrões Avançados

Convenções de Nomenclatura

naming:
enabled: true
conventions:
classes:
pattern: '^[A-Z][a-zA-Z0-9]*$'
message: "Classes devem usar PascalCase"
functions:
pattern: '^[a-z][a-zA-Z0-9_]*$'
message: "Funções devem usar snake_case"
variables:
pattern: '^[a-z][a-zA-Z0-9_]*$'
message: "Variáveis devem usar snake_case"

Validações de Código

validation:
enabled: true
checks:
- type: complexity
max_complexity: 10
message: "Complexidade ciclomática muito alta"

- type: file_length
max_lines: 500
message: "Arquivo muito longo"

- type: function_length
max_lines: 50
message: "Função muito longa"

Padrões de Projeto

Estrutura de Diretórios

project:
structure:
src:
- "*.py"
- "**/*.py"
tests:
- "test_*.py"
- "**/test_*.py"
docs:
- "*.md"
- "**/*.md"

Dependências

dependencies:
required:
- name: pytest
version: ">=6.0.0"
- name: black
version: ">=21.0.0"

development:
- name: pylint
version: ">=2.0.0"

Otimização

Cache e Desempenho

performance:
cache:
enabled: true
location: .cursor/cache
max_size: 1GB

analysis:
max_file_size: 1MB
exclude_patterns:
- "**/*.pyc"
- "**/__pycache__"

Integração com Ferramentas

integrations:
git:
enabled: true
hooks:
pre-commit:
- format
- lint

ci:
enabled: true
actions:
- validate
- test

Colaboração em Equipe

Compartilhamento de Regras

sharing:
enabled: true
sync:
- formatting
- naming
- validation

team_defaults:
editor:
tab_size: 4
insert_spaces: true

Personalização por Usuário

user_overrides:
allowed:
- editor.theme
- editor.font_size

restricted:
- formatting
- validation

Solução de Problemas

Problemas Comuns

  1. Conflitos de Regras

    • Verificar prioridade das regras
    • Resolver conflitos de formatação
    • Ajustar configurações conflitantes
  2. Problemas de Desempenho

    • Otimizar padrões de exclusão
    • Ajustar configurações de cache
    • Reduzir complexidade das regras
  3. Erros de Validação

    • Verificar sintaxe YAML
    • Validar expressões regulares
    • Confirmar versões compatíveis

Melhores Práticas

Organização de Regras

  1. Modularização

    includes:
    - rules/formatting.yaml
    - rules/naming.yaml
    - rules/validation.yaml
  2. Documentação

    documentation:
    rules:
    enabled: true
    location: docs/rules
    comments:
    enabled: true
    require_explanation: true

Manutenção

  1. Versionamento

    version_control:
    enabled: true
    strategy: semantic
    changelog: true
  2. Atualizações

    updates:
    auto_update: false
    check_frequency: weekly
    notification: true

Segurança

  1. Controle de Acesso

    security:
    permissions:
    modify_rules:
    roles: [admin, lead]
    view_rules:
    roles: [developer]
  2. Validação de Alterações

    validation:
    changes:
    require_review: true
    min_reviewers: 2
    auto_reject_invalid: true