私はルーデルを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)
。ただし、バッファに奇数の名前が付けられている場合は、ドキュメントオブジェクトから名前を抽出する必要があります(Rudelは内部でドキュメントオブジェクトを使用して、共有しているものを表します)。したがって、うまく(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
値を使用して、一般的なEmacsメカニズムbuffer-file-name
を使用してメジャーモードを決定します。