problem:
key bindings that use the winum package,
don't work in the spacemacs-base distribution.
for example in the buffer transient state: SPC b .
{number}, C-{number} or M-{number}
shows messages like these:
Wrong type argument: commandp, winum-select-window-1
Symbol’s function definition is void: winum-get-window-by-number
cause:
the winum package is loaded in the spacemacs-navigation layer,
but the layer isn't used in the spacemacs-base distribution.
solution:
show the message:
This command requires the winum package,
winum is part of the spacemacs-navigation layer.
Opening a dired buffer from the Treemacs buffer,
right after starting Spacemacs, shows the error message:
>treemacs-icons-dired--display: Wrong type argument: char-or-string-p, nil
Loading `treemacs-icons-dired-mode` from the `dired-load-hook`,
instead of from the `dired-mode-hook`, seems to fix it.
The `dired-load-hook` docstring says:
>Run after loading Dired.
The `dired-mode-hook` docstring says:
>Run at the very end of ‘dired-mode’.
I would expect the default sort order in treemacs to be alphabetically
ascending, and indeed until recently it appeared to be so. But the
setting in spacemacs is `alphabetic-desc`, and has been ever since the
layer was introduced. How did this work?
The answer is https://github.com/Alexander-Miller/treemacs/pull/577.
Until recently the alphabetical ascending/descending orders were swapped
accidentally. So we need to now (more logically) set the sort order to
`alphabetic-asc`.
Problem:
`C-x w 0` calls `winum-select-window-0-or-10` which shows:
winum-select-window-by-number: No window numbered 10
Solution (Thanks Miciah):
Remap `winum-select-window-0-or-10` to the current filetree command:
`neotree-show` or `treemacs-select-window`
Then all three key bindings:
`C-x w 0`, `SPC 0` and `M-0` will call the same filetree command.
Additionally:
Renamed the remapped which-key name to the filetree command.
Wrapped lines to keep them under 80 chars.
problem:
some layer packages lists have the open and closing parentheses on the same line
as the first and last listed package, but most seem to have them on a separate
lines.
solution:
put the open and close parentheses on separate lines, except for lists with only
a single package, they are written on the same line as the variable name and
parentheses.
fix the lists indentation
Following #11384
Right now treemacs-lock-width variable affects width lock only during treemacs
initialisation. Any later modifications have no effect on treemacs behaviour.
This commit changes it by moving evaluation of treemacs-lock-width to the
treemacs-mode-hook.
problem:
Which-key subgroups get the default name `+prefix`. The subgroup has to be
opened to find out which keys it contains.
solution:
Add more descriptive names:
```
c treemacs-create
o treemacs-visit-node
oa treemacs-visit-node-ace
t treemacs-toggles
y treemacs-copy
C-p treemacs-projects
C-p c treemacs-projects-collapse
```
This reverts commit 29c78ce841 and all other fixes
that have been made afterwards.
The motivation is that use-package is seen by many as a replacement for
`require`. Is use-package always defer the loading of packages then is breaks
this use case, this does not respect POLA so even if it was making Spacemacs
loading faster (up to 3s faster on some startup on my machine) we just cannot
use it, it would be irresponsible. Spacemacs should be easy to use, loading
performance will come with time but it is not a priority.
It appears that 29c78ce changed `:defer t` to be the default for
use-package, and that previously the `treemacs` and
`treemacs-projectile` packages in treemacs/packages.el specified `:defer
t`, but *not* `treemacs-evil`. Restoring `:demand t` (previously the
default) to `treemacs-evil` appears to fix#10422.