branch: elpa/with-editor
commit b88e4a2bc6e85b9ef3cd93e217052b84f2a09c6b
Author: Jonas Bernoulli <jo...@bernoul.li>
Commit: Jonas Bernoulli <jo...@bernoul.li>

    No longer track generated with-editor.texi
    
    That also means that we can use the (updated) {{{version}}} macro again.
---
 docs/.orgconfig       |   2 +-
 docs/with-editor.org  |   4 +-
 docs/with-editor.texi | 344 --------------------------------------------------
 3 files changed, 3 insertions(+), 347 deletions(-)

diff --git a/docs/.orgconfig b/docs/.orgconfig
index 138fae42e2..c72bd72472 100644
--- a/docs/.orgconfig
+++ b/docs/.orgconfig
@@ -5,6 +5,6 @@
 
 #+macro: kbd (eval (let ((case-fold-search nil) (regexp (regexp-opt '("SPC" 
"RET" "LFD" "TAB" "BS" "ESC" "DELETE" "SHIFT" "Ctrl" "Meta" "Alt" "Cmd" "Super" 
"UP" "LEFT" "RIGHT" "DOWN") 'words))) (format 
"@@texinfo:@kbd{@@%s@@texinfo:}@@" (replace-regexp-in-string regexp 
"@@texinfo:@key{@@\\&@@texinfo:}@@" $1 t))))
 #+macro: year (eval (format-time-string "%Y"))
-#+macro: version (eval (or (getenv "PACKAGE_REVDESC") (getenv 
"PACKAGE_VERSION") (ignore-errors (car (process-lines "git" "describe" 
"--exact"))) (ignore-errors (concat (car (process-lines "git" "describe" (if 
(getenv "AMEND") "HEAD~" "HEAD"))) "+1"))))
+#+macro: version (eval (if-let ((tag (ignore-errors (car (process-lines "git" 
"describe" "--exact-match"))))) (concat "version " (substring tag 1)) (or 
(ignore-errors (car (process-lines "git" "describe"))) "version (unknown)")))
 
 #+language: en
diff --git a/docs/with-editor.org b/docs/with-editor.org
index 9b747daac1..79263895c7 100644
--- a/docs/with-editor.org
+++ b/docs/with-editor.org
@@ -7,7 +7,7 @@
 #+texinfo_dir_category: Emacs
 #+texinfo_dir_title: With-Editor: (with-editor).
 #+texinfo_dir_desc: Using the Emacsclient as $EDITOR
-#+subtitle: for version 3.4.1
+#+subtitle: for {{{version}}}
 
 #+setupfile: .orgconfig
 
@@ -27,7 +27,7 @@ additional functionality which makes it useful even for 
end-users, who
 don't use Magit or another package which uses it internally.
 
 #+texinfo: @noindent
-This manual is for With-Editor version 3.4.1.
+This manual is for With-Editor {{{version}}}.
 
 #+texinfo: @insertcopying
 :END:
diff --git a/docs/with-editor.texi b/docs/with-editor.texi
deleted file mode 100644
index 98b20c0e59..0000000000
--- a/docs/with-editor.texi
+++ /dev/null
@@ -1,344 +0,0 @@
-\input texinfo    @c -*- texinfo -*-
-@c %**start of header
-@setfilename with-editor.info
-@settitle With-Editor User Manual
-@documentencoding UTF-8
-@documentlanguage en
-@c %**end of header
-
-@copying
-@quotation
-Copyright (C) 2015-2024 Jonas Bernoulli 
<emacs.with-editor@@jonas.bernoulli.dev>
-
-You can redistribute this document and/or modify it under the terms
-of the GNU General Public License as published by the Free Software
-Foundation, either version 3 of the License, or (at your option) any
-later version.
-
-This document is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE@.  See the GNU
-General Public License for more details.
-
-@end quotation
-@end copying
-
-@dircategory Emacs
-@direntry
-* With-Editor: (with-editor). Using the Emacsclient as $EDITOR.
-@end direntry
-
-@finalout
-@titlepage
-@title With-Editor User Manual
-@subtitle for version 3.4.1
-@author Jonas Bernoulli
-@page
-@vskip 0pt plus 1filll
-@insertcopying
-@end titlepage
-
-@contents
-
-@ifnottex
-@node Top
-@top With-Editor User Manual
-
-The library @code{with-editor} makes it easy to use the Emacsclient as the
-@code{$EDITOR} of child processes, making sure they know how to call home.
-For remote processes a substitute is provided, which communicates with
-Emacs on standard output instead of using a socket as the Emacsclient
-does.
-
-This library was written because Magit has to be able to do the above
-to allow the user to edit commit messages gracefully and to edit
-rebase sequences, which wouldn't be possible at all otherwise.
-
-Because other packages can benefit from such functionality, this
-library is made available as a separate package.  It also defines some
-additional functionality which makes it useful even for end-users, who
-don't use Magit or another package which uses it internally.
-
-@noindent
-This manual is for With-Editor version 3.4.1.
-
-@insertcopying
-@end ifnottex
-
-@menu
-* Using the With-Editor package::
-* Using With-Editor as a library::
-* Debugging::
-* Function and Command Index::
-* Variable Index::
-
-@detailmenu
---- The Detailed Node Listing ---
-
-Using the With-Editor package
-
-* Configuring With-Editor::
-* Using With-Editor commands::
-
-@end detailmenu
-@end menu
-
-@node Using the With-Editor package
-@chapter Using the With-Editor package
-
-The @code{With-Editor} package is used internally by Magit when editing
-commit messages and rebase sequences.  It also provides some commands
-and features which are useful by themselves, even if you don't use
-Magit.
-
-For information about using this library in your own package, see
-@ref{Using With-Editor as a library}.
-
-@menu
-* Configuring With-Editor::
-* Using With-Editor commands::
-@end menu
-
-@node Configuring With-Editor
-@section Configuring With-Editor
-
-With-Editor tries very hard to locate a suitable @code{emacsclient}
-executable, so ideally you should never have to customize the option
-@code{with-editor-emacsclient-executable}.  When it fails to do so, then the
-most likely reason is that someone found yet another way to package
-Emacs (most likely on macOS) without putting the executable on @code{$PATH},
-and we have to add another kludge to find it anyway.
-
-@defopt with-editor-emacsclient-executable
-The @code{emacsclient} executable used as the editor by child processes of
-this Emacs instance.  By using this executable, child processes can
-call home to their parent process.
-
-This option is automatically set at startup by looking in @code{exec-path},
-and other places where the executable could be installed, to find
-the @code{emacsclient} executable most suitable for the current Emacs
-instance.
-
-You should @strong{not} customize this option permanently.  If you have to do
-it, then you should consider that a temporary kludge and inform the
-Magit maintainer as described in @ref{Debugging}.
-
-If With-Editor fails to find a suitable @code{emacsclient} on your system,
-then this should be fixed for all users at once, by teaching
-@code{with-editor-locate-emacsclient} how to do so on your system and
-systems like yours. Doing it this way has the advantage, that you
-won't have do it again every time you update Emacs, and that other
-users who have installed Emacs the same way as you have, won't have
-to go through the same trouble.
-
-Note that there also is a nuclear option; setting this variable to
-@code{nil} causes the "sleeping editor" described below to be used even for
-local child processes.  Obviously we don't recommend that you use
-this except in "emergencies", i.e., before we had a change to add a
-kludge appropriate for your setup.
-@end defopt
-
-@defun with-editor-locate-emacsclient
-The function used to set the initial value of the option
-@code{with-editor-emacsclient-executable}.  There's a lot of voodoo here.
-@end defun
-
-The @code{emacsclient} cannot be used when using Tramp to run a process on a
-remote machine.  (Theoretically it could, but that would be hard to
-setup, very fragile, and rather insecure).
-
-With-Editor provides an alternative "editor" which can be used by
-remote processes in much the same way as local processes use an
-@code{emacsclient} executable.  This alternative is known as the "sleeping
-editor" because it is implemented as a shell script which sleeps until
-it receives a signal.
-
-@defopt with-editor-sleeping-editor
-The sleeping editor is a shell script used as the editor of child
-processes when the @code{emacsclient} executable cannot be used.
-
-This fallback is used for asynchronous processes started inside the
-macro @code{with-editor}, when the process runs on a remote machine or for
-local processes when @code{with-editor-emacsclient-executable} is @code{nil}.
-
-Where the latter uses a socket to communicate with Emacs' server,
-this substitute prints edit requests to its standard output on
-which a process filter listens for such requests.  As such it is
-not a complete substitute for a proper @code{emacsclient}, it can only
-be used as @code{$EDITOR} of child process of the current Emacs instance.
-
-Some shells do not execute traps immediately when waiting for a
-child process, but by default we do use such a blocking child
-process.
-
-If you use such a shell (e.g., @code{csh} on FreeBSD, but not Debian), then
-you have to edit this option.  You can either replace @code{sh} with 
@code{bash}
-(and install that), or you can use the older, less performant
-implementation:
-
-@lisp
-"sh -c '\
-echo \"WITH-EDITOR: $$ OPEN $0$1 IN $(pwd)\"; \
-trap \"exit 0\" USR1; \
-trap \"exit 1\" USR2; \
-while true; do sleep 1; done'"
-@end lisp
-
-Note that the unit separator character () right after the file
-name ($0) is required.
-
-Also note that using this alternative implementation leads to a
-delay of up to a second.  The delay can be shortened by replacing
-@code{sleep 1} with @code{sleep 0.01}, or if your implementation does not 
support
-floats, then by using @code{nanosleep} instead.
-@end defopt
-
-@node Using With-Editor commands
-@section Using With-Editor commands
-
-This section describes how to use the @code{with-editor} library 
@emph{outside} of
-Magit.  You don't need to know any of this just to create commits
-using Magit.
-
-The commands @code{with-editor-async-shell-command} and
-@code{with-editor-shell-command} are intended as drop in replacements for
-@code{async-shell-command} and @code{shell-command}.  They automatically export
-@code{$EDITOR} making sure the executed command uses the current Emacs
-instance as "the editor".  With a prefix argument these commands
-prompt for an alternative environment variable such as @code{$GIT_EDITOR}.
-
-@deffn Command with-editor-async-shell-command
-This command is like @code{async-shell-command}, but it runs the shell
-command with the current Emacs instance exported as @code{$EDITOR}.
-@end deffn
-
-@deffn Command with-editor-shell-command
-This command is like @code{shell-command}, but if the shell command ends
-with @code{&} and is therefore run asynchronously, then the current Emacs
-instance is exported as @code{$EDITOR}.
-@end deffn
-
-To always use these variants add this to your init file:
-
-@lisp
-(keymap-global-set "<remap> <async-shell-command>"
-                   #'with-editor-async-shell-command)
-(keymap-global-set "<remap> <shell-command>"
-                   #'with-editor-shell-command)
-@end lisp
-
-Alternatively use the global @code{shell-command-with-editor-mode}.
-
-@defvar shell-command-with-editor-mode
-When this mode is active, then @code{$EDITOR} is exported whenever
-ultimately @code{shell-command} is called to asynchronously run some shell
-command.  This affects most variants of that command, whether they
-are defined in Emacs or in some third-party package.
-@end defvar
-
-The command @code{with-editor-export-editor} exports @code{$EDITOR} or another
-such environment variable in @code{shell-mode}, @code{eshell-mode}, 
@code{term-mode} and
-@code{vterm-mode} buffers.  Use this Emacs command before executing a shell
-command which needs the editor set, or always arrange for the current
-Emacs instance to be used as editor by adding it to the appropriate
-mode hooks:
-
-@lisp
-(add-hook 'shell-mode-hook  'with-editor-export-editor)
-(add-hook 'eshell-mode-hook 'with-editor-export-editor)
-(add-hook 'term-exec-hook   'with-editor-export-editor)
-(add-hook 'vterm-mode-hook  'with-editor-export-editor)
-@end lisp
-
-Some variants of this function exist; these two forms are equivalent:
-
-@lisp
-(add-hook 'shell-mode-hook
-          (apply-partially 'with-editor-export-editor "GIT_EDITOR"))
-(add-hook 'shell-mode-hook 'with-editor-export-git-editor)
-@end lisp
-
-@deffn Command with-editor-export-editor
-When invoked in a @code{shell-mode}, @code{eshell-mode}, @code{term-mode} or 
@code{vterm-mode}
-buffer, this command teaches shell commands to use the current Emacs
-instance as the editor, by exporting @code{$EDITOR}.
-@end deffn
-
-@deffn Command with-editor-export-git-editor
-This command is like @code{with-editor-export-editor} but exports
-@code{$GIT_EDITOR}.
-@end deffn
-
-@deffn Command with-editor-export-hg-editor
-This command is like @code{with-editor-export-editor} but exports
-@code{$HG_EDITOR}.
-@end deffn
-
-@node Using With-Editor as a library
-@chapter Using With-Editor as a library
-
-This section describes how to use the @code{with-editor} library 
@emph{outside} of
-Magit to teach another package how to have its child processes call
-home, just like Magit does.  You don't need to know any of this just
-to create commits using Magit.  You can also ignore this if you use
-@code{with-editor} outside of Magit, but only as an end-user.
-
-For information about interactive use and options that affect both
-interactive and non-interactive use, see @ref{Using the With-Editor package}.
-
-@defmac with-editor &rest body
-This macro arranges for the @code{emacsclient} or the sleeping editor to be
-used as the editor of child processes, effectively teaching them to
-call home to the current Emacs instance when they require that the
-user edits a file.
-
-This is done by establishing a local binding for @code{process-environment}
-and changing the value of the @code{EDITOR} environment variable in that
-scope.  This affects all (asynchronous) processes started by forms
-(dynamically) inside BODY@.
-
-If BODY begins with a literal string, then that variable is set
-instead of @code{EDITOR}.
-@end defmac
-
-@defmac with-editor* envvar &rest body
-This macro is like @code{with-editor} instead that the ENVVAR argument is
-required and that it is evaluated at run-time.
-@end defmac
-
-@defun with-editor-set-process-filter process filter
-This function is like @code{set-process-filter} but ensures that adding the
-new FILTER does not remove the @code{with-editor-process-filter}.  This is
-done by wrapping the two filter functions using a lambda, which
-becomes the actual filter.  It calls FILTER first, which may or
-may not insert the text into the PROCESS's buffer.  Then it calls
-@code{with-editor-process-filter}, passing @code{t} as NO-STANDARD-FILTER@.
-@end defun
-
-@node Debugging
-@chapter Debugging
-
-With-Editor tries very hard to locate a suitable @code{emacsclient}
-executable, and then sets option @code{with-editor-emacsclient-executable}
-accordingly.  In very rare cases this fails.  When it does fail, then
-the most likely reason is that someone found yet another way to
-package Emacs (most likely on macOS) without putting the executable on
-@code{$PATH}, and we have to add another kludge to find it anyway.
-
-If you are having problems using @code{with-editor}, e.g., you cannot commit
-in Magit, then please open a new issue at
-@uref{https://github.com/magit/with-editor/issues} and provide information
-about your Emacs installation.  Most importantly how did you install
-Emacs and what is the output of @code{M-x with-editor-debug RET}.
-
-@node Function and Command Index
-@appendix Function and Command Index
-
-@printindex fn
-
-@node Variable Index
-@appendix Variable Index
-
-@printindex vr
-
-@bye

Reply via email to