yas-global-mode is always enabled to ensure snippets are loaded
properly, but to use the snippets, a major mode must have yas-minor-mode
enabled. This commit ensure such condition happen.
By checking if the yas-minor-mode is enabled. If so, load yasnippet. We
must do so because some package might load yasnippet and make
yas-minor-mode definition available, thus prevent Spacemacs to load
yasnippet properly. By checking yas-global-mode variable, we can assure
that yas-global-mode is enabled properly.
Also exclude yasnippet from eshell.
- Only set Eshell by default on Windows; in other OSes we use `ansi-term`,
NOT `term`. The reason is that `ansi-term` can use Emacs key bindings
such as C-x b, C-x 1... even editing commands such as M-u/M-l. `term`
cannot and we have to use the default `C-c b` variants i.e. C-c b to
switch buffer instead of "C-x b". `ansi-term` is currently the best
terminal emulator in Emacs.
- Allow ansi-term/term to close its shell-pop window when a user type
"exit".
- With shell-pop, we can allow ansi-term/term to track current directory
of current buffer. It is a useful feature and it also makes ansi-term
consistent with eshell/shell.
- Swap "term" and "ansi-term" key bindings, since the old "ast" was used
for multi-term, which is a wrapper around ansi-term.
Fits better material theme, I did not test other themes with it but
we can assume that the background and foreground combination for
region face is correct in most of the themes.
The advantages:
- Always pop at the bottom, never taking whole window. It's convenient
when we need a shell to run some commands, then put it out.
- Can track the directory of current buffer, so we won't have to change
directory to current directory if we want to have a shell to do
something. For example, we can navigate using Dired to a directory, then
open a shell with shell-pop to run some commands.
* `mtt` now reloads test ns before running all tests
* added `mtT` to reload test ns and run focused test
* added `mtr` to reload test ns and re-run failed tests for namespace
The test namespace reloading is a workflow optimization. The alternative
is a minimum of two commands (`SPC m e b` or `SPC m e f` and `SPC m t
t`) in order to re-run a single test. When driving development from
tests, this is onerous at best (and I couldn't think of a good reason
_not_ to reload the test ns).