Commit Graph

415 Commits

Author SHA1 Message Date
8147bc1aee 💥 lang/org: conform to new name conventions 2019-07-22 02:30:38 +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
c0530202a5 lang/org: restore attach entry in org-link-abbrev-alist 2019-07-20 11:40:03 +02:00
de85f67b7c lang/org: remove redundant attach: link abbreviation 2019-07-14 05:35:51 +02:00
e81cdc0523 lang/org: prioritize checkboxes lower in dwim command
Otherwise, checkboxes take priority over links, clocks or tables.
2019-07-13 02:24:11 +02:00
157cb5287e lang/org: enable latex export backend by default #1560
ox.el doesn't eager-load these packages anyway.
2019-07-12 15:42:26 +02:00
aeb5cca727 Fix ob-ipython popup rule affecting python REPL 2019-07-11 01:23:34 +02:00
da0b11d0f5 Fix ob-ipython popup rule
:transient property was removed long ago.
2019-07-10 22:26:40 +02:00
30e14d7681 Use python lexer when exporting ipython blocks 2019-07-10 22:26:03 +02:00
afdec75cbc lang/org: refactor ob-ipython advice 2019-07-10 21:50:54 +02:00
eb7d4bf0e8 lang/org: lazyload babel src highlighters packages
E.g. ob-*.el, if any
2019-07-10 19:30:56 +02:00
eee147f6f3 lang/org: fix ipython unfontified src blocks #1553 2019-07-10 19:00:41 +02:00
468e630110 lang/org: refactor contrib modules
- Fix #1546
- Ensure contrib modules aren't included in byte-compilation/autoload
  generation if their requisite flags aren't enabled
2019-07-09 22:44:51 +02:00
92dd66f736 lang/org: refactor & reformat
To ensure that users' after! blocks have precendence over org packages
in sub-modules.
2019-07-08 22:08:59 +02:00
e645185907 Set org-crypt vars sooner
In :init rather than :config, so users' (after! org-crypt ...) blocks
take precedence.
2019-07-08 21:17:04 +02:00
d2991930ae lang/org: minor refactor
- Set file variables sooner
- Change org-tags-exclude-from-inheritance additively, rather than
  destructively
2019-07-08 11:58:58 +02:00
fbf58aac8c lang/org: add +org|init-export to org-load-hook #1535 2019-07-03 16:37:48 +02:00
768ed10dc3 lang/org (babel): sys.print -> console.log
Update ob-js's wrapper for js babel blocks. sys.print was deprecated and
removed in later versions of node.
2019-06-30 02:27:37 +02:00
1e286da278 lang/org: update unit tests 2019-06-29 01:39:23 +02:00
7f5d961d89 lang/org: add nix install instructions to README 2019-06-28 19:45:05 +02:00
79db8c8958 lang/org: add gnuplot packages to README 2019-06-28 17:56:15 +02:00
11bfb17894 lang/org: major refactor
The motivation for this change was to rethink lang/org's flags. Many of
its former flags represented non-features. Therefore, its flags have
been reduced to five: +dragndrop, +ipython, +pandoc, +gnuplot and
+present. Everything else is included as org-load-hooks and treated as
reasonable defaults.

Other changes:
- Fixes #1502: don't autopair certain pairs when in a math region
- Fixes #1483: broken localleader in org-agenda
- Adds gnuplot support #1108
- Doom's org submodules have been moved into lang/org/contrib/, because
  I expect there will be *many* more to come, and I don't want to
  pollute the moudle's root.
2019-06-28 17:28:28 +02:00
9a02bd8ac8 Minor refactors across the board
- when-let* -> when-let
- Fix projectile-locate-dominating-file for connected remote files
2019-06-26 14:31:06 +02:00
4ecf6c9414 Add SCHEDULED support to +org/dwim-at-point 2019-06-26 14:31:06 +02:00
bf9a50eaea Fix #1481: not a valid workspace error on +org-capture/open-frame 2019-06-11 17:21:52 +02:00
518e53deab lang/org: fix snippet expansion on visual region
Fixes two issues:

1. Evil users would be left in visual mode after expanding a snippet on
   a region, making it awkward to insert text. It now switches to insert
   state.
2. While yasnippet reindent the snippet's contents post-expansion, org's
   mode-specific indentation (see `org-src-tab-acts-natively`) can throw
   errors for arbitrary reasons. We don't need smart indentation when
   expanding snippets, so we turn it off only in this case.
2019-06-10 09:38:55 +02:00
67b6c44939 Enable show-trailing-whitespace globally
The variable is buffer-local and must be set with setq-default instead.

Also adds doom|{enable,disable}-show-trailing-whitespace hooks.
2019-05-17 01:58:08 -04:00
d057d45ef2 lang/org: remove link markup in eldoc breadcrumbs 2019-05-15 16:42:45 -04:00
77905d9815 fix command to set tags 2019-05-13 10:40:43 +02:00
c4a9de5361 lang/org: add new toggle keybinds to localleader
Also sorts existing keybinds.
2019-05-12 01:46:29 -04:00
ea50d0628f adding keybindings for set tags 2019-05-10 15:03:29 +02:00
ec15b36665 moving to the setup-keybind function 2019-05-10 08:18:46 +02:00
d1f017542f more keybindings 2019-05-10 08:18:46 +02:00
9a2315a6cb adding some keybindings 2019-05-10 08:18:46 +02:00
3873d52c8d lang/org: fix function description 2019-05-04 21:03:59 +02:00
8e453462c7 lang/org: evil-org-retain-visual-state-on-shift = t 2019-04-26 17:43:45 -04:00
a4c5396558 Add better-jumper
Replaces evil's jumplist; makes its functionality available for non evil
users.
2019-04-24 18:16:04 -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
ae0c0f2837 refactor: lazy load and use conventions for hooks 2019-04-22 17:18:20 +12:00
4944668dfd feat: added org-habit module
Added a simple way to make the org-habit consistency graphs align to the
right margin as well as being responsive to the width of the window.
2019-04-22 17:18:20 +12:00
653161fe2e lang/org: refactor org config load order
- No longer use org-load-hook; it was unnecessary and there were corner
  cases where org would get loaded before hooks were added to it.
- Update comments
- Remove config that was redundant with org's defaults (wrt org-file-apps)
- Perform persp-mode check before using persp-mode API in
  +org|exclude-agenda-buffers-from-workspace advice.
- Update outdated smartparens config and move it out of
  org-mode-hook (only needs to be run once, not everytime org-mode is
  enabled)
- Autoload mode hooks
2019-04-10 18:47:21 -04:00
3da6c23d75 lang/org: restore org-shifttab on S-TAB
For evil users
2019-04-10 18:09:32 -04:00
af4ca974a3 lang/org: add +protocol module #257
Adds lazy-loaded support for org-protocol as a basis for features to
come.
2019-04-07 17:28:46 -04:00
d947e15472 lang/org: add SPC m . and / keybinds for org-goto
And remove imenu remaps, they weren't behaving correctly.
2019-04-05 04:33:26 -04:00
035a0a50e6 lang/org: change many org localleader keybinds
- Moves `SPC m s' to `SPC m b'
- Adds many new org-clock and org-goto keybinds
- Replaces imenu/imenu-anywhere with goto and goto-all
- Adds SPC m s -> org-schedule
- Move SPC m b -> SPC m , (org-switchb)
2019-04-05 04:12:56 -04:00
31ca94f5b0 lang/org: remove unnecessary alias 2019-04-04 19:00:56 -04:00
6084b774b8 lang/org: refactor and add keybinds for org tables
This update focuses on improving the key UX of org tables.

- Adds new table localleader keys under `SPC m s'
- Adds new localleader keybinds
  - New `s` prefix for table commands
  - New `f`/`F` keybinds for footnotes
  - New `'` keybind for `org-edit-special`
  - New `r` keybind for `org-refile`
- Bind localleader keys for both evil and non-evil users
- Refactors org table API
- For evil users:
  - Adds `zi` to toggle inline images
  - Finalize insert-mode keybind scheme for evil users (ala excel/gdocs)
    - C-{h,j,k,l} = move cursor between cells
    - C-M-{h,j,k,l} = insert cells in direction
    - C-M-S-{h,j,k,l} = swap cells in direction
2019-04-04 18:52:25 -04:00
3a47c27dd6 lang/org: fix C-S-{h,l} in tables
Supposed to create new column on the left and right, respectively.
Instead, always created columns on the right.
2019-04-04 17:15:58 -04:00
bf2aedc510 lang/org: rethink flyspell keybinds
- Remove ]s/[s keybinds in org-mode (rebound to ]c/[c); they overwrote
  next/prev flyspell error commands (which are vim defaults)
- Remove ]S/[S because z= already exists
- Remove redundant ]s/[s global keybinds (already bound by evil)
- Mention missing and evil's flyspell keybinds in a comment
2019-04-04 13:50:44 -04:00