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