Adicionar escopos ActiveRecord a Ctags

Ctags é uma ótima ferramenta para melhorar a navegabilidade de um projeto em um editor de texto. Infelizmente, ele não cria tags para recursos específicos do Rails . Felizmente, podemos adicionar tags personalizadas facilmente!

Para criar uma tag personalizada para escopos ActiveRecord, basta usar a regex-<LANG>opção de linha de comando. A opção requer um padrão de substituição de regex contendo: (1) o padrão que corresponde ao recurso de idioma em nosso código-fonte e (2) a entrada de tag que deve ser criada para ele. No nosso caso, queremos procurar a definição do escopo e criar uma tag com o nome do escopo.

--regex-ruby=/^[ t]*scope[ t]*:([a-zA-Z0-9_]+)/1/

Agora, se virmos um escopo ActiveRecord em nosso editor de texto, podemos pular rapidamente para a definição no modelo!

A opção será aplicada por padrão quando adicionada ao .ctagsarquivo de configuração.

echo '--regex-ruby=/^[ t]*scope[ t]*:([a-zA-Z0-9_]+)/1/' >> ~/.ctags

Veja a documentação do Ctags para mais informações.