web-mode.el already supports .hbs (handlebars) files. This extension is used for general handlebars files and is used in ember.js projects. Added .hbs to the web-mode.el file extension list.
`with-eval-after-load` was introduced in Emacs 24.4 and its
usage results in a cleaner code.
`eval-after-load` is considered ill-behaved because it is a function,
not a macro, and thus requires the code inside it to be quoted, which
means that it cannot be byte-compiled. It also accepts only one form,
so if you have more than one, you need to use `progn`.
More details - https://stackoverflow.com/questions/21880139/what-is-with-eval-after-load-in-emacs-lisp
There are two reasons for doing this:
- It's inefficient, we don't have to define the pairs every time we
enter the mode.
- It's extremely difficult to override the pair definition, even with
`eval-after-load` and `add-hook`
web-mode's auto paring is in conflict with smartparens. With
smartparens, since the closing '>' is inserted right after the opening
'<' and web-mode is not aware of that, the extra closing '>' would be
inserted. That's very annoying.
- Code indent offset is subjected to personal taste, I think we should
stick to the web-mode default, which is sensible enough, and leave it
to the user to decide.
- `web-mode-disable-autocompletion` is no longer used by web-mode.
- As to `newline-and-indent`, I think we should be consistent across all
major modes. And this line of code will become useless with Emacs 24.4.