/ / Snap5 ChangeLog

xyzzyでcss-mode

cssを編集する際に便利なモード。

こちらでカスタマイズの方法が書いてあったので拝借。

;;; css-enhance

; library
(load-library "css-mode")
; indent (お好みでどうぞ)
(defvar *css-indent-level* 4)
(defvar *css-continued-statement-offset* 4)
(defvar *css-brace-offset* -4)
(defvar *css-brace-imaginary-offset* 0)
(defvar *css-argdecl-indent* 0)
(defvar *css-label-offset* 0)
; keymap (お好みでどうぞ)
(define-key *css-mode-map* #\{ 'c-electric-insert)
(define-key *css-mode-map* #\: 'c-electric-insert)
(define-key *css-mode-map* #\} 'c-electric-close)
(define-key *css-mode-map* #\C-h 'backward-delete-char-untabify-or-selection)
(define-key *css-mode-map* #\TAB 'c-indent-line)
(define-key *css-mode-map* #\C-M-q 'indent-sexp)
(define-key *css-mode-map* #\RET 'c-newline-and-indent)
(define-key *css-mode-map* #\C-. 'ed::css-completion)

; function for hook
(defun css-enhance ()
  ;; indent command
  (make-local-variable 'mode-specific-indent-command)
  (make-local-variable 'c-comment-indent-variable)
  (setq c-comment-indent-variable 'c-comment-indent)
  (setq mode-specific-indent-command 'c-indent-line)
  ; indent
  (make-local-variable 'c-indent-level)
  (make-local-variable 'c-continued-statement-offset)
  (make-local-variable 'c-brace-offset)
  (make-local-variable 'c-brace-imaginary-offset)
  (make-local-variable 'c-argdecl-indent)
  (make-local-variable 'c-label-offset)
  (setq c-indent-level *css-indent-level*)
  (setq c-continued-statement-offset *css-continued-statement-offset*)
  (setq c-brace-offset *css-brace-offset*)
  (setq c-brace-imaginary-offset *css-brace-imaginary-offset*)
  (setq c-argdecl-indent *css-argdecl-indent*)
  (setq c-label-offset *css-label-offset*)
  ; comment
  (setq comment-indent-function 'c-comment-indent)
  (setq comment-start "/* " comment-end " */")
  (setq comment-start-skip "/\\(\\*+\\|/\\)[ \t]*"))
; hook
(add-hook '*css-mode-hook* 'css-enhance)
を.zyzzyにコピーして、再起動。

これで、
改行で、自動的にインデントしてくれる。
TAB indent(今までTABでスペースを空けていたのを整形してくれる)
Ctrl+. 自動補完してくれる。

結構便利ですね。
これでcssもxyzzyで編集じゃ!

/ / Snap5 ChangeLog