Add automatic alignment rules for CSS and PHP code

This commit is contained in:
Tom Willemse 2016-10-07 01:24:02 +02:00
parent 6b7b0aec5f
commit e878b58967

View file

@ -398,6 +398,90 @@ To start off, first I need to enable lexical binding.
user-mail-address "tom@ryuslash.org") user-mail-address "tom@ryuslash.org")
#+END_SRC #+END_SRC
* Automatic alignment
Emacs has some powerful automatic alignment features.
#+BEGIN_SRC emacs-lisp
(eval-when-compile (require 'align))
#+END_SRC
** CSS
Align CSS files like so:
#+BEGIN_SRC css
body { color: #ffffff; }
.some-class { background-color: #ffffff; }
#some-id { width: 200px; }
.some-more-class {
color: #ffffff;
background-color: #ffffff;
width: 200px;
}
#+END_SRC
#+BEGIN_SRC emacs-lisp
(with-eval-after-load 'align
;; Keep these in order. They are each added to the _front_ of the
;; list and are applied in order. Changing their order will change
;; the results.
(add-to-list 'align-rules-list
`(css-closing-brace
(regexp . ,(rx (group (0+ whitespace)) "}" eol))
(group . (1))
(modes . '(scss-mode css-mode))))
(add-to-list 'align-rules-list
`(css-colons
(regexp . ,(rx bol
(0+ whitespace)
(1+ (any (?a . ?z) ?- ?$))
":"
(group (0+ whitespace))
(0+ nonl)
";"
eol))
(group . (1))
(modes . '(scss-mode css-mode))
(repeat . t)))
(add-to-list 'align-rules-list
`(css-opening-brace
(regexp . ,(rx bol
(0+ whitespace)
(0+ (any ?# ?. ?, ?\s ?& ?: ?-
(?a . ?z) (?A . ?Z) (?0 . ?9)))
(any (?a . ?z) (?A . ?Z) (?0 . ?9))
(group (0+ whitespace))
"{"
(0+ nonl)))
(group . (1))
(modes . '(scss-mode css-mode)))))
#+END_SRC
** PHP
In PHP code it's nice to have any ~=>~ aligned.
#+BEGIN_SRC php
<?php
array(
'foo' => 'bar',
'frob' => 'baz'
);
?>
#+END_SRC
#+BEGIN_SRC emacs-lisp
(with-eval-after-load 'align
(add-to-list 'align-rules-list
`(php-array-arrow
(regexp . ,(rx any (group whitespace) "=>" any))
(group . (1))
(modes . '(php-mode web-mode))
(repeat . t))))
#+END_SRC
* Url browsing * Url browsing
Use Conkeror to open URLs. Use Conkeror to open URLs.