0

这个问题(https://github.com/nex3/sass-mode/issues/5 )已经解释了我想说的,请看一下。有什么办法可以解决。

当我按下退格键时,例如在 cj 之后,它总是更深一层而不是同一层,除了控制缓冲区给出消息“标记集”之外,什么都没有发生。当我检查时,我看到它绑定到 haml-electric-backspace。因此,我可以创建新行并将光标移动到与最后一行相同的缩进级别的唯一两种方法是 ret tab tab 或 cj 后跟 cb cb 或 tab tab。我认为 cj 应该默认为相同的级别,并且退格应该具有默认的 emacs 行为。

4

2 回答 2

3

我发现了一堆 sass 模式的错误。

这是我保存在 .emacs 中的一些代码,可能会有所帮助:

(defconst sass-line-keywords
  '(("@\\(\\w+\\)"    0 font-lock-keyword-face sass-highlight-directive)
("/[/*].*"  0 font-lock-comment-face)
("[=+]\\w+" 0 font-lock-variable-name-face sass-highlight-script-after-match)
("!\\w+"    0 font-lock-variable-name-face sass-highlight-script-after-match)
(":\\w+"    0 font-lock-variable-name-face)
("\\w+\s*:" 0 font-lock-variable-name-face)
("\\(\\w+\\)\s*="  1 font-lock-variable-name-face sass-highlight-script-after-match)
("\\(:\\w+\\)\s*=" 1 font-lock-variable-name-face sass-highlight-script-after-match)
(".*"      sass-highlight-selector)))

(defconst sass-selector-font-lock-keywords
  '( ;; Attribute selectors (e.g. p[foo=bar])
("\\[\\([^]=]+\\)" (1 font-lock-variable-name-face)
 ("[~|$^*]?=\\([^]=]+\\)" nil nil (1 font-lock-string-face)))
("&"       0 font-lock-constant-face)
("\\.\\w+" 0 font-lock-type-face)
("#\\w+"   0 font-lock-keyword-face)
;; Pseudo-selectors, optionally with arguments (e.g. :first, :nth-child(12))
("\\(::?\\w+\\)" (1 font-lock-variable-name-face)
 ("(\\([^)]+\\))" nil nil (1 font-lock-string-face)))))
(defconst sass-non-block-openers
  '("^.*,$" ;; Continued selectors
"^ *@\\(extend\\|debug\\|warn\\|include\\|import\\)" ;; Single-line mixins
"^ *[$!]"     ;; Variables
".*[^\s-]+: [^\s-]" ;; a setting of some sort
))

我认为问题出在 sass-non-block-openers 上。对不起,我只是向你倾倒了一些代码。无论如何,希望这会有所帮助。

于 2014-01-26T07:44:56.477 回答
0

when finished, call RET, not C-j

backspace will step down level

everything okay AFAIS, no bug

于 2012-08-15T18:54:11.790 回答