当我的CSS文件中的一行看起来太长时(通常是一个属性后跟一堆值),我想将它们拆分为几个这样的新行(对不起我的低声誉):
https://i.stack.imgur.com/bxXvv.png
但我必须在线之前手动输入空格才能实现。实际上,当我用url
线上的光标点击TAB时,我得到的是:
https://i.stack.imgur.com/r4nxa.png
最糟糕的是,在手动插入空格后,当我在同一行上再次点击TAB时,由于indent-region
,它会回到丑陋的格式。
这不是一个重要的问题,但它真的很痛苦,我真的希望我们能在这里找到一个像样的解决方案。提前谢谢!
M-x版本:
GNU Emacs 25.1.1 (x86_64-apple-darwin16.1.0, NS appkit-1504.60 Version 10.12.1 (Build 16B2555)) of 2016-11-27
编辑: 还尝试了用于css文件和xah-css-mode的web模式。他们都没有成功。
答案 0 :(得分:2)
in
使用css-mode
进行缩进。看起来该场景中的smie
被标记为“: - property”。一种选择是更改:
以包含在该令牌后缩进的另一个规则。
评估以下重新定义似乎给出了您想要的缩进
css-smie-rules
有一个命令(defun css-smie-rules (kind token)
(pcase (cons kind token)
(`(:elem . basic) css-indent-offset)
(`(:elem . arg) 0)
(`(:list-intro . ,(or `";" `"")) t) ;"" stands for BOB (bug#15467).
(`(:before . "{")
(when (or (smie-rule-hanging-p) (smie-rule-bolp))
(smie-backward-sexp ";")
(smie-indent-virtual)))
(`(:before . ,(or "{" "("))
(if (smie-rule-hanging-p) (smie-rule-parent 0)))
;; *** Additional rule ***
(`(:after . ":-property") css-indent-offset)))
可用于确定在给定点使用的缩进规则。
答案 1 :(得分:0)
@jenesaisquoi提到 postfix-expression
并提供了一个非常有用的示例。这是我对自己问题的最终解决方案。
将这些添加到Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Worksheets("LookupLists").Range.Value = ActiveCell.Address
End Sub
文件中:
smie
语法非常自我解释。
也许有一些方法可以修改一个函数而不重写它,但我还不熟悉所有的建议,所以如果我找到一个更优雅的方式我会来回来编辑。
转到jenesaiquoi的答案,找到我们现在可以拥有的最佳解决方案。
我在Github中为init.el
打开了一个问题,(require 'smie)
(defun css-smie-rules (kind token)
(pcase (cons kind token)
(`(:elem . basic) css-indent-offset)
(`(:elem . arg) 0)
(`(:list-intro . ,(or `";" `"")) t) ;"" stands for BOB (bug#15467).
(`(:before . "{")
(when (or (smie-rule-hanging-p) (smie-rule-bolp))
(smie-backward-sexp ";")
(smie-indent-virtual)))
(`(:before . ,(or "{" "("))
(if (smie-rule-hanging-p) (smie-rule-parent 0)))
;; *** Additional rules below ***
(`(:after . ":") css-indent-offset)
(`(:after . ",") css-indent-offset)))
的作者正在研究它。我们很快就会看到对我在问题中提到的缩进的综合支持。