On macos, the libexec directory for languagetool, as installed by brew,
lives in a version directory. To find the jar, we need to increase the
search depth, since the version directory will change with every version.
Example of brew-installed languagetool:
--------
$ tree -L 2 /usr/local/Cellar/languagetool
=>
/usr/local/Cellar/languagetool
└── 4.6
├── CHANGES.md
├── CHANGES.txt
├── COPYING.txt
├── INSTALL_RECEIPT.json
├── README.md
├── bin
└── libexec
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.
Also changes def-package-hook! -> use-package-hook!
The old macros are now marked obsolete and will be removed when straight
integration is merged.
setting +write-mode-hook had no effect because +write-mode-hook was not
defined yet, it is only defined by the minor mode definition inside
autoload.el (which didn't get autoloaded yet).
Due to this when activating `+write-mode` the `mixed-pitch-mode` did not
get activated.
Fix this by moving these all to autoload.
Signed-off-by: Edwin Török <edwin@etorok.net>
Caused by langtool-langauge-tool-jar not being set (because defvar won't
change a defined variable), and app/write/doctor.el uses it in a
file-exists-p call, which throws the stringp error if given anything
other than a string.
This removes the various doom-line-number* variables and replaces it
with the Emacs 26 display-line-numbers API, which I've ported to Emacs
25.x (however, it uses nlinum under the hood, and not all of
display-line-numbers options are supported).
+ Make synosaurus unconditional
+ Move much of +write-mode into its hook
+ Conform README.org to template and expand it
+ Try to guess langtool-language-tool-jar
+ Update init.example.el entry
+ Remove redundant variables
+ Add +write-text-scale & +text-line-spacing variables
+ enable lexical-scope everywhere (lexical-binding = t): ~5-10% faster
startup; ~5-20% general boost
+ reduce consing, function calls & garbage collection by preferring
cl-loop & dolist over lambda closures (for mapc[ar], add-hook, and
various cl-lib filter/map/reduce functions) -- where possible
+ prefer functions with dedicated opcodes, like assq (see byte-defop's
in bytecomp.el for more)
+ prefer pcase & cond (faster) over cl-case
+ general refactor for code readability
+ ensure naming & style conventions are adhered to
+ appease byte-compiler by marking unused variables with underscore
+ defer minor mode activation to after-init, emacs-startup or
window-setup hooks; a customization opportunity for users + ensures
custom functionality won't interfere with startup.