From: john muhl <jm@pub.pink>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 74235@debbugs.gnu.org
Subject: bug#74235: [PATCH] ; Remove 'nil' from some 'lua-ts-mode' options
Date: Sat, 09 Nov 2024 14:54:47 -0600 [thread overview]
Message-ID: <87ikswi0vc.fsf@pub.pink> (raw)
In-Reply-To: <86ses1oijv.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 08 Nov 2024 17:24:04 +0200")
[-- Attachment #1: Type: text/plain, Size: 1353 bytes --]
Eli Zaretskii <eliz@gnu.org> writes:
>> From: john muhl <jm@pub.pink>
>> Cc: 74235@debbugs.gnu.org
>> Date: Fri, 08 Nov 2024 08:57:37 -0600
>>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>> >> From: john muhl <jm@pub.pink>
>> >> Date: Wed, 06 Nov 2024 15:22:34 -0600
>> >>
>> >> * lisp/progmodes/lua-ts-mode.el (lua-ts-luacheck-program):
>> >> (lua-ts-inferior-program): Remove 'nil' as it is never a valid
>> >> choice. (Bug#74235)
>> >
>> > IMO, the use of these options in the code is not clean: if these
>> > programs are not installed, the commands which reference these options
>> > will signal errors whose diagnostic might not clearly indicate the
>> > root cause. I would like to see a cleaner handling of such
>> > contingencies by this mode. Does this make sense, and if so, would
>> > you like to suggest changes to that effect?
>>
>> The only idea I’ve come up with so far is showing a warning that
>> mentions the incorrectly set option. Does that sound like what you
>> have in mind? If not I’d appreciate some more explicit guidance.
>
> How about signaling user-error from the commands that invoke those
> programs, when they are missing?
Agree that’s better than a warning. It seems flymake already
handles the case where it can’t find the requested program so I
left that part as is.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-some-lua-ts-mode-options-Bug-74235.patch --]
[-- Type: text/x-patch, Size: 6048 bytes --]
From 3e49aa1086f2498ccbad396cf8c799c57919847e Mon Sep 17 00:00:00 2001
From: john muhl <jm@pub.pink>
Date: Sat, 9 Nov 2024 11:01:45 -0600
Subject: [PATCH] ; Fix some 'lua-ts-mode' options (Bug#74235)
* lisp/progmodes/lua-ts-mode.el (lua-ts-luacheck-program):
(lua-ts-inferior-program): Switch to 'file' type and remove 'nil'
as a choice.
(lua-ts-inferior-lua): Ensure 'lua-ts-inferior-program' is a
valid executable.
---
lisp/progmodes/lua-ts-mode.el | 85 ++++++++++++++++++-----------------
1 file changed, 44 insertions(+), 41 deletions(-)
diff --git a/lisp/progmodes/lua-ts-mode.el b/lisp/progmodes/lua-ts-mode.el
index 4ea453c9b65..2323461ed4c 100644
--- a/lisp/progmodes/lua-ts-mode.el
+++ b/lisp/progmodes/lua-ts-mode.el
@@ -72,7 +72,7 @@ lua-ts-indent-offset
(defcustom lua-ts-luacheck-program "luacheck"
"Location of the Luacheck program."
- :type '(choice (const :tag "None" nil) string)
+ :type 'file
:version "30.1")
(defcustom lua-ts-inferior-buffer "*Lua*"
@@ -83,7 +83,7 @@ lua-ts-inferior-buffer
(defcustom lua-ts-inferior-program "lua"
"Program to run in the inferior Lua process."
- :type '(choice (const :tag "None" nil) string)
+ :type 'file
:version "30.1")
(defcustom lua-ts-inferior-options '("-i")
@@ -632,47 +632,50 @@ lua-ts-flymake-luacheck
(defun lua-ts-inferior-lua ()
"Run a Lua interpreter in an inferior process."
(interactive)
- (unless (comint-check-proc lua-ts-inferior-buffer)
- (apply #'make-comint-in-buffer
- (string-replace "*" "" lua-ts-inferior-buffer)
- lua-ts-inferior-buffer
- lua-ts-inferior-program
- lua-ts-inferior-startfile
- lua-ts-inferior-options)
- (when lua-ts-inferior-history
+ (if (or (not lua-ts-inferior-program)
+ (not (executable-find lua-ts-inferior-program)))
+ (user-error "You must set `lua-ts-inferior-program' to use this command")
+ (unless (comint-check-proc lua-ts-inferior-buffer)
+ (apply #'make-comint-in-buffer
+ (string-replace "*" "" lua-ts-inferior-buffer)
+ lua-ts-inferior-buffer
+ lua-ts-inferior-program
+ lua-ts-inferior-startfile
+ lua-ts-inferior-options)
+ (when lua-ts-inferior-history
(set-process-sentinel (get-buffer-process lua-ts-inferior-buffer)
'lua-ts-inferior--write-history))
- (with-current-buffer lua-ts-inferior-buffer
- (setq-local comint-input-ignoredups t
- comint-input-ring-file-name lua-ts-inferior-history
- comint-prompt-read-only t
- comint-prompt-regexp (rx-to-string `(: bol
- ,lua-ts-inferior-prompt
- (1+ space))))
- (comint-read-input-ring t)
- (add-hook 'comint-preoutput-filter-functions
- (lambda (string)
- (if (equal string (concat lua-ts-inferior-prompt-continue " "))
- string
- (concat
- ;; Filter out the extra prompt characters that
- ;; accumulate in the output when sending regions
- ;; to the inferior process.
- (replace-regexp-in-string (rx-to-string
- `(: bol
- (* ,lua-ts-inferior-prompt
- (? ,lua-ts-inferior-prompt)
- (1+ space))
- (group (* nonl))))
- "\\1" string)
- ;; Re-add the prompt for the next line.
- lua-ts-inferior-prompt " ")))
- nil t)))
- (select-window (display-buffer lua-ts-inferior-buffer
- '((display-buffer-reuse-window
- display-buffer-pop-up-window)
- (reusable-frames . t))))
- (get-buffer-process (current-buffer)))
+ (with-current-buffer lua-ts-inferior-buffer
+ (setq-local comint-input-ignoredups t
+ comint-input-ring-file-name lua-ts-inferior-history
+ comint-prompt-read-only t
+ comint-prompt-regexp (rx-to-string `(: bol
+ ,lua-ts-inferior-prompt
+ (1+ space))))
+ (comint-read-input-ring t)
+ (add-hook 'comint-preoutput-filter-functions
+ (lambda (string)
+ (if (equal string (concat lua-ts-inferior-prompt-continue " "))
+ string
+ (concat
+ ;; Filter out the extra prompt characters that
+ ;; accumulate in the output when sending regions
+ ;; to the inferior process.
+ (replace-regexp-in-string
+ (rx-to-string `(: bol
+ (* ,lua-ts-inferior-prompt
+ (? ,lua-ts-inferior-prompt)
+ (1+ space))
+ (group (* nonl))))
+ "\\1" string)
+ ;; Re-add the prompt for the next line.
+ lua-ts-inferior-prompt " ")))
+ nil t)))
+ (select-window (display-buffer lua-ts-inferior-buffer
+ '((display-buffer-reuse-window
+ display-buffer-pop-up-window)
+ (reusable-frames . t))))
+ (get-buffer-process (current-buffer))))
(defun lua-ts-send-buffer ()
"Send current buffer to the inferior Lua process."
--
2.47.0
next prev parent reply other threads:[~2024-11-09 20:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-06 21:19 bug#74235: [PATCH] ; Remove 'nil' from some 'lua-ts-mode' options john muhl
2024-11-06 21:22 ` john muhl
2024-11-07 5:58 ` Eli Zaretskii
2024-11-07 15:04 ` john muhl
2024-11-08 14:57 ` john muhl
2024-11-08 15:24 ` Eli Zaretskii
2024-11-09 20:54 ` john muhl [this message]
2024-11-10 5:43 ` Eli Zaretskii
2024-11-10 14:48 ` john muhl
2024-11-14 8:26 ` Eli Zaretskii
2024-11-15 3:54 ` john muhl
2024-11-10 5:45 ` Philip Kaludercic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ikswi0vc.fsf@pub.pink \
--to=jm@pub.pink \
--cc=74235@debbugs.gnu.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.