(org-cycle) in new plain list items

2020-05-23 Thread lamaglama

It is a minor thing, but it sort of bugs me:

When I press  in a new plain list item it demotes it, as it should. 
But when I press  again, it does not move to the parent level, like 
a new headline would. Rather, it goes to the initial level first, before 
moving on to the parent levels.


Is this intended behaviour?

Kind Regards



Re: Improving Org Mode for VSCode - Thinking Aloud

2020-05-23 Thread Tim Cross


stardiviner  writes:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
>
>
> George Mauer  writes:
>
>> With VSCode becoming ever-popular it seems like there might be some value
>> in getting org mode working there simply as a way of promoting org as an
>> excellent literate coding notebook.
>>
>> VSCode already has a halfway decent org-mode but it doesn’t support
>> anything from Babel. I’m trying to think of relatively easy ways of adding
>> that ability. Here’s a thought: Most of babel that technically works
>> against the document itself, it doesn’t really need much document
>> integration with the editor. So could you get it working in vscode so long
>> as someone has a properly configured version of emacs installed locally?
>> “Evaluate/Export/etc” would just write the document, then use emacs to run
>> the appropriate commands on it and refresh the document view.
>
> Use Emacs as backend for Org Mode Babel to run in VS Code, This sound a bit of
> overthinking. Why not just use Org Mode in Emacs directly? As my personal
> opinion, Org Mode is just a document format (of course it's deeply integrated
> with Emacs!!) But VS Code can do it in similar way. I really suggest you think
> it clearly. And help VS Code team archive this.
>

I think the main flaw in using Emacs as the backend is that a correctly
configured emacs to support or the org features, especially wrt babel
and document export, is a non-trivial task. It is not as simple as
installing Emacs and a couple of setq lines in an init file.

Org relies heavily on a lot of external tools, especially TeX/LaTeX.
Anyone who is going to put in the effort to configure Emacs is unlikely
to want to also configure VSCode and vice versa, plus you would need to
run both VSCode and at least the emacs server/daemon to make this work.

Having said that, it could be an OK proof of concept to perhaps spark
interest in developing a VSCode version which has the babel/export
features (I'm assuming the existing implementation already handles the
basic org markup syntax etc). In the long term, a VSCode version of org
would probably benefit more if it uses other VSCode plugins for babel
and export. Starting with the languages which have REPLs would likely be
a good first step and I suspect there is already a LaTeX plugin. It will
likely be necessary to work with the various authors of these other
VSCode plugins as you will probably need them to add additional API
hooks to use. 

Probably the best assistance org-mode can provide would be definitive
and current documentation on the markup syntax and APIs for babel and
export. A tough task given the scope, but things are probably pretty
stable in this area now (though I'm not sure about babel and handling of
returned values and errors etc). 

-- 
Tim Cross



Re: [QUESTION] What's the ":desk" link parameter?

2020-05-23 Thread Ihor Radchenko
> I remember I found this code on emacs.stackexchange.com website.
>
> I did a Google search now, I found someone indeed proposed this feature. Here 
> is
> the email archive:
>
> https://lists.gnu.org/archive/html/emacs-orgmode/2019-08/msg00013.html
>
> I saw this thread is stopped. Seems no patch provided. Does anyone want to 
> implement it?

See the attached.

Best,
Ihor

diff --git a/lisp/ol.el b/lisp/ol.el
index 0cb1b0a7e..32a80ee56 100644
--- a/lisp/ol.el
+++ b/lisp/ol.el
@@ -138,6 +138,13 @@ link.
   Function that inserts a link with completion.  The function
   takes one optional prefix argument.
 
+`:description'
+
+  Function to use for generating link descriptions from links.  This
+  function must take two parameters: the first one is the link, the
+  second one is the description generated by `org-insert-link'.  The
+  function should return the description to use.
+
 `:display'
 
   Value for `invisible' text property on the hidden parts of the
@@ -193,16 +200,6 @@ You can interactively set the value of this variable by calling
   :type 'boolean
   :safe #'booleanp)
 
-(defcustom org-link-make-description-function nil
-  "Function to use for generating link descriptions from links.
-This function must take two parameters: the first one is the
-link, the second one is the description generated by
-`org-insert-link'.  The function should return the description to
-use."
-  :group 'org-link
-  :type '(choice (const nil) (function))
-  :safe #'null)
-
 (defcustom org-link-file-path-type 'adaptive
   "How the path name in file links should be stored.
 Valid values are:
@@ -1742,10 +1739,8 @@ If the LINK-LOCATION parameter is non-nil, this value will be used as
 the link location instead of reading one interactively.
 
 If the DESCRIPTION parameter is non-nil, this value will be used as the
-default description.  Otherwise, if `org-link-make-description-function'
-is non-nil, this function will be called with the link target, and the
-result will be the default link description.  When called non-interactively,
-don't allow to edit the default description."
+default description.  When called non-interactively, don't allow to
+edit the default description."
   (interactive "P")
   (let* ((wcf (current-window-configuration))
 	 (origbuf (current-buffer))
@@ -1890,17 +1885,27 @@ Use TAB to complete link prefixes, then RET for type-specific completion support
 	(setq desc path)
 
 (unless auto-desc
-  (let ((initial-input
-	 (cond
-	  (description)
-	  ((not org-link-make-description-function) desc)
-	  (t (condition-case nil
-		 (funcall org-link-make-description-function link desc)
-		   (error
-		(message "Can't get link description from %S"
-			 (symbol-name org-link-make-description-function))
-		(sit-for 2)
-		nil))
+  (let* ((type (and (string-match "\\([^:]+\\):" link)
+			(match-string-no-properties 1 link)))
+	 (initial-input
+	  (cond
+	   (description)
+   ((org-link-get-parameter type :description)
+		(condition-case nil
+		(funcall (org-link-get-parameter type :description) link desc)
+		  (error
+		   (message "Can't get link description from %S"
+			(symbol-name (org-link-get-parameter type :description)))
+		   (sit-for 2)
+		   nil)))
+	   ((not org-link-make-description-function) desc)
+	   (t (condition-case nil
+		  (funcall org-link-make-description-function link desc)
+		(error
+		 (message "Can't get link description from %S"
+			  (symbol-name org-link-make-description-function))
+		 (sit-for 2)
+		 nil))
 	(setq desc (if (called-interactively-p 'any)
 		   (read-string "Description: " initial-input)
 		 initial-input
diff --git a/lisp/org-compat.el b/lisp/org-compat.el
index 635a38dcd..c17d888fc 100644
--- a/lisp/org-compat.el
+++ b/lisp/org-compat.el
@@ -376,6 +376,21 @@ See `org-link-parameters' for documentation on the other parameters."
 
 (make-obsolete 'org-add-link-type "use `org-link-set-parameters' instead." "Org 9.0")
 
+(defcustom org-link-make-description-function nil
+  "Function to use for generating link descriptions from links.
+This function must take two parameters: the first one is the
+link, the second one is the description generated by
+`org-insert-link'.  The function should return the description to
+use."
+  :group 'org-link
+  :type '(choice (const nil) (function))
+  :safe #'null)
+
+(make-obsolete-variable
+ 'org-link-make-description-function
+ "use `org-link-set-parameters' to set :description link parameter instead."
+ "Org 9.3.6")
+
  Functions unused in Org core.
 (defun org-table-recognize-table.el ()
   "If there is a table.el table nearby, recognize it and move into it."
@@ -516,8 +531,10 @@ use of this function is for the stuck project list."
 (define-obsolete-variable-alias 'org-email-link-description-format
   'org-link-email-description-format "Org 9.3")
 
-(define-obsolete-variable-alias 

Re: [PATCH] ob-haskell: Line Continuations Mangle Block Output

2020-05-23 Thread Nick Daly
Apologies, one last patch.

On Sat, May 23, 2020 at 7:02 PM Nick Daly  wrote:
> : "^\\*?[[:upper:]][\\._[:alnum:]]*\\(?:
> \\*?[[:upper:]][\\._[:alnum:]]*\\)*\\( λ\\)?> "
>
> =comint-prompt-regexp='s variable documentation calls out much simpler
> regexps
>
> : "^[^>]+\\(> \\)?"

This simplified patch breaks one case that I'd forgotten about: the
true one-liner, where the output displays before the "Prelude> "
prompt even appears.

#+BEGIN_SRC haskell
scanl (+) 0 [1,2,3,4]
#+END_SRC

#+BEGIN_EXAMPLE
Prelude> scanl (+) 0 [1,2,3,4]
"org-babel-haskell-eoe"
[0,1,3,6,10]
Prelude> "org-babel-haskell-eoe"
Prelude>
#+END_EXAMPLE

This latest patch updates the original (more complicated) regexp that
works with this out-of-order output.  This should display the expected
result in all known cases:

One liners:

#+BEGIN_SRC haskell
scanl (+) 0 [1,2,3,4]
#+END_SRC

#+RESULTS:
| 0 | 1 | 3 | 6 | 10 |

Silent multi-line blocks:

#+BEGIN_SRC haskell :results silent
:{
flip' :: (a -> b -> c) -> (b -> a -> c)
flip' f = \x y -> f y x
:}
#+END_SRC

Multi-line blocks with value results:

#+BEGIN_SRC haskell
:{
sum' :: (Num a) => [a] -> a
sum' xs = foldl (\ acc x -> acc + x) 0 xs
:}
sum' [1,2,3,4] == 10
#+END_SRC

#+RESULTS:
: True

Multi-line blocks with output results:

#+BEGIN_SRC haskell :results output
:{
sum' :: (Num a) => [a] -> a
sum' xs = foldl (\ acc x -> acc + x) 0 xs
:}
print "hi"
#+END_SRC

#+RESULTS:
:
: hi

Thanks again for your time,
Nick
diff --git a/lisp/ob-haskell.el b/lisp/ob-haskell.el
index bea162528..6ac34f2f5 100644
--- a/lisp/ob-haskell.el
+++ b/lisp/ob-haskell.el
@@ -56,15 +56,27 @@
 
 (defvar org-babel-haskell-eoe "\"org-babel-haskell-eoe\"")
 
-(defvar haskell-prompt-regexp)
+(defvar haskell-prompt-regexp "^\\(\\*?[[:upper:]][\\._[:alnum:]]*\\(?: \\*?[[:upper:]][\\._[:alnum:]]*\\)*\\( λ\\)?[|>] \\)*"
+  "Filter out prompts from Haskell interpreters:
+
+GHC:
+
+- 'output
+   ^Prelude> EOE'
+- '^Prelude> output EOE'
+- '^Prelude| Prelude| Prelude> output EOE'
+
+Unknown Interpreter:
+
+- '^> '
+- '^λ> '")
 
 (defun org-babel-execute:haskell (body params)
   "Execute a block of Haskell code."
   (require 'inf-haskell)
   (add-hook 'inferior-haskell-hook
 (lambda ()
-  (setq-local comint-prompt-regexp
-  (concat haskell-prompt-regexp "\\|^λ?> "
+  (setq-local comint-prompt-regexp haskell-prompt-regexp)))
   (let* ((session (cdr (assq :session params)))
  (result-type (cdr (assq :result-type params)))
  (full-body (org-babel-expand-body:generic


Re: [PATCH] ob-haskell: Line Continuations Mangle Block Output

2020-05-23 Thread Nick Daly
Hi Kyle, thanks for the thoughtful analysis.

On Wed, May 20, 2020 at 12:51 AM Kyle Meyer  wrote:
> So it looks like the member call above is returning nil because the
> prompt markers are corrupting the element.  If that's the case, it seems
> like the output cleansing should happen upstream of that call.
>
> What do you think?

After a bit of tinkering, I realized there are two things going on
here, only one of which I fully understand:

1. My core functional issue is that =comint-prompt-regexp= isn't set
   up to handle the "Prelude| " entries or the repeated prompts.  The
   other patches I submitted were unnecessary.

2. The =comint-prompt-regexp= gets default values from somewhere I
   don't understand and can't find with a quick source grep.

In ob-haskell, we set =comint-prompt-regexp= to the (undefined)
haskell-prompt plus "or optional-lambda":

  (defvar haskell-prompt-regexp)

  (defun org-babel-execute:haskell (body params) ...
  (setq-local comint-prompt-regexp
(concat haskell-prompt-regexp "\\|^λ?> "

That causes an evaluation error that prevents the first source block
evaluation but, strangely, that also results in this mess in the
*haskell* buffer on subsequent evaluations:

: "^\\*?[[:upper:]][\\._[:alnum:]]*\\(?:
\\*?[[:upper:]][\\._[:alnum:]]*\\)*\\( λ\\)?> "

=comint-prompt-regexp='s variable documentation calls out much simpler
regexps that do basically the same thing as the one above and handles
the repeated "Prelude| " entries.  This one is based off the Canonical
Lisp example:

: "^[^>\n]+\\(> \\)?"

I've attached a patch against git master that results in fewer
undefined variable errors and depends less default-variable magic.
Now, =haskell-prompt-regexp= and =comint-prompt-regexp= are explicitly
set using defaults that can be M-x customized, and the default value
handles the repeated "Prelude| " entries without breaking the original
"λ> " prompt handling.

Thanks,
Nick
diff --git a/lisp/ob-haskell.el b/lisp/ob-haskell.el
index bea162528..893e4220c 100644
--- a/lisp/ob-haskell.el
+++ b/lisp/ob-haskell.el
@@ -56,15 +56,25 @@
 
 (defvar org-babel-haskell-eoe "\"org-babel-haskell-eoe\"")
 
-(defvar haskell-prompt-regexp)
+(defvar haskell-prompt-regexp "^[^>\n]*\\(> \\)?"
+  "Filter out prompts from Haskell interpreters:
+
+GHC:
+
+- '^Prelude> '
+- '^Prelude| Prelude| Prelude> '
+
+Unknown Interpreter:
+
+- '^> '
+- '^λ> '")
 
 (defun org-babel-execute:haskell (body params)
   "Execute a block of Haskell code."
   (require 'inf-haskell)
   (add-hook 'inferior-haskell-hook
 (lambda ()
-  (setq-local comint-prompt-regexp
-  (concat haskell-prompt-regexp "\\|^λ?> "
+  (setq-local comint-prompt-regexp haskell-prompt-regexp)))
   (let* ((session (cdr (assq :session params)))
  (result-type (cdr (assq :result-type params)))
  (full-body (org-babel-expand-body:generic


Re: [QUESTION] What's the ":desk" link parameter?

2020-05-23 Thread stardiviner
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256


John Kitchin  writes:

> Where did you find that code?  I recall this was some kind of prototype
> code, and maybe it never got fully developed. I think desk was shorthand
> for description.

I remember I found this code on emacs.stackexchange.com website.

I did a Google search now, I found someone indeed proposed this feature. Here is
the email archive:

https://lists.gnu.org/archive/html/emacs-orgmode/2019-08/msg00013.html

I saw this thread is stopped. Seems no patch provided. Does anyone want to 
implement it?

>
> On Sat, May 23, 2020 at 8:24 AM stardiviner  wrote:
>
>> -BEGIN PGP SIGNED MESSAGE-
>> Hash: SHA256
>>
>>
>> I found some examples setting org-link-parameters with ":desk", like this:
>>
>> #+begin_src emacs-lisp
>> (defun org-id-link-desk (link desk)
>>   "Description function for id: link."
>>   (let ((id (cadr (split-string link ":"
>> (org-with-point-at (org-id-find id 'marker)
>>   (s-join "/" (org-get-outline-path 'with-self)
>>
>> (org-link-set-parameters "id" :desk #'org-id-link-desk)
>> #+end_src
>>
>> But I have not found any mention in help of variable
>> ~org-link-parameters~. Also I
>> checked org mode source code by search, no matching of ":desk" found. Did
>> I miss
>> something?
>>
>> - --
>> [ stardiviner ]
>>I try to make every word tell the meaning that I want to express.
>>
>>Blog: https://stardiviner.github.io/
>>IRC(freenode): stardiviner, Matrix: stardiviner
>>GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
>>
>> -BEGIN PGP SIGNATURE-
>>
>> iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl7JFckUHG51bWJjaGls
>> ZEBnbWFpbC5jb20ACgkQG13xyVromsONBggAy0z465LkTx1EYBo4GWZdObWXct8O
>> Fjz24HGzin/ffISIhytm0r4w5GE2Rb2/m+BwAsfHEDDvLu1mwU3HvLugXmIk0OUA
>> u9qRLHJ4Po1/Y1CRR0o/OHHnbTjhA/7ppljRcN0klwd6J0PDrSE3K/XOhV94xyfK
>> k0fUBhtQeTdW/uzx49hs14QlNQ5i6+HJWd1g/viXI+v0EIYJDV3PLwS6CFJWnvo3
>> Yi210RM87uKi8vWFcFP7fEW2dYDV5MRsKmQ8v9AKLcCW9+T6Zq3tI7Srxn7ZwFsQ
>> mFxZdLFyDlQq0M4VG0WL/epwr0f4B2SUZ3BcOEYrwv7N+7sfMN2cCWI8jQ==
>> =8aOD
>> -END PGP SIGNATURE-
>>
>> --
> John
>
> ---
> Professor John Kitchin
> Doherty Hall A207F
> Department of Chemical Engineering
> Carnegie Mellon University
> Pittsburgh, PA 15213
> 412-268-7803
> @johnkitchin
> http://kitchingroup.cheme.cmu.edu


- -- 
[ stardiviner ]
   I try to make every word tell the meaning that I want to express.

   Blog: https://stardiviner.github.io/
   IRC(freenode): stardiviner, Matrix: stardiviner
   GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
  
-BEGIN PGP SIGNATURE-

iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl7JtzoUHG51bWJjaGls
ZEBnbWFpbC5jb20ACgkQG13xyVromsMC4wf+Nzj7X+SDnSaYoFYWvdx/r0PtSbyJ
u4fmiT5TlWYJvx6+S9HVxTSmvR7QEdxWFTLU0zkVFAmuhFIehIDoQpCzunwCGKfl
Onn+TLwqm8UaeDS1GXs0yhRLRAgsDqM+jdd7+IKccljRonM1RVYDjFjfdXvh9U9h
mDU78HGL/yGg6rzlIHlzh+s0bvkM0xgmivI7zWmk1BF8PQofXcVzdGn3aWFz3rNN
clEgmCtOX/t7gRzn8H8Ydq+vg+J15OliNjWBRZ1Op26msaOYe+nly8tGAbfwqDgB
SSC4vi42vUbvVNzpjYfR6byqQ4RDxI8th66NJ6yuk0hkCnTHe69h1gQuqw==
=Q210
-END PGP SIGNATURE-



Re: Improving Org Mode for VSCode - Thinking Aloud

2020-05-23 Thread stardiviner
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256


George Mauer  writes:

> With VSCode becoming ever-popular it seems like there might be some value
> in getting org mode working there simply as a way of promoting org as an
> excellent literate coding notebook.
>
> VSCode already has a halfway decent org-mode but it doesn’t support
> anything from Babel. I’m trying to think of relatively easy ways of adding
> that ability. Here’s a thought: Most of babel that technically works
> against the document itself, it doesn’t really need much document
> integration with the editor. So could you get it working in vscode so long
> as someone has a properly configured version of emacs installed locally?
> “Evaluate/Export/etc” would just write the document, then use emacs to run
> the appropriate commands on it and refresh the document view.

Use Emacs as backend for Org Mode Babel to run in VS Code, This sound a bit of
overthinking. Why not just use Org Mode in Emacs directly? As my personal
opinion, Org Mode is just a document format (of course it's deeply integrated
with Emacs!!) But VS Code can do it in similar way. I really suggest you think
it clearly. And help VS Code team archive this.

And I really don't think suggesting improvement of Org Mode on VS Code is an
good idea here.

Any idea welcome of course. :)

>
> Of course features like the separate editor for src blocks and
> folding #results would be nice too, but if the basics could work that would
> be a huge win for org.
>
> Any thoughts on the feasibility of this?


- -- 
[ stardiviner ]
   I try to make every word tell the meaning that I want to express.

   Blog: https://stardiviner.github.io/
   IRC(freenode): stardiviner, Matrix: stardiviner
   GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
  
-BEGIN PGP SIGNATURE-

iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl7JtLwUHG51bWJjaGls
ZEBnbWFpbC5jb20ACgkQG13xyVromsPYtAf/btEBa1N/8/ew6EAeISdGyC8LFNCg
7fnR4AvPPeKuRfrXy9IOyKsLtgtmFKkkYeYteoRxnrpqXaZq5q+fjul3CAynzj4Y
KexofiEpLxIrqnuaBjXg7mJxkTMMEKOgPKV62ndFUER52mHtUzNccqNBfrS6nJzE
Mk66JtFyxw/2fyk/qFhv7WTSWm1xGzedqH9O14Jz9s9WdvAtVsmFjSZf05cqUbsS
OPNnHdeCxffDUInnTsnzTFPzJ4vjwugyRAV1SSCkziKqF0WMzAsdox9OkpatWcFd
WFIEp+B0VUtFmDyPvYIx7EMFgnyoRB/00OwtcI0XcT8081+yxc8zc9j5ZQ==
=KFat
-END PGP SIGNATURE-



CUSTOM_id ignored on blocks by ox-beamer

2020-05-23 Thread Rafael


Consider the following example:

#+begin_src org
,#+title: Test

,#+options: H:2

,* Section
  :PROPERTIES:
  :CUSTOM_ID: section
  :END:

,** Frame
   :PROPERTIES:
   :CUSTOM_ID: frame
   :END:

,*** Block
:PROPERTIES:
:CUSTOM_ID: block
:END:
#+end_src

If I export this to Beamer, then both section and frame get appropiate
labels, (either with org-latex-prefer-user-labels set to t or nil), but
the custom_id for block is completely ignored. I want to use theorems as
blocks in frames, so it would be very useful to me if the custom_id in
the block is exported as \label{block}. Is there a way to have this by
setting a variable, or something?

It works if I include #+beamer: \label{block} below the properties
drawer, but I would prefer not to duplicate the label, of course.

Best regards,
Rafael



Re: emacs + org-mode in virtual machine/docker/...

2020-05-23 Thread Olivier Berger
Hi.

This looks quite similar to my approach to producing course material,
which is documented here : https://olberger.gitlab.io/org-teaching
including the use of Docker (see
https://gitlab.com/olberger/docker-org-teaching-export/ )

Hth,

Best regards,

Jens Lechtenboerger  writes:

> On 2020-05-21, John Kitchin wrote:
>
>> What do you do with this image? I would be happy to continue this off-list
>> if it seems better.
>
> I generate self-study HTML presentations with audio as OER based on
> reveal.js.  See there for a course about to start in two weeks:
> https://oer.gitlab.io/OS/
>
> Material generated from this:
> https://gitlab.com/oer/OS/-/blob/master/.gitlab-ci.yml
>
> A howto: https://oer.gitlab.io/emacs-reveal-howto
>
> Best wishes
> Jens
>
>

-- 
Olivier BERGER
https://www-public.imtbs-tsp.eu/~berger_o/ - OpenPGP 2048R/0xF9EAE3A65819D7E8
Ingenieur Recherche - Dept INF
Institut Mines-Telecom, Telecom SudParis, Evry (France)



Re: Bug: org-agenda-tag-filter-preset not respected [9.3.6 (9.3.6-19-gf360f9-elpaplus @ /home/jorge/.config/emacs/elpa/27.0/develop/org-plus-contrib-20200302/)]

2020-05-23 Thread Bastien
Kyle Meyer  writes:

> * lisp/org-agenda.el (org-agenda-filter-make-matcher): Combine filter
> forms with `and' unless multiple positive categories are given.

Thanks Jorge for reporting this and Kyle for fixing my mistakes here!

-- 
 Bastien



Re: Improving Org Mode for VSCode - Thinking Aloud

2020-05-23 Thread Bastien
Hi George,

George Mauer  writes:

> Any thoughts on the feasibility of this?

Well, I suggest you discuss with the developers of VS Code themselves.

Best,

-- 
 Bastien



Re: Manual 7.5.3 Capturing column view outdated

2020-05-23 Thread Kyle Meyer
Bastien writes:

> Axel Kielhorn  writes:
>
>> while exchanging mails with Uwe Brauer I discovered some errors in
>> the manual:
>
> just a note to say it has been fixed by Kyle a while ago:
> https://code.orgmode.org/bzg/org-mode/commit/861ffb31
>
> Sorry if a confirmation has already been sent, I could not find it in
> the list.

Downstream of the message to which you've replied, there were a few
patches along with a review by Axel.  I'm not sure why they're not
showing up on your end, but I can see them in the places I've checked:

  https://lists.gnu.org/archive/html/emacs-orgmode/2020-05/msg00042.html
  
https://yhetil.org/orgmode/3ce37ef0-6c7a-4cc0-afee-2b82296d6...@axelkielhorn.de/T/#u
  gmane.io nntp via Gnus

Anyway, thanks for pointing to the commit.  It's better to have extra
confirmation than no confirmation :)



Re: [patch suggestion] Mitigating the poor Emacs performance on huge org files: Do not use overlays for PROPERTY and LOGBOOK drawers

2020-05-23 Thread Ihor Radchenko
Github link to the patch:
https://gist.github.com/yantar92/6447754415457927293acda43a7fcaef 


Ihor Radchenko  writes:

> The patch is attached
>
> diff --git a/contrib/lisp/org-notify.el b/contrib/lisp/org-notify.el
> index 9f8677871..ab470ea9b 100644
> --- a/contrib/lisp/org-notify.el
> +++ b/contrib/lisp/org-notify.el
> @@ -246,7 +246,7 @@ seconds.  The default value for SECS is 20."
>(switch-to-buffer (find-file-noselect file))
>(org-with-wide-buffer
> (goto-char begin)
> -   (outline-show-entry))
> +   (org-show-entry))
>(goto-char begin)
>(search-forward "DEADLINE: <")
>(search-forward ":")
> diff --git a/contrib/lisp/org-velocity.el b/contrib/lisp/org-velocity.el
> index bfc4d6c3e..2312b235c 100644
> --- a/contrib/lisp/org-velocity.el
> +++ b/contrib/lisp/org-velocity.el
> @@ -325,7 +325,7 @@ use it."
>(save-excursion
>  (when narrow
>(org-narrow-to-subtree))
> -(outline-show-all)))
> +(org-show-all)))
>  
>  (defun org-velocity-edit-entry/inline (heading)
>"Edit entry at HEADING in the original buffer."
> diff --git a/doc/org-manual.org b/doc/org-manual.org
> index 96b160175..2ebe94538 100644
> --- a/doc/org-manual.org
> +++ b/doc/org-manual.org
> @@ -509,11 +509,11 @@ Org uses just two commands, bound to {{{kbd(TAB)}}} and
>Switch back to the startup visibility of the buffer (see [[*Initial
>visibility]]).
>  
> -- {{{kbd(C-u C-u C-u TAB)}}} (~outline-show-all~) ::
> +- {{{kbd(C-u C-u C-u TAB)}}} (~org-show-all~) ::
>  
>#+cindex: show all, command
>#+kindex: C-u C-u C-u TAB
> -  #+findex: outline-show-all
> +  #+findex: org-show-all
>Show all, including drawers.
>  
>  - {{{kbd(C-c C-r)}}} (~org-reveal~) ::
> @@ -529,18 +529,18 @@ Org uses just two commands, bound to {{{kbd(TAB)}}} and
>headings.  With a double prefix argument, also show the entire
>subtree of the parent.
>  
> -- {{{kbd(C-c C-k)}}} (~outline-show-branches~) ::
> +- {{{kbd(C-c C-k)}}} (~org-show-branches~) ::
>  
>#+cindex: show branches, command
>#+kindex: C-c C-k
> -  #+findex: outline-show-branches
> +  #+findex: org-show-branches
>Expose all the headings of the subtree, but not their bodies.
>  
> -- {{{kbd(C-c TAB)}}} (~outline-show-children~) ::
> +- {{{kbd(C-c TAB)}}} (~org-show-children~) ::
>  
>#+cindex: show children, command
>#+kindex: C-c TAB
> -  #+findex: outline-show-children
> +  #+findex: org-show-children
>Expose all direct children of the subtree.  With a numeric prefix
>argument {{{var(N)}}}, expose all children down to level
>{{{var(N)}}}.
> @@ -7294,7 +7294,7 @@ its location in the outline tree, but behaves in the 
> following way:
>command (see [[*Visibility Cycling]]).  You can force cycling archived
>subtrees with {{{kbd(C-TAB)}}}, or by setting the option
>~org-cycle-open-archived-trees~.  Also normal outline commands, like
> -  ~outline-show-all~, open archived subtrees.
> +  ~org-show-all~, open archived subtrees.
>  
>  -
>#+vindex: org-sparse-tree-open-archived-trees
> diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
> index ab13f926c..ad9244940 100644
> --- a/lisp/org-agenda.el
> +++ b/lisp/org-agenda.el
> @@ -6826,7 +6826,7 @@ and stored in the variable 
> `org-prefix-format-compiled'."
>   (t "  %-12:c%?-12t% s")))
>   (start 0)
>   varform vars var e c f opt)
> -(while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ 
> .;,:!?=|/<>]?\\)\\([cltseib]\\|(.+)\\)"
> +(while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ 
> .;,:!?=|/<>]?\\)\\([cltseib]\\|(.+?)\\)"
>s start)
>(setq var (or (cdr (assoc (match-string 4 s)
>   '(("c" . category) ("t" . time) ("l" . level) 
> ("s" . extra)
> @@ -9138,20 +9138,20 @@ if it was hidden in the outline."
>   ((and (called-interactively-p 'any) (= more 1))
>(message "Remote: show with default settings"))
>   ((= more 2)
> -  (outline-show-entry)
> +  (org-show-entry)
>(org-show-children)
>(save-excursion
>   (org-back-to-heading)
>   (run-hook-with-args 'org-cycle-hook 'children))
>(message "Remote: CHILDREN"))
>   ((= more 3)
> -  (outline-show-subtree)
> +  (org-show-subtree)
>(save-excursion
>   (org-back-to-heading)
>   (run-hook-with-args 'org-cycle-hook 'subtree))
>(message "Remote: SUBTREE"))
>   ((> more 3)
> -  (outline-show-subtree)
> +  (org-show-subtree)
>(message "Remote: SUBTREE AND ALL DRAWERS")))
>  (select-window win)))
>  
> diff --git a/lisp/org-archive.el b/lisp/org-archive.el
> index d3e12d17b..d864dad8a 100644
> --- a/lisp/org-archive.el
> +++ b/lisp/org-archive.el
> @@ -330,7 +330,7 @@ direct children of this heading."
> (insert (if datetree-date "" "\n") heading "\n")
> (end-of-line 0))
>   ;; 

Re: Fwd: Support compilation of Haskell in org mode babel blocks.

2020-05-23 Thread Bastien
Hi Roland,

Roland Coeurjoly  writes:

> Please find patch attached.

Thanks -- I'll let Nicolas apply it, since he has been following this,
but just some nitpicking for later contributions below:

> From 4d8660eea35ea13809914271562f0ff73507f967 Mon Sep 17 00:00:00 2001
> From: Roland Coeurjoly 
> Date: Sat, 23 May 2020 16:46:26 +0200
> Subject: [PATCH 1/1] ob-haskell: introduce :compile header argument
>
>   * lisp/ob-haskell (org-babel-haskell-compiler):
>   (org-babel-header-args:haskell): new variables.
>   (org-babel-haskell-execute):
>   (org-babel-haskell-interpret): new functions.
>   (org-babel-execute:haskell): use new functions.

"new variables." should be capitalized as "New variables."

>  (provide 'ob-haskell)
>  
> +
> +
>  ;;; ob-haskell.el ends here

You can get rid of these empty lines at the end.

Thanks,

-- 
 Bastien



Re: what is the "stock value of org-modules" (Was Re: Gnus org-mode link problems in org 9.3)

2020-05-23 Thread Bastien
Hi Gijs,

> Looking in my init.el "customisation" section, I see org-bbdb,
> org-bibtex, org-docview, org-gnus, org-info, org-irc, org-mhe,
> org-rmail, and org-w3m. Did I put those there? I guess.
>
> So, I remove these, but even though I restarted Emacs, now the value of
> org-modules is nil. Whereas the documentation says the orginal value is
> all of the above - except entitled ol-$name instead of org-$name. So,
> should I add all of these modules back via customization?

I suggest you remove any previous customization then customize back
again if you need some, that should tidy up things in this area.

HTH,

-- 
 Bastien



Re: org-clip-link should be included in core

2020-05-23 Thread Bastien
Hi Tory,

thanks for reporting this here.

torys.ander...@gmail.com (Tory S. Anderson) writes:

> Per alphapapa's suggestion to bring this up to this list, it seems
> that everyone (doom, spacemacs, and individuals) are rolling their own
> of a functionality that should be included in core: the ability to
> de-linkify text at point, leaving just the text without orgmode
> surroundings. One person claims it's already in there, but I don't see
> anything like =clip-link= in the actual code from
> https://code.orgmode.org/bzg/org-mode/src/master/lisp.
>
> Discussion happening here:
> https://www.reddit.com/r/emacs/comments/gjm8q6/delinking_orgmode_text/

So IIUC the need is to easily remove the link part of a link.

I pushed a change to make this easier.  Now you can hit `C-c C-l' on
a link, empty the link part, keep the description and RET to get only
the description inserted as non-link text.

Let me know if this seems okay for you.

I'm copying Adam as he may comment on that too.

Thanks,

PS: In general, it is easier and faster for people who process emails
in this mailing list if you rephrase the problem so that we don't need
to check an external resource.

-- 
 Bastien



Re: Fwd: Support compilation of Haskell in org mode babel blocks.

2020-05-23 Thread Roland Coeurjoly
Sorry, I was working on the emacs git repo, which seems to be a bit behind
the org mode one.
Please find patch attached.

On Sat, May 23, 2020 at 4:02 PM Bastien  wrote:

> Hi Roland,
>
> Roland Coeurjoly  writes:
>
> > I have done a clean clone and I still don't see a 9.4 section in
> > master.
> > Is it in another branch?
>
> It is here in the master branch:
>
> https://code.orgmode.org/bzg/org-mode/src/master/etc/ORG-NEWS#L13
>
> --
>  Bastien
>
From 4d8660eea35ea13809914271562f0ff73507f967 Mon Sep 17 00:00:00 2001
From: Roland Coeurjoly 
Date: Sat, 23 May 2020 16:46:26 +0200
Subject: [PATCH 1/1] ob-haskell: introduce :compile header argument

  * lisp/ob-haskell (org-babel-haskell-compiler):
  (org-babel-header-args:haskell): new variables.
  (org-babel-haskell-execute):
  (org-babel-haskell-interpret): new functions.
  (org-babel-execute:haskell): use new functions.
---
 etc/ORG-NEWS   |  6 
 lisp/ob-haskell.el | 80 +++---
 2 files changed, 81 insertions(+), 5 deletions(-)

diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index f8bddb613..21c5e3d71 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -453,6 +453,12 @@ equations producing inconsistent output. New option
 ~org-html-equation-reference-format~ sets the command used in HTML
 export.
 
+*** ob-haskell: add support for compilation with :compile header argument
+
+By default, Haskell blocks are interpreted. By adding ~:compile yes~
+to a Haskell source block, it will be compiled, executed and
+the results will be displayed.
+
 * Version 9.3
 
 ** Incompatible changes
diff --git a/lisp/ob-haskell.el b/lisp/ob-haskell.el
index bea162528..466344ac0 100644
--- a/lisp/ob-haskell.el
+++ b/lisp/ob-haskell.el
@@ -23,12 +23,13 @@
 
 ;;; Commentary:
 
-;; Org-Babel support for evaluating haskell source code.  This one will
-;; be sort of tricky because haskell programs must be compiled before
+;; Org Babel support for evaluating Haskell source code.
+;; Haskell programs must be compiled before
 ;; they can be run, but haskell code can also be run through an
 ;; interactive interpreter.
 ;;
-;; For now lets only allow evaluation using the haskell interpreter.
+;; By default we evaluate using the Haskell interpreter.
+;; To use the compiler, specify :compile yes in the header.
 
 ;;; Requirements:
 
@@ -45,6 +46,7 @@
 (declare-function run-haskell "ext:inf-haskell" ( arg))
 (declare-function inferior-haskell-load-file
 		  "ext:inf-haskell" ( reload))
+(declare-function org-entry-get "org" (pom property  inherit literal-nil))
 
 (defvar org-babel-tangle-lang-exts)
 (add-to-list 'org-babel-tangle-lang-exts '("haskell" . "hs"))
@@ -58,8 +60,66 @@
 
 (defvar haskell-prompt-regexp)
 
-(defun org-babel-execute:haskell (body params)
-  "Execute a block of Haskell code."
+(defcustom org-babel-haskell-compiler "ghc"
+  "Command used to compile a Haskell source code file into an executable.
+May be either a command in the path, like \"ghc\"
+or an absolute path name, like \"/usr/local/bin/ghc\".
+The command can include a parameter, such as \"ghc -v\""
+  :group 'org-babel
+  :package-version '(Org "9.4")
+  :type 'string)
+
+(defconst org-babel-header-args:haskell '(compile . :any)
+  "Haskell-specific header arguments.")
+
+(defun org-babel-haskell-execute (body params)
+  "This function should only be called by `org-babel-execute:haskell'"
+  (let* ((tmp-src-file (org-babel-temp-file
+			"Haskell-src-"
+".hs"))
+ (tmp-bin-file
+  (org-babel-process-file-name
+   (org-babel-temp-file "Haskell-bin-" org-babel-exeext)))
+ (cmdline (cdr (assq :cmdline params)))
+ (cmdline (if cmdline (concat " " cmdline) ""))
+ (flags (cdr (assq :flags params)))
+ (flags (mapconcat #'identity
+		   (if (listp flags)
+   flags
+ (list flags)) " "))
+ (libs (org-babel-read
+	(or (cdr (assq :libs params))
+	(org-entry-get nil "libs" t))
+	nil))
+ (libs (mapconcat #'identity
+		  (if (listp libs) libs (list libs))
+		  " ")))
+(with-temp-file tmp-src-file (insert body))
+(org-babel-eval
+ (format "%s -o %s %s %s %s"
+ org-babel-haskell-compiler
+	 tmp-bin-file
+	 flags
+	 (org-babel-process-file-name tmp-src-file)
+	 libs)
+ "")
+(let ((results
+	   (org-babel-eval
+	(concat tmp-bin-file cmdline) "")))
+  (when results
+(setq results (org-trim (org-remove-indentation results)))
+(org-babel-reassemble-table
+ (org-babel-result-cond (cdr (assq :result-params params))
+	   (org-babel-read results t)
+	   (let ((tmp-file (org-babel-temp-file "Haskell-")))
+	 (with-temp-file tmp-file (insert results))
+	 (org-babel-import-elisp-from-file tmp-file)))
+ (org-babel-pick-name
+	  (cdr (assq :colname-names params)) (cdr (assq :colnames params)))
+ 

Re: Fwd: Support compilation of Haskell in org mode babel blocks.

2020-05-23 Thread Bastien
Hi Roland,

Roland Coeurjoly  writes:

> I have done a clean clone and I still don't see a 9.4 section in
> master.
> Is it in another branch?

It is here in the master branch:

https://code.orgmode.org/bzg/org-mode/src/master/etc/ORG-NEWS#L13

-- 
 Bastien



Re: [QUESTION] What's the ":desk" link parameter?

2020-05-23 Thread John Kitchin
Where did you find that code?  I recall this was some kind of prototype
code, and maybe it never got fully developed. I think desk was shorthand
for description.

On Sat, May 23, 2020 at 8:24 AM stardiviner  wrote:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
>
>
> I found some examples setting org-link-parameters with ":desk", like this:
>
> #+begin_src emacs-lisp
> (defun org-id-link-desk (link desk)
>   "Description function for id: link."
>   (let ((id (cadr (split-string link ":"
> (org-with-point-at (org-id-find id 'marker)
>   (s-join "/" (org-get-outline-path 'with-self)
>
> (org-link-set-parameters "id" :desk #'org-id-link-desk)
> #+end_src
>
> But I have not found any mention in help of variable
> ~org-link-parameters~. Also I
> checked org mode source code by search, no matching of ":desk" found. Did
> I miss
> something?
>
> - --
> [ stardiviner ]
>I try to make every word tell the meaning that I want to express.
>
>Blog: https://stardiviner.github.io/
>IRC(freenode): stardiviner, Matrix: stardiviner
>GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
>
> -BEGIN PGP SIGNATURE-
>
> iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl7JFckUHG51bWJjaGls
> ZEBnbWFpbC5jb20ACgkQG13xyVromsONBggAy0z465LkTx1EYBo4GWZdObWXct8O
> Fjz24HGzin/ffISIhytm0r4w5GE2Rb2/m+BwAsfHEDDvLu1mwU3HvLugXmIk0OUA
> u9qRLHJ4Po1/Y1CRR0o/OHHnbTjhA/7ppljRcN0klwd6J0PDrSE3K/XOhV94xyfK
> k0fUBhtQeTdW/uzx49hs14QlNQ5i6+HJWd1g/viXI+v0EIYJDV3PLwS6CFJWnvo3
> Yi210RM87uKi8vWFcFP7fEW2dYDV5MRsKmQ8v9AKLcCW9+T6Zq3tI7Srxn7ZwFsQ
> mFxZdLFyDlQq0M4VG0WL/epwr0f4B2SUZ3BcOEYrwv7N+7sfMN2cCWI8jQ==
> =8aOD
> -END PGP SIGNATURE-
>
> --
John

---
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu


Re: org-babel-demarcate-block doesn't respect case preference

2020-05-23 Thread Bastien
Hi Vladimir,

Vladimir Alexiev  writes:

> org-babel-uppercase-example-markers says whether to insert BEGIN_SRC
> or begin_src.

Not really, it says whether to insert BEGIN_EXAMPLE or begin_example.

FWIW I think we should stick to the convention that Org inserts
lower-case #+begin* keywords as a default, but still matches
upper-case occurrences for backward compatibility when needed.

-- 
 Bastien



Re: [patch suggestion] Mitigating the poor Emacs performance on huge org files: Do not use overlays for PROPERTY and LOGBOOK drawers

2020-05-23 Thread Ihor Radchenko
The patch is attached

diff --git a/contrib/lisp/org-notify.el b/contrib/lisp/org-notify.el
index 9f8677871..ab470ea9b 100644
--- a/contrib/lisp/org-notify.el
+++ b/contrib/lisp/org-notify.el
@@ -246,7 +246,7 @@ seconds.  The default value for SECS is 20."
   (switch-to-buffer (find-file-noselect file))
   (org-with-wide-buffer
(goto-char begin)
-   (outline-show-entry))
+   (org-show-entry))
   (goto-char begin)
   (search-forward "DEADLINE: <")
   (search-forward ":")
diff --git a/contrib/lisp/org-velocity.el b/contrib/lisp/org-velocity.el
index bfc4d6c3e..2312b235c 100644
--- a/contrib/lisp/org-velocity.el
+++ b/contrib/lisp/org-velocity.el
@@ -325,7 +325,7 @@ use it."
   (save-excursion
 (when narrow
   (org-narrow-to-subtree))
-(outline-show-all)))
+(org-show-all)))
 
 (defun org-velocity-edit-entry/inline (heading)
   "Edit entry at HEADING in the original buffer."
diff --git a/doc/org-manual.org b/doc/org-manual.org
index 96b160175..2ebe94538 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -509,11 +509,11 @@ Org uses just two commands, bound to {{{kbd(TAB)}}} and
   Switch back to the startup visibility of the buffer (see [[*Initial
   visibility]]).
 
-- {{{kbd(C-u C-u C-u TAB)}}} (~outline-show-all~) ::
+- {{{kbd(C-u C-u C-u TAB)}}} (~org-show-all~) ::
 
   #+cindex: show all, command
   #+kindex: C-u C-u C-u TAB
-  #+findex: outline-show-all
+  #+findex: org-show-all
   Show all, including drawers.
 
 - {{{kbd(C-c C-r)}}} (~org-reveal~) ::
@@ -529,18 +529,18 @@ Org uses just two commands, bound to {{{kbd(TAB)}}} and
   headings.  With a double prefix argument, also show the entire
   subtree of the parent.
 
-- {{{kbd(C-c C-k)}}} (~outline-show-branches~) ::
+- {{{kbd(C-c C-k)}}} (~org-show-branches~) ::
 
   #+cindex: show branches, command
   #+kindex: C-c C-k
-  #+findex: outline-show-branches
+  #+findex: org-show-branches
   Expose all the headings of the subtree, but not their bodies.
 
-- {{{kbd(C-c TAB)}}} (~outline-show-children~) ::
+- {{{kbd(C-c TAB)}}} (~org-show-children~) ::
 
   #+cindex: show children, command
   #+kindex: C-c TAB
-  #+findex: outline-show-children
+  #+findex: org-show-children
   Expose all direct children of the subtree.  With a numeric prefix
   argument {{{var(N)}}}, expose all children down to level
   {{{var(N)}}}.
@@ -7294,7 +7294,7 @@ its location in the outline tree, but behaves in the following way:
   command (see [[*Visibility Cycling]]).  You can force cycling archived
   subtrees with {{{kbd(C-TAB)}}}, or by setting the option
   ~org-cycle-open-archived-trees~.  Also normal outline commands, like
-  ~outline-show-all~, open archived subtrees.
+  ~org-show-all~, open archived subtrees.
 
 -
   #+vindex: org-sparse-tree-open-archived-trees
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index ab13f926c..ad9244940 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -6826,7 +6826,7 @@ and stored in the variable `org-prefix-format-compiled'."
 	(t "  %-12:c%?-12t% s")))
 	(start 0)
 	varform vars var e c f opt)
-(while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ .;,:!?=|/<>]?\\)\\([cltseib]\\|(.+)\\)"
+(while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ .;,:!?=|/<>]?\\)\\([cltseib]\\|(.+?)\\)"
 			 s start)
   (setq var (or (cdr (assoc (match-string 4 s)
 '(("c" . category) ("t" . time) ("l" . level) ("s" . extra)
@@ -9138,20 +9138,20 @@ if it was hidden in the outline."
  ((and (called-interactively-p 'any) (= more 1))
   (message "Remote: show with default settings"))
  ((= more 2)
-  (outline-show-entry)
+  (org-show-entry)
   (org-show-children)
   (save-excursion
 	(org-back-to-heading)
 	(run-hook-with-args 'org-cycle-hook 'children))
   (message "Remote: CHILDREN"))
  ((= more 3)
-  (outline-show-subtree)
+  (org-show-subtree)
   (save-excursion
 	(org-back-to-heading)
 	(run-hook-with-args 'org-cycle-hook 'subtree))
   (message "Remote: SUBTREE"))
  ((> more 3)
-  (outline-show-subtree)
+  (org-show-subtree)
   (message "Remote: SUBTREE AND ALL DRAWERS")))
 (select-window win)))
 
diff --git a/lisp/org-archive.el b/lisp/org-archive.el
index d3e12d17b..d864dad8a 100644
--- a/lisp/org-archive.el
+++ b/lisp/org-archive.el
@@ -330,7 +330,7 @@ direct children of this heading."
 		  (insert (if datetree-date "" "\n") heading "\n")
 		  (end-of-line 0))
 		;; Make the subtree visible
-		(outline-show-subtree)
+		(org-show-subtree)
 		(if org-archive-reversed-order
 			(progn
 			  (org-back-to-heading t)
diff --git a/lisp/org-colview.el b/lisp/org-colview.el
index e50a4d7c8..e656df555 100644
--- a/lisp/org-colview.el
+++ b/lisp/org-colview.el
@@ -699,7 +699,7 @@ FUN is a function called with no argument."
 			  (move-beginning-of-line 2)
 			  (org-at-heading-p t)
 (unwind-protect (funcall fun)
-  (when 

Re: [patch suggestion] Mitigating the poor Emacs performance on huge org files: Do not use overlays for PROPERTY and LOGBOOK drawers

2020-05-23 Thread Ihor Radchenko
Hello,

[The patch itself will be provided in the following email]

I have five updates from the previous version of the patch:

1. I implemented a simplified version of element parsing to detect
changes in folded drawers or blocks. No computationally expensive calls
of org-element-at-point or org-element-parse-buffer are needed now.

2. The patch is now compatible with master (commit 2e96dc639). I
reverted the earlier change in folding drawers and blocks. Now, they are
back to using 'org-hide-block and 'org-hide-drawer. Using 'outline would
achieve nothing when we use text properties.

3. 'invisible text property can now be nested. This is important, for
example, when text inside drawers contains fontified links (which also
use 'invisible text property to hide parts of the link). Now, the old
'invisible spec is recovered after unfolding.

4. Some outline-* function calls in org referred to outline-flag-region
implementation, which is not in sync with org-flag-region in this patch.
I have implemented their org-* versions and replaced the calls
throughout .el files. Actually, some org-* versions were already
implemented in org, but not used for some reason (or not mentioned in
the manual). I have updated the relevant sections of manual. These
changes might be relevant to org independently of this feature branch.

5. I have managed to get a working version of outline folding via text
properties. However, that approach has a big downside - folding state
cannot be different in indirect buffer when we use text properties. I
have seen packages relying on this feature of org and I do not see any
obvious way to achieve different folding state in indirect buffer while
using text properties for outline folding.

---
---

More details on the new implementation for tracking changes:

> Of course we can. It is only necessary to focus on changes that would
> break the structure of the element. This does not entail a full parsing.

I have limited parsing to matching beginning and end of a drawer/block.
The basic functions are org--get-element-region-at-point,
org--get-next-element-region-at-point, and org--find-elements-in-region.
They are simplified versions of org-element-* parsers and do not require
parsing everything from the beginning of the section.

For now, I keep everything in org.el, but those simplified parsers
probably belong to org-element.el.

> If we can stick with `after-change-functions' (or local equivalent),
> that's better. It is more predictable than `before-change-functions' and
> alike.

For now, I still used before/after-change-functions combination.
I see the following problems with using only after-change-functions: 

1. They are not guaranteed to be called after every single change:

>From (elisp) Change Hooks:
"... some complex primitives call ‘before-change-functions’ once before
making changes, and then call ‘after-change-functions’ zero or more
times"

The consequence of it is a possibility that region passed to the
after-change-functions is quite big (including all the singular changes,
even if they are distant). This region may contain changed drawers as
well and unchanged drawers and needs to be parsed to determine which
drawers need to be re-folded.

> And, more importantly, they are not meant to be used together, i.e., you
> cannot assume that a single call to `before-change-functions' always
> happens before calling `after-change-functions'. This can be tricky if
> you want to use the former to pass information to the latter.

The fact that before-change-functions can be called multiple times
before after-change-functions, is trivially solved by using buffer-local
changes register (see org--modified-elements). The register is populated
by before-change-functions and cleared by after-change-functions.

> Well, `before-change-fuctions' and `after-change-functions' are not
> clean at all: you modify an unrelated part of the buffer, but still call
> those to check if a drawer needs to be unfolded somewhere.

2. As you pointed, instead of global before-change-functions, we can use
modification-hooks text property on sensitive parts of the
drawers/blocks. This would work, but I am concerned about one annoying
special case:

-
:BLAH: 



:DRAWER: 
Donec at pede.
:END:
-
In this example, the user would not be able to unfold the folder DRAWER
because it will technically become a part of a new giant BLAH drawer.
This may be especially annoying if  is more than one screen
long and there is no easy way to identify why unfolding does not work
(with point at :DRAWER:).

Because of this scenario, limiting before-change-functions to folded
drawers is not sufficient. Any change in text may need to trigger
unfolding.

In the 

Re: [QUESTION] What's the ":desk" link parameter?

2020-05-23 Thread Bastien
Hi,

stardiviner  writes:

> I found some examples setting org-link-parameters with ":desk", like this:
>
> #+begin_src emacs-lisp
> (defun org-id-link-desk (link desk)
>   "Description function for id: link."
>   (let ((id (cadr (split-string link ":"
> (org-with-point-at (org-id-find id 'marker)
>   (s-join "/" (org-get-outline-path 'with-self)
>
> (org-link-set-parameters "id" :desk #'org-id-link-desk)
> #+end_src
>
> But I have not found any mention in help of variable ~org-link-parameters~. 
> Also I
> checked org mode source code by search, no matching of ":desk" found. Did I 
> miss
> something?

I don't know.  Probably your chances of getting an answer are higher
if you ask the people who wrote this code?

HTH,

-- 
 Bastien



Re: Stuck projects in custom agenda not documented?

2020-05-23 Thread Bastien
Hi,

ndame  writes:

> I tried to add stuck projects to my block agenda, but I did not find the 
> relevant
> keyword. Then I googled and it found this discussion which mentions the stuck 
> keyword:
>
> https://old.reddit.com/r/orgmode/comments/96z3el/display_list_of_stuck_projects_in_the_agenda/e45yx8p/
>
> Shouldn't this 'stuck' keyword appear on the Block Agenda manual
> page along with other ones?

Yes, I just updated the doc to mention that the stuck agenda view is
available for block agenda.

Thanks,

-- 
 Bastien



org-babel-demarcate-block doesn't respect case preference

2020-05-23 Thread Vladimir Alexiev
org-babel-uppercase-example-markers says whether to insert BEGIN_SRC or
begin_src.

org-babel-demarcate-block doesn't respect this setting:
https://code.orgmode.org/bzg/org-mode/src/master/lisp/ob-core.el#L1893
makes this check

(lower-case-p (and block
  (let (case-fold-search)
(string-match-p "#\\+begin_src" block)

which sets  lower-case-p only if it's inside an existing lowercase block
(i.e. when splitting a block).
Otherwise (when demarcating the region) it goes with uppercase.


Re: issue tracker?

2020-05-23 Thread Russell Adams


On Sat, May 23, 2020 at 02:57:26PM +0200, Roland Everaert wrote:
> There must be also some kind of "protocol" to transition between the
> various discussions, like
> - from bug to a normal question
> - normal question to a feature request
>

You are aware this is how the Emacs bug mailing list works? They run
Debbugs. Org is part of the Emacs mailing list, and so a tracker is already in
place. Emails with keywords open and close tickets.

https://debbugs.gnu.org/Emacs.html

You can view them online, search, and submit reports directly from Emacs.

Bastien sometimes CC's the Org list with Emacs bugs by number for discussion.


--
Russell Adamsrlad...@adamsinfoserv.com

PGP Key ID: 0x1160DCB3   http://www.adamsinfoserv.com/

Fingerprint:1723 D8CA 4280 1EC9 557F  66E8 1154 E018 1160 DCB3



Re: emacs + org-mode in virtual machine/docker/...

2020-05-23 Thread Roland Everaert
Thank you for the suggestions, but my main problem is to define the network
interface correctly, and, probably, the firewall correctly.

With regard to nomachine, it seems more about accessing remote hosts than
the guest OS of a host OS. So it seems more of an overkill to me, anyway,
can still be useful at time.

On Fri, May 22, 2020 at 11:00 AM briangpowell . 
wrote:

> Would like to "allow the windows host to access the guest using SSH to run
> Emacs Org-Mode" suggestions:
>
> * Install Cygwin on Windows and use Cygwin's SSH tools & run X on Cygwin &
> login to your Linux virtual machine desktop
>
> ** Then can use X11VNC and/or TightVNC client if you run a VNC server of
> some sort on your VirtualBox virtual machine
>
> *  Possibly you could install a NOMACHINE server {
> https://www.nomachine.com} on the Linux virtual machine & a windows
> NOMACHINE client on your Windows host machine & login to your Linux virtual
> machine desktop
>
>
>
>
>
>
>
>
> https://www.nomachine.com/
>
> On Fri, May 22, 2020 at 4:08 AM Roland Everaert 
> wrote:
>
>> I am a user of emacs on virtual machines at work, and the environment
>> works pretty well. I use virtual box as the provided workstation host
>> windows, but the virtual machine host a linux os though. The only thing I
>> didn't manage to do yet, is to allow the windows host to access the guest
>> using SSH. I have read many articles, but none of them seems to work :(
>>
>> Any suggestion for the latter topic, (off this list), is welcomed
>>
>> Regards,
>>
>> Roland.
>>
>> On Fri, May 22, 2020 at 7:27 AM Jens Lechtenboerger <
>> lech...@wi.uni-muenster.de> wrote:
>>
>>> On 2020-05-21, John Kitchin wrote:
>>>
>>> > What do you do with this image? I would be happy to continue this
>>> off-list
>>> > if it seems better.
>>>
>>> I generate self-study HTML presentations with audio as OER based on
>>> reveal.js.  See there for a course about to start in two weeks:
>>> https://oer.gitlab.io/OS/
>>>
>>> Material generated from this:
>>> https://gitlab.com/oer/OS/-/blob/master/.gitlab-ci.yml
>>>
>>> A howto: https://oer.gitlab.io/emacs-reveal-howto
>>>
>>> Best wishes
>>> Jens
>>>
>>>


Re: Setting org-todo-keywords through directory-local variables

2020-05-23 Thread Kévin Le Gouguec
Nicolas Goaziou  writes:

> This looks hackish.

Any bit in particular?  AFAICT hack-local-variables-hook is the expected
way to perform plumbing that might be affected by file/directory-local
variables.  It is used by e.g. shell-script-mode, cc-mode, markdown-mode
and AUCTeX, to name a few.  The docstring says:

> Major modes can use this to examine user-specified local variables
> in order to initialize other data structure based on them.

I think the buffer-file-name bit looks dodgy; I mainly did that to get
the unit tests to pass on this POC.

> Also, Org needs the STARTUP part early on, so you
> cannot really delay it.
>
> I /think/ the rest can be delayed, but I admit I'm not too sure either.

Right.  Now that I've looked at other major modes (especially
AUCTeX[1]), it seems a more conventional approach would be to

- keep the calls to org-set-regexps-and-options and
  org-set-font-lock-defaults where they are now,

- in hack-local-variables-hook, *if* file-local-variables-alist contains
  Org variables that affect those functions, and call them again to
  refresh regexps and fontification.

IIUC this would pretty much guarantee that things can only break for
weirdos like me who try to use directory-local variables.

> I think the expected way to do this is to add a SETUPFILE.

Thanks for the pointer!  Unless I'm misreading (info "(org) In-buffer
Settings"), I could move my SEQ_TODO settings there, but that wouldn't
work for org-todo-keyword-faces, right?


In light of your comments, and based on what I've seen in AUCTeX, I'm
attaching what I believe to be a less intrusive patch.  WDYT?


Thank you for taking the time to review this.  I'm not opposed to using
SETUPFILE (if I can handle org-todo-keyword-faces there); I'm just
wondering if this could be one more opportunity to have Org play nice
with other Emacs facilities (directory-local variables).


[1] 
https://git.savannah.gnu.org/cgit/auctex.git/tree/font-latex.el?h=release_12_2#n1435


diff --git a/lisp/org-faces.el b/lisp/org-faces.el
index d78b606ec..fc834f37d 100644
--- a/lisp/org-faces.el
+++ b/lisp/org-faces.el
@@ -291,7 +291,15 @@ determines if it is a foreground or a background color."
 	   (string :tag "Keyword")
 	   (choice :tag "Face   "
 		   (string :tag "Color")
-		   (sexp :tag "Face")
+		   (sexp :tag "Face"
+  :safe (lambda (x)
+  (cl-every
+   (lambda (pair)
+	 (let ((keyword (car pair))
+		   (face (cdr pair)))
+	   (and (stringp keyword)
+		(or (facep face) (listp face)
+   x)))
 
 (defface org-priority '((t :inherit font-lock-keyword-face))
   "Face used for priority cookies."
diff --git a/lisp/org.el b/lisp/org.el
index e577dc661..da38beb45 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -1945,7 +1945,13 @@ taken from the (otherwise obsolete) variable `org-todo-interpretation'."
 	 org-todo-interpretation-widgets))
 		  widget))
 		   (repeat
-		(string :tag "Keyword"))
+		(string :tag "Keyword")
+  :safe (lambda (x)
+  (cl-every
+   (lambda (seq)
+ (and (memq (car seq) '(sequence type))
+  (cl-every (lambda (i) (stringp i)) (cdr seq
+   x)))
 
 (defvar-local org-todo-keywords-1 nil
   "All TODO and DONE keywords active in a buffer.")
@@ -4358,10 +4364,9 @@ related expressions."
  (cons 'sequence (split-string value)))
    (append (cdr (assoc "TODO" alist))
 	   (cdr (assoc "SEQ_TODO" alist)
-		   (let ((d (default-value 'org-todo-keywords)))
-		 (if (not (stringp (car d))) d
-		   ;; XXX: Backward compatibility code.
-		   (list (cons org-todo-interpretation d)))
+		   (if (not (stringp (car org-todo-keywords))) org-todo-keywords
+		 ;; XXX: Backward compatibility code.
+		 (list (cons org-todo-interpretation org-todo-keywords))
 	  (dolist (sequence todo-sequences)
 	(let* ((sequence (or (run-hook-with-args-until-success
   'org-todo-setup-filter-hook sequence)
@@ -4909,7 +4914,18 @@ The following commands are available:
   ;; Try to set `org-hide' face correctly.
   (let ((foreground (org-find-invisible-foreground)))
 (when foreground
-  (set-face-foreground 'org-hide foreground
+  (set-face-foreground 'org-hide foreground)))
+
+  (add-hook 'hack-local-variables-hook #'org--process-local-variables nil t))
+
+(defun org--process-local-variables ()
+  "Refresh settings affected by file-local or directory-local variables."
+  (when
+  (let ((local-vars (mapcar #'car file-local-variables-alist)))
+	(or (memq 'org-todo-keywords local-vars)
+	(memq 'org-todo-keyword-faces local-vars)))
+(org-set-regexps-and-options)
+(org-set-font-lock-defaults)))
 
 ;; Update `customize-package-emacs-version-alist'
 (add-to-list 'customize-package-emacs-version-alist


Re: issue tracker?

2020-05-23 Thread Roland Everaert
I have to admit that I am kind of a state tracking freak, so, your proposal
is welcomed to keep that tendency at bay.

However, I would add a "category" for bugs/issues and feature requests, in
the subject, else, the bot, the readers and the maintainer will have still
to dig deep into threads to know which one was a feature and which one was
actually a bug report.

There must be also some kind of "protocol" to transition between the
various discussions, like
- from bug to a normal question
- normal question to a feature request

We must avoid that to much bugs ends up as simple discussion, without a
proper sanitation of the thread subject. * I am not sure this is clear even
for me :/*


On Fri, May 22, 2020 at 4:54 PM Anthony Carrico 
wrote:

> On 5/22/20 4:17 AM, Roland Everaert wrote:
> > Example of message states:
> > [QUESTION] -> [ANSWER]
> > [BUG] -> ( [CONFIRMED] | [WONTFIX] | [SOLVED] )
> > [CONFIRMED] -> ( [SOLVED] | [PLANNED] )
> > [FEATURE] -> ( [WONTDO] | [PLANNED] | [IMPLEMENTED] )
> > [PLANNED] -> ( [IMPLEMENTED] | [SOLVED] )
>
> I love your enthusiasm. A mailing list has no means to type check
> messages, so I think it does call for a more simplified mechanism,
> especially as a first pass (note that the machine is necessarily
> nondeterministic, since different people can cause it to transition at
> the same time by sending a message).
>
> I'd argue that questions and answers are just normal threads, that don't
> need a state, and issues just need an open state, and a closed state.
> /The details of the of those states are in the threads for anyone who
> cares to look/. So, OPEN/CLOSED and let the threads speak for themselves.
>
> In this way, there are just two kinds of discussions: tracked, and
> untracked. Newbies can quickly pick up the OPEN/CLOSED grammar. People
> can meander threads between the richer states in their discussion,
> hopefully with good subject lines, and 'bots just need to look for one
> pair of keywords, ignoring threads without those keywords. I don't
> actually use emacs for email, but I'm guessing it wouldn't be too hard
> for someone to write an elisp script to scan a mailbox/maildir to gather
> a list of subject lines--is this true?
>
> --
> Anthony Carrico
>
>


Re: ox-confluence.el: omit radio target links (that end up being dead links)

2020-05-23 Thread Karl Voit
Bastien (b...@gnu.org) wrote:

> Hi Karl,

Hi Bastien,

> I fixed this here:
> https://code.orgmode.org/bzg/org-mode/commit/ceb0ef95fb
> Thanks for the report,

Perfect timing for the fix - thank you!

-- 
Karl Voit



[QUESTION] What's the ":desk" link parameter?

2020-05-23 Thread stardiviner
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256


I found some examples setting org-link-parameters with ":desk", like this:

#+begin_src emacs-lisp
(defun org-id-link-desk (link desk)
  "Description function for id: link."
  (let ((id (cadr (split-string link ":"
(org-with-point-at (org-id-find id 'marker)
  (s-join "/" (org-get-outline-path 'with-self)

(org-link-set-parameters "id" :desk #'org-id-link-desk)
#+end_src

But I have not found any mention in help of variable ~org-link-parameters~. 
Also I
checked org mode source code by search, no matching of ":desk" found. Did I miss
something?

- -- 
[ stardiviner ]
   I try to make every word tell the meaning that I want to express.

   Blog: https://stardiviner.github.io/
   IRC(freenode): stardiviner, Matrix: stardiviner
   GPG: F09F650D7D674819892591401B5DF1C95AE89AC3
  
-BEGIN PGP SIGNATURE-

iQFIBAEBCAAyFiEE8J9lDX1nSBmJJZFAG13xyVromsMFAl7JFckUHG51bWJjaGls
ZEBnbWFpbC5jb20ACgkQG13xyVromsONBggAy0z465LkTx1EYBo4GWZdObWXct8O
Fjz24HGzin/ffISIhytm0r4w5GE2Rb2/m+BwAsfHEDDvLu1mwU3HvLugXmIk0OUA
u9qRLHJ4Po1/Y1CRR0o/OHHnbTjhA/7ppljRcN0klwd6J0PDrSE3K/XOhV94xyfK
k0fUBhtQeTdW/uzx49hs14QlNQ5i6+HJWd1g/viXI+v0EIYJDV3PLwS6CFJWnvo3
Yi210RM87uKi8vWFcFP7fEW2dYDV5MRsKmQ8v9AKLcCW9+T6Zq3tI7Srxn7ZwFsQ
mFxZdLFyDlQq0M4VG0WL/epwr0f4B2SUZ3BcOEYrwv7N+7sfMN2cCWI8jQ==
=8aOD
-END PGP SIGNATURE-



Re: Feature request: Footnotes immediately following the paragraph when exported ($)

2020-05-23 Thread D. C. Toedt
Thanks for the response, Bastien. No one has answered up, suggesting that
there's not widespread interest.






On Sat, May 23, 2020 at 4:29 AM Bastien  wrote:

> Hi,
>
> "D. C. Toedt"  writes:
>
> > For an ongoing pro bono project, it would be nice if there were an
> > in-buffer #+OPTION: configuration for footnotes, when exporting to
> > HTML (or DOCX or PDF), to have the footnote text in small print just
> > below the paragraph in which the footnote reference occurs.
>
> I don't know if you find someone to implement this, but FWIW I don't
> think it would be a good idea to support it in Org by default.  This
> is more a job for a new specific export backend (HTML based, if your
> need is just for the HTML export.)
>
> Best,
>
> --
>  Bastien
>


Re: Fwd: Support compilation of Haskell in org mode babel blocks.

2020-05-23 Thread Roland Coeurjoly
I have done a clean clone and I still don't see a 9.4 section in master.
Is it in another branch?

On Sat, May 23, 2020 at 7:12 AM Kyle Meyer  wrote:

> Hi Roland,
>
> Roland Coeurjoly writes:
>
> > I added version 9.4 to ORG-NEWS.
> > Please tell me if that's OK or I should instead put it in 9.3.
>
> I don't think you managed to place your patch correctly on top of the
> current master (5adfb533c at the time of writing) because ...
>
> > --- a/etc/ORG-NEWS
> > +++ b/etc/ORG-NEWS
> > @@ -10,6 +10,15 @@ See the end of the file for license conditions.
> >
> >  Please send Org bug reports to mailto:emacs-orgmode@gnu.org.
> >
> > +* Version 9.4
> > +
> > +** Incompatible changes
> > +** New features
> > +** New functions
> > +** Removed functions and variables
> > +** Miscellaneous
> > +*** ob-haskell: introduce :compile header argument
>
> ... ORG-NEWS in master already has a section for 9.4.
>
> You can correct the situation by fetching and then rebasing onto master.
>


Re: (Feature Request) have org-edit-special work inside non-environment LaTeX blocks, i.e. \( \) and \[ \]

2020-05-23 Thread Bastien
tecos...@gmail.com writes:

> Don't worry, I haven't faded out of exitance!

Well, I was not worried :)

> I've also now completed the FSF copyright assignment. Let me know if
> you need any details on that front.

If you confirm that the FSF confirmed that you're all set, then no.

> I'm yet to look at what would be required for testing and submitting
> a patch though.

See https://orgmode.org/worg/org-contribute.html

> I'm thinking I could probably just try editing the source files for
> my installed org versions.

Please clone like this:

~$ git clone https://code.orgmode.org/bzg/org-mode.git

and send patches as attachments to the mailing list.

> No idea how to test, other that try it manually a few times.

Before sending patches, run this from your org-mode directory:

~$ make test

This does not say that the patch is correct, so further discussions
are often needed, but it checks whether the patch breaks current tests
or not, which is already useful.

Thanks!

> p.s. I recall a comment about distaste for HTML emails earlier, does
> that extend to HTML+Plaintext multipart messages?

Yes, definitely.  Plain text is always better.

-- 
 Bastien



Re: Migrating from HUGO to org-publish

2020-05-23 Thread Alejandro Alcalde
Hello Bastien,
thanks for replying. I am considering this post:
http://duncan.codes/posts/2019-09-03-migrating-from-jekyll-to-org/index.html

But I still need to figure out how I will try to avoid loosing too much
traffic due to 404 caused by blog posts not pointing to the same url.

Will keep you posted.

Bests
*-- Alejandro Alcalde - elbauldelprogramador.com
*


On Sat, May 23, 2020 at 11:15 AM Bastien  wrote:

> Hi Alejandro,
>
> Alejandro Alcalde  writes:
>
> > Hello, I am looking to migrate from Hugo to org-publish, is there an
> > easy way? I’ve have found several guides to migrate from jekyll, like
> > this one: https://duncan.codes/posts/
> > 2019-09-03-migrating-from-jekyll-to-org/index.html 2
>
> I don't have any useful suggestion here, but if you finally manage to
> do the conversion, please consider explaining how you did it to other
> users, they'll surely appreciate it.
>
> Thanks!
>
> --
>  Bastien
>


Re: Feature request: Footnotes immediately following the paragraph when exported ($)

2020-05-23 Thread Bastien
Hi,

"D. C. Toedt"  writes:

> For an ongoing pro bono project, it would be nice if there were an
> in-buffer #+OPTION: configuration for footnotes, when exporting to
> HTML (or DOCX or PDF), to have the footnote text in small print just
> below the paragraph in which the footnote reference occurs.  

I don't know if you find someone to implement this, but FWIW I don't
think it would be a good idea to support it in Org by default.  This
is more a job for a new specific export backend (HTML based, if your
need is just for the HTML export.)

Best,

-- 
 Bastien



Re: Manual 7.5.3 Capturing column view outdated

2020-05-23 Thread Bastien
Hi Axel,

Axel Kielhorn  writes:

> while exchanging mails with Uwe Brauer I discovered some errors in
> the manual:

just a note to say it has been fixed by Kyle a while ago:
https://code.orgmode.org/bzg/org-mode/commit/861ffb31

Sorry if a confirmation has already been sent, I could not find it in
the list.

-- 
 Bastien



Re: (Feature Request) have org-edit-special work inside non-environment LaTeX blocks, i.e. \( \) and \[ \]

2020-05-23 Thread tecosaur


Bastien  writes:

I hope you will have time to move forward with sending patches 
so that
we can discuss the feature proposals against something we can 
actually

test.

Thanks again,


Don't worry, I haven't faded out of exitance! I've merely become 
(as usual)
distracted. In this case I've spend some time setting up mu4e 
(which I am now
sending this email from), which has been interesting. I think I'll 
like it.


I've also now completed the FSF copyright assignment. Let me know 
if you need

any details on that front.

I'm yet to look at what would be required for testing and 
submitting a patch
though. I'm thinking I could probably just try editing the source 
files for my
installed org versions. Since Doom uses github (pinned to a 
specific, usually
quite recent commits) instead of MELPA I imagine I should be able 
to use this to

produce patches which apply to master without issue.

No idea how to test, other that try it manually a few times. 
Hopefully you'll be

willing to help with that :)

All the best,

Timothy.

p.s. I recall a comment about distaste for HTML emails earlier, 
does that extend

to HTML+Plaintext multipart messages?


Re: Migrating from HUGO to org-publish

2020-05-23 Thread Bastien
Hi Alejandro,

Alejandro Alcalde  writes:

> Hello, I am looking to migrate from Hugo to org-publish, is there an
> easy way? I’ve have found several guides to migrate from jekyll, like
> this one: https://duncan.codes/posts/
> 2019-09-03-migrating-from-jekyll-to-org/index.html 2

I don't have any useful suggestion here, but if you finally manage to
do the conversion, please consider explaining how you did it to other
users, they'll surely appreciate it.

Thanks!

-- 
 Bastien



Re: [PATCH] Add margin option to float for figure in ox-latex.el

2020-05-23 Thread Bastien
Hello,

"Thomas S. Dye"  writes:

> Barring a guru's user-end customization, Rasmus's figure :environment
> attribute idea is a good one.

FWIW, I also think this is a good idea.

Thanks to those who help with this thread!

-- 
 Bastien



Re: (Feature Request) have org-edit-special work inside non-environment LaTeX blocks, i.e. \( \) and \[ \]

2020-05-23 Thread Bastien
Hi Timothy,

thanks for the various feature requests!  It's always interesting to
discuss use cases and possible features.

Timothy  writes:

> I'm also a uni student a few weeks off from exams so I am not able to
>  really need to resist the urge to jump in and work on implementing
> these ideas. I should have significantly more time late june
> though :)

I hope you will have time to move forward with sending patches so that
we can discuss the feature proposals against something we can actually
test.

Thanks again,

-- 
 Bastien



Re: [PATCH] New function org-agenda-filter-set

2020-05-23 Thread Bastien
Hi Stefan,

thanks for this refactoring, it is indeed useful.

I applied you patch against current master.

Best,

-- 
 Bastien



Re: Sugesstion for a more fexible org-bbdb-anniversary-description

2020-05-23 Thread Bastien
Hi Dieter,

Dieter Faulbaum  writes:

> I think it would be nice if this function would have some (customizable)
> variables.

thanks for the suggestion.

Org's interface is in english.  Org supports partial localization for
the exporter (see `org-export-dictionary') and for clock tables.  The
reason we support i18n for the clock tables is that they are often
meant to be part of documents shared with others (e.g. colleagues.)

We can safely assume bbdb anniversaries are for the user only, so Org
will not provide i18n here.

We could imagine an option to let the user refine the UI here but I
don't think that's a good idea because those strings are meant to be
further used as formatting strings, so this would require too much
explanations to the users.

Best,

-- 
 Bastien