Commit Graph

453 Commits

Author SHA1 Message Date
0e851ace9b Backport bits of CLI rewrite
The rewrite for Doom's CLI is taking a while, so I've backported a few
important changes in order to ease the transition and fix a couple bugs
sooner.

Fixes #2802, #2737, #2386

The big highlights are:

- Fix #2802: We now update recipe repos *before* updating/installing any
  new packages. No more "Could not find package X in recipe repositories".

- Fix #2737: An edge case where straight couldn't reach a pinned
  commit (particularly with agda).

- Doom is now smarter about what option it recommends when straight
  prompts you to make a choice.

- Introduces a new init path for Doom. The old way:
  - Launch in "minimal" CLI mode in non-interactive sessions
  - Launch a "full" interactive mode otherwise.
  The new way
  - Launch in "minimal" CLI mode *only* for bin/doom
  - Launch is a simple mode for non-interactive sessions that still need
    access to your interactive config (like async org export/babel).
  - Launch a "full" interactive mode otherwise.

  This should fix compatibility issues with plugins that use the
  async.el library or spawn child Emacs processes to fake
  parallelization (like org's async export and babel functionality).

- Your private init.el is now loaded more reliably when running any
  bin/doom command. This gives you an opportunity to configure its
  settings.

- Added doom-first-{input,buffer,file}-hook hooks, which we use to queue
  deferred activation of a number of packages. Users can remove these
  modes from these hooks; altogether preventing them from loading,
  rather than waiting for them to load to then disable them,
  e.g. (after! smartparens (smartparens-global-mode -1)) -> (remove-hook
  'doom-first-buffer #'smartparens-global-mode)

  Hooks added to doom-first-*-hook variables will be removed once they
  run.

  This should also indirectly fix #2386, by preventing interactive modes
  from running in non-interactive session.

- Added `doom/bump-*` commands to make bumping modules and packages
  easier, and `doom/bumpify-*` commands for converting package!
  statements into user/repo@sha1hash format for bump commits.

- straight.el is now commit-pinned, like all other packages. We also
  more reliably install straight.el by cloning it ourselves, rather than
  relying on its bootstrap.el.

  This should prevent infinite "straight has diverged from master"
  prompts whenever we change branches (though, you might have to put up
  with it one more after this update -- see #2937 for workaround).

All the other minor changes:

- Moved core/autoload/cli.el to core/autoload/process.el
- The package manager will log attempts to check out pinned commits
- If package state is incomplete while rebuilding packages, emit a
  simpler error message instead of an obscure one!
- Added -u switch to 'doom sync' to make it run 'doom update' afterwards
- Added -p switch to 'doom sync' to make it run 'doom purge' afterwards
- Replace doom-modules function with doom-modules-list
- The `with-plist!` macro was removed, since `cl-destructuring-bind`
  already serves that purpose well enough.
- core/autoload/packages.el was moved into core-packages.el
- bin/doom will no longer die if DOOMDIR or DOOMLOCALDIR don't have a
  trailing slash
- Introduces doom-debug-variables; a list of variables to toggle on
  doom/toggle-debug-mode.
- The sandbox has been updated to reflect the above changes, also:
  1. Child instances will no longer inherit the process environment of
     the host instance,
  2. It will no longer produce an auto-save-list directory in ~/.emacs.d
2020-05-15 01:33:52 -04:00
043a561565 Fix #3123: wrong-type-arg stringp error from org-encrypt-string
Due to upstream issue (read comments).
2020-05-14 15:42:13 -04:00
558ea08411 Disable slow smartparens-org defaults in org-mode
But keep its base defaults.

Relevant to #452
2020-05-13 22:48:42 -04:00
a10c157d87 Fix zr, zm, zR & zM vimmish folding in org-mode
Fixes the following keybinds for evil users:

z r        open next level of headings buffer-wide
z m        close next level of headings buffer-wide
z R        open all folded headings
z M        close all folded headings
[N] z R    open all headings at level N and above
[N] z M    close all headings at level N and below
2020-05-13 19:31:09 -04:00
7bbb52f17c No longer disable org-highlight-sparse-tree-matches
The original issue it was meant to fix no longer occurs in recent
versions of org.
2020-05-13 16:06:25 -04:00
717d53c666 Tweak GC settings, particularly for org & lsp
These two modes are particularly expensive. This needs more
testing.
2020-05-12 19:59:14 -04:00
bc5bbb1770 Fix #3102: move org-habit init back into hook 2020-05-12 05:15:55 -04:00
7cf2109b1a Don't error on missing org contrib feature 2020-05-11 04:53:39 -04:00
f9a677427e Replace save-after-refile advice with hook
A hook is better than an advice, which could break with an update.

Also, reformat org-mks advice.
2020-05-11 03:11:15 -04:00
129eebcf2a Only configure org-habit if in org-modules
Rather than force org-habit even on folks that don't use it.
2020-05-11 03:11:15 -04:00
23b5a6c142 lang/org: refactor how module loads flag features 2020-05-11 03:00:08 -04:00
31e4bfb2d4 Don't unfold to 2nd level in org-mode by default
This is too opinionated to be a default, and has thus been replaced with
"unfold subtree around point when opening an org file", in case
saveplace has restored the point to a folded region.
2020-05-11 03:00:08 -04:00
1fccec181c Unify org-agenda-clock bindings with org-clock
Following b40d85e9b
2020-05-10 16:09:45 +02:00
2db423897c Fix #2539: autoload org-attach commands 2020-05-08 01:27:08 -04:00
994028b1e9 Fix #3056: image previews for attachment links 2020-05-07 00:54:41 -04:00
d4242c4ec3 Fix 'No such file or directory, ob-elisp' error
When running async elisp src blocks in org-mode.
2020-05-06 02:57:12 -04:00
158963028e Fix fallback character for org-superstar in terminals 2020-05-05 21:45:19 -04:00
bef3457232 Remove redundant or invalid settings from org module
These have either been removed upstream or already match their defaults.
2020-05-02 22:47:26 -04:00
5a54ef1f9f Fix org-crypt not running when saving org files 2020-05-02 17:52:22 -04:00
1152b2c7bc Default org-crypt to epa-file-encrypt-to 2020-04-30 14:37:06 -04:00
d12752324a Introduce letf! convenience macro
A more succinct cl-letf, which allows for local functions and macros.
2020-04-29 23:48:21 -04:00
f28a972861 Disable org-highlight-latex-and-related
It is far too slow to enable by default.

Fixes #2998
2020-04-29 02:42:45 -04:00
0e50db55a0 Fix #2972: infinite recursion in org + python src blocks 2020-04-28 18:43:15 -04:00
82f9dc2566 Fix #2972: infinite recursion in org src blocks 2020-04-27 17:43:29 -04:00
3e67f8f801 Fix C-{S,M}-RET in tty Emacs 2020-04-27 17:30:23 -04:00
6cb1390fac Fix #2968: refactor how org-directory default is set 2020-04-25 15:43:05 -04:00
8c1525e3d8 Rewrite org-download/attach systems
+ Cut down on unnecessary code & advice
+ Fix 'attach and 'download methods for org-download so that a) their
  links actually work and b) inline previews of their links show up.
+ Allow users to only set org-attach-id-dir (which will be mirrored to
  org-download-image-dir, unless the user has changed it).
+ Prevent a few edge cases where org-attach-id-dir or
  org-download-image-dir were blank.
2020-04-25 01:27:25 -04:00
6159068b4d Rewrite custom org link types
This should fix a few issues with links (like org-download links)
resolving to the incorrect org-directory or org-id-attach-dir (because
it's resolved too early).

I've also simplified and refactored the API to make it easier to grok.
2020-04-24 20:41:56 -04:00
e8cd7b5404 Add SPC m {#,*,+} org keybinds 2020-04-24 02:08:09 -04:00
b40d85e9b2 Make SPC m c (clock) keybinds mnemonic + more clock keybinds 2020-04-24 02:06:41 -04:00
42fd3d0cb6 Move org deadline/schedule keys under SPC m d 2020-04-24 02:06:11 -04:00
a7b31eab21 Add org table keybinds under SPC m b 2020-04-24 02:06:11 -04:00
a308f1a914 Bind SPC m l t -> org-toggle-link-display 2020-04-24 02:06:03 -04:00
b82068cdcc +org-open-old-pdf-links-fn -> +org-open-legacy-pdf-links-fn
Clearer name and added a docstring to explain its purpose.
2020-04-17 22:45:16 -04:00
f47de2064c Remove redundant org-pdftools-store-link hook
This is already covered by the :store handler set with
org-link-set-parameters.
2020-04-17 22:42:05 -04:00
763932a55c Merge pull request #2884 from brianmcgillion/biblio
Add org-noter package
2020-04-17 19:16:06 -04:00
2a8926ec33 Add HOLD org todo keyword
WAIT = for tasks waiting on other people or external forces
HOLD = for tasks waiting on you
2020-04-17 15:47:04 -04:00
5502013906 Bump :lang org
fuxialexander/org-pdftools@4156b67 -> fuxialexander/org-pdftools@67964a5
integral-dw/org-superstar-mode@4897c33 -> integral-dw/org-superstar-mode@09ddc28
jethrokuan/org-roam@e33c144 -> jethrokuan/org-roam@6175739
magit/orgit@0242088 -> magit/orgit@7d6afa5
2020-04-17 15:47:04 -04:00
2dd84b8e2f Add org-noter package
This package allows the creation of notes on a document (pdf, EPub,
etc.) which will be kept in sync with the document. Providing context
sensitive annotations that are managed in plaintext.
2020-04-17 16:39:51 +04:00
e89dc0ecaf Autoload all 4 org decrypt/encrypt user commands
currently if someone wants to use them, it has to manually autoload
them first in user config.el with (unless (fboundp ...) (autoload ...))
2020-04-17 12:08:08 +02:00
ab025caced Fix legacy pdf(view|tools) links & storing pdf links 2020-04-16 19:10:28 -04:00
ccec354739 Prevent infinite recursion opening legacy pdf links 2020-04-16 18:28:14 -04:00
3efef6e38f Fix void-variable link when opening legacy pdf links 2020-04-16 14:52:06 -04:00
fcb2612d3a Fix wrong-number-of-arguments error when opening org links 2020-04-16 12:59:40 -04:00
582fb285bc Fix pdf(view|tools)?: org links
org-pdftools now uses a more generic "pdf:*" for its links, so that
users don't have to worry about the backend.

Also, pdf(view|tools) links should now work for backward compatibility.
2020-04-15 23:46:58 -04:00
5c4f3c62a7 Replace org-bullets w/ org-superstar
org-superstar is a little faster, better written and still maintained.
It also has a few more features which I've made opt-in because they are
relatively expensive in larger buffers.

Folks that don't care for the differences just have to replace
`org-bullets-bullet-list` in their configs with
`org-superstar-headline-bullets-list`.
2020-04-14 18:00:43 -04:00
169fe6a7f4 lang/org: revise docstrings 2020-04-14 15:37:00 -04:00
10a6b510d7 Fix background of latex segments in org buffers
'auto doesn't seem to work correctly, especially where face-remap is
involved (e.g. with solaire-mode or auto-dim-other-buffers).
2020-04-14 15:34:20 -04:00
9abc10c78f Replace org-pdfview with org-pdftools
The latter is a continuation fork. The former is no longer maintained.
2020-04-14 15:31:39 -04:00
83a95925dd Lazy load babel libraries for org exporting 2020-04-14 01:29:27 -04:00