[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master fe578ae: * lisp/textmodes/css-mode.el (css-completi
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] master fe578ae: * lisp/textmodes/css-mode.el (css-completion-at-point): Auto-insert |
Date: |
Tue, 28 Feb 2017 09:29:11 -0500 (EST) |
branch: master
commit fe578ae4ddccbc4736b1e17ec4ecf2317fe03b0e
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
* lisp/textmodes/css-mode.el (css-completion-at-point): Auto-insert
": ;" after completing a property.
---
lisp/textmodes/css-mode.el | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index cd86db6..7a9454f 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -696,7 +696,8 @@ cannot be completed sensibly: `custom-ident',
;; Even though pseudo-elements should be prefixed by ::, a
;; single colon is accepted for backward compatibility.
"\\(?:\\(:" (regexp-opt (append css-pseudo-class-ids
- css-pseudo-element-ids) t)
+ css-pseudo-element-ids)
+ t)
"\\|\\::" (regexp-opt css-pseudo-element-ids t) "\\)"
"\\(?:([^)]+)\\)?"
(if (not sassy)
@@ -965,10 +966,22 @@ pseudo-elements, pseudo-classes, at-rules, and
bang-rules."
(seq-let (prop-beg prop-end prop-table) (css--complete-property)
(seq-let (sel-beg sel-end sel-table) (css--complete-selector)
(when (or prop-table sel-table)
+ ;; FIXME: If both prop-table and sel-table are set but
+ ;; prop-beg/prop-end is different from sel-beg/sel-end
+ ;; we have a problem!
`(,@(if prop-table
(list prop-beg prop-end)
(list sel-beg sel-end))
- ,(completion-table-merge prop-table sel-table)))))))
+ ,(completion-table-merge prop-table sel-table)
+ :exit-function
+ ,(lambda (string status)
+ (and (eq status 'finished)
+ prop-table
+ (test-completion string prop-table)
+ (not (and sel-table
+ (test-completion string sel-table)))
+ (progn (insert ": ;")
+ (forward-char -1))))))))))
;;;###autoload
(define-derived-mode css-mode prog-mode "CSS"
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master fe578ae: * lisp/textmodes/css-mode.el (css-completion-at-point): Auto-insert,
Stefan Monnier <=