[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08195] 自作モードにおいてスペースでインデントする方法



ふるかわです。

setq と四則演算くらいしか書いたことありませんが、自作のモードを書こうと
しています。

そのモードの中で、タブではなく、スペースでインデントさせる方法を教えてい
ただけませんでしょうか。

smart-indentation が評価されるとき、*foo-indent-tabs-mode* は参照されて
るのですか。c-mode.l 等を見ても、この変数を直接参照している関数は見当た
らないので「組み込み関数が自動的に見てくれるんだろう」と思い込んで、以下
のようなのを書いてみました。

私の意図では、スペースのみでインデントさせるつもりなのですが、
"M-x foo-indent" としても、タブでインデントされてしまいます。

--- 例 ----
(provide "foo-mode")
(in-package "editor")
(export '(*foo-mode-hook* *foo-indenta-tabs-mode*))
(export '(foo-mode foo-indent))

(defvar *foo-mode-hook* nil)
(defvar *foo-indent-tabs-mode* nil)

(defun foo-mode ()
  (interactive)
  (kill-all-local-variables)
  (setq mode-name "foo")
  (setq buffer-mode 'foo-mode)
  (run-hooks '*foo-mode-hook*))

(defun foo-indent ()
  (interactive)
  (smart-indentation 4))
--- 例おわり ----

スペースでインデントさせる方法か、それが書かれている文書を教えていただけ
れば、とても幸せです。

ふるかわとおる

Index Home