aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorSimen Heggestøyl2016-04-24 11:03:22 +0200
committerSimen Heggestøyl2016-04-24 15:02:05 +0200
commit8e2e252932faf3320f72a0b62136c4606e09ebc3 (patch)
treeaaaaa5b71b2b8ac3fbfc6b27985f1b07c71ce43c /lisp
parent5cb7620027f78a3a0f473972a0584c8ea1791398 (diff)
downloademacs-8e2e252932faf3320f72a0b62136c4606e09ebc3.tar.gz
emacs-8e2e252932faf3320f72a0b62136c4606e09ebc3.zip
Cache results of `css--property-values'
* lisp/textmodes/css-mode.el (css--property-values): Cache computed values. * test/lisp/textmodes/css-mode-tests.el (css-test-property-value-cache): New regression test for the above.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/textmodes/css-mode.el16
1 files changed, 9 insertions, 7 deletions
diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el
index 2a61fe3736b..8a4daac353a 100644
--- a/lisp/textmodes/css-mode.el
+++ b/lisp/textmodes/css-mode.el
@@ -792,13 +792,15 @@ the symbol VALUE-CLASS."
792Completion candidates are looked up in `css-property-alist' by 792Completion candidates are looked up in `css-property-alist' by
793the string PROPERTY." 793the string PROPERTY."
794 (or (gethash property css--property-value-cache) 794 (or (gethash property css--property-value-cache)
795 (seq-mapcat 795 (let ((values
796 (lambda (value) 796 (seq-mapcat
797 (if (stringp value) 797 (lambda (value)
798 (list value) 798 (if (stringp value)
799 (or (css--value-class-lookup value) 799 (list value)
800 (css--property-values (symbol-name value))))) 800 (or (css--value-class-lookup value)
801 (cdr (assoc property css-property-alist))))) 801 (css--property-values (symbol-name value)))))
802 (cdr (assoc property css-property-alist)))))
803 (puthash property values css--property-value-cache))))
802 804
803(defun css--complete-property-value () 805(defun css--complete-property-value ()
804 "Complete property value at point." 806 "Complete property value at point."