summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-12-05 21:42:22 +0000
committerKarl Berry <karl@freefriends.org>2022-12-05 21:42:22 +0000
commitf1d5d3b19b4da2e78ec7473541f3cbc9d2d34664 (patch)
treeb4df722f65ab129d9bceac2042adec4b610d4d8e
parent2777f1280916d66fc387772aa366124197d9252d (diff)
digestif (3dec22)
git-svn-id: svn://tug.org/texlive/trunk@65210 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/digestif/digestif.texlua25
l---------Master/bin/aarch64-linux/digestif1
l---------Master/bin/amd64-freebsd/digestif1
l---------Master/bin/amd64-netbsd/digestif1
l---------Master/bin/armhf-linux/digestif1
l---------Master/bin/i386-cygwin/digestif1
l---------Master/bin/i386-freebsd/digestif1
l---------Master/bin/i386-linux/digestif1
l---------Master/bin/i386-netbsd/digestif1
l---------Master/bin/i386-solaris/digestif1
l---------Master/bin/universal-darwin/digestif1
-rwxr-xr-xMaster/bin/win32/digestif.exebin0 -> 1536 bytes
l---------Master/bin/x86_64-cygwin/digestif1
l---------Master/bin/x86_64-darwinlegacy/digestif1
l---------Master/bin/x86_64-linux/digestif1
l---------Master/bin/x86_64-linuxmusl/digestif1
l---------Master/bin/x86_64-solaris/digestif1
-rw-r--r--Master/texmf-dist/doc/support/digestif/INSTALL.md80
-rw-r--r--Master/texmf-dist/doc/support/digestif/LICENSE152
-rw-r--r--Master/texmf-dist/doc/support/digestif/README.md161
-rwxr-xr-xMaster/texmf-dist/doc/support/digestif/bin/digestif2
-rwxr-xr-xMaster/texmf-dist/scripts/digestif/digestif.texlua25
-rw-r--r--Master/texmf-dist/scripts/digestif/digestif.zipbin0 -> 638935 bytes
-rw-r--r--Master/tlpkg/tlpsrc/digestif.tlpsrc1
24 files changed, 461 insertions, 0 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/digestif/digestif.texlua b/Build/source/texk/texlive/linked_scripts/digestif/digestif.texlua
new file mode 100755
index 00000000000..caf518071bc
--- /dev/null
+++ b/Build/source/texk/texlive/linked_scripts/digestif/digestif.texlua
@@ -0,0 +1,25 @@
+#!/usr/bin/env texlua
+-- Use an invalid directory name in order not to allow kpse to search
+-- in the current directory.
+os.setenv("TEXMFDOTDIR", package.config:find("^\\") and "NUL" or "/dev/null")
+kpse.set_program_name("luatex")
+local zip = require "zip"
+local archive = kpse.find_file("digestif.zip")
+ or error("Can't find 'digestif.zip' archive")
+local function digestif_searcher(modname)
+ local submod = modname:match("^digestif%.(.+)")
+ if not submod then return end
+ local zipfile = zip.open(archive)
+ local luafile = zipfile and zipfile:open(submod .. ".lua")
+ if not luafile then
+ return "\n\t[digestif] no file '"..submod..".lua' in '"..archive.."'"
+ end
+ local chunk = luafile:read("*a")
+ luafile:close(); zipfile:close()
+ return load(chunk, "="..archive.."#"..submod..".lua")
+end
+-- Search inside digestif.zip when requiring digestif.* modules.
+table.insert(package.searchers, 2, digestif_searcher)
+-- Search inside digestif.zip when loading the *.tags data files.
+table.insert(require "digestif.config".data_dirs, archive)
+require "digestif.langserver".main(arg)
diff --git a/Master/bin/aarch64-linux/digestif b/Master/bin/aarch64-linux/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/aarch64-linux/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/amd64-freebsd/digestif b/Master/bin/amd64-freebsd/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/amd64-freebsd/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/amd64-netbsd/digestif b/Master/bin/amd64-netbsd/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/amd64-netbsd/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/armhf-linux/digestif b/Master/bin/armhf-linux/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/armhf-linux/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/i386-cygwin/digestif b/Master/bin/i386-cygwin/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/i386-cygwin/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/i386-freebsd/digestif b/Master/bin/i386-freebsd/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/i386-freebsd/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/i386-linux/digestif b/Master/bin/i386-linux/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/i386-linux/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/i386-netbsd/digestif b/Master/bin/i386-netbsd/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/i386-netbsd/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/i386-solaris/digestif b/Master/bin/i386-solaris/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/i386-solaris/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/universal-darwin/digestif b/Master/bin/universal-darwin/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/universal-darwin/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/win32/digestif.exe b/Master/bin/win32/digestif.exe
new file mode 100755
index 00000000000..5777d90a17a
--- /dev/null
+++ b/Master/bin/win32/digestif.exe
Binary files differ
diff --git a/Master/bin/x86_64-cygwin/digestif b/Master/bin/x86_64-cygwin/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/x86_64-cygwin/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/x86_64-darwinlegacy/digestif b/Master/bin/x86_64-darwinlegacy/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/x86_64-darwinlegacy/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/x86_64-linux/digestif b/Master/bin/x86_64-linux/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/x86_64-linux/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/x86_64-linuxmusl/digestif b/Master/bin/x86_64-linuxmusl/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/x86_64-linuxmusl/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/bin/x86_64-solaris/digestif b/Master/bin/x86_64-solaris/digestif
new file mode 120000
index 00000000000..3cc8057d1ab
--- /dev/null
+++ b/Master/bin/x86_64-solaris/digestif
@@ -0,0 +1 @@
+../../texmf-dist/scripts/digestif/digestif.texlua \ No newline at end of file
diff --git a/Master/texmf-dist/doc/support/digestif/INSTALL.md b/Master/texmf-dist/doc/support/digestif/INSTALL.md
new file mode 100644
index 00000000000..f99f4b286ae
--- /dev/null
+++ b/Master/texmf-dist/doc/support/digestif/INSTALL.md
@@ -0,0 +1,80 @@
+Installation guide
+==================
+
+This installation guide focuses on packaging for redistribution. For
+the final user, it is recommended to install via LuaRocks or using the
+self-installing script; see the [README](README.md) for details.
+
+Digestif has the following dependencies:
+
+* Lua version 5.3 or 5.4
+* LPeg (https://luarocks.org/modules/gvvaughan/lpeg)
+* LuaFileSystem (https://luarocks.org/modules/hisham/luafilesystem)
+* cjson (optional, https://luarocks.org/modules/openresty/lua-cjson)
+* LuaZip (optional, https://luarocks.org/modules/mpeterv/luazip)
+
+If the cjson library is missing, Digestif uses its own LPeg-based JSON
+serializer, which is slower but adequate. LuaZip is required only
+when placing the data files in a zip archive.
+
+All shell commands and file name references assume that the directory
+containing this file is the current directory.
+
+Standard packaging
+------------------
+
+For a regular installation of Digestif into, say, `PREFIX=/usr`, copy
+the files as follows:
+
+ install -Dt $PREFIX/bin bin/digestif
+ install -Dt $PREFIX/share/lua/$LUA_VERSION digestif
+ install -Dt $PREFIX/share/digestif data/*.tags
+
+Before doing so, however, consider the following:
+
+1. In order for the tags files to be found, add the following at the
+ top of the `bin/digestif` script:
+
+ require "digestif.config".data_dirs = {"$PREFIX/share/digestif"}
+
+2. Make sure the `package.path` Lua variable includes the directory
+ into which the `digestif` directory is installed.
+
+3. It is recommended that the `package.path` and `package.cpath` Lua
+ variables do not include the default relative entries such as
+ `./?.lua`. This is especially important if any of the optional
+ dependencies are not installed.
+
+4. If LuaZip is available, the tags files may also be placed in a zip
+ file:
+
+ zip -j data.zip data/*.tags
+ install -Dt $PREFIX/share/digestif data.zip
+
+ In this case, add the following line at the top of `bin/digestif`:
+
+ require "digestif.config".data_dirs = {"$PREFIX/share/digestif/data.zip"}
+
+Packaging for a TeX distribution
+--------------------------------
+
+For an installation depending only on the `texlua` interpreter from
+LuaTeX (which already includes all other dependencies except cjson),
+create a zip file containing `digestif/*.lua` and `data/*.tags` (no
+subdirectories), place it anywhere kpathsearch will find it and use
+the `bin/digestif.texlua` executable script. For instance:
+
+ zip -j digestif.zip digestif/*.lua tags/*.tags
+ install -Dt $TEXMF/scripts digestif.zip
+ install bin/digestif.texlua $PREFIX/bin/digestif
+
+Unbundled installation
+----------------------
+
+To install Digestif on a directory of its own, say
+`PREFIX=/opt/digestif`, copy the `bin`, `data` and `digestif` folders
+and add a symlink of the executable script somewhere in the `PATH`.
+For instance:
+
+ install -Dt $PREFIX bin data digestif
+ ln -s $PREFIX/bin/digestif /opt/bin/digestif
diff --git a/Master/texmf-dist/doc/support/digestif/LICENSE b/Master/texmf-dist/doc/support/digestif/LICENSE
new file mode 100644
index 00000000000..b1f2360edce
--- /dev/null
+++ b/Master/texmf-dist/doc/support/digestif/LICENSE
@@ -0,0 +1,152 @@
+With the exception of the files individually listed below, the
+following applies:
+
+Copyright 2018-2022 Augusto Stoffel
+
+This program is free software: you can redistribute it 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 program 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.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+---
+
+amsrefs.sty.tags:
+
+ Copyright 2001-2004, 2007, 2008, 2010-2013 American Mathematical Society
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: LPPL-1.3c+
+
+ Adapted from the amsrefs package documentation, which can be found
+ at https://ctan.org/pkg/amsrefs.
+
+amssymb.sty.tags:
+
+ Copyright 2006-2019 Will Robertson
+ Copyright 2010-2017 Philipp Stephani
+ Copyright 2011-2017 Joseph Wright
+ Copyright 2012-2015 Khaled Hosny
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: LPPL-1.3c+
+
+ Adapted from the file unicode-math-table.tex, part of the
+ unicode-math package, which can be found at
+ https://ctan.org/pkg/unicode-math.
+
+biblatex.sty.tags:
+
+ Copyright 2006-2012 Philipp Lehman
+ Copyright 2012-2022 Philipp Lehman, Joseph Wright, Audrey Boruvka,
+ Philip Kime
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: LPPL-1.3c
+
+ Adapted from the biblatex package documentation, which can be found
+ at https://github.com/plk/biblatex.
+
+csquotes.sty.tags:
+
+ Copyright 2003-2011 Philipp Lehman
+ Copyright 2015-2019, 2021, 2022 Joseph Wright
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: LPPL-1.3c+
+
+ Adapted from the csquotes package documentation, which can be found
+ at https://ctan.org/pkg/csquotes.
+
+etoolbox.sty.tags:
+
+ Copyright 2007-2011 Philipp Lehman
+ Copyright 2015-2020 Joseph Wright
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: LPPL-1.3c+
+
+ Adapted form the etoolbox package documentation, which can be found
+ at https://ctan.org/pkg/etoolbox.
+
+latex.tags:
+
+ Copyright 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
+ 2016, 2017, 2018, 2019, 2020, 2021, 2022 Karl Berry
+ Copyright 1988, 1994, 2007 Stephen Gilmore
+ Copyright 1994, 1995, 1996 Torsten Martinsen
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: GFDL
+
+ Adapted from the LaTeX2e Unofficial Reference Manual, which can be
+ found at https://latexref.xyz/.
+
+pgf.tags:
+
+ Copyright 2007-2013 Till Tantau
+ Copyright 2022 Augusto Stoffel, Jens Schneider
+ SPDX-License-Identifier: GFDL-1.2-or-later or LPPL-1.3c+
+
+ Adapted from the PGF manual, version 3.1.9a, which can be found at
+ https://github.com/pgf-tikz/pgf/.
+
+plain.tags:
+
+ Copyright 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: GFDL-1.3-only
+
+ Adapted from the book TeX for the Impatient, which can be found at
+ https://www.gnu.org/software/teximpatient.
+
+primitives.tags:
+
+ Copyright 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: GFDL-1.3-only
+
+ Adapted from the book TeX for the Impatient, which can be found at
+ https://www.gnu.org/software/teximpatient.
+
+teximpatient.tags:
+
+ Copyright 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: GFDL-1.3-only
+
+ Adapted from the book TeX for the Impatient, which can be found at
+ https://www.gnu.org/software/teximpatient.
+
+texinfo.tags:
+
+ Copyright 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ Copyright 2019 Augusto Stoffel
+ SPDX-License-Identifier: GFDL-1.3-only
+
+ Adapted from the GNU Texinfo manual, which can be found at
+ https://www.gnu.org/software/texinfo/manual/texinfo/.
+
+tikz.tags:
+
+ Copyright 2007-2013 Till Tantau
+ Copyright 2022 Augusto Stoffel, Jens Schneider
+ SPDX-License-Identifier: GFDL-1.2-or-later or LPPL-1.3c+
+
+ Adapted from the PGF manual, version 3.1.9a, which can be found at
+ https://github.com/pgf-tikz/pgf/.
+
+unicode-math.sty.tags:
+
+ Copyright 2006-2019 Will Robertson
+ Copyright 2010-2017 Philipp Stephani
+ Copyright 2011-2017 Joseph Wright
+ Copyright 2012-2015 Khaled Hosny
+ Copyright 2022 Augusto Stoffel
+ SPDX-License-Identifier: LPPL-1.3c+
+
+ Adapted from the file unicode-math-table.tex, part of
+ the unicode-math package, which can be found at
+ https://github.com/wspr/unicode-math/
+
diff --git a/Master/texmf-dist/doc/support/digestif/README.md b/Master/texmf-dist/doc/support/digestif/README.md
new file mode 100644
index 00000000000..c489d4fa6c8
--- /dev/null
+++ b/Master/texmf-dist/doc/support/digestif/README.md
@@ -0,0 +1,161 @@
+Digestif
+========
+
+<p align="center">
+<a href="https://luarocks.org/modules/astoff/digestif"><img src="https://img.shields.io/luarocks/v/astoff/digestif.svg" alt="LuaRocks" /></a>
+<a href="https://app.travis-ci.com/astoff/digestif"><img src="https://app.travis-ci.com/astoff/digestif.svg?branch=master" alt="Build Status" /></a>
+</p>
+
+Digestif is a code analyzer, and a [language server][lsp], for LaTeX,
+ConTeXt et caterva. It provides context-sensitive completion,
+documentation, code navigation, and related functionality to any text
+editor that speaks the LSP protocol.
+
+![Mandatory GIF][gif]
+
+Features
+--------
+
+- Completion for commands, environments, key-value options (for
+ instance, TikZ options), cross-references and citations.
+
+- Popup help messages, including command signature and documentation.
+ For the best results, make sure you have the [LaTeX reference
+ manual][latexref] installed as an [info node][info-issues].
+
+- Find definition and references to labels and citations.
+
+- Document outline.
+
+- Multi-file documents are supported via TeXShop-style magic comments.
+ Just add a comment like this near the top of each child document:
+
+ ```
+ % !TeX root = somefile.tex
+ ```
+
+- Digestif is fuzzy! For citations, it tries an exact match against
+ the BibTeX identifier and a fuzzy match against author and title.
+ In the GIF above, the user types `groalhom`, which matches
+ **Gro**thendieck's “Sur quelques points d'**al**gébre
+ **hom**ologique”; selecting this inserts the BibTeX identifier
+ `Tohoku`. Similarly, for cross-references, Digestif tries an exact
+ match against the label and a fuzzy match against the text around
+ the label.
+
+- Support for LaTeX, ConTeXt, plain TeX, DocTeX (`.dtx` files) and
+ Texinfo.
+
+- Bibliography support via BibTeX, BibLaTeX and amsrefs.
+
+- Lua API, independent of the language server protocol, for use in
+ editors capable of loading Lua modules. See [API on the wiki][api]
+ for details.
+
+Installation
+------------
+
+Digestif has minimal dependencies and can run on LuaTeX or on a
+standalone Lua interpreter. Correspondingly, there are two ways to
+install it.
+
+### LuaTeX with the self-installing script ![easy]
+
+The only dependencies for this are git and a recent TeX installation.
+
+1. Download the [digestif][self-install-sh] wrapper script (or, on
+ Windows, [digestif.cmd][self-install-cmd]).
+2. Place it in your `$PATH` (say, `~/.local/bin`).
+3. Make it executable (`chmod +x ~/.local/bin/digestif`).
+
+In the first run, the script will automatically download the
+package, by default to `~/.digestif`. To update or uninstall,
+simply delete that folder.
+
+### Standalone Lua via LuaRocks
+
+Run `luarocks install digestif`. This should be done either as root
+or with the `--local` option, in which case the executable script will
+land in `~/.luarocks/bin/digestif`; make sure this is in your `$PATH`
+or adapt your text editor configuration accordingly.
+
+Editor setup
+------------
+
+Next, you need to enable Digestif as a language server in your
+favorite text editor.
+
+### Emacs with the [Eglot] package
+
+Digestif works out-of-the-box with Eglot. Just install the package
+(`M-x package-install RET eglot RET`), open some TeX document and
+enable Eglot (`M-x eglot`). Voilà! Some hints:
+
+- If you want automatic snippet insertion upon choosing a completion
+ candidate, make sure to activate `yas-minor-mode` *before*
+ starting up Eglot.
+
+- Try the [consult-eglot] package to access the index of a multifile
+ project (this is exposed via the the `workspace/symbols` LSP
+ method.)
+
+### Emacs with the [lsp-mode] package
+
+To ensure that Digestif is used, add the following to your init file:
+
+ ``` emacs-lisp
+ (setq lsp-tex-server 'digestif)
+ ```
+
+### Vim with the [Coc] plugin
+
+See instructions [here](https://github.com/neoclide/coc.nvim/wiki/Language-servers#latex).
+
+### Other editors
+
+It shouldn't be hard to set up other editors to use Digestif. Please
+open an issue if you want to include additional instructions here.
+
+Supported TeX packages
+----------------------
+
+Digestif tries to learn about the commands provided by a package by
+looking at its source code, but this has limitations, since the
+typical TeX literate documentation is ostensibly not machine readable.
+
+For full support, a detailed “tags” file should be created for each
+package. Among other things, this file lists all defined macros
+together with their signatures and docstrings. To generate a stub
+tags file from a `.sty`, `.cls` or `.dtx` file, use the command
+
+```
+digestif --generate FILES
+```
+
+After filling in the missing details, the resulting tags file can be
+added to this repository (pull requests are welcome!). The format of
+the tags files should be more or less self explanatory. See the data
+folder for examples.
+
+License
+-------
+
+Digestif is available under the [GNU General Public License][GPL],
+version 3 or later. For some files in the [data](./data) directory, a
+different license applies. See [LICENSE](./LICENSE) for details.
+
+[gif]: https://raw.githubusercontent.com/astoff/digestif/images/screenshot.gif
+[info-issues]: https://github.com/astoff/digestif/wiki/Common-installation-issues#info-nodes
+[installation-issues]: https://github.com/astoff/digestif/wiki/Common-installation-issues
+[coc]: https://github.com/neoclide/coc.nvim
+[eglot]: https://github.com/joaotavora/eglot
+[latexref]: https://latexref.xyz/
+[lsp-mode]: https://github.com/emacs-lsp/lsp-mode
+[lsp]: https://microsoft.github.io/language-server-protocol/
+[api]: https://github.com/astoff/digestif/wiki/API
+[self-install-sh]: https://raw.githubusercontent.com/astoff/digestif/master/scripts/digestif
+[self-install-cmd]: https://raw.githubusercontent.com/astoff/digestif/master/scripts/digestif.cmd
+[easy]: https://raw.githubusercontent.com/astoff/digestif/images/easy.png
+[GPL]: https://www.gnu.org/licenses/gpl-3.0.txt
+[consult-eglot]: https://github.com/mohkale/consult-eglot/
+[Company mode]: https://company-mode.github.io/
diff --git a/Master/texmf-dist/doc/support/digestif/bin/digestif b/Master/texmf-dist/doc/support/digestif/bin/digestif
new file mode 100755
index 00000000000..818d5b355ac
--- /dev/null
+++ b/Master/texmf-dist/doc/support/digestif/bin/digestif
@@ -0,0 +1,2 @@
+#!/usr/bin/env lua
+require "digestif.langserver".main(arg)
diff --git a/Master/texmf-dist/scripts/digestif/digestif.texlua b/Master/texmf-dist/scripts/digestif/digestif.texlua
new file mode 100755
index 00000000000..caf518071bc
--- /dev/null
+++ b/Master/texmf-dist/scripts/digestif/digestif.texlua
@@ -0,0 +1,25 @@
+#!/usr/bin/env texlua
+-- Use an invalid directory name in order not to allow kpse to search
+-- in the current directory.
+os.setenv("TEXMFDOTDIR", package.config:find("^\\") and "NUL" or "/dev/null")
+kpse.set_program_name("luatex")
+local zip = require "zip"
+local archive = kpse.find_file("digestif.zip")
+ or error("Can't find 'digestif.zip' archive")
+local function digestif_searcher(modname)
+ local submod = modname:match("^digestif%.(.+)")
+ if not submod then return end
+ local zipfile = zip.open(archive)
+ local luafile = zipfile and zipfile:open(submod .. ".lua")
+ if not luafile then
+ return "\n\t[digestif] no file '"..submod..".lua' in '"..archive.."'"
+ end
+ local chunk = luafile:read("*a")
+ luafile:close(); zipfile:close()
+ return load(chunk, "="..archive.."#"..submod..".lua")
+end
+-- Search inside digestif.zip when requiring digestif.* modules.
+table.insert(package.searchers, 2, digestif_searcher)
+-- Search inside digestif.zip when loading the *.tags data files.
+table.insert(require "digestif.config".data_dirs, archive)
+require "digestif.langserver".main(arg)
diff --git a/Master/texmf-dist/scripts/digestif/digestif.zip b/Master/texmf-dist/scripts/digestif/digestif.zip
new file mode 100644
index 00000000000..e10142227da
--- /dev/null
+++ b/Master/texmf-dist/scripts/digestif/digestif.zip
Binary files differ
diff --git a/Master/tlpkg/tlpsrc/digestif.tlpsrc b/Master/tlpkg/tlpsrc/digestif.tlpsrc
new file mode 100644
index 00000000000..dca338c719c
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/digestif.tlpsrc
@@ -0,0 +1 @@
+binpattern f bin/${ARCH}/${PKGNAME}