Re: [PATCH] Re: the comment environment does not work for checkboxes
Ihor Radchenko writes: > Thanks for the heads-up! > Comment blocks are not supposed to contain Org markup, and thus it indeed > makes sense to support them in org-edit-special and in structure > templates. > > See the attached patch. Applied onto main via a303a794f. https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=a303a794f8c6f880aa8dc46f10179890bfd27423 -- Ihor Radchenko, 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
Re: [PATCH] Re: the comment environment does not work for checkboxes
Uwe Brauer writes: >> See the attached patch. > > Are you going to commit that patch to master any time soon? > I just pulled but cannot see it. The patch task is scheduled for this Sunday. > BTW, do you have any idea why columnview needs to many iterations if the > number of headings and parameters (I sent a bug report, but it seems a border > case, since nobody replied) Sorry, I am not very familiar with columnview code. Hence, I did not really investigate many of you patches hoping that someone else can comment. Best, Ihor
Re: [PATCH] Re: the comment environment does not work for checkboxes
> Uwe Brauer writes: > Thanks for the heads-up! > Comment blocks are not supposed to contain Org markup, and thus it indeed > makes sense to support them in org-edit-special and in structure > templates. > See the attached patch. Are you going to commit that patch to master any time soon? I just pulled but cannot see it. BTW, do you have any idea why columnview needs to many iterations if the number of headings and parameters (I sent a bug report, but it seems a border case, since nobody replied) Uwe smime.p7s Description: S/MIME cryptographic signature
Re: [PATCH] Re: the comment environment does not work for checkboxes
Uwe Brauer writes: >> Headline markup has the top priority all the times. > I am confused Never mind then. I was explaining something you did not look for.
Re: [PATCH] Re: the comment environment does not work for checkboxes
> Uwe Brauer writes: > Thanks! > To clarify, when you have > * Heading > #+begin_comment > * Lorem ipsum > #+end_comment > it is not seen by Org as comment block. > Instead, what Org "sees" is > > * Heading > > #+begin_comment > > > > * Lorem ipsum > > #+end_comment > > > Headline markup has the top priority all the times. I am confused I have *** DONE Books :PROPERTIES: :Nr: 1 :Comp1:[X] :Comp2:[X] :END: Now with our patch I mark the headings and its properties and then insert a comment block, so I obtain #+begin_src ,*** DONE Books :PROPERTIES: :Nr: 1 :Comp1:[X] :Comp2:[X] :END: #+end_src Which is what I was looking for! > Yup. Probably, we can make org-insert-structure-template more smart and > remove the block when user selects the same block as the existing one. > It should be controlled by defcustom though (t nil 'ask). Wrapping a > comment block inside comment block can be a valid use case. That would be nice. Uwe > Best, > Ihor -- I strongly condemn Putin's war of aggression against the Ukraine. I support to deliver weapons to Ukraine's military. I support the ban of Russia from SWIFT. I support the EU membership of the Ukraine. smime.p7s Description: S/MIME cryptographic signature
Re: [PATCH] Re: the comment environment does not work for checkboxes
Uwe Brauer writes: >> Uwe Brauer writes: > >> I am sorry, but I am not familiar with the feature you are referring to. > > I applied your patch and did a bit of testing: works flawlessly. Thanks! >> Either way, both src and comment blocks are supposed to contain >> arbitrary non-parseable text, which should not contribute to the >> statistics? calculations. > > With your patch, I can confirm this, before it did not since *** was not > «escaped» To clarify, when you have * Heading #+begin_comment * Lorem ipsum #+end_comment it is not seen by Org as comment block. Instead, what Org "sees" is * Heading #+begin_comment * Lorem ipsum #+end_comment Headline markup has the top priority all the times. >> AFAIK, you cannot. At least, not using an existing command. What you can >> instead do is open C-c ' window, copy the unescaped text, exit the >> window, remove the block, and yank the unescaped text. > > I see, (patches are welcome I presume ) Yup. Probably, we can make org-insert-structure-template more smart and remove the block when user selects the same block as the existing one. It should be controlled by defcustom though (t nil 'ask). Wrapping a comment block inside comment block can be a valid use case. Best, Ihor
Re: [PATCH] Re: the comment environment does not work for checkboxes
> Uwe Brauer writes: > I am sorry, but I am not familiar with the feature you are referring to. I applied your patch and did a bit of testing: works flawlessly. > Either way, both src and comment blocks are supposed to contain > arbitrary non-parseable text, which should not contribute to the > statistics? calculations. With your patch, I can confirm this, before it did not since *** was not «escaped» > AFAIK, you cannot. At least, not using an existing command. What you can > instead do is open C-c ' window, copy the unescaped text, exit the > window, remove the block, and yank the unescaped text. I see, (patches are welcome I presume ) thanks for the trick with C-c ' Uwe -- I strongly condemn Putin's war of aggression against the Ukraine. I support to deliver weapons to Ukraine's military. I support the ban of Russia from SWIFT. I support the EU membership of the Ukraine. smime.p7s Description: S/MIME cryptographic signature
Re: [PATCH] Re: the comment environment does not work for checkboxes
Uwe Brauer writes: >> Uwe Brauer writes: > > Thanks for the patch (this is against the latest master I presume?) >> Thanks for the heads-up! >> Comment blocks are not supposed to contain Org markup, and thus it indeed >> makes sense to support them in org-edit-special and in structure >> templates. > >> See the attached patch. > > I test and report back: BTW > > 1. The feature I require can only be achieved by using a «src» block >not a comment block. A bit contra intuitive I say I am sorry, but I am not familiar with the feature you are referring to. Either way, both src and comment blocks are supposed to contain arbitrary non-parseable text, which should not contribute to the statistics? calculations. > 2. Suppose I once mark a lot of headings and add a src block (which >add the required «,» to the *, how do I later get rid of the src >block *and* the «,» AFAIK, you cannot. At least, not using an existing command. What you can instead do is open C-c ' window, copy the unescaped text, exit the window, remove the block, and yank the unescaped text. Best, Ihor
Re: [PATCH] Re: the comment environment does not work for checkboxes
> Uwe Brauer writes: Thanks for the patch (this is against the latest master I presume?) > Thanks for the heads-up! > Comment blocks are not supposed to contain Org markup, and thus it indeed > makes sense to support them in org-edit-special and in structure > templates. > See the attached patch. I test and report back: BTW 1. The feature I require can only be achieved by using a «src» block not a comment block. A bit contra intuitive I say 2. Suppose I once mark a lot of headings and add a src block (which add the required «,» to the *, how do I later get rid of the src block *and* the «,» Uwe smime.p7s Description: S/MIME cryptographic signature
[PATCH] Re: the comment environment does not work for checkboxes
Uwe Brauer writes: > Thanks, a couple of remarks > > 1. It does not work! I Presume you mean «C-c '» no «C-c C-'»? Well >this is bound to is edit special > ... > > Comments block are not listed and as I said it seems not to work, if > what you say is the correct syntax, then there is a bug, since > > 1. when I mark the region, > > 2. Run org-insert-structure-template, > > 3. Select comment, it should then lead to Thanks for the heads-up! Comment blocks are not supposed to contain Org markup, and thus it indeed makes sense to support them in org-edit-special and in structure templates. See the attached patch. Best, Ihor >From 4913df3f84b6d1d0fc5cc0f613dca42abe47821d Mon Sep 17 00:00:00 2001 Message-Id: <4913df3f84b6d1d0fc5cc0f613dca42abe47821d.1659158779.git.yanta...@gmail.com> From: Ihor Radchenko Date: Sat, 30 Jul 2022 13:24:10 +0800 Subject: [PATCH] Support interactive editing of comment blocks * lisp/org-src.el (org-edit-comment-block): New command to edit comment block elements. The command auto-escapes Org markup inside. (org-src--contents-area): * lisp/org.el (org-insert-structure-template): (org-edit-special): Support comment blocks. * etc/ORG-NEWS (Interactive commands now support escaping text inside comment blocks): (New command ~org-edit-comment-block~ to edit comment block at point): Document the new features. See https://orgmode.org/list/87y1wc3ruw@mat.ucm.es --- etc/ORG-NEWS| 19 ++- lisp/org-src.el | 25 - lisp/org.el | 5 - 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS index 478fcf95c..0bc3fa638 100644 --- a/etc/ORG-NEWS +++ b/etc/ORG-NEWS @@ -141,6 +141,14 @@ discouraged when working with Org files. ** New features +*** Interactive commands now support escaping text inside comment blocks + +~org-edit-special~ and ~org-insert-structure-template~ now handle +comment blocks. + +See [[*New command ~org-edit-comment-block~ to edit comment block at +point]]. + *** New customization option =org-property-separators= A new alist variable to control how properties are combined. @@ -253,6 +261,16 @@ instance, includes all available items in the printed bibliography. ** New functions and changes in function arguments +*** New command ~org-edit-comment-block~ to edit comment block at point + +As the contents of comments blocks is not parsed as Org markup, the +headlines and keywords inside should be escaped, similar to src +blocks, example blocks, and export blocks. This in inconvenient to do +manually and ~org-edit-special~ is usually advised to edit text in +such kind of blocks. + +Now, comment block editing is also supported via this new function. + *** New function ~org-element-cache-map~ for quick mapping across Org elements When element cache is enabled, the new function provides the best @@ -266,7 +284,6 @@ to ~org-element--cache-map-statistics~ and ~org-element--cache-map-statistics-threshold~. ~org-scan-tags~ and tag views in agenda utilise the new function. - *** New function ~org-element-at-point-no-context~ This function is like ~org-element-at-point~, but it does not try to diff --git a/lisp/org-src.el b/lisp/org-src.el index b7e0af50e..0249af60b 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -384,7 +384,7 @@ (defun org-src--contents-area (datum) (let ((beg (org-element-property :contents-begin datum)) (end (org-element-property :contents-end datum))) (list beg end (buffer-substring-no-properties beg end - ((memq type '(example-block export-block src-block)) + ((memq type '(example-block export-block src-block comment-block)) (list (progn (goto-char (org-element-property :post-affiliated datum)) (line-beginning-position 2)) (progn (goto-char (org-element-property :end datum)) @@ -1161,6 +1161,29 @@ (defun org-edit-export-block () (lambda () (org-escape-code-in-region (point-min) (point-max) t)) +(defun org-edit-comment-block () + "Edit comment block at point. +\\ +A new buffer is created and the block is copied into it, and the +buffer is switched into Org mode. + +When done, exit with `\\[org-edit-src-exit]'. The edited text \ +will then replace the area in the Org mode buffer. + +Throw an error when not at a comment block." + (interactive) + (let ((element (org-element-at-point))) +(unless (and (eq (org-element-type element) 'comment-block) + (org-src--on-datum-p element)) + (user-error "Not in a comment block")) +(org-src--edit-element + element + (org-src--construct-edit-buffer-name (buffer-name) "org") + 'org-mode + (lambda () (org-escape-code-in-region (point-min) (point-max))) + (org-unescape-code-in-string (org-element-property :value element))) +t)) + (defun org-edit-src-code ( code edit-buffer-name) "Edit the source or example block at point. \\ diff --git a/lisp/org.el b/lisp/org.el index
Re: the comment environment does not work for checkboxes
>>> "AB" == Arne Babenhauserheide writes: > Uwe Brauer writes: >> #+BEGIN_COMMENT >> WAIT Computer >> :PROPERTIES: >> :Nr: 4 >> :Comp1:[X] >> :Comp2:[X] >> :END: >> #+END_COMMENT >> Does not. Any idea why? > In a block, you must escape * as ,* — open the environment with C-c C-' > and save it the same way, then it escapes them for you. Thanks, a couple of remarks 1. It does not work! I Presume you mean «C-c '» no «C-c C-'»? Well this is bound to is edit special , | C-c ' runs the command org-edit-special (found in org-mode-map), which | is an interactive compiled Lisp function in ‘org.el’. | | It is bound to H-e, C-c ', C-c C-l, | ,. | | (org-edit-special ARG) | | Call a special editor for the element at point. | When at a table, call the formula editor with ‘org-table-edit-formulas’. | When in a source code block, call ‘org-edit-src-code’. | When in a fixed-width region, call ‘org-edit-fixed-width-region’. | When in an export block, call ‘org-edit-export-block’. | When in a LaTeX environment, call ‘org-edit-latex-environment’. | When at an INCLUDE, SETUPFILE or BIBLIOGRAPHY keyword, visit the included file. | When at a footnote reference, call ‘org-edit-footnote-reference’. | When at a planning line call, ‘org-deadline’ and/or ‘org-schedule’. | When at an active timestamp, call ‘org-time-stamp’. | When at an inactive timestamp, call ‘org-time-stamp-inactive’. | On a link, call ‘ffap’ to visit the link at point. | Otherwise, return a user error. ` Comments block are not listed and as I said it seems not to work, if what you say is the correct syntax, then there is a bug, since 1. when I mark the region, 2. Run org-insert-structure-template, 3. Select comment, it should then lead to #+BEGIN_COMMENT , WAIT Computer :PROPERTIES: :Nr: 4 :Comp1:[X] :Comp2:[X] :END: #+END_COMMENT Automatically, but it does *not*. So I am a bit puzzled. Uwe > Best wishes, > Arne -- I strongly condemn Putin's war of aggression against the Ukraine. I support to deliver weapons to Ukraine's military. I support the ban of Russia from SWIFT. I support the EU membership of the Ukraine. smime.p7s Description: S/MIME cryptographic signature
Re: the comment environment does not work for checkboxes
Uwe Brauer writes: > #+BEGIN_COMMENT > WAIT Computer > :PROPERTIES: > :Nr: 4 > :Comp1:[X] > :Comp2:[X] > :END: > #+END_COMMENT > Does not. Any idea why? In a block, you must escape * as ,* — open the environment with C-c C-' and save it the same way, then it escapes them for you. Best wishes, Arne -- Unpolitisch sein heißt politisch sein, ohne es zu merken. draketo.de signature.asc Description: PGP signature