如何在Emacs sass-mode中修复奇怪的缩进行为

时间:2012-08-15 15:44:37

标签: emacs sass

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

  

当我按下退格键时,例如在c-j之后,它总是变为一个   更深层而不是相同的水平,没有任何事情发生,除了   控制缓冲区给出消息“标记集”。当我检查时,我看到了它   结合haml-electric-backspace。因此我只能创造两种方式   一个新行并将我的光标移动到与该缩进相同的缩进级别   最后一行是ret tab tab或c-j,后跟c-b c-b或tab tab。一世   认为c-j应默认为相同级别,退格应该   拥有默认的emacs行为。

2 个答案:

答案 0 :(得分:3)

我发现了一堆带有sass模式的bug。

以下是我在.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
))

我认为这个问题尤其适用于非封锁开放者。对不起,我只是在给你丢弃一些代码。希望无论如何这都有所帮助。

答案 1 :(得分:0)

完成后,调用RET,而不是C-j

退格将降低级别

一切都好AFAIS,没有错误