From 5402521647f48d12d608b43db41f1e177da05d1c Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Mon, 10 Apr 2017 01:10:42 -0400 Subject: [PATCH] lang/org: make TAB keybind dwim; including yas-expand --- modules/lang/org/autoload/org.el | 14 +++++++++++--- modules/lang/org/config.el | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index f2d1e227a..c056c934f 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -26,10 +26,18 @@ (t (call-interactively 'self-insert-command)))) ;;;###autoload -(defun +org/indent-or-next-field () - "Depending on the context either indent the current item or go the next table field." +(defun +org/indent-or-next-field-or-yas-expand () + "Depending on the context either a) indent the current line, b) go the next +table field or c) run `yas-expand'." (interactive) - (call-interactively (if (org-at-table-p) 'org-table-next-field '+org/indent))) + (call-interactively + (cond ((and (bound-and-true-p yas-minor-mode) + (yas--templates-for-key-at-point)) + 'yas-expand) + ((org-at-table-p) + 'org-table-next-field) + (t + '+org/indent)))) ;;;###autoload (defun +org/dedent () diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 2494b83bf..00bcecc50 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -239,7 +239,7 @@ :i "C-e" 'org-end-of-line :i "C-a" 'org-beginning-of-line - :i "" '+org/indent-or-next-field + :i "" '+org/indent-or-next-field-or-yas-expand :i [S-iso-lefttab] '+org/dedent-or-prev-field ; for GNU Emacs :i [(shift tab)] '+org/dedent-or-prev-field :i [backtab] '+org/dedent-or-prev-field