aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2017-02-28 09:29:06 -0500
committerStefan Monnier2017-02-28 09:29:06 -0500
commitfe578ae4ddccbc4736b1e17ec4ecf2317fe03b0e (patch)
tree5245e0f6d7d72ef73db56f1a57a036fbfd9b9e32
parent0e355e781616936759cff8e6a46adb01760d4211 (diff)
downloademacs-fe578ae4ddccbc4736b1e17ec4ecf2317fe03b0e.tar.gz
emacs-fe578ae4ddccbc4736b1e17ec4ecf2317fe03b0e.zip
* lisp/textmodes/css-mode.el (css-completion-at-point): Auto-insert
": ;" after completing a property.
-rw-r--r--lisp/textmodes/css-mode.el17
1 files changed, 15 insertions, 2 deletions
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index cd86db639ab..7a9454f7f3c 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -696,7 +696,8 @@ cannot be completed sensibly: `custom-ident',
696 ;; Even though pseudo-elements should be prefixed by ::, a 696 ;; Even though pseudo-elements should be prefixed by ::, a
697 ;; single colon is accepted for backward compatibility. 697 ;; single colon is accepted for backward compatibility.
698 "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids 698 "\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids
699 css-pseudo-element-ids) t) 699 css-pseudo-element-ids)
700 t)
700 "\\|\\::" (regexp-opt css-pseudo-element-ids t) "\\)" 701 "\\|\\::" (regexp-opt css-pseudo-element-ids t) "\\)"
701 "\\(?:([^)]+)\\)?" 702 "\\(?:([^)]+)\\)?"
702 (if (not sassy) 703 (if (not sassy)
@@ -965,10 +966,22 @@ pseudo-elements, pseudo-classes, at-rules, and bang-rules."
965 (seq-let (prop-beg prop-end prop-table) (css--complete-property) 966 (seq-let (prop-beg prop-end prop-table) (css--complete-property)
966 (seq-let (sel-beg sel-end sel-table) (css--complete-selector) 967 (seq-let (sel-beg sel-end sel-table) (css--complete-selector)
967 (when (or prop-table sel-table) 968 (when (or prop-table sel-table)
969 ;; FIXME: If both prop-table and sel-table are set but
970 ;; prop-beg/prop-end is different from sel-beg/sel-end
971 ;; we have a problem!
968 `(,@(if prop-table 972 `(,@(if prop-table
969 (list prop-beg prop-end) 973 (list prop-beg prop-end)
970 (list sel-beg sel-end)) 974 (list sel-beg sel-end))
971 ,(completion-table-merge prop-table sel-table))))))) 975 ,(completion-table-merge prop-table sel-table)
976 :exit-function
977 ,(lambda (string status)
978 (and (eq status 'finished)
979 prop-table
980 (test-completion string prop-table)
981 (not (and sel-table
982 (test-completion string sel-table)))
983 (progn (insert ": ;")
984 (forward-char -1))))))))))
972 985
973;;;###autoload 986;;;###autoload
974(define-derived-mode css-mode prog-mode "CSS" 987(define-derived-mode css-mode prog-mode "CSS"