Commit Graph

23 Commits

Author SHA1 Message Date
b681504582 fix(fold): avoid Hideshow-not-supported error
Some modes are not supported by `hs-minor-mode`, but can still support
some of the `+fold/` commands. For example, `pdf-outline-minor-mode`
recognizes the same commands as `outline-minor-mode`, but
`hs-minor-mode` is not applicable. In cases like these, we shouldn't try
to enable `hs-minor-mode`, as this will produce an error that will
terminate the command.
2024-09-13 20:28:54 -07:00
37dbc99778 fix(fold): truncate-string-to-width: type errors
In 9a6bcc3, the new default for `truncate-string-ellipsis` was long
enough that it could cause `truncate-string-to-width` to error out (see
exceeded `truncate-string-to-width`s END-COLUMN argument.

Amend: 9a6bcc31f9
Fix: #8044
2024-09-11 20:41:13 -04:00
89f5af8104 refactor(fold): move +fold-hideshow-folded-face & unstyle +ts-fold-replacement-face
It is the theme(s) jurisdiction to impose modify external faces.
`custom-set-faces!` should be avoided from within modules, in general.
2024-08-27 03:13:57 -04:00
9a6bcc31f9 feat(fold): add +fold-ellipsis var
Bring *some* consistency to the text display when text is
ellided/folded.

Close: #7743
Co-authored-by: seanfarley <seanfarley@users.noreply.github.com>
2024-08-27 03:13:56 -04:00
7ce9a99583 fix(fold): only enable ts-fold-mode in tree-sitter buffers
ts-fold-mode is buffer-local, and will complain if activated in a buffer
tree-sitter doesn't support (e.g. fundamental-mode). global-ts-fold-mode
will filter based on tree-sitter-mode's activation and language support.

Fix: #7895
2024-06-25 19:36:51 -04:00
142f28eb9a fix(fold): properly support outline-minor-mode
- Make `+fold/close-all` work for outline-minor-mode.

- Distinguish between `zo` and `zO` for outline-minor-mode alone, by
  binding `zO` to a new function `+fold/open-rec`. `zO` will now trigger
  `outline-show-subtree` in outline-minor-mode, while `zo` will only
  trigger `outline-show-branches`, keeping the subheadings folded. This
  matches the behavior in org-mode.

- Fix a bug in `+fold/open-all`, introduced in
  7b9d00d661, that makes it only operate
  on vimish-fold folds.

Note that outline-minor-mode is still not enabled by default anywhere.
These changes are only to prevent incorrect behavior for users who
decide to turn it on themselves.
2024-04-01 13:30:43 -04:00
acdd0a4865 fix(fold): set ts-fold-replacement-face fg to unspecified 2023-02-17 11:45:06 -05:00
e499e05ff3 fix(fold): void-function evil-define-key* error on Emacs 29 2022-09-16 03:17:46 +02:00
ad6a3d0f33 refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
caa64e8324 feat(fold): change ts-fold replacement face
this is to make it similar to hideshow
2022-05-22 21:26:02 +01:00
83d22fe5ef feat(fold): add ts-fold 2022-05-22 21:26:01 +01:00
141938ef94 editor/fold: fix load-order dependency on evil
In case the user is enabling this module before the evil module.
2021-05-15 19:24:40 -04:00
2f8b4b85fc Add latex env support to editor/fold with hideshow
Closes #2805
2020-04-02 16:03:46 +03:00
dd402b7db3 Remove references to enh-ruby-mode 2020-03-12 11:29:54 -04:00
b30f38ac06 Minor refactor & reformatting across the board 2020-02-23 15:42:43 -05:00
82ae3a73f3 def-advice!->defadvice! & conform to new advice conventions
This commit does two things:

- Renames def-advice! to defadvice!, in the spirit of naming convenience
  macros after the function/macro they enhance or replace.
- Correct the names of advice functions to indicate visibility and
  intent. A public advice function like doom-set-jump-a is meant to be
  used elsewhere. A private one like +dired--cleanup-header-line-a
  shouldn't -- it likely won't work anywhere but the function(s) it was
  made to advise.
2019-07-23 17:24:56 +02:00
76cacb5bfe 💥 Rename def-package! -> use-package!
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.
2019-07-23 12:50:45 +02:00
c795a988e6 Conform many modules to new conventions 2019-07-23 12:30:47 +02:00
51d3b1b424 💥 revise advice naming convention (1/2)
This is first of three big naming convention updates that have been a
long time coming. With 2.1 on the horizon, all the breaking updates will
batched together in preparation for the long haul.

In this commit, we do away with the asterix to communicate that a
function is an advice function, and we replace it with the '-a' suffix.
e.g.

  doom*shut-up -> doom-shut-up-a
  doom*recenter -> doom-recenter-a
  +evil*static-reindent -> +evil--static-reindent-a

The rationale behind this change is:

1. Elisp's own formatting/indenting tools would occasionally struggle
   with | and * (particularly pp and cl-prettyprint). They have no
   problem with / and :, fortunately.
2. External syntax highlighters (like pygmentize, discord markdown or
   github markdown) struggle with it, sometimes refusing to highlight
   code beyond these symbols.
3. * and | are less expressive than - and -- in communicating the
   intended visibility, versatility and stability of a function.
4. It complicated the regexps we must use to search for them.
5. They were arbitrary and over-complicated to begin with, decided
   on haphazardly way back when Doom was simply "my private config".

Anyhow, like how predicate functions have the -p suffix, we'll adopt the
-a suffix for advice functions, -h for hook functions and -fn for
variable functions.

Other noteable changes:
- Replaces advice-{add,remove}! macro with new def-advice!
  macro. The old pair weren't as useful. The new def-advice! saves on a
  lot of space.
- Removed "stage" assertions to make sure you were using the right
  macros in the right place. Turned out to not be necessary, we'll
  employ better checks later.
2019-07-22 02:27:45 +02:00
4e80ca7d23 editor/fold: add hs support for nxml-mode 2019-05-16 01:22:50 -04:00
fa664f4e28 editor/fold: refactor & fix zm
This fixes an issue where zm wasn't auto-loading hideshow and
hs-minor-mode, preventing it from working.

Also reveals +fold/* commands to non-evil users (but as of yet, there
are still no non-evil keybinds for it).
2019-05-15 16:09:53 -04:00
77e4cc4d58 💥 Remove :feature category
:feature was a "catch-all" category. Many of its modules fit better in
other categories, so they've been moved:

- feature/debugger -> tools/debugger
- feature/evil -> editor/evil
- feature/eval -> tools/eval
- feature/lookup -> tools/lookup
- feature/snippets -> editor/snippets
- feature/file-templates -> editor/file-templates
- feature/workspaces -> ui/workspaces

More potential changes in the future:

- A new :term category for terminal emulation modules (eshell, term and
  vterm).
- A new :os category for modules dedicated to os-specific functionality.
  The :tools macos module would fit here, but so would modules for nixos
  and arch.
- A new :services category for web-service integration, like wakatime,
  twitter, elfeed, gist and pastebin services.
2019-04-24 18:16:04 -04:00
7d0caf3efd New editor/fold module
Extracted from feature/evil and emacs/hideshow.
2019-02-18 00:47:46 -05:00