LINUX.ORG.RU

Emacs, Directory Variables, выполнение произвольного кода


0

1

В Emacs есть такая замечательная штука как Directory Variables позволяющая сеттить различные значения переменным в зависимости от того, в какой директории расположен открытый файл.

А как сделать, чтобы не только переменные модифицировались, но и вызывался мой код из обрабатываемого .dir-locals.el (это важно), который бы доделывал то, что значениями переменных не изменить? Что-то типа хука.

★★★

Мне кажется, что надо либо переопределять функции dir-locals-collect-* (либо адвайсы им делать, если это возможно).

Но мне кажется, что нужного тебе результата можно достичь менее извращенными методами.

provaton ★★★★★
()
Ответ на: комментарий от provaton

Я тогда уточню зачем это нужно. Хочу сделать что-то вроде файлов-проектов со специфичными для данного проекта настройками: значениями переменных, хоткеи и т.д.

В существующих найденных решениях для управления проектами меня не устраивает необходимость перечислять возможные проекты в едином конфиге, централизованно. Хочу, чтобы конфиг проекта подхватывался автоматически, если он есть.

Самое близкое для подобного — project-root.el, но там опять же перечисление возможных проектов в едином файле.

kondor ★★★
() автор топика
Ответ на: комментарий от kondor

> В существующих найденных решениях для управления проектами меня не устраивает необходимость перечислять возможные проекты в едином конфиге, централизованно. Хочу, чтобы конфиг проекта подхватывался автоматически, если он есть.

Ну я бы добавил бы в find-file-hook код, который ищет в директории файл с кодом, который необохдимо выполнить. Мне кажется, так будет проще чем приспосабливать directory variables под выполнение кода.

Вообще, подход потенциально небезопасный. Ведь какой-то шутник может написать в файл с кодом и sudo rm -rf /.

provaton ★★★★★
()
Ответ на: комментарий от provaton

В поисках нужного я каким-от образом умудрился пропустить очень похожее — https://launchpad.net/pgrok/. Он выполняет содержимое файла .emacs-prj, найденного вверх по дереву. Остается только докрутить, чтобы хоткеи были buffer-specific в зависимости от принадлежности к проекту.

А над безопасностью в этом случае, да, надо подумать.

Вопрос решен. Спасибо за помощь!

kondor ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.