end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

emacsのauto-complete.el ver.1.31 でcssのkey-valueを入力補完

http://cx4a.org/software/auto-complete/changes.ja.html#Changes_v1.3.1

あれっ? auto-complete.elがver.1.00から1.31にバージョンがグッと上がって、cssの属性をサジェストできるようになっている。

css-modeの場合のみ、ac-sourcesにac-source-css-propertyとac-source-css-property-namesを追加すればよさそうなので、 http://d.hatena.ne.jp/sugyan/20120107 の内容をそのまま .emacsに次のように書いたら、いい感じになりました。

;; auto-complete http://code.google.com/p/auto-complete/
(require 'auto-complete)
(require 'auto-complete-config)

;情報源			   ;bufferにある同一modeからsuggest
(setq-default ac-sources '(ac-source-words-in-same-mode-buffers
;			   ac-source-filename	;file name suggest
			   ac-source-abbrev	;.abbrev_defsでsuggest
			   ac-source-dictionary
			   ))
;refer to http://d.hatena.ne.jp/sugyan/20120107
(defvar ac-source-css-property-names
  '((candidates . (loop for property in ac-css-property-alist
                        collect (car property)))))
;css-modeの場合のみ、cssのkey-valueをsuggest
(defun my-css-mode-hook ()
  (add-to-list 'ac-sources 'ac-source-css-property)	   ;cssのkeyのsuggest
  (add-to-list 'ac-sources 'ac-source-css-property-names)) ;cssのvalのsuggest
(add-hook 'css-mode-hook 'my-css-mode-hook)

;auto-completeを使用するmode
(global-auto-complete-mode t)	;←これがtrueの場合、ac-modes の登録要
(setq ac-modes
      (append ac-modes
	      '(perl-mode cperl-mode html-helper-mode sql-mode vbnet-mode
			  css-mode actionscript-mode)))

(define-key ac-completing-map "\C-n" 'ac-next)
(define-key ac-completing-map "\C-p" 'ac-previous)
(setq ac-ignore-case t) ;大文字・小文字を区別しない

全体の.emacsは次のurlにある以前のエントリに貼っておきます。
http://d.hatena.ne.jp/end0tknr/20100815/1281872885