Eu uso o Emacs há vários anos, mas só recentemente me deparei com os padrões de codificação . Lá é afirmado:
Não crie o hábito de colocar parênteses próximos nas linhas; Programadores Lisp acham isso desconcertante.
Esse é exatamente o hábito que criei, pois acho que o código é mais fácil de ler. Eu vejo estilos misturados nos pacotes entregues com o Emacs. Minha pergunta é se esse desconcerto é comum à maioria dos programadores elisp.
Edit: Olhando para o meu código, não estou seguindo rigorosamente isso. Então o código seria bastante horrível. É principalmente desonesto, vamos, se e assim por diante. Mas, parece ser contra a corrente, então eu provavelmente deveria parar de fazer isso. Felicidades para a entrada.
(Baseado em opiniões limítrofes, mas parece relacionado ao fechamento de chaves em C ++, onde não deve ser controverso afirmar que geralmente elas devem estar em suas próprias linhas).
fonte
ag
nas fontes lisp me dá 3414 candidatos ao^\s*?\)$
regex que compõem 468 arquivos que pertencem a cerca de 200 pacotes?.el
arquivos tenham menos de 10 instâncias disso. Significando que esses arquivos não o adotam como um estilo, eles apenas o usam em alguns locais convenientes (como finalizar funções muito longas).Respostas:
Bem, uma resposta curta é "não há necessidade". Como o Emacs pode analisar as expressões s do LISP, ele sabe exatamente onde os formulários se equilibram e pode reentrar o código corretamente. Nesse caso, mover o suporte para sua própria linha simplesmente desperdiça uma linha extra de espaço e, ao mesmo tempo, não é idomatic e é dissonante para outros programadores LISP que estão acostumados ao estilo canônico. Como foi mencionado nos comentários, isso não o impede de usar o espaço em branco vertical para separar visualmente os pedaços de código.
Na prática, muitos Emacs usando programadores LISP usam uma variedade de dicas visuais adicionais, como o modo show-paren, que ajudam a navegar por um denso ninho de parênteses de fechamento. Os engenheiros que incluíram módulos como paredit e smart-parens em seu ciclo de edição se uniram ao AST e estão simplesmente manipulando sua estrutura diretamente de uma maneira que as expressões sejam sempre equilibradas e completas.
fonte
O Lisp Style Guide de Riastradh elabora um pouco mais sobre esse tópico específico. Embora ele geralmente desencoraje a colocação de parênteses de fechamento em sua própria linha, ele reconhece várias exceções, como uma linha anterior com um parêntese de fechamento sendo comentado e listas realmente longas que, de outra forma, estragariam constantemente as diferenças ao adicionar novos elementos no início ou no final .
fonte
Escrevo Elisp há cerca de 2-3 anos. No começo, eu estava fazendo a coisa de pendurar, mas desde que descobri a regra que você mencionou, comecei a fazer isso sozinha. E posso dizer agora que é muito mais fácil ler o código quando ele está com estilo adequado.
Eu até escrevi um código de pretexto para LISP aqui: lispy-tab .
E, claro, eu tenho
show-paren-mode
o tempo todo.fonte