静的補完と動的補完を一緒にやってみた

前に作っていた奴に静的補完のも付けてみた。多少よくなった。

(defun lisp-indent-line-and-complete-symbol-loop()
  (interactive "*")
  (lisp-indent-line)
  (if (looking-at "\\_>");カーソル前が、補完可能なら
	  (unless (expand-abbrev)
		(let (key)
		  (while (lisp-complete-symbol);ループでlispのシンボルを補完し続ける
			(refresh-screen)		;補完された文字を更新する
			(lisp-complete-symbol);補完候補が一つで即座に補完された場合のために
			(setq key (read-char ed:*keyboard*));キーボードから一文字読み取る
			(unless (and (eq (lookup-key-command key) 'self-insert-command)
						 ;入力されたキーがコマンドでないか確かめる↑
						 (or (syntax-word-p key)
							 (syntax-symbol-p key)))
			  (unread-char key);上の条件に合わなければ、keyを削除して
			  (return));ループを抜ける
			(insert key);コマンドでないときにはキーを画面に挿入
			)))))