Trabalho em muitos projetos C diferentes, com estilos únicos de recuo. Como faço para o Emacs fazer configurações de recuo por projeto sem poluir as árvores do projeto upstream com .dir-locals.el
arquivos? Eu quero combinar os projetos usando seus caminhos no disco.
indentation
artagnon
fonte
fonte
.dir-locals.el
. Pode haver colegas de trabalho que gostariam dessa idéia?Respostas:
.dir-locals.el
é o meu método preferido quando é possível, especialmente se aplica a todos os usuários do Emacs que trabalham nesse projeto.Para projetos hostis aos usuários do Emacs ou que não desejam
.dir-locals.el
arquivos, ou se você deseja ter preferências pessoais (presumivelmente não identações) que não se apliquem a outras pessoas, se você usar um sistema de controle de versão distribuído, uma opção é para sempre trabalhar em ramos pessoais que tenham o seu.dir-locals.el
. No entanto, não sei como usar um DCVS que torne isso indolor.Outra opção é não fazer o check-in dos
.dir-locals.el
arquivos. Por exemplo, com git, adicione-o a.git/info/exclude
. Isso é doloroso quando você tem muitos checkouts de um projeto, é claro.O que eu fiz onde
.dir-locals.el
não havia uma opção é adicionar um gancho que compara osbuffer-file-name
valores conhecidos.(Aviso: código digitado diretamente no meu navegador, pois não tenho acesso ao meu código real no momento.)
fonte
.dir-locals.el
a.git/info/exclude
parece ser uma boa opção..gitignore
raiz de um projeto?.dir-locals.el
ao seu gitignore global em~/.config/git/ignore
.Você não pode convencer projetos upstream como llvm e linux a fazer check-in em
.dir-locals.el
.Uma solução elaborada para o problema:
Utilizado da seguinte forma:
Eu tenho uma macro semelhante para outros modos de idioma também.
fonte
É difícil manter a distribuição .dir-locals.el em diferentes projetos.
Meu jeito é bem simples, coloque todo o código em um ~ / .custom.el.
Basicamente, o código será executado no gancho no modo prog (ou no seu gancho no modo principal) e faça o seguinte:
Uso esse método há um ano.
Aqui está o código (chame my-setup-develop-environment em prog-mode-hook):
fonte
A maneira normal de fazer isso é usando
.dir-locals
. É por isso que eles foram introduzidos em primeiro lugar. Por que não? Que eu saiba, a maioria das ferramentas relacionadas ao projeto tendem a manter suas configurações no diretório raiz do projeto: git, svn, Eclipse e muitos outros…Só não se esqueça de adicionar o arquivo
.gitignore
ou similar.fonte
Eu uso palpite-style.el .
É muito bom adivinhar o estilo de recuo preferido de um arquivo.
fonte