>From 4ad8f21f11ed9c48f986cfdd8d50883389fa8d2a Mon Sep 17 00:00:00 2001 From: Etienne Prud'homme Date: Fri, 1 Apr 2016 15:09:15 -0400 Subject: [PATCH] Support completion of at-rules in SCSS mode --- lisp/textmodes/css-mode.el | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index cbef3d4..02a5b11 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -56,6 +56,15 @@ '("charset" "font-face" "import" "media" "namespace" "page") "Identifiers that appear in the form @foo.") +(defconst scss-at-ids + '("at-root" "content" "debug" "each" "else" "else if" "error" "extend" "for" + "function" "if" "import" "include" "mixin" "return" "warn" "while") + "Additional identifiers that appear in the form @foo in SCSS.") + +(defvar css--at-ids css-at-ids + "List of at-rules for the current mode.") +(make-variable-buffer-local 'css--at-ids) + (defconst css-bang-ids '("important") "Identifiers that appear in the form !foo.") @@ -759,7 +768,7 @@ cannot be completed sensibly: `angle', `element-reference', (let ((pos (point))) (skip-chars-backward "-[:alnum:]") (when (eq (char-before) ?\@) - (list (point) pos css-at-ids))))) + (list (point) pos css--at-ids))))) (defvar css--property-value-cache (make-hash-table :test 'equal :size (length css-property-alist)) @@ -969,6 +978,7 @@ pseudo-elements, pseudo-classes, at-rules, and bang-rules." (setq-local comment-continue " *") (setq-local comment-start-skip "/[*/]+[ \t]*") (setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*+/\\)") + (setq-local css--at-ids (append css-at-ids scss-at-ids)) (setq-local css--bang-ids (append css-bang-ids scss-bang-ids)) (setq-local font-lock-defaults (list (scss-font-lock-keywords) nil t))) -- 2.8.0