Subject: [PATCH] sh-mode: Run treesit-ready-p only when sh-shell is 'bash
From: Brian Leung <[email-masked]>
To: [email-masked]
Date: Tue, 22 Nov 2022 02:54:55 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Tags: patch

This patch guards the treesit-ready-p check to run only when sh-shell is
'bash, in order to prevent an annoying warning when viewing (say) sh or
zsh files. But maybe we also want to allow treesitter when sh-shell is
'sh?

In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.16.0, Xaw3d scroll bars)
Repository revision: aeadba1418d8fc18f17b4ae415cde35e9e272e7a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: NixOS 22.11 (Raccoon)

Configured using:
 'configure
 --prefix=/nix/store/yf7bpm9w6nqwil5xfxa9iz22m57wz4l1-emacs-git-20221121.0
 --disable-build-details --with-modules --with-x-toolkit=lucid
 --with-xft --with-cairo --with-native-compilation'

From aa8c60cff6f834e18db44587a6e623292b01978e Mon Sep 17 00:00:00 2001
From: Brian Leung <[email-masked]>
Date: Mon, 21 Nov 2022 18:52:26 -0800
Subject: [PATCH] sh-mode: Run treesit-ready-p only when sh-shell is 'bash

* lisp/progmodes/sh-script.el (sh-mode): Guard treesit-ready-p check.

Without this patch, enabling sh-mode in any non-Bash file results in
an annoying warning like:

Warning (treesit): Cannot activate tree-sitter, because language
definition for zsh is unavailable (not-found): (libtree-sitter-zsh
libtree-sitter-zsh.so) No such file or directory
---
 lisp/progmodes/sh-script.el | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 54f005508c..0a0617bddd 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1587,7 +1587,8 @@ sh-mode
 
   (cond
    ;; Tree-sitter.  If the shell is bash, we can enable tree-sitter.
-   ((treesit-ready-p sh-shell)
+   ((and (eq sh-shell 'bash)
+         (treesit-ready-p sh-shell))
     (setq-local treesit-font-lock-feature-list
                 '((comment function string heredoc)
                   (variable keyword command declaration-command)
-- 
2.38.1