mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Support completion of at-rules in SCSS mode
lisp/textmodes/css-mode.el (scss-at-ids): New defconst holding SCSS-specific at-rules. (css--at-ids): New buffer-local variable holding the list of at-rules for the current mode. (css--complete-at-rule): Retrieve at-rules from `css--at-ids`. (scss-mode): Set `css--at-ids'. Copyright-paperwork-exempt: yes
This commit is contained in:
parent
e2c117a28f
commit
728b1c7f13
1 changed files with 12 additions and 1 deletions
|
|
@ -56,6 +56,16 @@
|
||||||
'("charset" "font-face" "import" "media" "namespace" "page")
|
'("charset" "font-face" "import" "media" "namespace" "page")
|
||||||
"Identifiers that appear in the form @foo.")
|
"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
|
(defconst css-bang-ids
|
||||||
'("important")
|
'("important")
|
||||||
"Identifiers that appear in the form !foo.")
|
"Identifiers that appear in the form !foo.")
|
||||||
|
|
@ -759,7 +769,7 @@ cannot be completed sensibly: `angle', `element-reference',
|
||||||
(let ((pos (point)))
|
(let ((pos (point)))
|
||||||
(skip-chars-backward "-[:alnum:]")
|
(skip-chars-backward "-[:alnum:]")
|
||||||
(when (eq (char-before) ?\@)
|
(when (eq (char-before) ?\@)
|
||||||
(list (point) pos css-at-ids)))))
|
(list (point) pos css--at-ids)))))
|
||||||
|
|
||||||
(defvar css--property-value-cache
|
(defvar css--property-value-cache
|
||||||
(make-hash-table :test 'equal :size (length css-property-alist))
|
(make-hash-table :test 'equal :size (length css-property-alist))
|
||||||
|
|
@ -969,6 +979,7 @@ pseudo-elements, pseudo-classes, at-rules, and bang-rules."
|
||||||
(setq-local comment-continue " *")
|
(setq-local comment-continue " *")
|
||||||
(setq-local comment-start-skip "/[*/]+[ \t]*")
|
(setq-local comment-start-skip "/[*/]+[ \t]*")
|
||||||
(setq-local comment-end-skip "[ \t]*\\(?:\n\\|\\*+/\\)")
|
(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 css--bang-ids (append css-bang-ids scss-bang-ids))
|
||||||
(setq-local font-lock-defaults
|
(setq-local font-lock-defaults
|
||||||
(list (scss-font-lock-keywords) nil t)))
|
(list (scss-font-lock-keywords) nil t)))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue