mirror of
https://git.savannah.gnu.org/git/emacs/org-mode.git
synced 2024-09-29 22:37:47 +00:00
org-colview: Add :indent parameter
* lisp/org-colview.el (org-dblock-write:columnview): Handle :indent parameter. * doc/org.texi (Capturing column view): Document new feature.
This commit is contained in:
parent
00f0c70418
commit
99697abdb9
|
@ -5798,6 +5798,8 @@ When set to a number, don't capture entries below this level.
|
||||||
@item :skip-empty-rows
|
@item :skip-empty-rows
|
||||||
When set to @code{t}, skip rows where the only non-empty specifier of the
|
When set to @code{t}, skip rows where the only non-empty specifier of the
|
||||||
column view is @code{ITEM}.
|
column view is @code{ITEM}.
|
||||||
|
@item :indent
|
||||||
|
When non-@code{nil}, indent each @code{ITEM} field according to its level.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
|
@ -203,7 +203,11 @@ Custom language environments for LaTeX export can now define the
|
||||||
string to be inserted during export, using attributes to indicate the
|
string to be inserted during export, using attributes to indicate the
|
||||||
position of the elements. See variable ~org-latex-custom-lang-environments~
|
position of the elements. See variable ~org-latex-custom-lang-environments~
|
||||||
for more details.
|
for more details.
|
||||||
|
*** Accept ~:indent~ parameter when capturing column view
|
||||||
|
When defining a "columnview" dynamic block, it is now possible to add
|
||||||
|
an :indent parameter, much like the one in the clock table.
|
||||||
|
|
||||||
|
On the other hand, stars no longer appear in an ITEM field.
|
||||||
** New functions
|
** New functions
|
||||||
*** ~org-next-line-empty-p~
|
*** ~org-next-line-empty-p~
|
||||||
It replaces the deprecated ~next~ argument to ~org-previous-line-empty-p~.
|
It replaces the deprecated ~next~ argument to ~org-previous-line-empty-p~.
|
||||||
|
|
|
@ -1254,7 +1254,7 @@ PARAMS is a property list of parameters:
|
||||||
(skip-empty-rows (plist-get params :skip-empty-rows))
|
(skip-empty-rows (plist-get params :skip-empty-rows))
|
||||||
(columns-fmt (plist-get params :format))
|
(columns-fmt (plist-get params :format))
|
||||||
(case-fold-search t)
|
(case-fold-search t)
|
||||||
tbl id idpos nfields tmp recalc line
|
tbl id idpos nfields recalc line
|
||||||
id-as-string view-file view-pos)
|
id-as-string view-file view-pos)
|
||||||
(when (setq id (plist-get params :id))
|
(when (setq id (plist-get params :id))
|
||||||
(setq id-as-string (cond ((numberp id) (number-to-string id))
|
(setq id-as-string (cond ((numberp id) (number-to-string id))
|
||||||
|
@ -1290,19 +1290,40 @@ PARAMS is a property list of parameters:
|
||||||
(move-marker pos nil)
|
(move-marker pos nil)
|
||||||
(when tbl
|
(when tbl
|
||||||
(when (plist-get params :hlines)
|
(when (plist-get params :hlines)
|
||||||
(setq tmp nil)
|
(let (tmp)
|
||||||
(while tbl
|
(while tbl
|
||||||
(if (eq (car tbl) 'hline)
|
(if (eq (car tbl) 'hline)
|
||||||
(push (pop tbl) tmp)
|
(push (pop tbl) tmp)
|
||||||
(if (string-match "\\` *\\(\\*+\\)" (caar tbl))
|
(when (string-match "\\` *\\(\\*+\\)" (caar tbl))
|
||||||
(if (and (not (eq (car tmp) 'hline))
|
(if (and (not (eq (car tmp) 'hline))
|
||||||
(or (eq hlines t)
|
(or (eq hlines t)
|
||||||
(and (numberp hlines)
|
(and (numberp hlines)
|
||||||
(<= (- (match-end 1) (match-beginning 1))
|
(<= (- (match-end 1) (match-beginning 1))
|
||||||
hlines))))
|
hlines))))
|
||||||
(push 'hline tmp)))
|
(push 'hline tmp)))
|
||||||
(push (pop tbl) tmp)))
|
(push (pop tbl) tmp)))
|
||||||
(setq tbl (nreverse tmp)))
|
(setq tbl (nreverse tmp))))
|
||||||
|
;; Remove stars. Add indentation entities, if required.
|
||||||
|
(let ((index (cl-position
|
||||||
|
"ITEM"
|
||||||
|
(mapcar #'cadr org-columns-current-fmt-compiled)
|
||||||
|
:test #'equal)))
|
||||||
|
(when index
|
||||||
|
(dolist (row tbl)
|
||||||
|
(unless (eq row 'hline)
|
||||||
|
(let ((item (nth index row)))
|
||||||
|
(setf (nth index row)
|
||||||
|
(replace-regexp-in-string
|
||||||
|
"\\`\\(\\*+\\) +"
|
||||||
|
(if (plist-get params :indent)
|
||||||
|
(lambda (m)
|
||||||
|
(let ((l (org-reduced-level
|
||||||
|
(length (match-string 1 m)))))
|
||||||
|
(if (= l 1) ""
|
||||||
|
(concat "\\\\_"
|
||||||
|
(make-string (* 2 (1- l)) ?\s)))))
|
||||||
|
"")
|
||||||
|
item)))))))
|
||||||
(when vlines
|
(when vlines
|
||||||
(setq tbl (mapcar (lambda (x)
|
(setq tbl (mapcar (lambda (x)
|
||||||
(if (eq 'hline x) x (cons "" x)))
|
(if (eq 'hline x) x (cons "" x)))
|
||||||
|
|
Loading…
Reference in a new issue