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:
-
Padrões de Código
- Estilo de formatação
- Convenções de nomenclatura
- Estrutura de arquivos
-
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
- Crie o diretório
.cursor
- 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
-
Conflitos de Regras
- Verificar prioridade das regras
- Resolver conflitos de formatação
- Ajustar configurações conflitantes
-
Problemas de Desempenho
- Otimizar padrões de exclusão
- Ajustar configurações de cache
- Reduzir complexidade das regras
-
Erros de Validação
- Verificar sintaxe YAML
- Validar expressões regulares
- Confirmar versões compatíveis
Melhores Práticas
Organização de Regras
-
Modularização
includes:
- rules/formatting.yaml
- rules/naming.yaml
- rules/validation.yaml -
Documentação
documentation:
rules:
enabled: true
location: docs/rules
comments:
enabled: true
require_explanation: true
Manutenção
-
Versionamento
version_control:
enabled: true
strategy: semantic
changelog: true -
Atualizações
updates:
auto_update: false
check_frequency: weekly
notification: true
Segurança
-
Controle de Acesso
security:
permissions:
modify_rules:
roles: [admin, lead]
view_rules:
roles: [developer] -
Validação de Alterações
validation:
changes:
require_review: true
min_reviewers: 2
auto_reject_invalid: true