From: Ihor Radchenko <yantar92@posteo.net>
To: Alexander Adolf <alexander.adolf@condition-alpha.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: columnview dynamic block - different time summing behaviour for EFFORT and CLOCKSUM
Date: Fri, 19 Apr 2024 10:49:41 +0000 [thread overview]
Message-ID: <87a5lpeiey.fsf@localhost> (raw)
In-Reply-To: <91dfeb0fed1a1fe0564e5eb9b95a409d@condition-alpha.com>
Alexander Adolf <alexander.adolf@condition-alpha.com> writes:
> Subject: [PATCH 1/2] lisp/org-colview.el: add formatter parameter to colview
> dynamic block
Thanks for the patches!
See my comments below.
> * lisp/org-colview.el (org-dblock-write:column view): Factor out the
> existing formatting code to new function
> org-columns-dblock-write-default, and honour new dblock parameter
> :formatter for specifying a different formatting function.
In the changelog entries, we quote the symbol and variable names like
`this'.
> +- =:formatter= ::
> +
> + A function for formatting the data in the dynamic block, overriding
> + the default formatting function set in
> + ~org-columns-dblock-formatter~.
You can also mention that the function also inserts the data. Something
similar to what we do when describe the equivalent option for clock tables:
- =:formatter= ::
A function to format clock data and insert it into the buffer.
Also, if you mention a variable in the manual, please add #+vindex:
entry. Maybe even #+cindex: entry for "formatter", to make the parameter
more discoverable.
> +*** New option ~org-columns-dblock-formatter~
> +
> +=colview= dynamic blocks now understand a new ~:formatter~ parameter
> +to use a specific function for formatting the contents of the dynamic
> +block. This new option can be used to set the global default
... and inserting its contents.
It would also be helpful to refer to the existing :formatter parameter
in clock tables.
> +*** =colview= dynamic block supports custom formatting function
> +
> +The =colview= dynamic block understands a new ~:formatter~ parameter,
> +which specifies a user-supplied function to format the data in the
... and insert the data
> +(defcustom org-columns-dblock-formatter #'org-columns-dblock-write-default
> + "Function to format data in column view dynamic blocks.
> +For more information, see `org-columns-dblock-write-default'."
> + :group 'org-properties
> + :version "30.0"
We do not need :version tag when there is :package-version.
> +(defun org-columns-dblock-write-default (ipos table params)
> + "Write out a columnview table at position IPOS in the current buffer.
> +TABLE is a table with data as produced by `org-columns--capture-view'.
> +PARAMS is the parameter property list obtained from the dynamic block
> +definition."
> + (let ((width-specs
> (mapcar (lambda (spec) (nth 2 spec))
> org-columns-current-fmt-compiled)))
> (when table
This new function ignores IPOS parameter. It should not.
> From 4d69c3407c7c00fe0a1f52c383ced572f3524076 Mon Sep 17 00:00:00 2001
> From: Alexander Adolf <alexander.adolf@condition-alpha.com>
> Date: Mon, 15 Apr 2024 18:01:40 +0200
> Subject: [PATCH 2/2] lisp/org-colview.el: add link parameter to colview
> dynamic block
*Add
(capitalize)
> * lisp/org-colview.el (org-columns--capture-view): Add new link
> parameter, which when non-nil causes ITEM headlines to be linked to
> their origins.
> (org-dblock-write:columnview): Pass new link parameter to
> org-columns--capture-view, and explain its use in the docstring.
`org-columns--capture-view'
> -(defun org-columns--capture-view (maxlevel match skip-empty exclude-tags format local)
> +(defun org-columns--capture-view (maxlevel match skip-empty exclude-tags link format local)
While this is an internal function and we are free to change it as we
need, it is generally more robust to not make changes in the order of
function arguments. I recommend
(defun org-columns--capture-view (maxlevel match skip-empty exclude-tags format local &optional link)
> + (push (if (and link (string= p "ITEM"))
> + (let ((search (org-link-heading-search-string
> + cell-content)))
> + (org-link-make-string
> + (if (not (buffer-file-name)) search
> + (format "file:%s::%s" (buffer-file-name) search))
> + cell-content))
In org-clock, we do
(org-link-make-string
(if (not (buffer-file-name)) search
(format "file:%s::%s" (buffer-file-name) search))
;; Prune statistics cookies. Replace
;; links with their description, or
;; a plain link if there is none.
(org-trim
(org-link-display-format
(replace-regexp-in-string
"\\[[0-9]*\\(?:%\\|/[0-9]*\\)\\]" ""
headline))))
Is there any reason why you did not remove the statistics cookies here
as well?
> `make compile` didn't complain at all, and `make test` ended with the
> following:
> ...
> 4 unexpected results:
> FAILED ob-calc/matrix-inversion
> FAILED test-ob-shell/bash-uses-assoc-arrays
> FAILED test-ob-shell/bash-uses-assoc-arrays-with-lists
> FAILED test-org-table/sort-lines
MacOS? There are known issues with locale rules in MacOS that may cause
test failures.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
next prev parent reply other threads:[~2024-04-19 10:50 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-08 21:08 columnview dynamic block - different time summing behaviour for EFFORT and CLOCKSUM Alexander Adolf
2024-04-11 13:44 ` Ihor Radchenko
2024-04-12 12:13 ` Alexander Adolf
2024-04-13 14:19 ` Ihor Radchenko
2024-04-13 16:37 ` Alexander Adolf
2024-04-13 16:55 ` Ihor Radchenko
2024-04-15 16:46 ` Alexander Adolf
2024-04-19 10:49 ` Ihor Radchenko [this message]
2024-04-19 15:35 ` Alexander Adolf
2024-04-19 17:09 ` Ihor Radchenko
2024-04-20 14:30 ` Alexander Adolf
2024-04-21 13:42 ` Ihor Radchenko
2024-04-22 20:41 ` Alexander Adolf
2024-04-23 11:28 ` Ihor Radchenko
2024-04-23 16:27 ` Alexander Adolf
2024-04-23 16:35 ` Ihor Radchenko
2024-04-24 17:29 ` Alexander Adolf
2024-04-26 12:21 ` Ihor Radchenko
2024-04-26 12:38 ` Bastien Guerry
2024-04-26 12:47 ` Ihor Radchenko
2024-04-26 16:07 ` Alexander Adolf
2024-04-28 13:13 ` Ihor Radchenko
2024-04-19 17:26 ` Alexander Adolf
2024-04-24 10:51 ` FAILED test-ob-shell/bash-uses-assoc-arrays Max Nikulin
2024-04-24 12:54 ` Ihor Radchenko
2024-04-24 16:04 ` Max Nikulin
2024-04-26 11:08 ` Ihor Radchenko
2024-04-26 16:41 ` Max Nikulin
2024-04-28 13:11 ` Ihor Radchenko
2024-05-02 10:20 ` [PATCH] test-ob-shell.el: Skip based on feature detection Max Nikulin
2024-05-02 12:57 ` Ihor Radchenko
2024-05-02 12:09 ` columnview dynamic block - different time summing behaviour for EFFORT and CLOCKSUM Ihor Radchenko
2024-05-02 12:36 ` Alexander Adolf
2024-05-02 12:59 ` Ihor Radchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a5lpeiey.fsf@localhost \
--to=yantar92@posteo.net \
--cc=alexander.adolf@condition-alpha.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).