Я пытаюсь познакомиться с Emacs Lisp, его синтаксисом, структурами данных и т. Д., Поэтому мне было интересно, какие есть встроенные пакеты, источник которых может помочь мне лучше понять, как использовать язык и изучать его идиомы?
12
info
файла? Некоторые встроенные функции объяснены и подробно описаны.Ответы:
Я могу порекомендовать Ruby Mode in
ruby-mode.el
и Python Mode inpython.el
, для некоторых аспектов их реализации. Первый является особенно хорошим источником для расширенного кода отступов и навигации, основанного на новом движке SMIE. Однако ни один из них не использует структуры данных каким-либо особенно умным или продвинутым способом.Я также рекомендовал бы некоторые части Org Mode 8, для его дизайна. В частности, структура экспорта в Org 8 показывает, как создать универсальный расширяемый объектно-подобный каркас в простом Emacs Lisp. Тем не менее, я рекомендовал бы против большинства других частей Org, по причинам, уже указанным в комментариях: он старый и полон устаревших и вредных методов (например,
find-file-noselect
для чтения файлов не в интерактивном режиме).Говорят, что у Gnus также есть хороший код, но, опять же, я буду осторожен, чтобы определить, насколько хорошо поддерживается конкретный фрагмент кода, на который вы смотрите.
Поскольку сам Emacs очень старый и во многих местах поддерживается только поверхностно, среднее качество его кода на самом деле довольно низкое по современным стандартам. Там много унаследованных вещей. Например, даже в основных частях, таких как байтовый компилятор, вы найдете «TODO» и «DUNNO», датирующиеся годами, если не десятилетиями. Кроме того, поскольку Emacs очень медленно отбирает код и разработчиков из «внешнего» сообщества из-за ограничительных политик, установленных FSF, общее качество увеличивается только медленно.
В общем, вы, скорее всего, найдете хороший код в популярных сторонних пакетах, поддерживаемых известными членами сообщества, например, Magit, Projectile и т. Д.
источник
debbugs
?) ...Для основных идиом взглянуть на simple.el
источник