Я не знаю Руделя достаточно хорошо, чтобы дать 100% решение, но то, что вы хотите сделать, это что-то вроде этого:
(add-hook 'rudel-document-attach-hook 'my-rudel-set-mode-appropriately)
(defun my-rudel-set-mode-appropriately (document buffer)
"try to set the mode appropriately"
(set-buffer buffer)
(let ((buffer-file-name ...get-name-from-document...))
(set-auto-mode)))
Только вам нужно заменить часть кода ...get-name-from-document...
на что-то, что соответствует желаемому имени файла, например, если буфер называется myfile.py
, вы можете изменить его на (buffer-name)
, Но если буферы получают нечетные имена, возможно, вам нужно извлечь имя из объекта документа (Рудель внутренне использует объект документа для представления того, чем вы делитесь). Так что, если (buffer-name)
не работает, вы можете попробовать (rudel-suggested-buffer-name document)
.
т.е.. попробуйте приведенный выше код, но используя одну из следующих строк:
(let ((buffer-file-name (buffer-name)))
и
(let ((buffer-file-name (rudel-suggested-buffer-name document)))
set-auto-mode
будет использовать значение buffer-file-name
для определения основного режима, используя общие механизмы Emacs .