Makes it easier to change company-backends retrospectively (with a hook
or setq-hook!). Also simplifies how backend defaults are stored (no more
of this :derived and :exact business).
Also updates unit tests.
The original `lsp' initializes too much, too quickly. Things like
flycheck, company, and yasnippet. Doom's modules already handle these
just fine, so we advice it to leave it to us to handle. I intentionally
avoid disabling lsp-auto-configure because doing so is much more
destructive than I'd like.
This update prevents lsp-ui-mode from being auto-enabled on lsp-mode.
You can now (remove-hook 'lsp-mode-hook #'lsp-ui-mode) to disable
lsp-ui.
This update also adds these two hooks:
+ +lsp|init-company (on `lsp-mode-hook')
+ +lsp|init-ui-flycheck-or-flymake (on `lsp-ui-mode-hook')
The motivation for this change was to rethink lang/org's flags. Many of
its former flags represented non-features. Therefore, its flags have
been reduced to five: +dragndrop, +ipython, +pandoc, +gnuplot and
+present. Everything else is included as org-load-hooks and treated as
reasonable defaults.
Other changes:
- Fixes#1502: don't autopair certain pairs when in a math region
- Fixes#1483: broken localleader in org-agenda
- Adds gnuplot support #1108
- Doom's org submodules have been moved into lang/org/contrib/, because
I expect there will be *many* more to come, and I don't want to
pollute the moudle's root.
- Fixes#1506: unsets uniquify-buffer-name-style to work around breakage
in persp-mode having to do with buffers being retrospectively renamed.
See Bad-ptr/persp-mode.el#104.
- Move creation of main workspace into persp-mode-hook, to ensure main
workspace always exists and nil workspace is never active.
- Remove +workspaces|init-frame and significantly reduce LOC in
+workspaces|init to the bare essentials. This _may_ break persp-mode
in daemon Emacs, but I'll deal with that next.
We stop relying on the built-in mechanism for auto-registering a buffer
to the current workspace, because it misses many buffers (e.g. when we
switch buffers with SPC b b). Instead, we add buffers when they are
interactively switched to.
It was formerly escaped because of general bugginess, particularly when
bind -v was used in zsh. It's still too buggy to enable in vterm-mode,
however.
org-capture, when used on a target that doesn't exist, will invisibly
expand a file template, leaving a hang yasnippet active. After
org-capture initializes, the yasnippet will attempt to operate on
overlays that don't exist, throwing overlayp errors.
CDing into the project root can be accomplished with external tools, e.g.
cd $(git rev-parse --show-toplevel)
cd $(hg root)
cd $(npm root)
Any of which could be aliased. Also, +vterm/toggle and term/toggle
define the PROOT environment variable, so `cd $PROOT` will work too.
On the other hand, CDing to the current file/folder requires that the
shell be made aware of the file/directory of some Emacs state, which is
a little trickier to deal with, so I made that the default behavior for
+term/toggle, +vterm/toggle and +eshell/toggle.
Uses the most basic, uncustomized shell to a) prevent interference
caused by slow shell configs and b) speed up project text searches. This
comes at the cost of isolating these programs from envvars that the user
may have set in their shell configs in order to change
ag/rg/pt/git-grep/grep's behavior.
If this bothers you, change +ivy-file-search-shell to your shell (or
to the value of `shell-file-name`).
Possibly relevant to an issue mentioned in #1260
They are:
]m, [m
Jump to next/previous beginning of method/function.
]M, [M
Jump to next/previous end of method/function
]#, [#
Jump to next/previous preprocessor directive (only supports C-style
directives for now)
]*, [* (or ]\, [\)
Jump to next/previous comment