mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-14 09:39:42 +00:00
Don't let `css--property-values' return duplicates
* lisp/textmodes/css-mode.el (css--property-values): Don't return duplicate values. * test/lisp/textmodes/css-mode-tests.el (css-test-property-values): Take the above into account. (css-test-property-values-no-duplicates): Test that duplicates aren't returned by `css--property-values'.
This commit is contained in:
parent
12846626bf
commit
e6d6a99455
@ -793,13 +793,14 @@ Completion candidates are looked up in `css-property-alist' by
|
||||
the string PROPERTY."
|
||||
(or (gethash property css--property-value-cache)
|
||||
(let ((values
|
||||
(seq-mapcat
|
||||
(lambda (value)
|
||||
(if (stringp value)
|
||||
(list value)
|
||||
(or (css--value-class-lookup value)
|
||||
(css--property-values (symbol-name value)))))
|
||||
(cdr (assoc property css-property-alist)))))
|
||||
(seq-uniq
|
||||
(seq-mapcat
|
||||
(lambda (value)
|
||||
(if (stringp value)
|
||||
(list value)
|
||||
(or (css--value-class-lookup value)
|
||||
(css--property-values (symbol-name value)))))
|
||||
(cdr (assoc property css-property-alist))))))
|
||||
(puthash property values css--property-value-cache))))
|
||||
|
||||
(defun css--complete-property-value ()
|
||||
|
@ -24,8 +24,9 @@
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ert)
|
||||
(require 'css-mode)
|
||||
(require 'ert)
|
||||
(require 'seq)
|
||||
|
||||
(ert-deftest css-test-property-values ()
|
||||
;; The `float' property has a flat value list.
|
||||
@ -36,9 +37,10 @@
|
||||
;; The `list-style' property refers to several other properties.
|
||||
(should
|
||||
(equal (sort (css--property-values "list-style") #'string-lessp)
|
||||
(sort (append (css--property-values "list-style-type")
|
||||
(css--property-values "list-style-position")
|
||||
(css--property-values "list-style-image"))
|
||||
(sort (seq-uniq
|
||||
(append (css--property-values "list-style-type")
|
||||
(css--property-values "list-style-position")
|
||||
(css--property-values "list-style-image")))
|
||||
#'string-lessp)))
|
||||
|
||||
;; The `position' property is tricky because it's also the name of a
|
||||
@ -64,6 +66,14 @@
|
||||
(should (equal (gethash "word-wrap" css--property-value-cache)
|
||||
word-wrap-values))))
|
||||
|
||||
(ert-deftest css-test-property-values-no-duplicates ()
|
||||
"Test that `css--property-values' returns no duplicates."
|
||||
;; The `flex' property is prone to duplicate values; if they aren't
|
||||
;; removed, it'll contain at least two instances of `auto'.
|
||||
(should
|
||||
(equal (sort (css--property-values "flex") #'string-lessp)
|
||||
'("auto" "content" "none"))))
|
||||
|
||||
(ert-deftest css-test-value-class-lookup ()
|
||||
(should
|
||||
(equal (sort (css--value-class-lookup 'position) #'string-lessp)
|
||||
|
Loading…
Reference in New Issue
Block a user