emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Font lock for org-babel shell scripts?
@ 2023-03-28 17:24 Derek Chen-Becker
  2023-03-28 21:07 ` Matt
  2023-03-28 21:53 ` [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?) Matt
  0 siblings, 2 replies; 20+ messages in thread
From: Derek Chen-Becker @ 2023-03-28 17:24 UTC (permalink / raw)
  To: Emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1116 bytes --]

Hi,

I'm trying to figure out whether there's a bug or just a misconfiguration
on my end with font lock for org-babel shell source blocks. If I run emacs
28.2 (with -q) and open the following org file, I can evaluate both source
blocks but only the "bash" block has syntax highlighting. I've confirmed
that opening a zsh script (e.g. with a zsh shebang) highlights correctly.
If this list isn't the right place to ask about this issue, does someone
know where I could look for help?

Thanks,

Derek

#+begin_src bash
  if [ -z $TEST ]; then
      echo Good
  fi
#+end_src

#+begin_src zsh
  if [ -z $TEST ]; then
      echo Good
  fi
#+end_src

# Local Variables:
# org-babel-load-languages: ((shell . t))
# End:



-- 
+---------------------------------------------------------------+
| Derek Chen-Becker                                             |
| GPG Key available at https://keybase.io/dchenbecker and       |
| https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
| Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
+---------------------------------------------------------------+

[-- Attachment #2: Type: text/html, Size: 3095 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Font lock for org-babel shell scripts?
  2023-03-28 17:24 Font lock for org-babel shell scripts? Derek Chen-Becker
@ 2023-03-28 21:07 ` Matt
  2023-03-28 21:53 ` [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?) Matt
  1 sibling, 0 replies; 20+ messages in thread
From: Matt @ 2023-03-28 21:07 UTC (permalink / raw)
  To: Derek Chen-Becker; +Cc: Emacs-orgmode


 ---- On Tue, 28 Mar 2023 13:24:39 -0400  Derek Chen-Becker  wrote --- 

 > I'm trying to figure out whether there's a bug or just a misconfiguration on my end with font lock for org-babel shell source blocks. If I run emacs 28.2 (with -q) and open the following org file, I can evaluate both source blocks but only the "bash" block has syntax highlighting. I've confirmed that opening a zsh script (e.g. with a zsh shebang) highlights correctly. If this list isn't the right place to ask about this issue, does someone know where I could look for help?

This is the right place to ask.  And thanks for asking!

I'm able to reproduce it.

I'm not familiar with how Org handles the font lock.  However, I notice that calling C-c ' (`org-edit-special') results in the error:  No such language mode: zsh-mode

I suspect that without a language mode, Org has no way to know how to color the block.

As a quick work around, you can define zsh-mode as shell-script-mode to get coloring:

(defalias 'zsh-mode 'shell-script-mode)


^ permalink raw reply	[flat|nested] 20+ messages in thread

* [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-28 17:24 Font lock for org-babel shell scripts? Derek Chen-Becker
  2023-03-28 21:07 ` Matt
@ 2023-03-28 21:53 ` Matt
  2023-03-29  9:35   ` Ihor Radchenko
  1 sibling, 1 reply; 20+ messages in thread
From: Matt @ 2023-03-28 21:53 UTC (permalink / raw)
  To: Derek Chen-Becker; +Cc: Emacs-orgmode

Of the shells given in `org-babel-shell-names' (that is, "sh" "bash" "zsh" "fish" "csh" "ash" "dash" "ksh" "mksh" "posh"), only "sh" and "bash" have font locking in source blocks.

For example,

#+begin_src sh
  if [ -z $TEST ]; then
      echo Fontified
  fi
#+end_src

#+begin_src bash
  if [ -z $TEST ]; then
      echo Fontified
  fi
#+end_src

#+begin_src zsh
  if [ -z $TEST ]; then
      echo No fontification
  fi
#+end_src

#+begin_src fish
  if [ -z $TEST ]; then
     echo No fontification
  fi
#+end_src

#+begin_src csh
  if [ -z $TEST ]; then
      echo No fontification
  fi
#+end_src

#+begin_src ash
  if [ -z $TEST ]; then
      echo No fontification
  fi
#+end_src

#+begin_src dash
  if [ -z $TEST ]; then
      echo No fontification
  fi
#+end_src

#+begin_src ksh
  if [ -z $TEST ]; then
      echo No fontification
  fi
#+end_src

#+begin_src mksh
  if [ -z $TEST ]; then
      echo No fontification
  fi
#+end_src

#+begin_src posh
  if [ -z $TEST ]; then
      echo No fontification
  fi
#+end_src

 Does anyone know which function is responsible for re-fontifing source blocks?


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-28 21:53 ` [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?) Matt
@ 2023-03-29  9:35   ` Ihor Radchenko
  2023-03-29 17:04     ` Derek Chen-Becker
  0 siblings, 1 reply; 20+ messages in thread
From: Ihor Radchenko @ 2023-03-29  9:35 UTC (permalink / raw)
  To: Matt; +Cc: Derek Chen-Becker, Emacs-orgmode

Matt <matt@excalamus.com> writes:

>  Does anyone know which function is responsible for re-fontifing source blocks?

`org-src-font-lock-fontify-block', which is using major-mode's native
fontification. The major mode is determined by `org-src-get-lang-mode',
which can be customized using `org-src-lang-modes'.

Org provides some defaults for bash in `org-src-lang-modes' but not for
other shell flavours. I guess we can add more defaults to
`org-src-lang-modes', if we know for sure that e.g. zsh can be fontified
sh-mode.

-- 
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>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-29  9:35   ` Ihor Radchenko
@ 2023-03-29 17:04     ` Derek Chen-Becker
  2023-03-29 20:17       ` Matt
  0 siblings, 1 reply; 20+ messages in thread
From: Derek Chen-Becker @ 2023-03-29 17:04 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Matt, Emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1364 bytes --]

Cool, I would be happy to submit a patch!

Thanks,

Derek

On Wed, Mar 29, 2023 at 3:33 AM Ihor Radchenko <yantar92@posteo.net> wrote:

> Matt <matt@excalamus.com> writes:
>
> >  Does anyone know which function is responsible for re-fontifing source
> blocks?
>
> `org-src-font-lock-fontify-block', which is using major-mode's native
> fontification. The major mode is determined by `org-src-get-lang-mode',
> which can be customized using `org-src-lang-modes'.
>
> Org provides some defaults for bash in `org-src-lang-modes' but not for
> other shell flavours. I guess we can add more defaults to
> `org-src-lang-modes', if we know for sure that e.g. zsh can be fontified
> sh-mode.
>
> --
> 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>
>


-- 
+---------------------------------------------------------------+
| Derek Chen-Becker                                             |
| GPG Key available at https://keybase.io/dchenbecker and       |
| https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
| Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
+---------------------------------------------------------------+

[-- Attachment #2: Type: text/html, Size: 3258 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-29 17:04     ` Derek Chen-Becker
@ 2023-03-29 20:17       ` Matt
  2023-03-30  8:56         ` Ihor Radchenko
  0 siblings, 1 reply; 20+ messages in thread
From: Matt @ 2023-03-29 20:17 UTC (permalink / raw)
  To: Derek Chen-Becker; +Cc: Ihor Radchenko, Emacs-orgmode


 ---- On Wed, 29 Mar 2023 13:04:31 -0400  Derek Chen-Becker  wrote --- 
 > Cool, I would be happy to submit a patch!

Sure, if that's something you'd enjoy.  I'm happy to assist, if needed.
  
 > On Wed, Mar 29, 2023 at 3:33 AM Ihor Radchenko yantar92@posteo.net> wrote:
 >
 > Org provides some defaults for bash in `org-src-lang-modes' but not for
 > other shell flavours. I guess we can add more defaults to
 > `org-src-lang-modes', if we know for sure that e.g. zsh can be fontified
 > sh-mode.

I think this approach will work fine.   I tried examples for each shell type and keywords like if/then/else and function names are highlighted.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-29 20:17       ` Matt
@ 2023-03-30  8:56         ` Ihor Radchenko
  2023-03-30 23:10           ` Derek Chen-Becker
  2023-04-01 23:21           ` Matt
  0 siblings, 2 replies; 20+ messages in thread
From: Ihor Radchenko @ 2023-03-30  8:56 UTC (permalink / raw)
  To: Matt; +Cc: Derek Chen-Becker, Emacs-orgmode

Matt <matt@excalamus.com> writes:

> I think this approach will work fine.   I tried examples for each shell type and keywords like if/then/else and function names are highlighted.

Even for posh (powershell)?

-- 
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>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-30  8:56         ` Ihor Radchenko
@ 2023-03-30 23:10           ` Derek Chen-Becker
  2023-03-31 13:08             ` Ihor Radchenko
  2023-04-01 23:21           ` Matt
  1 sibling, 1 reply; 20+ messages in thread
From: Derek Chen-Becker @ 2023-03-30 23:10 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Matt, Emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1172 bytes --]

Would it be fair to use the sh-ancestor-alist as a basis for all of the
supported shell variants?

https://github.com/emacs-mirror/emacs/blob/master/lisp/progmodes/sh-script.el#L177

Cheers,

Derek

On Thu, Mar 30, 2023 at 2:54 AM Ihor Radchenko <yantar92@posteo.net> wrote:

> Matt <matt@excalamus.com> writes:
>
> > I think this approach will work fine.   I tried examples for each shell
> type and keywords like if/then/else and function names are highlighted.
>
> Even for posh (powershell)?
>
> --
> 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>
>


-- 
+---------------------------------------------------------------+
| Derek Chen-Becker                                             |
| GPG Key available at https://keybase.io/dchenbecker and       |
| https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
| Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
+---------------------------------------------------------------+

[-- Attachment #2: Type: text/html, Size: 3327 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-30 23:10           ` Derek Chen-Becker
@ 2023-03-31 13:08             ` Ihor Radchenko
  2023-03-31 17:04               ` Derek Chen-Becker
  0 siblings, 1 reply; 20+ messages in thread
From: Ihor Radchenko @ 2023-03-31 13:08 UTC (permalink / raw)
  To: Derek Chen-Becker; +Cc: Matt, Emacs-orgmode

Derek Chen-Becker <derek@chen-becker.org> writes:

> Would it be fair to use the sh-ancestor-alist as a basis for all of the
> supported shell variants?
>
> https://github.com/emacs-mirror/emacs/blob/master/lisp/progmodes/sh-script.el#L177

How can we use it?

-- 
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>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-31 13:08             ` Ihor Radchenko
@ 2023-03-31 17:04               ` Derek Chen-Becker
  2023-03-31 17:46                 ` Ihor Radchenko
  0 siblings, 1 reply; 20+ messages in thread
From: Derek Chen-Becker @ 2023-03-31 17:04 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Matt, Emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1335 bytes --]

When I asked the question I was just thinking of using it as a reference
for expanding the current org-src-lang-modes values, but now that you've
asked the question, perhaps we could dynamically amend org-src-lang-modes
based on the contents of sh-ancestor-alist. Does that make sense?

Thanks,

Derek

On Fri, Mar 31, 2023 at 7:06 AM Ihor Radchenko <yantar92@posteo.net> wrote:

> Derek Chen-Becker <derek@chen-becker.org> writes:
>
> > Would it be fair to use the sh-ancestor-alist as a basis for all of the
> > supported shell variants?
> >
> >
> https://github.com/emacs-mirror/emacs/blob/master/lisp/progmodes/sh-script.el#L177
>
> How can we use it?
>
> --
> 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>
>


-- 
+---------------------------------------------------------------+
| Derek Chen-Becker                                             |
| GPG Key available at https://keybase.io/dchenbecker and       |
| https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
| Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
+---------------------------------------------------------------+

[-- Attachment #2: Type: text/html, Size: 3338 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-31 17:04               ` Derek Chen-Becker
@ 2023-03-31 17:46                 ` Ihor Radchenko
  0 siblings, 0 replies; 20+ messages in thread
From: Ihor Radchenko @ 2023-03-31 17:46 UTC (permalink / raw)
  To: Derek Chen-Becker; +Cc: Matt, Emacs-orgmode

Derek Chen-Becker <derek@chen-becker.org> writes:

> When I asked the question I was just thinking of using it as a reference
> for expanding the current org-src-lang-modes values, but now that you've
> asked the question, perhaps we could dynamically amend org-src-lang-modes
> based on the contents of sh-ancestor-alist. Does that make sense?

Nope, it does not. May you elaborate how exactly can we derive major
mode for an src block using sh-ancestor-alist?
From my reading of sh-script.el, we may simply use bash-ts-mode for all
the shells.

-- 
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>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-03-30  8:56         ` Ihor Radchenko
  2023-03-30 23:10           ` Derek Chen-Becker
@ 2023-04-01 23:21           ` Matt
  2023-04-03 17:42             ` Derek Chen-Becker
  1 sibling, 1 reply; 20+ messages in thread
From: Matt @ 2023-04-01 23:21 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Derek Chen-Becker, Emacs-orgmode


 ---- On Thu, 30 Mar 2023 04:55:32 -0400  Ihor Radchenko  wrote --- 
 > Matt matt@excalamus.com> writes:
 > 
 > > I think this approach will work fine.   I tried examples for each shell type and keywords like if/then/else and function names are highlighted.
 > 
 > Even for posh (powershell)?

Yes.  It's not great since sh-mode looks for Korn-based keywords.  It does string highlighting and common keywords like 'if', 'exit', and 'param'.



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-04-01 23:21           ` Matt
@ 2023-04-03 17:42             ` Derek Chen-Becker
  2023-04-04 12:32               ` Ihor Radchenko
  0 siblings, 1 reply; 20+ messages in thread
From: Derek Chen-Becker @ 2023-04-03 17:42 UTC (permalink / raw)
  To: Matt; +Cc: Ihor Radchenko, Emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1719 bytes --]

I fiddled around a little bit this weekend and confirmed that this (sloppy)
code makes highlighting work for all shell types that sh-script supports:

;;A quick hack to try and support more shells syntax highlight in org babel
(require 'sh-script)
(require 'ob-shell)
(let ((shells (seq-filter (lambda (shell) (not (eq shell 'sh)))
(flatten-tree sh-ancestor-alist))))
  (let ((toAppend (mapcar (lambda (shell) `(,(symbol-name shell) . sh))
shells)))
    (setq org-src-lang-modes (-distinct (append toAppend
org-src-lang-modes)))))

I'm a relative newcomer to elisp, so comments and suggestions are welcome.
This is basically what I meant by "dynamically amend org-src-lang-modes
based on the contents of sh-ancestor-alist".

Thanks,

Derek

On Sat, Apr 1, 2023 at 5:22 PM Matt <matt@excalamus.com> wrote:

>
>  ---- On Thu, 30 Mar 2023 04:55:32 -0400  Ihor Radchenko  wrote ---
>  > Matt matt@excalamus.com> writes:
>  >
>  > > I think this approach will work fine.   I tried examples for each
> shell type and keywords like if/then/else and function names are
> highlighted.
>  >
>  > Even for posh (powershell)?
>
> Yes.  It's not great since sh-mode looks for Korn-based keywords.  It does
> string highlighting and common keywords like 'if', 'exit', and 'param'.
>
>

-- 
+---------------------------------------------------------------+
| Derek Chen-Becker                                             |
| GPG Key available at https://keybase.io/dchenbecker and       |
| https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
| Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
+---------------------------------------------------------------+

[-- Attachment #2: Type: text/html, Size: 3793 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-04-03 17:42             ` Derek Chen-Becker
@ 2023-04-04 12:32               ` Ihor Radchenko
  2023-04-04 14:49                 ` Derek Chen-Becker
  2023-04-07 15:29                 ` Matt
  0 siblings, 2 replies; 20+ messages in thread
From: Ihor Radchenko @ 2023-04-04 12:32 UTC (permalink / raw)
  To: Derek Chen-Becker; +Cc: Matt, Emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 469 bytes --]

Derek Chen-Becker <derek@chen-becker.org> writes:

> I fiddled around a little bit this weekend and confirmed that this (sloppy)
> code makes highlighting work for all shell types that sh-script supports:
>
> ;;A quick hack to try and support more shells syntax highlight in org babel
> (require 'sh-script)
> (require 'ob-shell)
> (let ((shells (seq-filter (lambda (shell) (not (eq shell 'sh)))
> (flatten-tree sh-ancestor-alist))))

See the attached tentative patch.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-org-src-Use-sh-mode-for-all-the-shells-it-can-handle.patch --]
[-- Type: text/x-patch, Size: 2180 bytes --]

From 85e268de9435d94eb6766e3f92f4f56a9dc1aebe Mon Sep 17 00:00:00 2001
Message-Id: <85e268de9435d94eb6766e3f92f4f56a9dc1aebe.1680611510.git.yantar92@posteo.net>
From: Ihor Radchenko <yantar92@posteo.net>
Date: Tue, 4 Apr 2023 14:30:34 +0200
Subject: [PATCH] org-src: Use `sh-mode' for all the shells it can handle

* lisp/org-src.el (org-src--get-known-shells): New helper function
extracting known shells from `sh-ancestor-alist'.
(org-src-lang-modes): Update the value.

Link: https://orgmode.org/list/CAMbmz5ntkOHMiZG4EbNAks9ob-0ahnciCfHQ9LQmJoci0+i7fg@mail.gmail.com
---
 lisp/org-src.el | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/lisp/org-src.el b/lisp/org-src.el
index ec2716885..2669b1b77 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -194,11 +194,17 @@ (defvar org-src-mode-hook nil
 or similar things which you want to have when editing a source code file,
 but which mess up the display of a snippet in Org exported files.")
 
+(defun org-src--get-known-shells ()
+  "List all the shells in `sh-ancestor-alist' for `org-src-lang-modes'.
+The shells are associated with `sh-mode'."
+  (mapcar
+   (lambda (shell) (cons (symbol-name shell) 'sh))
+   (delete-dups (flatten-tree sh-ancestor-alist))))
+
 (defcustom org-src-lang-modes
-  '(("C" . c)
+  `(("C" . c)
     ("C++" . c++)
     ("asymptote" . asy)
-    ("bash" . sh)
     ("beamer" . latex)
     ("calc" . fundamental)
     ("cpp" . c++)
@@ -208,9 +214,10 @@ (defcustom org-src-lang-modes
     ("elisp" . emacs-lisp)
     ("ocaml" . tuareg)
     ("screen" . shell-script)
-    ("shell" . sh)
     ("sqlite" . sql)
-    ("toml" . conf-toml))
+    ("toml" . conf-toml)
+    ("shell" . sh)
+    ,@(org-src--get-known-shells))
   "Alist mapping languages to their major mode.
 
 The key is the language name.  The value is the mode name, as
@@ -221,7 +228,7 @@ (defcustom org-src-lang-modes
 the user side.  For example, there is no `ocaml-mode' in Emacs,
 but the mode to use is `tuareg-mode'."
   :group 'org-edit-structure
-  :package-version '(Org . "9.6")
+  :package-version '(Org . "9.7")
   :type '(repeat
 	  (cons
 	   (string "Language name")
-- 
2.40.0


[-- Attachment #3: Type: text/plain, Size: 224 bytes --]


-- 
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>

^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-04-04 12:32               ` Ihor Radchenko
@ 2023-04-04 14:49                 ` Derek Chen-Becker
  2023-04-07 15:29                 ` Matt
  1 sibling, 0 replies; 20+ messages in thread
From: Derek Chen-Becker @ 2023-04-04 14:49 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Matt, Emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1297 bytes --]

The patch looks good to me!

Thanks,

Derek

On Tue, Apr 4, 2023 at 6:30 AM Ihor Radchenko <yantar92@posteo.net> wrote:

> Derek Chen-Becker <derek@chen-becker.org> writes:
>
> > I fiddled around a little bit this weekend and confirmed that this
> (sloppy)
> > code makes highlighting work for all shell types that sh-script supports:
> >
> > ;;A quick hack to try and support more shells syntax highlight in org
> babel
> > (require 'sh-script)
> > (require 'ob-shell)
> > (let ((shells (seq-filter (lambda (shell) (not (eq shell 'sh)))
> > (flatten-tree sh-ancestor-alist))))
>
> See the attached tentative patch.
>
> --
> 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>
>


-- 
+---------------------------------------------------------------+
| Derek Chen-Becker                                             |
| GPG Key available at https://keybase.io/dchenbecker and       |
| https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
| Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
+---------------------------------------------------------------+

[-- Attachment #2: Type: text/html, Size: 3198 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-04-04 12:32               ` Ihor Radchenko
  2023-04-04 14:49                 ` Derek Chen-Becker
@ 2023-04-07 15:29                 ` Matt
  2023-04-07 15:32                   ` Derek Chen-Becker
  2023-04-17 15:12                   ` Matt
  1 sibling, 2 replies; 20+ messages in thread
From: Matt @ 2023-04-07 15:29 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: Derek Chen-Becker, Emacs-orgmode


 ---- On Tue, 04 Apr 2023 08:30:34 -0400  Ihor Radchenko  wrote --- 

 > See the attached tentative patch.

After applying the patch, I get the following error when trying to load Emacs:

Warning (comp): /home/ahab/Projects/org-mode/lisp/org.el: Error: Symbol's value as variable is void sh-ancestor-alist

I wasn't able to resolve it.  I suspect the issue is on my end, such as a mixed install or the need to  re-byte-compile  `sh-script.el'.  

To run Org from source I do one of the following:

;; When using my init
(use-package org :straight (:local-repo "/home/ahab/Projects/org-mode"))

;; When running emacs -q
(add-to-list 'load-path "/home/ahab/Projects/org-mode/lisp")
(require 'org-loaddefs)

If I need to recompile Emacs byte code, I'm not sure how I'd do that since I'm running Guix and those files live in the write protected /gnu/store.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-04-07 15:29                 ` Matt
@ 2023-04-07 15:32                   ` Derek Chen-Becker
  2023-04-17 15:12                   ` Matt
  1 sibling, 0 replies; 20+ messages in thread
From: Derek Chen-Becker @ 2023-04-07 15:32 UTC (permalink / raw)
  To: Matt; +Cc: Ihor Radchenko, Emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1624 bytes --]

In the code I posted, I had to explicitly (require 'sh-script) to ensure
that the sh-ancestor-alist is loaded before the code. I'm not enough of an
elisp guru to know if there's a way to defer that.

Cheers,

Derek

On Fri, Apr 7, 2023 at 9:30 AM Matt <matt@excalamus.com> wrote:

>
>  ---- On Tue, 04 Apr 2023 08:30:34 -0400  Ihor Radchenko  wrote ---
>
>  > See the attached tentative patch.
>
> After applying the patch, I get the following error when trying to load
> Emacs:
>
> Warning (comp): /home/ahab/Projects/org-mode/lisp/org.el: Error: Symbol's
> value as variable is void sh-ancestor-alist
>
> I wasn't able to resolve it.  I suspect the issue is on my end, such as a
> mixed install or the need to  re-byte-compile  `sh-script.el'.
>
> To run Org from source I do one of the following:
>
> ;; When using my init
> (use-package org :straight (:local-repo "/home/ahab/Projects/org-mode"))
>
> ;; When running emacs -q
> (add-to-list 'load-path "/home/ahab/Projects/org-mode/lisp")
> (require 'org-loaddefs)
>
> If I need to recompile Emacs byte code, I'm not sure how I'd do that since
> I'm running Guix and those files live in the write protected /gnu/store.
>


-- 
+---------------------------------------------------------------+
| Derek Chen-Becker                                             |
| GPG Key available at https://keybase.io/dchenbecker and       |
| https://pgp.mit.edu/pks/lookup?search=derek%40chen-becker.org |
| Fngrprnt: EB8A 6480 F0A3 C8EB C1E7  7F42 AFC5 AFEE 96E4 6ACC  |
+---------------------------------------------------------------+

[-- Attachment #2: Type: text/html, Size: 3260 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-04-07 15:29                 ` Matt
  2023-04-07 15:32                   ` Derek Chen-Becker
@ 2023-04-17 15:12                   ` Matt
  2023-04-17 15:21                     ` Ihor Radchenko
  1 sibling, 1 reply; 20+ messages in thread
From: Matt @ 2023-04-17 15:12 UTC (permalink / raw)
  To: Matt; +Cc: Ihor Radchenko, Derek Chen-Becker, Emacs-orgmode


 ---- On Fri, 07 Apr 2023 11:29:59 -0400  Matt  wrote --- 
 > 
 >  ---- On Tue, 04 Apr 2023 08:30:34 -0400  Ihor Radchenko  wrote --- 
 > 
 >  > See the attached tentative patch.
 > 
 > After applying the patch, I get the following error when trying to load Emacs:
 > 
 > Warning (comp): /home/ahab/Projects/org-mode/lisp/org.el: Error: Symbol's value as variable is void sh-ancestor-alist
 > 
 > I wasn't able to resolve it.  I suspect the issue is on my end, such as a mixed install or the need to  re-byte-compile  `sh-script.el'.  

I was able to resolve it by simply requiring `sh-script' in `org-src'.  Committed and pushed.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-04-17 15:12                   ` Matt
@ 2023-04-17 15:21                     ` Ihor Radchenko
  2023-04-20 14:42                       ` Max Nikulin
  0 siblings, 1 reply; 20+ messages in thread
From: Ihor Radchenko @ 2023-04-17 15:21 UTC (permalink / raw)
  To: Matt; +Cc: Derek Chen-Becker, Emacs-orgmode

Matt <matt@excalamus.com> writes:

> I was able to resolve it by simply requiring `sh-script' in `org-src'.  Committed and pushed.

Note that it will break Emacs 26.
Which will fix itself once we merge compat.el support.

-- 
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>


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?)
  2023-04-17 15:21                     ` Ihor Radchenko
@ 2023-04-20 14:42                       ` Max Nikulin
  0 siblings, 0 replies; 20+ messages in thread
From: Max Nikulin @ 2023-04-20 14:42 UTC (permalink / raw)
  To: emacs-orgmode

On 17/04/2023 22:21, Ihor Radchenko wrote:
> Matt writes:
>> I was able to resolve it by simply requiring `sh-script' in `org-src'.  Committed and pushed.
> 
> Note that it will break Emacs 26.

org-protocol.el defines polyfill for `flatten-tree'.




^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-04-20 14:43 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-28 17:24 Font lock for org-babel shell scripts? Derek Chen-Becker
2023-03-28 21:07 ` Matt
2023-03-28 21:53 ` [BUG] No font lock in src blocks for shells in org-babel-shell-names (was Re: Font lock for org-babel shell scripts?) Matt
2023-03-29  9:35   ` Ihor Radchenko
2023-03-29 17:04     ` Derek Chen-Becker
2023-03-29 20:17       ` Matt
2023-03-30  8:56         ` Ihor Radchenko
2023-03-30 23:10           ` Derek Chen-Becker
2023-03-31 13:08             ` Ihor Radchenko
2023-03-31 17:04               ` Derek Chen-Becker
2023-03-31 17:46                 ` Ihor Radchenko
2023-04-01 23:21           ` Matt
2023-04-03 17:42             ` Derek Chen-Becker
2023-04-04 12:32               ` Ihor Radchenko
2023-04-04 14:49                 ` Derek Chen-Becker
2023-04-07 15:29                 ` Matt
2023-04-07 15:32                   ` Derek Chen-Becker
2023-04-17 15:12                   ` Matt
2023-04-17 15:21                     ` Ihor Radchenko
2023-04-20 14:42                       ` Max Nikulin

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).