Commit Graph

41 Commits

Author SHA1 Message Date
f0d601d2ac ui/nav-flash: refactor
+ Avoid generating unneeded markers (relatively expensive in the long
  run).
+ Extract excluded major modes into a variable.
2021-03-07 14:30:42 -05:00
ff58823d48 Fix 'wrong type arg: overlayp' error from ivy+nav-flash (#4749)
* Fix for missing overlay

Overlay might be nil before being used, so replicate what the package does

* Neater for for nav-flash issue

* Properly check for the value
2021-03-07 14:29:01 -05:00
7dbcd19453 Fix typo in nav-flash README 2020-09-04 20:52:21 +02:00
afd495b7e1 ui/nav-flash add vterm to +nav-flash-blink-cursor-maybe
(vterm-mode is not derived from term-mode)
2020-08-23 08:13:21 -07:00
49cdda3e3d Bump :ui
Alexander-Miller/treemacs@ee1b523 -> Alexander-Miller/treemacs@10c96c9
abo-abo/ace-window@7e0777b -> abo-abo/ace-window@7003c88
hlissner/emacs-doom-themes@8d5ddbb -> hlissner/emacs-doom-themes@254d476
jaypei/emacs-neotree@98fe213 -> jaypei/emacs-neotree@5e12716
joostkremers/writeroom-mode@9b6e55f -> joostkremers/writeroom-mode@7f7acde

We're also transitioning from abbreviated SHA1 hashes to full ones. See
45cdfb125 for why.
2020-04-29 23:48:42 -04:00
2c0935cb62 Feature detect set-face-extend
In case there are folks out there using versions of Emacs 27 before
:extend was introduced.
2020-04-24 19:28:34 -04:00
d5f83d7123 Extend nav-flash-face to edge of window in Emacs 27 2020-04-18 20:28:03 -04:00
a9402cfb55 Fix #2373: bring back package pinning
This needs some serious refactoring...
2020-01-25 19:02:00 -05:00
4cc14389e8 PIN ALL THE PACKAGES 2020-01-14 22:32:11 -05:00
2bf74158fd Minor refactors across the board 2019-11-04 03:37:54 -05:00
a93f097f78 ui/nav-flash: factor out redundancy 2019-11-03 16:27:17 -05:00
9fa447a83b Remove SPC DEL binding
Instead, 'ga' (or calling `what-cursor-position`) will trigger
nav-flash, to serve as the "where's my cursor" command from now on.

Closes #1883
2019-10-30 22:09:52 -04:00
effee30138 ui/nav-flash: don't trigger on mouse click 2019-10-29 18:19:02 -04:00
be08f9794e Fix nav-flash being suppressed
By a variable that will (almost) always be non-til.
2019-10-28 23:23:14 -04:00
616dec5b93 Optimize opening large files #1834
Fixes an issue where dtrt-indent and/or nav-flash would hang Emacs when
opening large files, and disables all mode hooks for large
files (without using fundamental-mode so you can at least get syntax
highlighting).
2019-10-07 16:02:23 -04:00
a3e262c7ac 💥 Refactor add-hook! macro & change arg order
This update may potentially break your usage of add-hook! if you pass
the :local or :append properties to it. This is how they used to work:

  (add-hook! :append 'some-mode-hook #'do-something)

Thsoe properties must now follow the hooks, e.g.

  (add-hook! 'some-mode-hook :append #'do-something)

Other changes:
- Various add-hook calls have been renamed to add-hook! because I
  incorrectly assumed `defun` always returned its definition's symbol,
  when in fact, its return value is "undefined" (so sayeth the
  documentation). This should fix #1597.
- This update adds the ability to add multiple functions to hooks
  without a list:

    (add-hook! 'some-mode-hook
               #'do-something
               #'do-something-else)

- The indentation logic has been changed so that consecutive function
  symbols at indented at the same level as the first argument, but forms
  are indent like a defun.

    (add-hook! 'some-mode-hook
               #'do-something
               #'do-something-else)

    (add-hook! 'some-mode-hook
      (message "Hello"))
2019-07-26 20:17:29 +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
149b2617b0 💥 revise hook/var fns naming convention (2/2)
This is second of three big naming convention changes. In this commit,
we change the naming conventions for hook functions and variable
functions:

1. Replace the bar | to indicate a hook function with a -h suffix, e.g.

     doom|init-ui -> doom-init-ui-h
     doom|run-local-var-hooks -> doom-run-local-var-hooks-h

2. And add a -fn suffix for functions meant to be set on variables,
   e.g.

     (setq magit-display-buffer-function #'+magit-display-buffer-fn)

See ccf327f8 for the reasoning behind these changes.
2019-07-22 02:30:38 +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
febeed2526 ui/nav-flash: blink on window switch conditionally
The alternative is too aggressive.
2019-05-22 17:11:24 -04:00
9f45197a0b ui/nav-flash: improve conditional blinking on jump
Sometimes it wouldn't blink when the motion occurred within the same
window. This ensures more consistency.
2019-05-21 17:24:23 -04:00
0e2cbdf8f5 ui/nav-flash: trigger on switch-window 2019-05-21 03:42:12 -04:00
0041723a80 Make +nav-flash/blink-cursor unconditional
Since it is meant for interactive use
2019-05-21 01:24:55 -04:00
dba3ae5e4d Prevent nav-flash from firing too often
And trigger on better-jumper-post-jump-hook instead, so that non-evil
users can benefit from nav-flash in this case too.
2019-05-19 02:17:58 -04:00
8399143901 ui/nav-flash: update README 2019-04-24 18:16:05 -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
a05b1877be Rewrite switch-{buffer,window} hooks
+ Add doom-switch-frame-hook
+ Replace doom-{enter,exit}-{buffer,window}-hook with
  doom-switch-{buffer,window}-hook
+ New switch-buffer hooks run on buffer-list-update-hook rather than
  in select-window advice.
+ Blank our buffer-list-update-hook in some places to reduce how many
  times it gets triggered.
2019-03-08 02:37:33 -05:00
f58f3c3604 ui/nav-flash: refactor
+ Add +nav-flash-exclude-commands to control where
  +nav-flash-blink-cursor-maybe should not trigger nav-flash.
+ Rename API to conform to Doom naming conventions
  + +nav-flash-blink-cursor
  + +nav-flash-blink-cursor-maybe
  + +nav-flash|delayed-blink-cursor
  + +nav-flash|blink-cursor
  + +nav-flash|blink-cursor-maybe
  + +nav-flash*blink-cursor
2018-07-24 20:04:03 +02:00
b5c57ab6e4 Don't trigger nav-flash in special windows 2018-07-10 23:05:39 +02:00
81ffed520b Rename doom-before-switch-*-hook hooks
+ doom-before-switch-buffer-hook => doom-exit-buffer-hook
+ doom-before-switch-window-hook => doom-exit-window-hook
+ doom-after-switch-buffer-hook => doom-enter-buffer-hook
+ doom-after-switch-window-hook => doom-enter-window-hook

Shorter, easier-to-type names that better describe their intended
purpose.

The old names are still usable, but deprecated.
2018-07-03 03:41:08 +02:00
09cb4f6716 Major refactor & optimization of how modules load their packages
Now that we are loading package autoloads files (as part of the
generated doom-package-autoload-file when running make autoloads), many
:commands properties are redundant. In fact, many def-package! blocks
are redundant.

In some cases, we can do without a config.el file entirely, and can move
into the autoloads file or rely entirely on package autoloads.

Also, many settings have been moved in their module's autoloads files,
which makes them available ASAP; their use no longer depends on module
load order.

This gained me a modest ~10% boost in startup speed.
2018-05-25 00:46:16 +02:00
80adb9c1f6 General refactor for consistency & idempotency
Also updated comments
2018-05-18 01:26:41 +02:00
2364e97285 Fix switch-window hooks when switching with the mouse
And moved it to ui/nav-flash, which is what this code was introduced to
fix in the first place!
2018-03-27 02:50:40 -04:00
3b94bafb3a tools/nav-flash: refactor & reduce false positive jumps 2018-03-26 06:41:33 -04:00
b848527f0c ui/nav-flash: fix wrong-type-argument error on recenter 2018-03-26 02:11:11 -04:00
0c4a2cd713 ui/nav-flash: blink after save-place jump 2018-02-02 20:47:33 -05:00
f617995bbe nav-flash: blink cursor on evil-jump 2017-12-03 20:04:00 -05:00
5319f655b4 Prevent nav-flash from causing seizures in term-mode 2017-09-28 18:22:15 +02:00
cbabf6849c Standardize module READMEs 2017-08-21 20:13:31 +02:00
c7254e7bdc Major optimization refactor, across the board
+ 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.
2017-06-09 00:47:45 +02:00
084c7be50f Move nav-flash from ui/doom to ui/nav-flash (#92) 2017-06-04 18:28:17 +02:00