Commit graph

70 commits

Author SHA1 Message Date
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
2e96fce2e0
ui/modeline: remove obsolete advice (fix #1372) 2019-06-19 11:37:27 +02:00
Andrew Whatson
9e8517c59e Add :editor objed module
Integrates `objed` with Doom Emacs to provide text-object manipulation
for non-evil users.

See https://github.com/clemera/objed
2019-05-30 22:35:27 +10:00
Henrik Lissner
0a0def6a53
ui/modeline: update README
To reflect our adoption of the doom-modeline package. Still a WIP, but
is at least more correct now.

Renders #1412 unnecessary.
2019-05-13 19:34:44 -04:00
Henrik Lissner
0f0fdbc00c
Add doom/{increase,decrease,reset}-font commands
Borrows the idea from zoom-frm (see #1389).
2019-05-12 21:56:52 -04:00
Henrik Lissner
c28a018e42
Fix void-variable mouse-wheel-{up,down}-event errors 2019-05-06 16:55:10 -04:00
Henrik Lissner
b2d49c29ca
ui/modeline: minor refactor/reformatting 2019-04-29 18:13:28 -04:00
Henrik Lissner
4aa4802885
ui/modeline: remove indent segment
It's wasted space now that dtrt-indent logs changes to indentation.

Also resolves a performance issue where the tab/space unicode character
would cause long 3-5s delays on startup or first-file load.
2019-04-29 18:03:18 -04:00
Henrik Lissner
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
Henrik Lissner
37cd50ac80
Revert e9f788cf
The hook is harmless.
2019-04-19 20:57:02 -04:00
Henrik Lissner
e9f788cf67
Remove redundant project-modeline hook
Added upstream recently
2019-04-15 04:09:39 -04:00
Henrik Lissner
2c7f917691
Fix #1315: blank modeline on doom/reload
Default mode-line-format shouldn't be tampered with except at startup.
2019-04-09 14:36:21 -04:00
Henrik Lissner
379c01ba1e
ui/modeline: fix icons in daemon-spawned frames
Fix modeline icons in daemon-spawned graphical frames. We have our own
mechanism for disabling all-the-icons, so we don't need doom-modeline to
do it for us. However, this may cause unwanted padding in the modeline
in daemon-spawned terminal frames. If it bothers you, you may prefer
`doom-modeline-icon' set to `nil'.
2019-03-25 01:28:59 -04:00
Henrik Lissner
c707a96648
ui/modeline: use simple format for checker segment 2019-03-14 17:59:24 -04:00
Henrik Lissner
cd64fb27f8
Fix breaking commit 1ce2b291
Possible nil being passed into file-local-name was causing stringp
errors all over the place.
2019-03-14 00:00:22 -04:00
Henrik Lissner
1ce2b29193
ui/modeline: minor startup optimization
Prevents project.el from being eager-loaded at startup.
2019-03-13 18:46:06 -04:00
Henrik Lissner
16f7bad266
Hide magit modeline more selectively 2019-03-11 12:58:53 -04:00
Henrik Lissner
f0013083c0
Restore minimal modeline in magit
With process indicator
2019-03-11 12:54:16 -04:00
Henrik Lissner
66d75936fc
config/default: split into evil/emacs files
Done to better facilitate a non-evil config.

- Adds winum (and enables support for it in doom-modeline)
- Adds expand-region (#1231)
- Uses default smartparens config for non-evil users (WIP)
2019-03-09 03:43:14 -05:00
Henrik Lissner
748b197676
Minor, general refactors 2019-03-08 04:25:45 -05:00
Henrik Lissner
05303c0fdb
💥 Rethink core hook order & naming
- doom-post-init-hook was renamed doom-init-modules-hook
- doom-init-hook was renamed doom-before-init-modules-hook
- doom-init-modules-hook now runs before the user's config.el is run
- Moved doom-init-ui-hook to run later (on window-setup-hook rather than
  emacs-startup-hook).

Yield a modest improvement in startup times.
2019-03-04 20:47:26 -05:00
Henrik Lissner
9266239a2f
ui/modeline: correct & refactor indent segment
Incorrectly displayed "auto-detection disabled" when it wasn't.
2019-03-04 17:41:14 -05:00
Henrik Lissner
1a4db744e3
Half-revert d587d116
The evil-insert-state hooks were added upstream in doom-modeline.
2019-03-04 14:08:25 -05:00
Henrik Lissner
d587d11653
Prevent false modified indicator in modeline
Mentioned in seagle0128/doom-modeline#129

Remove advice when lewang/ws-butler#31 is merged
2019-03-04 11:57:14 -05:00
Henrik Lissner
12ddc3c360
ui/modeline: add indent segment 2019-03-04 04:57:06 -05:00
Henrik Lissner
8832737671
Adopt seagle0128/doom-modeline for :ui modeline
And remove obsolete :ui doom-modeline module.

Relevant to: #136, #921
2019-03-02 01:34:14 -05:00
Henrik Lissner
c85565cfef
ui/modeline: add multiple cursors segment 2019-02-26 23:02:13 -05:00
Henrik Lissner
7844115561
ui/modeline: don't show encoding if UTF-8
It's only important if the encoding is something we don't expect.
2019-01-03 12:56:01 -05:00
Henrik Lissner
4063b8d14a
ui/modeline: abbreviate $HOME in buffer id segment 2018-10-30 16:21:54 -04:00
Henrik Lissner
97f8594a71
ui/modeline: refresh +modeline-buffer-state often
This fixes issues where the buffer's modified state isn't reflected
properly in the mode-line, at the expense of a little (but acceptable
loss of) efficiency.
2018-10-18 13:13:35 -04:00
Henrik Lissner
706da14ec9
ui/modeline: fix void-variable evil-visual-* errors
For non-evil users.
2018-10-06 20:44:22 -04:00
Henrik Lissner
f20cfd21c2
Add mouse-over info to modeline segments
Also extracts indentation style info from +modeline-encoding into new
+modeline-indent-style segment.
2018-10-03 02:33:18 -04:00
Henrik Lissner
d9fb1c5ca6 ui/modeline: add support for indirect buffers
Indirect buffer support is still dodgy and needs work (some segments
don't update at all).
2018-09-28 21:13:28 -04:00
Henrik Lissner
53fe7a1f04 Refactor Project API to reflect changes upstream
projectile-project-root no longer returns `default-directory` if not in
a project (it returns nil). As such, doom-project-* functions (and their
uses) have been refactored.

+ doom-project-p & doom-project-root are aliases for
  projectile-project-p & projectile-project-root.
+ doom-project-{p,root,name,expand} now has a DIR argument (for
  consistency, since projectile-project-name and
  projectile-project-expand do not).
+ The nocache parameter is no longer necessary, as projectile's caching
  behavior is now more sane.
+ Removed some projectile advice/hacks that are no longer necessary.
+ Updated unit tests
2018-09-28 21:13:27 -04:00
Henrik Lissner
74af5bde26 ui/modeline: fix buffer file path segment
To cope with changes upstream in the projectile package.
2018-09-22 13:15:12 -04:00
Henrik Lissner
7acece3e0b
Disable projectile mode-line segment
If either module module is active, this is just extra overhead.
2018-09-22 11:47:36 -04:00
Henrik Lissner
77b5571ed9
ui/modeline: fix *invalid* in global-mode-string 2018-09-21 13:33:18 -04:00
Henrik Lissner
0a3334a1f6
ui/modeline: refactor +modeline-encoding segment 2018-09-13 19:15:15 -04:00
Henrik Lissner
3128b830f9
ui/modeline: +modeline-height = 25
+2 to default height
2018-09-09 09:58:23 -04:00
Henrik Lissner
7d3ffdff06
Remove third line in section headers
This is truly important stuff. We've saved many lives with this update.
2018-09-09 09:58:19 -04:00
Henrik Lissner
786ab9e7b5
ui/modeline: show UTF-8 for prefer-utf-8 encoding 2018-09-09 09:58:14 -04:00
Henrik Lissner
f8f9144f08
ui/modeline: add indent type+width to modeline
Also, display nothing for file encoding if encoding is undecided.
2018-09-03 04:05:35 +02:00
Henrik Lissner
3a23ff56cd
General formatting & minor refactors 2018-09-02 17:20:19 +02:00
Henrik Lissner
fdea8ff5ee
ui/modeline: fontify buffer-id default value 2018-09-01 12:40:08 +02:00
Henrik Lissner
712b775f36
Remove doom*set-indirect-buffer-filename hack
This was done to help the modeline build its file path in indirect
buffers, but this has been fixed by using buffer-base-buffer.

Both ui/modeline and ui/doom-modeline have been refactored to
accommodate this.
2018-09-01 12:39:26 +02:00
Henrik Lissner
a005fed274
Fix symlinks in modeline path segment
This would cause a lot of ../'s when opening a symlinked file.
2018-08-27 03:32:42 +02:00
Henrik Lissner
dc9841b192
ui/modeline: refactor path builder & add other styles
This brings +doom-modeline-buffer-file-name styles to the new modeline
module, controlled by the +modeline-buffer-path-function variable.

The available functions are:

* +modeline-file-path-with-project: project/src/lib/file.c
* +modeline-file-path-from-project: src/lib/file.c
* +modeline-file-path-truncated-with-project: project/s/l/file.c
* +modeline-file-path-truncated-upto-project: ~/w/project/src/lib/file.c
* +modeline-file-path-truncated-upto-project-root: ~/w/p/s/lib/file.c
* +modeline-file-path-truncated: ~/w/p/s/l/file.c
* +modeline-file-name: file.c

The default is file-path-with-project.
2018-08-22 22:36:44 +02:00
Henrik Lissner
6282526743
ui/modeline: fontify project root separately
And add new doom-modeline-buffer-project-root face.
2018-08-22 22:28:53 +02:00
Henrik Lissner
d692718ab4
Fix selecting deleted window error
Caused by focus/unfocus modeline fixes accessing possibly dead buffers.
2018-08-12 18:25:09 +02:00