summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimen Heggestøyl <simenheg@gmail.com>2017-06-17 09:28:43 +0200
committerSimen Heggestøyl <simenheg@gmail.com>2017-06-17 10:38:29 +0200
commit8960f6aa36000a8d6014e0c7371ee96ba148965a (patch)
tree5c59504139d772abd49885af93f38c745bfbf025
parent27c194995b460b79e8e62e0d21e85d87df664649 (diff)
downloademacs-8960f6aa36000a8d6014e0c7371ee96ba148965a.tar.gz
Complete CSS property values less eagerly (Bug#27392)
* lisp/textmodes/css-mode.el (css--complete-property-value): Be less eager by looking for a colon after the property which values are being completed for. * test/lisp/textmodes/css-mode-tests.el (css-test-complete-property): Add a test case ensuring that properties that are prefixes of other properties don't hinder further completion.
-rw-r--r--lisp/textmodes/css-mode.el9
-rw-r--r--test/lisp/textmodes/css-mode-tests.el7
2 files changed, 11 insertions, 5 deletions
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 0beaaaa32f1..4952533e834 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -1289,10 +1289,11 @@ the string PROPERTY."
(let ((property
(save-excursion
(re-search-backward ":[^/]" (line-beginning-position) t)
- (let ((property-end (point)))
- (skip-chars-backward "-[:alnum:]")
- (let ((property (buffer-substring (point) property-end)))
- (car (member property css-property-ids)))))))
+ (when (eq (char-after) ?:)
+ (let ((property-end (point)))
+ (skip-chars-backward "-[:alnum:]")
+ (let ((prop (buffer-substring (point) property-end)))
+ (car (member prop css-property-ids))))))))
(when property
(let ((end (point)))
(save-excursion
diff --git a/test/lisp/textmodes/css-mode-tests.el b/test/lisp/textmodes/css-mode-tests.el
index b4666ae72d7..68946a01c06 100644
--- a/test/lisp/textmodes/css-mode-tests.el
+++ b/test/lisp/textmodes/css-mode-tests.el
@@ -159,7 +159,12 @@
(insert "body { f")
(let ((completions (css-mode-tests--completions)))
(should (member "filter" completions))
- (should-not (member "position" completions)))))
+ (should-not (member "position" completions))))
+ ;; Bug#27392
+ (with-temp-buffer
+ (css-mode)
+ (insert "html { grid")
+ (should (> (length (css-mode-tests--completions)) 0))))
(ert-deftest css-test-foreign-completions ()
(let ((other-buffer-1 (generate-new-buffer "1"))