summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
Diffstat (limited to 'support')
-rw-r--r--support/TeX4ht/source/ChangeLog94
-rw-r--r--support/TeX4ht/source/mktex4ht-cnf.tex6
-rw-r--r--support/TeX4ht/source/tex4ht-4ht.tex310
-rw-r--r--support/TeX4ht/source/tex4ht-html4.tex58
-rw-r--r--support/TeX4ht/source/tex4ht-info.tex14
-rw-r--r--support/TeX4ht/source/tex4ht-mathjax.tex6
-rw-r--r--support/TeX4ht/source/tex4ht-mathml.tex24
-rw-r--r--support/TeX4ht/source/tex4ht-t4ht.tex4
-rw-r--r--support/TeX4ht/source/wripro.tex7
-rw-r--r--support/texlab/CHANGELOG.md12
-rw-r--r--support/texlab/Cargo.lock245
-rw-r--r--support/texlab/Cargo.toml22
-rw-r--r--support/texlab/crates/base-db/Cargo.toml18
-rw-r--r--support/texlab/crates/base-db/src/config.rs2
-rw-r--r--support/texlab/crates/base-db/src/semantics/tex.rs11
-rw-r--r--support/texlab/crates/bibfmt/Cargo.toml4
-rw-r--r--support/texlab/crates/bibtex-utils/Cargo.toml10
-rw-r--r--support/texlab/crates/citeproc/Cargo.toml14
-rw-r--r--support/texlab/crates/commands/Cargo.toml22
-rw-r--r--support/texlab/crates/completion-data/Cargo.toml12
-rw-r--r--support/texlab/crates/completion/Cargo.toml10
-rw-r--r--support/texlab/crates/definition/Cargo.toml6
-rw-r--r--support/texlab/crates/definition/src/command.rs2
-rw-r--r--support/texlab/crates/diagnostics/Cargo.toml16
-rw-r--r--support/texlab/crates/diagnostics/src/manager.rs83
-rw-r--r--support/texlab/crates/diagnostics/src/tests.rs70
-rw-r--r--support/texlab/crates/diagnostics/src/types.rs86
-rw-r--r--support/texlab/crates/distro/Cargo.toml4
-rw-r--r--support/texlab/crates/folding/Cargo.toml4
-rw-r--r--support/texlab/crates/highlights/Cargo.toml4
-rw-r--r--support/texlab/crates/hover/Cargo.toml4
-rw-r--r--support/texlab/crates/inlay-hints/Cargo.toml6
-rw-r--r--support/texlab/crates/ipc/Cargo.toml10
-rw-r--r--support/texlab/crates/line-index/Cargo.toml2
-rw-r--r--support/texlab/crates/links/Cargo.toml2
-rw-r--r--support/texlab/crates/parser/Cargo.toml18
-rw-r--r--support/texlab/crates/parser/src/latex/lexer.rs2
-rw-r--r--support/texlab/crates/parser/src/latex/tests.rs110
-rw-r--r--support/texlab/crates/references/Cargo.toml4
-rw-r--r--support/texlab/crates/rename/Cargo.toml4
-rw-r--r--support/texlab/crates/symbols/Cargo.toml12
-rw-r--r--support/texlab/crates/syntax/Cargo.toml6
-rw-r--r--support/texlab/crates/syntax/src/latex/cst.rs6
-rw-r--r--support/texlab/crates/syntax/src/latex/kind.rs1
-rw-r--r--support/texlab/crates/test-utils/Cargo.toml4
-rw-r--r--support/texlab/crates/texlab/Cargo.toml28
-rw-r--r--support/texlab/crates/texlab/src/features/inlay_hint.rs7
-rw-r--r--support/texlab/crates/texlab/src/server/options.rs1
-rw-r--r--support/texlab/crates/texlab/src/util/from_proto.rs3
-rw-r--r--support/texlab/crates/texlab/src/util/to_proto.rs23
-rw-r--r--support/texlab/texlab.14
-rw-r--r--support/texlab/texlab.pdfbin26472 -> 26335 bytes
-rw-r--r--support/texshop/README.txt2
-rw-r--r--support/texshop/texshop544.html30
-rw-r--r--support/texshop/texshop546.html44
55 files changed, 1112 insertions, 401 deletions
diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog
index e836a359a1..c4dc917234 100644
--- a/support/TeX4ht/source/ChangeLog
+++ b/support/TeX4ht/source/ChangeLog
@@ -1,3 +1,97 @@
+2024-10-14 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4.4ht): fixed formatting of the \rtitlex
+ command of Ltugboat class.
+ http://puszcza.gnu.org.ua/bugs/?639
+
+2024-10-13 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (latex.4ht): fixed support for LaTeX cmd hooks in
+ \@sect and \@ssect commands.
+ http://puszcza.gnu.org.ua/bugs/?639
+
+2024-10-10 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-mathml.tex (mathml.4ht): removed spurious space after
+ \left.
+ https://tex.stackexchange.com/a/728351/2891
+
+ * tex4ht-4ht.tex (stmaryrd.4ht),
+ * tex4ht-mathml.tex (mathml.4ht): added support for \llbracket and
+ \rrbracket in MathML.
+ https://tex.stackexchange.com/a/728351/2891
+
+ * tex4ht-html4.tex (html4.4ht): added support for colored \cline.
+ https://tug.org/pipermail/tex4ht/2024q4/003598.html
+
+2024-10-09 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (makecell.4ht): added support for the Makecell
+ package.
+ https://tug.org/pipermail/tex4ht/2024q4/003596.html
+
+2024-10-08 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4.4ht): don't override \hline:color in
+ booktabs if it is already defined.
+ https://tug.org/pipermail/tex4ht/2024q4/003594.html
+
+2024-10-06 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4.4ht): use Colortbl's \arrayrulecolor also
+ for vertical table lines.
+ https://tug.org/pipermail/tex4ht/2024q4/003589.html
+
+2024-10-04 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (fancyvrb.4ht): added extra check for the
+ definition of \FancyVerbBackgroundColor.
+
+2024-10-03 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (lua-ul.4ht),
+ * tex4ht-html4.tex (html4.4ht): added support for the Lua-ul
+ package.
+
+2024-10-01 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (piton.4ht): prevent default use of visible space
+ characters.
+
+ * tex4ht-4ht.tex (piton.4ht): load Xcolor if not already loaded.
+
+2024-09-30 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (colortbl-hooks.4ht, colortbl.4ht): added support
+ for the \arrayrulecolor command used in the document preamble.
+ https://puszcza.gnu.org.ua/bugs/?636
+
+ * tex4ht-html4.tex (html4.4ht): don't add extra black rule at the
+ first \hline in table.
+ https://puszcza.gnu.org.ua/bugs/?636
+
+ * tex4ht-4ht.tex (longtable.4ht): fixed support for the Colortbl
+ \hline.
+ https://puszcza.gnu.org.ua/bugs/?636
+
+2024-09-27 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-html4.tex (html4-math.4ht),
+ * tex4ht-mathjax.tex (mathjax-latex-4ht.4ht): enclose math elements
+ in MathJax in HTML tags.
+ https://tex.stackexchange.com/a/727413/2891
+
+ * tex4ht-html4.tex (html4-math.4ht): don't add link to the MathJax
+ script if the address is empty.
+
+2024-09-26 Michal Hoftich <michal.h21@gmail.com>
+
+ * tex4ht-4ht.tex (fancyvrb.4ht): fixed support for background
+ colors.
+
+ * tex4ht-4ht.tex (minted.4ht): removed minted@colorbg env, to fix
+ support for Minted 3.0.
+
2024-09-24 Karl Berry <karl@freefriends.org>
* wripro.tex: copyright 2024.
diff --git a/support/TeX4ht/source/mktex4ht-cnf.tex b/support/TeX4ht/source/mktex4ht-cnf.tex
index 2bddd28013..73d7d0a2f2 100644
--- a/support/TeX4ht/source/mktex4ht-cnf.tex
+++ b/support/TeX4ht/source/mktex4ht-cnf.tex
@@ -1,4 +1,4 @@
-% $Id: mktex4ht-cnf.tex 1552 2024-09-09 14:48:03Z michal_h21 $
+% $Id: mktex4ht-cnf.tex 1579 2024-10-10 21:25:46Z michal_h21 $
% Manually-maintained file, listing *.4ht files created by tex4ht-4ht.tex.
% Read by tex4ht-cond4ht.
%
@@ -47,6 +47,7 @@
\AddFile{7}{supertabular}
\AddFile{7}{array}
\AddFile{9}{dcolumn}
+\AddFile{9}{makecell}
\AddFile{7}{longtable}
\AddFile{7}{pctable}
\AddFile{8}{tabulary}
@@ -227,6 +228,7 @@
\AddFile{7}{dvipsnam}
\AddFile{7}{svgnam}
\AddFile{7}{colortbl}
+\AddFile{7}{colortbl-hooks}
\AddFile{6}{dvips}
\AddFile{9}{textures}
\AddFile{9}{dvipdf}
@@ -327,6 +329,7 @@
\AddFile{9}{hyperxmp}
\AddFile{9}{breqn}
\AddFile{9}{nicefrac}
+\AddFile{9}{stmaryrd}
\AddFile{9}{multicol}
\AddFile{2}{lettrine}
\AddFile{9}{osudeG}
@@ -341,6 +344,7 @@
\AddFile{9}{sverb}
\AddFile{9}{syntax}
\AddFile{9}{soul}
+\AddFile{9}{lua-ul}
\AddFile{5}{plain}
\AddFile{9}{manmac}
\AddFile{8}{mex}
diff --git a/support/TeX4ht/source/tex4ht-4ht.tex b/support/TeX4ht/source/tex4ht-4ht.tex
index ca3a61c56a..ae00b48011 100644
--- a/support/TeX4ht/source/tex4ht-4ht.tex
+++ b/support/TeX4ht/source/tex4ht-4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-4ht.tex 1557 2024-09-23 12:20:56Z michal_h21 $
+% $Id: tex4ht-4ht.tex 1581 2024-10-13 11:33:56Z michal_h21 $
% tex tex4ht-4ht or ht tex tex4ht-4ht
%
% Copyright 2009-2024 TeX Users Group
@@ -10523,6 +10523,36 @@ new way. Don't globalize ar:cnt!!!!
\NewConfigure{dcolumn}{2}
>>>
+%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{makecell}
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<makecell.4ht\><<<
+% makecell.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+
+|<makecell makegapedcells|>
+
+\Hinput{makecell}
+\endinput
+>>> \AddFile{9}{makecell}
+
+These commands redefine internall tabular macros, which can lead
+to errors. We need to disable them. User can provide an alternative
+configurations for them, but it is most likely unnecessary.
+
+\<makecell makegapedcells\><<<
+\NewConfigure{makegapedcells}{1}
+\def\:tempa{\a:makegapedcells}
+\HLet\makegapedcells\:tempa
+
+\NewConfigure{nomakegapedcells}{1}
+\def\:tempa{\a:nomakegapedcells}
+\HLet\nomakegapedcells\:tempa
+>>>
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{longtable.sty}
%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -10753,13 +10783,32 @@ Fix for the \Link[https://puszcza.gnu.org.ua/bugs/?437]{}{}starred linebreak iss
{\LT@t@bularcr}}
>>>
-\<longtable hline\><<<
+
+
+This code doesn't work well with Colortbl, so we will ignore it.
+\Link[https://puszcza.gnu.org.ua/bugs/?636]{}{}More info here\EndLink.
+
+\<longtable nohline\><<<
\def\:tempc{%
\o:noalign:{\ifnum0=`}\fi
\penalty\@M
\futurelet\@let@token\LT@@hline}
+>>>
+
+The original code for longtable hline was complex, but it doesn't work
+with the Colortbl package. I've found that the default hline works just
+fine, so we probably don't need to change it at all.
+
+\<longtable hline\><<<
+\def\:tempc{\a:hline}
\HLet\LT@hline\:tempc
+>>>
+
+This code is not used as well.
+
+\<longtable nohline\><<<
\def\:tempc{%
+ \typeout{}
\ifx\@let@token\hline
\global\let\@gtempa\@gobble
\gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
@@ -10800,7 +10849,7 @@ Captions in Longtable are placed inside of the table structure.
We need to use special configuration to produce correct rendering,
normal code for caption will not work.
-\Link[https://tex.stackexchange.com/a/642350/2891] More details\EndLink
+\Link[https://tex.stackexchange.com/a/642350/2891]{}{} More details\EndLink
\<longtable captions\><<<
\NewConfigure{longtablecaption}{4}
@@ -10811,7 +10860,7 @@ normal code for caption will not work.
\HLet\LT@makecaption\:tempc
>>>
-\Link[https://puszcza.gnu.org.ua/bugs/?313]
+\Link[https://puszcza.gnu.org.ua/bugs/?313]{}{}
Write table info to the LOT
\EndLink
\<longtable captions\><<<
@@ -11260,7 +11309,7 @@ compilation errors
%%%%%%%%%%%%%%%%%%%%%%%%
Some details are
-\Link[https://tex.stackexchange.com/a/467126/2891]{}{here}\EndLink. I
+\Link[https://tex.stackexchange.com/a/467126/2891]{}{}here\EndLink. I
was not able to fix all tabu issues, it is too aggressive in basic table
handling. Michal
@@ -12018,14 +12067,32 @@ such as counter numbers.
\def\no@sect#1#2#3#4#5{\no:sect{#1}{#2}{#3}{#4}{0ex}}
>>>
+The LaTeX command hook mechanism doesn't like our redefinitions of
+\''\@sect' and \''\@ssect', so we need to declare and use them explicitly.
+Otherwise, packages that try to add hooks to these commands may cause errors.
+See \Link[http://puszcza.gnu.org.ua/bugs/?639]{}{} this bug report\EndLink.
+
+\<latex ltsect\><<<
+\NewHookWithArguments{cmd/@sect/before}{8}
+\NewReversedHookWithArguments{cmd/@sect/after}{8}
+\NewHookWithArguments{cmd/@ssect/before}{5}
+\NewReversedHookWithArguments{cmd/@ssect/after}{5}
+>>>
+
\<latex ltsect\><<<
\let\no@ssect|=\@ssect
-\def\@ssect#1#2#3#4#5{\:Sc3
- \no@ssect{#1}{#2}{#3}{#4}{\:Sc4#5\:Sc2}\HtmlEnv}
+\def\@ssect#1#2#3#4#5{%
+ \UseHookWithArguments{cmd/@ssect/before}{5}{##1}{##2}{##3}{##4}{##5}%
+ \:Sc3\no@ssect{#1}{#2}{#3}{#4}{\:Sc4#5\:Sc2}\HtmlEnv%
+ \UseHookWithArguments{cmd/@ssect/after}{5}{##1}{##2}{##3}{##4}{##5}%
+}
\let\no@sect|=\@sect
\def\@sect#1#2#3#4#5#6[#7]#8{%
- \xdef\c:secnumdepth{#2}\:Sc3
- \no@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{\:Sc4#8\:Sc2}\HtmlEnv}
+ \UseHookWithArguments{cmd/@sect/before}{8}{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}%
+ \xdef\c:secnumdepth{#2}\:Sc3%
+ \no@sect{#1}{#2}{#3}{#4}{#5}{#6}[#7]{\:Sc4#8\:Sc2}\HtmlEnv%
+ \UseHookWithArguments{cmd/@sect/after}{8}{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}%
+ }
\let\:startsection|=\@startsection
\def\@startsection#1{\@ifstar{\Configure{secType}{like#1}}%
{\Configure{secType}{#1}}%
@@ -12070,13 +12137,16 @@ The following is need for \''\@seccntformat'.
\<redf sec\><<<
\def\@sect##1##2##3##4##5##6[##7]##8{%
+ \UseHookWithArguments{cmd/@sect/before}{8}{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}%
|<disable @seccntformat|>%
\let\@sect|=\no@sect \xdef\c:secnumdepth{##2}%
{\SkipRefstepAnchor \let\addcontentsline|=\:gobbleIII \let\mark|=\:gobble
\no@sect{##1}{##2}{##3}{##4}{##5}{##6}[{##7}]{}}%
|<recall Sc, sec, ssec|>%
|<restore @seccntformat|>%
- \HtmlEnv \Toc:Title{##7}\csname no:#1\endcsname{##8}}%
+ \HtmlEnv \Toc:Title{##7}\csname no:#1\endcsname{##8}%
+ \UseHookWithArguments{cmd/@sect/after}{8}{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}%
+ }%
>>>
In the above we want \`'[{##7}]' instead of \`'[##7]', in case `]' is
@@ -12086,12 +12156,15 @@ The following is for the star option.
\<redf ssec\><<<
\def\@ssect##1##2##3##4##5{%
+ \UseHookWithArguments{cmd/@ssect/before}{5}{##1}{##2}{##3}{##4}{##5}%
|<star sec title|>%
\let\@ssect|=\no@ssect
{\def\addcontentsline####1####2####3{}%
\no@ssect{##1}{##2}{##3}{##4}{}}%
|<recall Sc, sec, ssec|>%
- \HtmlEnv \csname :like#1\endcsname{##5}}%
+ \HtmlEnv \csname :like#1\endcsname{##5}%
+ \UseHookWithArguments{cmd/@ssect/after}{5}{##1}{##2}{##3}{##4}{##5}%
+ }%
>>>
\<sv Sc, sec, ssec\><<<
@@ -26194,7 +26267,11 @@ See \Link[://github.com/michal-h21/make4ht/issues/141]{}{}this issue\EndLink.
\ifx \fv:color\empty \else{%
\let\HColor\fv:color \a:fancyvrbcolor%
}\fi
- \ifx \FancyVerbFillColor\relax \else%
+ \ifx \FancyVerbFillColor\relax \ifx\FancyVerbBackgroundColor\relax\else%
+ \ifdefined\FancyVerbBackgroundColor% this extra check is needed for \BVerbatimInput
+ \:fvcolor \b:fancyvrbcolor \color{\FancyVerbBackgroundColor}|<par del|>%
+ \fi%
+ \fi\else%
\:fvcolor \b:fancyvrbcolor \FancyVerbFillColor|<par del|>%
\fi
\ifx \FancyVerbRuleColor\relax \else%
@@ -26340,12 +26417,11 @@ of LaTeX. The \''\:gobbleII' is for getting rid of the
\<minted.4ht\><<<
% minted.4ht (|version), generated from |jobname.tex
-% Copyright 2022 TeX Users Group
+% Copyright 2022-2024 TeX Users Group
|<TeX4ht license text|>
|<minted inline fixes|>
|<minted background color|>
-|<minted background color|>
|<minted input fixes|>
\Hinput{minted}
@@ -26380,9 +26456,18 @@ in the generated HTML.
\HLet\minted@inline@iii\:tempa
>>>
+Minted 3.0 changed the way it works with the background color.
+It now uses Fancyvrb, so the minted@colorbg environment is not used anymore.
+We need to remove the redefinition, to prevent compilation error.
+The MintedColorbg configuration can stay here, to prevent errors in
+user config files that use it, but it doesn't have any effect.
+
\<minted background color\><<<
% support for background color in Minted listings
\NewConfigure{MintedColorbg}{2}
+>>>
+
+\<minted background color not used\><<<
\renewenvironment{minted@colorbg}[1]{%
\colorlet{shadecolor}{#1}%
\extractcolorspec{shadecolor}{\:tempa}%
@@ -26463,10 +26548,12 @@ Minted, it turns the breaklines option to false when it is used.
\<piton.4ht\><<<
% piton.4ht (|version), generated from |jobname.tex
-% Copyright 2023 TeX Users Group
+% Copyright 2023-2024 TeX Users Group
|<TeX4ht license text|>
\ExplSyntaxOn
+|<piton xcolor|>
+|<piton spaces|>
|<piton env|>
|<piton inlines|>
\ExplSyntaxOff
@@ -26474,6 +26561,51 @@ Minted, it turns the breaklines option to false when it is used.
\endinput
>>> \AddFile{9}{piton}
+If Xcolor is not loaded earlier, Piton loads it in the begindocument/before hook.
+It leads to a compilation error caused by catcodes mismatch. We can prevent it
+by loading Xcolor earlier.
+
+\<piton xcolor\><<<
+\IfPackageLoadedTF{xcolor}{}{\RequirePackage{xcolor}}
+>>>
+
+The current version of Piton started to show visible space character (U+2423) instead
+of spaces even if they are not requested using the show-spaces option. This code should
+prevent that.
+
+\<piton spaces\><<<
+\def\:pitonvisiblespace{ \HCode{\string&\#x2423;} }
+\cs_new_protected:Npn \:__piton_replace_spaces:n #1
+ {
+ \tl_set:Nn \l_tmpa_tl { #1 }
+ \bool_if:NTF \l__piton_show_spaces_bool
+ {
+ \tl_set:Nn \l__piton_space_tl {\:pitonvisiblespace} % U+2423
+ \regex_replace_all:nnN { \x20 } {\c{:pitonvisiblespace}} \l_tmpa_tl
+ }
+ {
+ \bool_if:NTF \l__piton_break_lines_in_Piton_bool
+ {
+ \regex_replace_all:nnN
+ { \x20 }
+ { \c { __piton_breakable_space: } }
+ \l_tmpa_tl
+ \regex_replace_all:nnN
+ { \c { l__piton_space_tl } }
+ { \c { __piton_breakable_space: } }
+ \l_tmpa_tl
+ }
+ {
+ \regex_replace_all:nnN { \x20 } { \x20 } \l_tmpa_tl
+ }
+ }
+ \l_tmpa_tl
+ }
+
+
+\HLet\__piton_replace_spaces:n\:__piton_replace_spaces:n
+>>>
+
\<piton env\><<<
\NewConfigure{pitonline}{3}
@@ -29234,6 +29366,21 @@ The same is true for array.sty.
\endinput
>>> \AddFile{7}{colortbl}
+
+\<add to usepackage\><<<
+\Configure{PackageHooks}{colortbl.sty}{colortbl-hooks.4ht}
+>>>
+
+\<colortbl-hooks.4ht\><<<
+% colortbl-hooks.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+\:AtEndOfPackage{%
+|<colortbl arrayrulecolor|>
+}
+>>> \AddFile{7}{colortbl-hooks}
+
+
color.sty is obsoleted by xcolor, so we will load the latter package in
order to get access to the color space conversion commands.
@@ -29375,8 +29522,10 @@ need also a treatment similar to \''\CT@column@color'?
>>>
Fixes for colored hlines. The \`|\hline:color| can be used in CSS, for instance.
+We need to use early hooks file, because this command can be used in the preamble,
+and we want to catch the defined color.
-\<fix colortbl\><<<
+\<colortbl arrayrulecolor\><<<
% default hline color is black
\def\hline:color{000}
% save rule color in format usable in CSS
@@ -29387,14 +29536,10 @@ Fixes for colored hlines. The \`|\hline:color| can be used in CSS, for instance.
\noalign{\convertcolorspec{#1}{#2}{HTML}\:tmp\global\let\hline:color\:tmp}% we are
\fi
}
-\HLet\arrayrulecolor\tmp:arrayrulecolor
->>>
+% \HLet doesn't work in the preamble, so we need to work around it
+\let\o:arrayrulecolor:\arrayrulecolor
+\let\arrayrulecolor\tmp:arrayrulecolor
-\SubSection{Utilities}
-
-This should enable use of \`|\color| command in array declaration
-
-\<fix colortbl\><<<
\def\convert:colorspec#1 #2 #3 #4{%
\edef\current:color{%
\ifx\relax#1\relax\else%
@@ -29409,6 +29554,21 @@ This should enable use of \`|\color| command in array declaration
}%
}
+>>>
+
+This version of arrayrulecolor will be used after preamble.
+It supports pictures.
+
+\<fix colortbl\><<<
+\HRestore\arrayrulecolor
+\HLet\arrayrulecolor\tmp:arrayrulecolor
+>>>
+
+\SubSection{Utilities}
+
+This should enable use of \`|\color| command in array declaration
+
+\<fix colortbl\><<<
\def\save:color#1 #2//{%
\convert:colorspec#2 {} {} {} {}
\convertcolorspec{#1}{\current:color}{HTML}\tmp:col
@@ -35226,6 +35386,21 @@ but fatal error is a worse possibility.
\Configure{nicefrac}{}{/}{}
>>>
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+\Section{stmaryrd}
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+\<stmaryrd.4ht\><<<
+% stmaryrd.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+
+
+\Hinput{stmaryrd}
+\endinput
+>>> \AddFile{9}{stmaryrd}
+
\Section{fontmath.ltx}
\<config fontmath.ltx utilities\><<<
@@ -39037,6 +39212,95 @@ Type 6 is for punctuation (\''\mathpunc', in LaTeX), and type 7 is
\NewConfigure{textul}{2}
>>>
+%%%%%%%%%%%%%%%%%%%%%
+\Section{Lua-ul}
+%%%%%%%%%%%%%%%%%%%%%
+
+\<lua-ul.4ht\><<<
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% lua-ul.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+|<TeX4ht license text|>
+|<lua-ul getxcolor|>
+\ExplSyntaxOn
+|<lua-ul hooks|>
+\ExplSyntaxOff
+\Hinput{lua-ul}
+\endinput
+>>> \AddFile{9}{lua-ul}
+
+If Xcolor is not loaded explicitly in the document, the \Verb+\get:xcolorcss+ command
+is not available. We want to be able to save colors of underlines etc, so we need
+to provide a variant that will work regardless of Xcolor\dots
+
+\<lua-ul getxcolor\><<<
+\def\lua:ul:get:xcolorcss#1#2{%
+ \expandafter\extractcolorspec\expandafter{#1}{\tsf:color}%
+ \expandafter\convertcolorspec\tsf:color{HTML}\tsf:color%
+ \edef#2{\#\tsf:color}%
+}
+>>>
+
+\<lua-ul hooks\><<<
+
+\NewConfigure{highLight}{2}
+\NewDocumentCommand \:highLight {O{\l__luaul_highlight_color_tl} +m} {
+ \group_begin:
+ \lua:ul:get:xcolorcss{#1}\:highLightColor%
+ \a:highLight#2\b:highLight%
+ \group_end:
+}
+
+\HLet\highLight\:highLight
+
+\NewConfigure{strikeThrough}{2}
+\NewDocumentCommand \:strikeThrough {o +m} {
+ \group_begin:
+ \IfValueTF {#1} {
+ \lua:ul:get:xcolorcss{#1}\:strikeThroughColor%
+ }{\def\:strikeThroughColor{inherit}}
+ \a:strikeThrough#2\b:strikeThrough
+ \group_end:
+ }
+
+\HLet\strikeThrough\:strikeThrough
+
+\NewConfigure{underLine}{2}
+\NewDocumentCommand \:underLine {o +m} {
+ \group_begin:
+ \IfValueTF {#1} {
+ \__luaul_parse_generic_keys:n {
+ #1
+ }
+ }{}
+ \bool_if:NTF \l__luaul_color_set_bool {
+ % the \l__luaul_current_color_tl contains color in a format suitable for \convertcolorspec,
+ % so we cannot use \lua:ul:get:xcolorcss here
+ \expandafter\convertcolorspec\l__luaul_current_color_tl{HTML}\:tempa
+ \edef\:underLineColor{\#\:tempa}%
+ }{\def\:underLineColor{inherit}}
+ \a:underLine#2\b:underLine
+ \group_end:
+}
+
+\HLet\underLine\:underLine
+
+
+>>>
+
+Lua-ul can emulate commands defined by Soul, in that case we need to use our
+redefinitions of Lua-ul commands.
+
+\<lua-ul hooks\><<<
+\bool_if:NT \l__luaul_soulnames_bool {
+ \cs_set_eq:NN \textul \underLine \cs_set_eq:NN \ul \textul
+ \cs_set_eq:NN \textst \strikeThrough \cs_set_eq:NN \st \textst
+ \cs_set_eq:NN \texthl \highLight \cs_set_eq:NN \hl \texthl
+}
+>>>
+
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Underline and Overline}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/support/TeX4ht/source/tex4ht-html4.tex b/support/TeX4ht/source/tex4ht-html4.tex
index 60ddfad048..720c57e3e4 100644
--- a/support/TeX4ht/source/tex4ht-html4.tex
+++ b/support/TeX4ht/source/tex4ht-html4.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-html4.tex 1552 2024-09-09 14:48:03Z michal_h21 $
+% $Id: tex4ht-html4.tex 1582 2024-10-14 09:21:51Z michal_h21 $
% Compile 4 times: latex tex4ht-html4
% Copy html4.4ht into the work directory before all but the last compilation.
%
@@ -73,7 +73,7 @@
\<html4-math\><<<
% html4-math.4ht (|version), generated from |jobname.tex
-% Copyright 2009-2023 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright |CopyYear.1999. Eitan M. Gurari
|<TeX4ht copywrite|>
>>>
@@ -5996,7 +5996,7 @@ thanks author date and>>>
\<tug boat maketitle\><<<
\@ifclassloaded{ltugproc}{}{%
- \@ifpackageloaded{ltugproc}{}{\Configure{@BODY}{\rtitlex}}
+ \@ifpackageloaded{ltugproc}{}{\Configure{@BODY}{\@ifundefined{:rtitlexused}{\rtitlex}{}\def\:rtitlexused{}}}
}
\Configure{maketitle}
{\ifvmode \IgnorePar\fi \EndP
@@ -7661,7 +7661,7 @@ consecutive \verb+<br />+ tags.
{}
{\xdef\col:Css{\col:Css
border-\ifnum \ar:cnt=0 left\else right\fi
- :solid black 0.4pt;}%
+ :1px solid \VBorder:color;}%
}{}{}%
}
{\ifx \col:Css\empty \else
@@ -7809,6 +7809,7 @@ Currently, we either have empty \verb'\VBorder', or one defined to
\<html latex array/tabular Config 4.0t\><<<
\let\VBorder|=\empty \let\AllColMargins|=\empty
+\def\VBorder:color{black}
\Configure{VBorder}
{\let\VBorder|=\empty \let\AllColMargins|=\empty
\global\let\GROUPS|=\empty \HAssign\NewGroup = 0
@@ -7818,10 +7819,10 @@ Currently, we either have empty \verb'\VBorder', or one defined to
% put vertical border for a column
\ifnum\ar:cnt > 0%
% in all other cases, we should put right border
- \Css{\#TBL-\TableNo-\ar:cnt {border-right:1px solid black;}}%
+ \Css{\#TBL-\TableNo-\ar:cnt {border-right:1px solid \VBorder:color;}}%
\else%
% columns are numbered from 1. if \ar:cnt == 0 then it is the left border
- \Css{\#TBL-\TableNo-1{border-left: 1px solid black;}}%
+ \Css{\#TBL-\TableNo-1{border-left: 1px solid \VBorder:color;}}%
\fi%
}
{\Advance:\NewGroup by 1
@@ -7832,8 +7833,8 @@ Currently, we either have empty \verb'\VBorder', or one defined to
{\xdef\AllColMargins{\AllColMargins 0}}
\Configure{HBorder}
{<tr\Hnewline class="hline">} {<td><hr\xml:empty></td>} {</tr>}
- {<tr\Hnewline class="cline">}
- {<td></td>} {<td><hr\xml:empty></td>} {</tr>}
+ {<tr\Hnewline class="cline">}
+ {<td></td>} {<td style="border-top:1px solid \#\hline:color;"></td>} {</tr>}
{<tr\Hnewline class="vspace" style="font-size:\HBorderspace">}
{<td\Hnewline>\string&nbsp;</td>}
{</tr>}
@@ -7844,7 +7845,8 @@ Currently, we either have empty \verb'\VBorder', or one defined to
\Css{.hline hr, .cline hr{border:none;border-top:1px solid black;}}
\Css{.hline {border-top: 1px solid black;}}
\Css{.hline + .vspace:last-child{display:none;}}
-\Css{.hline:first-child{border-bottom:1px solid black;border-top:none;}}
+% why was there this rule? it adds unnecessary extra rule at the top of tables
+% \Css{.hline:first-child{border-bottom:1px solid black;border-top:none;}}
>>>
When \verb'\putVBorder' is call in \verb'\VBorder'
@@ -8790,16 +8792,22 @@ The hbox is for avoiding the start of a new paragraph, if in vmode.
};
}
\fi
+\NewConfigure{MathjaxInline}{2}
+\NewConfigure{MathjaxBlock}{2}
+\Configure{MathjaxInline}{\HCode{<span class="mathjax-inline">}}{\HCode{</span>}}
+\Configure{MathjaxBlock}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="mathjax-block">}}{\HCode{</div>}}
+\Configure{MathjaxEnv}{\ifvmode\IgnorePar\fi\EndP\HCode{<div class="mathjax-env mathjax-\@currenvir">}}{\HCode{</div>}}
+
\Configure{@HEAD}{\HCode{<script>window.MathJax = \a:MathJaxConfig</script>\Hnewline}}
\Configure{MathjaxSource}{https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js}
-\Configure{@HEAD}{\HCode{ <script type="text/javascript" async="async" id="MathJax-script" src="\a:MathjaxSource"></script> \Hnewline}}
+\Configure{@HEAD}{\ifx\a:MathjaxSource\@empty\else\HCode{<script type="text/javascript" async="async" id="MathJax-script" src="\a:MathjaxSource"></script> \Hnewline}\fi}
\edef\:RestoreMathjaxCatcodes{\catcode`\noexpand \&=\the\catcode`\&}
\def\:HandleMathjaxCatcodes{\edef\:RestoreMathjaxCatcodes{\catcode`\noexpand \&=\the\catcode`\&}\catcode`\&=11}
-\Configure{$}{\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes}{\expandafter\AltMathOne}
-\Configure{$$}{\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes}{\expandafter\AltlDisplayDollars}
-% for some reason, it is necessary to specify the catcode change directly in the configuration
-\Configure{()}{\:HandleMathjaxCatcodes\catcode`\&=11\AltlMath}{\:RestoreMathjaxCatcodes}
-\Configure{[]}{\:HandleMathjaxCatcodes\catcode`\&=11\AltlDisplay}{\:RestoreMathjaxCatcodes}
+\Configure{$}{\a:MathjaxInline\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes\b:MathjaxInline}{\expandafter\AltMathOne}
+\Configure{()}{\a:MathjaxInline\:HandleMathjaxCatcodes\catcode`\&=11\AltlMath}{\:RestoreMathjaxCatcodes\b:MathjaxInline}
+\Configure{$$}{\a:MathjaxBlock\:HandleMathjaxCatcodes}{\:RestoreMathjaxCatcodes\b:MathjaxBlock}{\expandafter\AltlDisplayDollars}
+\Configure{[]}{\a:MathjaxBlock\:HandleMathjaxCatcodes\catcode`\&=11\AltlDisplay}{\:RestoreMathjaxCatcodes\b:MathjaxBlock}
+
\fi
>>>
@@ -16472,6 +16480,9 @@ Blue = 1-minimum(1,Yellow *(1-Black)+Black)
% redefine default table configuration and put the color rule
\def\a:HBorder{<tr class="hline" style="border-top:1px solid \#\hline:color">}
+
+% use the hline color also for vertial lines
+\def\VBorder:color{\#\hline:color}
% don't display <hr> elements in colored \hline
\Css{tr.hline td hr{display:none}}
>>>
@@ -16540,6 +16551,18 @@ Blue = 1-minimum(1,Yellow *(1-Black)+Black)
>>>
%%%%%%%%%%%%%%%%
+\section{lua-ul}
+%%%%%%%%%%%%%%%%
+
+\<configure html4 lua-ul\><<<
+\Configure{highLight}{\HCode{<span class="highLight" style="background-color:\:highLightColor;">}}{\HCode{</span>}}
+\Configure{strikeThrough}{\HCode{<span class="strikeThrough" style="text-decoration-color:\:strikeThroughColor;" >}}{\HCode{</span>}}
+\Css{.strikeThrough{text-decoration: line-through;}}
+\Configure{underLine}{\HCode{<span class="underLine" style="text-decoration-color:\:underLineColor;">}}{\HCode{</span>}}
+\Css{.underLine{text-decoration: underline;}}
+>>>
+
+%%%%%%%%%%%%%%%%
\section{framed}
\<configure html4 framed\><<<
@@ -19958,9 +19981,10 @@ chess notation as an alt text.
\<configure html4 ltugboat\><<<
|<tug boat maketitle|>
\Configure{titlex}
- {\HCode{<div class="titlex">}}
+ {\ifvmode\IgnorePar\fi\EndP\HCode{<div class="titlex">}}
{\HCode{</div>}}
\Css{div.titlex p{margin-bottom:1em;}}
+\Css{div.titlex {text-align: center;}}
|<ltugboat congif|>
>>>
@@ -22925,7 +22949,9 @@ The \verb|\hline:color| macro is defined by TeX4ht configuration for colortbl.st
We reuse it to support change of rule colors. It is initialized as black.
\<booktabs default hline color\><<<
+\ifdefined\hline:color\else
\def\hline:color{000}
+\fi
>>>
diff --git a/support/TeX4ht/source/tex4ht-info.tex b/support/TeX4ht/source/tex4ht-info.tex
index 75c784f811..339cfaae87 100644
--- a/support/TeX4ht/source/tex4ht-info.tex
+++ b/support/TeX4ht/source/tex4ht-info.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-info.tex 905 2021-04-18 15:30:06Z karl $
+% $Id: tex4ht-info.tex 1564 2024-09-29 14:56:20Z karl $
% Compile with the command `ht latex tex4ht-info'
% or
% compile 3 times: latex tex4ht-info
@@ -33,7 +33,7 @@
\<info4ht\><<<
% info4ht.4ht (|version), generated from |jobname.tex
-% Copyright 2009-2021 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright |CopyYear.2000. Eitan M. Gurari
%
% This work may be distributed and/or modified under the
@@ -654,15 +654,15 @@ Cross-Linking
#1 label
#2 content
-\Ref.....................................1
+\XRef.....................................1
\LikeRef.................................1
#1 label
- \Tag and \Ref are tex4ht.sty commands introduced cross-referencing
+ \Tag and \XRef are tex4ht.sty commands introduced cross-referencing
content through .xref auxiliary files.
- \LikeRef is a variant of \Ref which doesn't verify whether the
+ \LikeRef is a variant of \XRef which doesn't verify whether the
labels exit. It is mainly used in \Link and \edef environments.
\ifTag ..................................3
@@ -676,7 +676,7 @@ Cross-Linking
Load the named xref-type file
.xref optional--`.xref' is assume for a default
- + optional-- asks \Ref and \LikeRef commands
+ + optional-- asks \XRef and \LikeRef commands
to use expanded tags `filename::tag', instead of just `tag'
[prefix] optional--asks just for tags starting with the
specified prefix.
@@ -688,7 +688,7 @@ Cross-Linking
Example:
% a.tex
- \LoadRef-[to:]{b}{from:#1} \Ref{from:filename}
+ \LoadRef-[to:]{b}{from:#1} \XRef{from:filename}
\LikeRef{from:filename}
% b.tex
diff --git a/support/TeX4ht/source/tex4ht-mathjax.tex b/support/TeX4ht/source/tex4ht-mathjax.tex
index 56c53e3698..90d4498dc1 100644
--- a/support/TeX4ht/source/tex4ht-mathjax.tex
+++ b/support/TeX4ht/source/tex4ht-mathjax.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-mathjax.tex 1554 2024-09-11 13:41:52Z michal_h21 $
+% $Id: tex4ht-mathjax.tex 1562 2024-09-27 11:07:49Z michal_h21 $
% compile: latex tex4ht-mathjax
%
% Copyright 2018-2024 TeX Users Group
@@ -131,10 +131,14 @@ environments. They will then keep the LaTeX code unchanged.
% beginning of each display math
\long\def\AltlDisplayDollars#1$${\alteqtoks{\[#1\]}$$}
+\NewConfigure{MathjaxEnv}{2}
+
\newcommand\VerbMathToks[2]{%
+ \a:MathjaxEnv%
\HCode{\string\begin{#2}}%
\alteqtoks{#1}%
\HCode{\string\end{#2}}%
+ \b:MathjaxEnv%
}
>>>
diff --git a/support/TeX4ht/source/tex4ht-mathml.tex b/support/TeX4ht/source/tex4ht-mathml.tex
index 8c294f48b7..672530a27c 100644
--- a/support/TeX4ht/source/tex4ht-mathml.tex
+++ b/support/TeX4ht/source/tex4ht-mathml.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-mathml.tex 1551 2024-09-03 22:26:09Z karl $$
+% $Id: tex4ht-mathml.tex 1580 2024-10-10 21:27:16Z michal_h21 $$
% compile 3 times: latex tex4ht-mathltx
% or xhlatex tex4ht-mathltx "html,3,sections+"
%
@@ -2154,7 +2154,7 @@ subformulas. Hence, the `'.' below is needed.
\def\:temp#1{\a:right{#1}\o:right:.\b:right{#1}}\HLet\right|=\:temp
\Configure{left}
{}
- {\HCode{<\a:mathml mrow><\a:mathml mo \a:mathml fence="true" \a:mathml form="prefix">
+ {\HCode{<\a:mathml mrow><\a:mathml mo \a:mathml fence="true" \a:mathml form="prefix">%
|<lr del 1|></\a:mathml mo>}\bgroup
\HCode{<\a:mathml mrow>}\bgroup}
\Configure{right}
@@ -5656,6 +5656,26 @@ latex.ltx, fontmath.ltx, plain.tex
\fi}
>>>
+%%%%%%%%%%%%%%
+\subsection{stmaryrd}
+%%%%%%%%%%%%%%
+
+
+\<configure mathml stmaryrd\><<<
+
+\def\:tempa{\HCode{<\a:mathml mo fence="false">\string&\#x27E6;</\a:mathml mo>}}
+\HLet\llbracket\:tempa
+\def\:tempa{\HCode{<\a:mathml mo fence="false">\string&\#x27E7;</\a:mathml mo>}}
+\HLet\rrbracket\:tempa
+>>>
+
+Fix for some commands used with \verb|\left| or \verb|\right|.
+
+\<configure mathml stmaryrd\><<<
+\Configure{mfenced}{\llbracket}{\string&\#x27E6;}
+\Configure{mfenced}{\rrbracket}{\string&\#x27E7;}
+>>>
+
%%%%%%%%%%%%%
\subsection{subeqnarray}
diff --git a/support/TeX4ht/source/tex4ht-t4ht.tex b/support/TeX4ht/source/tex4ht-t4ht.tex
index 9b534c9490..44833a5512 100644
--- a/support/TeX4ht/source/tex4ht-t4ht.tex
+++ b/support/TeX4ht/source/tex4ht-t4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-t4ht.tex 418 2018-07-03 17:37:07Z karl $
+% $Id: tex4ht-t4ht.tex 1556 2024-09-23 10:50:11Z michal_h21 $
% tex tex4ht-t4ht or ht tex tex4ht-t4ht
%
% Copyright 2009-2018 TeX Users Group
@@ -2351,7 +2351,7 @@ From log files \`'l. # --- needs --- "command" ---'
The htfcss records are stored in the following linked list, and used
when the font entries `Font("key","...","...","...")' are loaded
-(Section~'\Link{usehtfcc}{}\Ref{usehtfcc}\EndLink').
+(Section~'\Link{usehtfcc}{}\XRef{usehtfcc}\EndLink').
\<vars\><<<
static struct htf_struct *htf_rec = (struct htf_struct *) 0;
diff --git a/support/TeX4ht/source/wripro.tex b/support/TeX4ht/source/wripro.tex
index 4da6c4d3b6..d583c8ced0 100644
--- a/support/TeX4ht/source/wripro.tex
+++ b/support/TeX4ht/source/wripro.tex
@@ -1,8 +1,8 @@
-% $Id: wripro.tex 1556 2024-09-23 10:50:11Z michal_h21 $
+% $Id: wripro.tex 1558 2024-09-24 17:22:45Z karl $
% Used in tex4ht.sty. Not installed in runtime.
%
-% Copyright (C)) 2009-2010 TeX Users Group
-% Copyright (C) 1996-2009, 2018 Eitan M. Gurari
+% Copyright 2009-2024 TeX Users Group
+% Copyright 1996-2009 Eitan M. Gurari
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -19,6 +19,7 @@
%
% If you modify this program, changing the
% version identification would be appreciated.
+\immediate\write-1{version 2024-09-23-15:43}
%\openin15= wripro.tex
%\ifeof15 \closein15 \else \closein15 \input wripro.tex \fi
diff --git a/support/texlab/CHANGELOG.md b/support/texlab/CHANGELOG.md
index f2fa8d96cf..6af6af2186 100644
--- a/support/texlab/CHANGELOG.md
+++ b/support/texlab/CHANGELOG.md
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [5.20.0] - 2024-10-08
+
+### Added
+
+- Add `texlab.inlayHints.maxLength` setting to allow limiting inlay hint text length ([#1212](https://github.com/latex-lsp/texlab/issues/1212))
+- Allow suppressing diagnostics using `% texlab: ignore` magic comments ([#1211](https://github.com/latex-lsp/texlab/pull/1211))
+
+### Fixed
+
+- Fix enabling `texlab.build.useFileList` setting
+- Make "Goto Definition" work correctly with starred commands ([#1197](https://github.com/latex-lsp/texlab/issues/1197))
+
## [5.19.0] - 2024-07-08
### Added
diff --git a/support/texlab/Cargo.lock b/support/texlab/Cargo.lock
index ead2473278..e1587e07d5 100644
--- a/support/texlab/Cargo.lock
+++ b/support/texlab/Cargo.lock
@@ -3,10 +3,10 @@
version = 3
[[package]]
-name = "adler"
-version = "1.0.2"
+name = "adler2"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
[[package]]
name = "aho-corasick"
@@ -39,9 +39,9 @@ dependencies = [
[[package]]
name = "anstyle"
-version = "1.0.3"
+version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b84bf0a05bbb2a83e5eb6fa36bb6e87baa08193c35ff52bbf6b38d8af2890e46"
+checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1"
[[package]]
name = "anstyle-parse"
@@ -73,9 +73,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.86"
+version = "1.0.89"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
+checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
[[package]]
name = "autocfg"
@@ -152,9 +152,9 @@ checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
[[package]]
name = "bstr"
-version = "1.9.1"
+version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c"
dependencies = [
"memchr",
"regex-automata",
@@ -244,9 +244,9 @@ dependencies = [
[[package]]
name = "clap"
-version = "4.5.8"
+version = "4.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d"
+checksum = "7be5744db7978a28d9df86a214130d106a89ce49644cbc4e3f0c22c3fba30615"
dependencies = [
"clap_builder",
"clap_derive",
@@ -254,9 +254,9 @@ dependencies = [
[[package]]
name = "clap_builder"
-version = "4.5.8"
+version = "4.5.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708"
+checksum = "a5fbc17d3ef8278f55b282b2a2e75ae6f6c7d4bb70ed3d0382375104bfafdb4b"
dependencies = [
"anstream",
"anstyle",
@@ -266,9 +266,9 @@ dependencies = [
[[package]]
name = "clap_derive"
-version = "4.5.8"
+version = "4.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085"
+checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
dependencies = [
"heck",
"proc-macro2",
@@ -559,9 +559,9 @@ dependencies = [
[[package]]
name = "fastrand"
-version = "2.0.1"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
[[package]]
name = "fern"
@@ -595,9 +595,9 @@ dependencies = [
[[package]]
name = "flate2"
-version = "1.0.30"
+version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
+checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0"
dependencies = [
"crc32fast",
"miniz_oxide",
@@ -649,9 +649,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.10"
+version = "0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
dependencies = [
"cfg-if",
"libc",
@@ -683,6 +683,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
[[package]]
+name = "hermit-abi"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+
+[[package]]
name = "highlights"
version = "0.0.0"
dependencies = [
@@ -781,13 +787,13 @@ dependencies = [
[[package]]
name = "is-terminal"
-version = "0.4.9"
+version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b"
dependencies = [
- "hermit-abi",
- "rustix",
- "windows-sys 0.48.0",
+ "hermit-abi 0.4.0",
+ "libc",
+ "windows-sys 0.52.0",
]
[[package]]
@@ -861,9 +867,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.155"
+version = "0.2.159"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
[[package]]
name = "line-index"
@@ -884,9 +890,9 @@ dependencies = [
[[package]]
name = "linux-raw-sys"
-version = "0.4.13"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "lock_api"
@@ -906,18 +912,18 @@ checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "logos"
-version = "0.14.0"
+version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "161971eb88a0da7ae0c333e1063467c5b5727e7fb6b710b8db4814eade3a42e8"
+checksum = "1c6b6e02facda28ca5fb8dbe4b152496ba3b1bd5a4b40bb2b1b2d8ad74e0f39b"
dependencies = [
"logos-derive",
]
[[package]]
name = "logos-codegen"
-version = "0.14.0"
+version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e31badd9de5131fdf4921f6473d457e3dd85b11b7f091ceb50e4df7c3eeb12a"
+checksum = "b32eb6b5f26efacd015b000bfc562186472cd9b34bdba3f6b264e2a052676d10"
dependencies = [
"beef",
"fnv",
@@ -930,18 +936,18 @@ dependencies = [
[[package]]
name = "logos-derive"
-version = "0.14.0"
+version = "0.14.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c2a69b3eb68d5bd595107c9ee58d7e07fe2bb5e360cc85b0f084dedac80de0a"
+checksum = "3e5d0c5463c911ef55624739fc353238b4e310f0144be1f875dc42fec6bfd5ec"
dependencies = [
"logos-codegen",
]
[[package]]
name = "lsp-server"
-version = "0.7.6"
+version = "0.7.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
+checksum = "550446e84739dcaf6d48a4a093973850669e13e8a34d8f8d64851041be267cd9"
dependencies = [
"crossbeam-channel",
"log",
@@ -985,11 +991,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "miniz_oxide"
-version = "0.7.1"
+version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
dependencies = [
- "adler",
+ "adler2",
]
[[package]]
@@ -1071,15 +1077,15 @@ version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
dependencies = [
- "hermit-abi",
+ "hermit-abi 0.3.3",
"libc",
]
[[package]]
name = "once_cell"
-version = "1.19.0"
+version = "1.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
[[package]]
name = "oorandom"
@@ -1306,9 +1312,9 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.10.5"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
+checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8"
dependencies = [
"aho-corasick",
"memchr",
@@ -1318,9 +1324,9 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.6"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3"
dependencies = [
"aho-corasick",
"memchr",
@@ -1329,9 +1335,9 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.8.2"
+version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "rename"
@@ -1347,13 +1353,12 @@ dependencies = [
[[package]]
name = "rowan"
-version = "0.15.15"
+version = "0.15.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32a58fa8a7ccff2aec4f39cc45bf5f985cec7125ab271cf681c279fd00192b49"
+checksum = "0a542b0253fa46e632d27a1dc5cf7b930de4df8659dc6e720b647fc72147ae3d"
dependencies = [
"countme",
"hashbrown",
- "memoffset",
"rustc-hash 1.1.0",
"text-size",
]
@@ -1372,9 +1377,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
[[package]]
name = "rustix"
-version = "0.38.31"
+version = "0.38.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
dependencies = [
"bitflags 2.4.0",
"errno",
@@ -1412,18 +1417,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "serde"
-version = "1.0.203"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.203"
+version = "1.0.210"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
dependencies = [
"proc-macro2",
"quote",
@@ -1432,11 +1437,12 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.119"
+version = "1.0.128"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8eddb61f0697cc3989c5d64b452f5488e2b8a60fd7d5076a3045076ffef8cb0"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
dependencies = [
"itoa",
+ "memchr",
"ryu",
"serde",
]
@@ -1534,14 +1540,15 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.10.1"
+version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b"
dependencies = [
"cfg-if",
"fastrand",
+ "once_cell",
"rustix",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
]
[[package]]
@@ -1557,7 +1564,7 @@ dependencies = [
[[package]]
name = "texlab"
-version = "5.19.0"
+version = "5.20.0"
dependencies = [
"anyhow",
"base-db",
@@ -1610,18 +1617,18 @@ checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233"
[[package]]
name = "thiserror"
-version = "1.0.61"
+version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.61"
+version = "1.0.64"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3"
dependencies = [
"proc-macro2",
"quote",
@@ -1674,9 +1681,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "titlecase"
-version = "3.0.0"
+version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb3223c7b6ee54ec8521af7b060ad616cb90a66d0b94d05af340de30cf02c514"
+checksum = "e0e20e744fbec1913fa168f3ffbef64324bbcb152c6cda8394baa79fa5ec9142"
dependencies = [
"regex",
]
@@ -1712,9 +1719,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-normalization"
-version = "0.1.23"
+version = "0.1.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
dependencies = [
"tinyvec",
]
@@ -1733,9 +1740,9 @@ checksum = "402bb19d8e03f1d1a7450e2bd613980869438e0666331be3e073089124aa1adc"
[[package]]
name = "url"
-version = "2.5.0"
+version = "2.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
dependencies = [
"form_urlencoded",
"idna",
@@ -1751,9 +1758,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
[[package]]
name = "versions"
-version = "6.3.0"
+version = "6.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fc28d1172a20e32754969ea1a873c2c6e68e36c449c6056aa3e2ee5fe69a794"
+checksum = "f25d498b63d1fdb376b4250f39ab3a5ee8d103957346abacd911e2d8b612c139"
dependencies = [
"itertools 0.13.0",
"nom",
@@ -1777,9 +1784,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
dependencies = [
"cfg-if",
"wasm-bindgen-macro",
@@ -1787,9 +1794,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
dependencies = [
"bumpalo",
"log",
@@ -1802,9 +1809,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -1812,9 +1819,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
@@ -1825,9 +1832,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.92"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
[[package]]
name = "web-sys"
@@ -1885,7 +1892,16 @@ version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
]
[[package]]
@@ -1905,17 +1921,18 @@ dependencies = [
[[package]]
name = "windows-targets"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
]
[[package]]
@@ -1926,9 +1943,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
@@ -1938,9 +1955,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
@@ -1950,9 +1967,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
[[package]]
name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
@@ -1962,9 +1985,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
[[package]]
name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
@@ -1974,9 +1997,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
@@ -1986,9 +2009,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
@@ -1998,6 +2021,6 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
diff --git a/support/texlab/Cargo.toml b/support/texlab/Cargo.toml
index 3894cb649f..393ecdcfcf 100644
--- a/support/texlab/Cargo.toml
+++ b/support/texlab/Cargo.toml
@@ -3,13 +3,33 @@ members = ["crates/*"]
resolver = "2"
[workspace.package]
+version = "5.20.0"
license = "GPL-3.0"
authors = [
"Eric Förster <eric.foerster@outlook.com>",
"Patrick Förster <patrick.foerster@outlook.de>",
]
edition = "2021"
-rust-version = "1.75"
+rust-version = "1.80"
+
+[workspace.dependencies]
+anyhow = "1.0.89"
+criterion = "0.5.1"
+crossbeam-channel = "0.5.13"
+expect-test = "1.5.0"
+itertools = "0.13.0"
+log = "0.4.22"
+notify = "6.1.1"
+once_cell = "1.20.2"
+regex = "1.11.0"
+rowan = "0.15.16"
+rustc-hash = "2.0.0"
+serde = { version = "1.0.210", features = ["derive"] }
+serde_json = "1.0.128"
+tempfile = "3.13.0"
+titlecase = "3.3.0"
+unicode-normalization = "0.1.24"
+url = "2.5.2"
[profile.release]
lto = "thin"
diff --git a/support/texlab/crates/base-db/Cargo.toml b/support/texlab/crates/base-db/Cargo.toml
index 547ba2ad77..04fde63b56 100644
--- a/support/texlab/crates/base-db/Cargo.toml
+++ b/support/texlab/crates/base-db/Cargo.toml
@@ -10,20 +10,20 @@ rust-version.workspace = true
bibtex-utils = { path = "../bibtex-utils" }
dirs = "5.0.1"
distro = { path = "../distro" }
-itertools = "0.13.0"
+itertools.workspace = true
line-index = { path = "../line-index" }
-log = "0.4.22"
-notify = "6.0.1"
-once_cell = "1.19.0"
+log.workspace = true
+notify.workspace = true
+once_cell.workspace = true
parser = { path = "../parser" }
percent-encoding = "2.3.0"
-regex = "1.10.5"
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+regex.workspace = true
+rowan.workspace = true
+rustc-hash.workspace = true
shellexpand = "3.1.0"
syntax = { path = "../syntax" }
-titlecase = "3.0.0"
-url = "2.5.0"
+titlecase.workspace = true
+url.workspace = true
[lib]
doctest = false
diff --git a/support/texlab/crates/base-db/src/config.rs b/support/texlab/crates/base-db/src/config.rs
index e4c827e61c..455fdc2a6c 100644
--- a/support/texlab/crates/base-db/src/config.rs
+++ b/support/texlab/crates/base-db/src/config.rs
@@ -80,6 +80,7 @@ pub struct SymbolConfig {
pub struct InlayHintConfig {
pub label_definitions: bool,
pub label_references: bool,
+ pub max_length: Option<usize>,
}
#[derive(Debug)]
@@ -140,6 +141,7 @@ impl Default for InlayHintConfig {
Self {
label_definitions: true,
label_references: true,
+ max_length: None,
}
}
}
diff --git a/support/texlab/crates/base-db/src/semantics/tex.rs b/support/texlab/crates/base-db/src/semantics/tex.rs
index a1301091d4..acd94b6056 100644
--- a/support/texlab/crates/base-db/src/semantics/tex.rs
+++ b/support/texlab/crates/base-db/src/semantics/tex.rs
@@ -37,6 +37,7 @@ pub struct Semantics {
pub graphics_paths: FxHashSet<String>,
pub can_be_root: bool,
pub can_be_compiled: bool,
+ pub diagnostic_suppressions: Vec<TextRange>,
}
impl Semantics {
@@ -46,11 +47,15 @@ impl Semantics {
latex::SyntaxElement::Node(node) => {
self.process_node(conf, &node);
}
- latex::SyntaxElement::Token(token) => {
- if token.kind() == latex::COMMAND_NAME {
+ latex::SyntaxElement::Token(token) => match token.kind() {
+ latex::COMMAND_NAME => {
self.commands.push(Span::command(&token));
}
- }
+ latex::COMMENT if token.text().contains("texlab: ignore") => {
+ self.diagnostic_suppressions.push(token.text_range());
+ }
+ _ => {}
+ },
};
}
diff --git a/support/texlab/crates/bibfmt/Cargo.toml b/support/texlab/crates/bibfmt/Cargo.toml
index a712908d7d..c4931f87bb 100644
--- a/support/texlab/crates/bibfmt/Cargo.toml
+++ b/support/texlab/crates/bibfmt/Cargo.toml
@@ -7,7 +7,7 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
-rowan = "0.15.15"
+rowan.workspace = true
syntax = { path = "../syntax" }
line-index = { path = "../line-index" }
@@ -15,5 +15,5 @@ line-index = { path = "../line-index" }
doctest = false
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
parser = { path = "../parser" }
diff --git a/support/texlab/crates/bibtex-utils/Cargo.toml b/support/texlab/crates/bibtex-utils/Cargo.toml
index 88ba2d3a37..8ab72e39d8 100644
--- a/support/texlab/crates/bibtex-utils/Cargo.toml
+++ b/support/texlab/crates/bibtex-utils/Cargo.toml
@@ -9,15 +9,15 @@ rust-version.workspace = true
[dependencies]
chrono = { version = "0.4.38", default-features = false, features = ["std"] }
human_name = "2.0.3"
-itertools = "0.13.0"
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+itertools.workspace = true
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
-unicode-normalization = "0.1.23"
+unicode-normalization.workspace = true
[lib]
doctest = false
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
parser = { path = "../parser" }
diff --git a/support/texlab/crates/citeproc/Cargo.toml b/support/texlab/crates/citeproc/Cargo.toml
index c87ab14b0e..9ad0c82e56 100644
--- a/support/texlab/crates/citeproc/Cargo.toml
+++ b/support/texlab/crates/citeproc/Cargo.toml
@@ -10,17 +10,17 @@ rust-version.workspace = true
bibtex-utils = { path = "../bibtex-utils" }
base-db = { path = "../base-db" }
isocountry = "0.3.2"
-itertools = "0.13.0"
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+itertools.workspace = true
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
-titlecase = "3.0.0"
-unicode-normalization = "0.1.23"
-url = "2.5.0"
+titlecase.workspace = true
+unicode-normalization.workspace = true
+url.workspace = true
[lib]
doctest = false
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
parser = { path = "../parser" }
diff --git a/support/texlab/crates/commands/Cargo.toml b/support/texlab/crates/commands/Cargo.toml
index 6507efb3b8..ddd7db2991 100644
--- a/support/texlab/crates/commands/Cargo.toml
+++ b/support/texlab/crates/commands/Cargo.toml
@@ -7,22 +7,22 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
-anyhow = "1.0.86"
+anyhow.workspace = true
base-db = { path = "../base-db" }
-bstr = "1.9.1"
-crossbeam-channel = "0.5.13"
-itertools = "0.13.0"
-libc = "0.2.155"
-log = "0.4.22"
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+bstr = "1.10.0"
+crossbeam-channel.workspace = true
+itertools.workspace = true
+libc = "0.2.159"
+log.workspace = true
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
-thiserror = "1.0.61"
-url = "2.5.0"
+thiserror = "1.0.64"
+url.workspace = true
[dev-dependencies]
distro = { path = "../distro" }
-expect-test = "1.5.0"
+expect-test.workspace = true
test-utils = { path = "../test-utils" }
[lib]
diff --git a/support/texlab/crates/completion-data/Cargo.toml b/support/texlab/crates/completion-data/Cargo.toml
index 6dbb7d4086..c06a4994c8 100644
--- a/support/texlab/crates/completion-data/Cargo.toml
+++ b/support/texlab/crates/completion-data/Cargo.toml
@@ -7,12 +7,12 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
-flate2 = "1.0.30"
-itertools = "0.13.0"
-once_cell = "1.19.0"
-rustc-hash = "2.0.0"
-serde = { version = "1.0.203", features = ["derive"] }
-serde_json = "1.0.119"
+flate2 = "1.0.34"
+itertools.workspace = true
+once_cell.workspace = true
+rustc-hash.workspace = true
+serde.workspace = true
+serde_json.workspace = true
[lib]
doctest = false
diff --git a/support/texlab/crates/completion/Cargo.toml b/support/texlab/crates/completion/Cargo.toml
index f98f12260b..e31f254e1c 100644
--- a/support/texlab/crates/completion/Cargo.toml
+++ b/support/texlab/crates/completion/Cargo.toml
@@ -12,15 +12,15 @@ completion-data = { path = "../completion-data" }
fuzzy-matcher = { version = "0.3.7", features = ["compact"] }
line-index = { path = "../line-index" }
rayon = "1.10.0"
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
-url = "2.5.0"
+url.workspace = true
[dev-dependencies]
-criterion = "0.5.1"
+criterion.workspace = true
distro = { path = "../distro" }
-expect-test = "1.5.0"
+expect-test.workspace = true
test-utils = { path = "../test-utils" }
parser = { path = "../parser" }
diff --git a/support/texlab/crates/definition/Cargo.toml b/support/texlab/crates/definition/Cargo.toml
index 254bea0314..20bf3ed5fc 100644
--- a/support/texlab/crates/definition/Cargo.toml
+++ b/support/texlab/crates/definition/Cargo.toml
@@ -8,12 +8,12 @@ rust-version.workspace = true
[dependencies]
base-db = { path = "../base-db" }
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
[dev-dependencies]
-itertools = "0.13.0"
+itertools.workspace = true
test-utils = { path = "../test-utils" }
[lib]
diff --git a/support/texlab/crates/definition/src/command.rs b/support/texlab/crates/definition/src/command.rs
index ea7ef8c2c2..4892dad257 100644
--- a/support/texlab/crates/definition/src/command.rs
+++ b/support/texlab/crates/definition/src/command.rs
@@ -27,7 +27,7 @@ pub(super) fn goto_definition(context: &mut DefinitionContext) -> Option<()> {
.filter_map(|node| {
process_old_definition(node.clone()).or_else(|| process_new_definition(node))
})
- .filter(|(_, command)| command.text() == name.text())
+ .filter(|(_, command)| command.text() == name.text().trim_end_matches("*"))
.map(|(target_range, command)| DefinitionResult {
origin_selection_range,
target: document,
diff --git a/support/texlab/crates/diagnostics/Cargo.toml b/support/texlab/crates/diagnostics/Cargo.toml
index 37e39280ad..51bf19c0a3 100644
--- a/support/texlab/crates/diagnostics/Cargo.toml
+++ b/support/texlab/crates/diagnostics/Cargo.toml
@@ -10,19 +10,19 @@ rust-version.workspace = true
base-db = { path = "../base-db" }
encoding_rs = "0.8.34"
encoding_rs_io = "0.1.7"
-itertools = "0.13.0"
+itertools.workspace = true
line-index = { path = "../line-index" }
-log = "0.4.22"
+log.workspace = true
multimap = "0.10.0"
-once_cell = "1.19.0"
-regex = "1.10.5"
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+once_cell.workspace = true
+regex.workspace = true
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
-url = "2.5.0"
+url.workspace = true
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
test-utils = { path = "../test-utils" }
[lib]
diff --git a/support/texlab/crates/diagnostics/src/manager.rs b/support/texlab/crates/diagnostics/src/manager.rs
index 500dc99c13..2829286a17 100644
--- a/support/texlab/crates/diagnostics/src/manager.rs
+++ b/support/texlab/crates/diagnostics/src/manager.rs
@@ -1,5 +1,8 @@
-use base_db::{deps::Project, util::filter_regex_patterns, Document, Owner, Workspace};
+use base_db::{
+ deps::Project, util::filter_regex_patterns, Document, DocumentData, Owner, Workspace,
+};
use multimap::MultiMap;
+use rowan::TextRange;
use rustc_hash::{FxHashMap, FxHashSet};
use url::Url;
@@ -16,7 +19,7 @@ pub struct Manager {
impl Manager {
/// Updates the syntax-based diagnostics for the given document.
pub fn update_syntax(&mut self, workspace: &Workspace, document: &Document) {
- if !Self::is_relevant(document) {
+ if !Self::is_relevant_document(document) {
return;
}
@@ -76,7 +79,7 @@ impl Manager {
for document in workspace
.iter()
- .filter(|document| Self::is_relevant(document))
+ .filter(|document| Self::is_relevant_document(document))
{
let project = Project::from_child(workspace, document);
super::citations::detect_undefined_citations(&project, document, &mut results);
@@ -87,28 +90,78 @@ impl Manager {
super::labels::detect_duplicate_labels(workspace, &mut results);
super::labels::detect_undefined_and_unused_labels(workspace, &mut results);
- let config = &workspace.config().diagnostics;
-
- results.retain(|uri, _| workspace.lookup(uri).map_or(false, Self::is_relevant));
+ results.retain(|uri, _| {
+ workspace
+ .lookup(uri)
+ .map_or(false, Self::is_relevant_document)
+ });
- for diagnostics in results.values_mut() {
- diagnostics.retain(|diagnostic| {
- filter_regex_patterns(
- diagnostic.message(),
- &config.allowed_patterns,
- &config.ignored_patterns,
- )
- });
+ for (uri, diagnostics) in results.iter_mut() {
+ diagnostics
+ .retain_mut(|diagnostic| Self::filter_diagnostic(workspace, uri, diagnostic));
}
results
}
- fn is_relevant(document: &Document) -> bool {
+ fn is_relevant_document(document: &Document) -> bool {
match document.owner {
Owner::Client => true,
Owner::Server => true,
Owner::Distro => false,
}
}
+
+ fn filter_diagnostic(workspace: &Workspace, uri: &Url, diagnostic: &mut Diagnostic) -> bool {
+ let config = &workspace.config().diagnostics;
+
+ if !filter_regex_patterns(
+ diagnostic.message(),
+ &config.allowed_patterns,
+ &config.ignored_patterns,
+ ) {
+ return false;
+ }
+
+ let Some(document) = workspace.lookup(uri) else {
+ return false;
+ };
+
+ let Some(primary_range) = diagnostic.range(&document.line_index) else {
+ return false;
+ };
+
+ if Self::is_ignored(workspace, &document.uri, &primary_range) {
+ return false;
+ }
+
+ let Some(additional_locations) = diagnostic.additional_locations_mut() else {
+ return true;
+ };
+
+ additional_locations.retain(|(uri, range)| !Self::is_ignored(workspace, uri, range));
+ if additional_locations.is_empty() {
+ return false;
+ }
+
+ true
+ }
+
+ fn is_ignored(workspace: &Workspace, uri: &Url, diag_range: &TextRange) -> bool {
+ let Some(document) = workspace.lookup(uri) else {
+ return false;
+ };
+
+ let DocumentData::Tex(data) = &document.data else {
+ return false;
+ };
+
+ let diag_line_col = document.line_index.line_col(diag_range.start());
+
+ data.semantics
+ .diagnostic_suppressions
+ .iter()
+ .map(|r| document.line_index.line_col(r.start()))
+ .any(|r| r.line == diag_line_col.line || r.line + 1 == diag_line_col.line)
+ }
}
diff --git a/support/texlab/crates/diagnostics/src/tests.rs b/support/texlab/crates/diagnostics/src/tests.rs
index 05ad67fc8b..ff5f53ec3e 100644
--- a/support/texlab/crates/diagnostics/src/tests.rs
+++ b/support/texlab/crates/diagnostics/src/tests.rs
@@ -284,6 +284,33 @@ fn test_citation_undefined() {
}
#[test]
+fn test_citation_undefined_ignore() {
+ check(
+ r#"
+%! main.tex
+% texlab: ignore
+\cite{foo}
+"#,
+ expect![[r#"
+ []
+ "#]],
+ )
+}
+
+#[test]
+fn test_citation_undefined_ignore_single_line() {
+ check(
+ r#"
+%! main.tex
+\cite{foo} % texlab: ignore
+"#,
+ expect![[r#"
+ []
+ "#]],
+ )
+}
+
+#[test]
fn test_citation_unused() {
check(
r#"
@@ -306,3 +333,46 @@ fn test_citation_unused() {
"#]],
)
}
+
+#[test]
+fn test_label_duplicate() {
+ check(
+ r#"
+%! main.tex
+\label{foo}
+ ^^^
+\label{foo}
+ ^^^
+\label{foo} % texlab: ignore
+
+\ref{foo}
+"#,
+ expect![[r#"
+ [
+ (
+ "file:///texlab/main.tex",
+ [
+ Tex(
+ 7..10,
+ DuplicateLabel(
+ (
+ "file:///texlab/main.tex",
+ 19..22,
+ ),
+ ),
+ ),
+ Tex(
+ 19..22,
+ DuplicateLabel(
+ (
+ "file:///texlab/main.tex",
+ 7..10,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ]
+ "#]],
+ )
+}
diff --git a/support/texlab/crates/diagnostics/src/types.rs b/support/texlab/crates/diagnostics/src/types.rs
index 9cbbf8936f..9cc195863b 100644
--- a/support/texlab/crates/diagnostics/src/types.rs
+++ b/support/texlab/crates/diagnostics/src/types.rs
@@ -1,9 +1,9 @@
-use line_index::LineCol;
+use line_index::{LineCol, LineIndex};
use rowan::TextRange;
use syntax::BuildError;
use url::Url;
-#[derive(Debug, PartialEq, Eq, Clone)]
+#[derive(PartialEq, Eq, Clone)]
pub enum TexError {
UnexpectedRCurly,
ExpectingRCurly,
@@ -14,7 +14,28 @@ pub enum TexError {
DuplicateLabel(Vec<(Url, TextRange)>),
}
-#[derive(Debug, PartialEq, Eq, Clone)]
+impl std::fmt::Debug for TexError {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ match self {
+ Self::UnexpectedRCurly => write!(f, "UnexpectedRCurly"),
+ Self::ExpectingRCurly => write!(f, "ExpectingRCurly"),
+ Self::MismatchedEnvironment => write!(f, "MismatchedEnvironment"),
+ Self::UnusedLabel => write!(f, "UnusedLabel"),
+ Self::UndefinedLabel => write!(f, "UndefinedLabel"),
+ Self::UndefinedCitation => write!(f, "UndefinedCitation"),
+ Self::DuplicateLabel(locations) => {
+ let mut t = f.debug_tuple("DuplicateLabel");
+ for (uri, range) in locations {
+ t.field(&(uri.as_str(), range));
+ }
+
+ t.finish()
+ }
+ }
+ }
+}
+
+#[derive(PartialEq, Eq, Clone)]
pub enum BibError {
ExpectingLCurly,
ExpectingKey,
@@ -25,6 +46,27 @@ pub enum BibError {
DuplicateEntry(Vec<(Url, TextRange)>),
}
+impl std::fmt::Debug for BibError {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ match self {
+ Self::ExpectingLCurly => write!(f, "ExpectingLCurly"),
+ Self::ExpectingKey => write!(f, "ExpectingKey"),
+ Self::ExpectingRCurly => write!(f, "ExpectingRCurly"),
+ Self::ExpectingEq => write!(f, "ExpectingEq"),
+ Self::ExpectingFieldValue => write!(f, "ExpectingFieldValue"),
+ Self::UnusedEntry => write!(f, "UnusedEntry"),
+ Self::DuplicateEntry(locations) => {
+ let mut t = f.debug_tuple("DuplicateEntry");
+ for (uri, range) in locations {
+ t.field(&(uri.as_str(), range));
+ }
+
+ t.finish()
+ }
+ }
+ }
+}
+
#[derive(Debug, PartialEq, Eq, Clone)]
pub struct ChktexError {
pub start: LineCol,
@@ -74,4 +116,42 @@ impl Diagnostic {
Diagnostic::Chktex(error) => &error.message,
}
}
+
+ pub fn range(&self, line_index: &LineIndex) -> Option<TextRange> {
+ Some(match self {
+ Diagnostic::Tex(range, _) => *range,
+ Diagnostic::Bib(range, _) => *range,
+ Diagnostic::Build(range, _) => *range,
+ Diagnostic::Chktex(error) => {
+ let start = line_index.offset(error.start)?;
+ let end = line_index.offset(error.end)?;
+ TextRange::new(start, end)
+ }
+ })
+ }
+
+ pub fn additional_locations_mut(&mut self) -> Option<&mut Vec<(Url, TextRange)>> {
+ match self {
+ Diagnostic::Tex(_, err) => match err {
+ TexError::UnexpectedRCurly
+ | TexError::ExpectingRCurly
+ | TexError::MismatchedEnvironment
+ | TexError::UnusedLabel
+ | TexError::UndefinedLabel
+ | TexError::UndefinedCitation => None,
+ TexError::DuplicateLabel(locations) => Some(locations),
+ },
+ Diagnostic::Bib(_, err) => match err {
+ BibError::ExpectingLCurly
+ | BibError::ExpectingKey
+ | BibError::ExpectingRCurly
+ | BibError::ExpectingEq
+ | BibError::ExpectingFieldValue
+ | BibError::UnusedEntry => None,
+ BibError::DuplicateEntry(locations) => Some(locations),
+ },
+ Diagnostic::Chktex(_) => None,
+ Diagnostic::Build(_, _) => None,
+ }
+ }
}
diff --git a/support/texlab/crates/distro/Cargo.toml b/support/texlab/crates/distro/Cargo.toml
index c81288e86e..de89de935f 100644
--- a/support/texlab/crates/distro/Cargo.toml
+++ b/support/texlab/crates/distro/Cargo.toml
@@ -7,8 +7,8 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
-anyhow = "1.0.86"
-rustc-hash = "2.0.0"
+anyhow.workspace = true
+rustc-hash.workspace = true
[lib]
doctest = false
diff --git a/support/texlab/crates/folding/Cargo.toml b/support/texlab/crates/folding/Cargo.toml
index 684ddeb1b9..862f2301d1 100644
--- a/support/texlab/crates/folding/Cargo.toml
+++ b/support/texlab/crates/folding/Cargo.toml
@@ -8,11 +8,11 @@ rust-version.workspace = true
[dependencies]
base-db = { path = "../base-db" }
-rowan = "0.15.15"
+rowan.workspace = true
syntax = { path = "../syntax" }
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
test-utils = { path = "../test-utils" }
[lib]
diff --git a/support/texlab/crates/highlights/Cargo.toml b/support/texlab/crates/highlights/Cargo.toml
index 785c282e3a..d509c7f89f 100644
--- a/support/texlab/crates/highlights/Cargo.toml
+++ b/support/texlab/crates/highlights/Cargo.toml
@@ -8,10 +8,10 @@ rust-version.workspace = true
[dependencies]
base-db = { path = "../base-db" }
-rowan = "0.15.15"
+rowan.workspace = true
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
test-utils = { path = "../test-utils" }
[lib]
diff --git a/support/texlab/crates/hover/Cargo.toml b/support/texlab/crates/hover/Cargo.toml
index 946ed734fe..683da15e43 100644
--- a/support/texlab/crates/hover/Cargo.toml
+++ b/support/texlab/crates/hover/Cargo.toml
@@ -11,11 +11,11 @@ base-db = { path = "../base-db" }
bibtex-utils = { path = "../bibtex-utils" }
citeproc = { path = "../citeproc" }
completion-data = { path = "../completion-data" }
-rowan = "0.15.15"
+rowan.workspace = true
syntax = { path = "../syntax" }
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
test-utils = { path = "../test-utils" }
[lib]
diff --git a/support/texlab/crates/inlay-hints/Cargo.toml b/support/texlab/crates/inlay-hints/Cargo.toml
index 94651ef4c7..07e0172de2 100644
--- a/support/texlab/crates/inlay-hints/Cargo.toml
+++ b/support/texlab/crates/inlay-hints/Cargo.toml
@@ -8,12 +8,12 @@ rust-version.workspace = true
[dependencies]
base-db = { path = "../base-db" }
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+rowan.workspace = true
+rustc-hash.workspace = true
[dev-dependencies]
test-utils = { path = "../test-utils" }
-expect-test = "1.5.0"
+expect-test.workspace = true
[lib]
doctest = false
diff --git a/support/texlab/crates/ipc/Cargo.toml b/support/texlab/crates/ipc/Cargo.toml
index 92afbba876..c00b98ff12 100644
--- a/support/texlab/crates/ipc/Cargo.toml
+++ b/support/texlab/crates/ipc/Cargo.toml
@@ -7,15 +7,15 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
-crossbeam-channel = "0.5.13"
-serde = "1.0.203"
-serde_json = "1.0.119"
-log = "0.4.22"
+crossbeam-channel.workspace = true
+serde.workspace = true
+serde_json.workspace = true
+log.workspace = true
uds_windows = "1.1.0"
[lib]
doctest = false
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
parser = { path = "../parser" }
diff --git a/support/texlab/crates/line-index/Cargo.toml b/support/texlab/crates/line-index/Cargo.toml
index 58e2fa9e16..3b385ca2bf 100644
--- a/support/texlab/crates/line-index/Cargo.toml
+++ b/support/texlab/crates/line-index/Cargo.toml
@@ -7,7 +7,7 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
-rustc-hash = "2.0.0"
+rustc-hash.workspace = true
text-size = "1.1.1"
[lib]
diff --git a/support/texlab/crates/links/Cargo.toml b/support/texlab/crates/links/Cargo.toml
index 74378483a9..f36edf1e20 100644
--- a/support/texlab/crates/links/Cargo.toml
+++ b/support/texlab/crates/links/Cargo.toml
@@ -11,7 +11,7 @@ base-db = { path = "../base-db" }
[dev-dependencies]
test-utils = { path = "../test-utils" }
-expect-test = "1.5.0"
+expect-test.workspace = true
[lib]
doctest = false
diff --git a/support/texlab/crates/parser/Cargo.toml b/support/texlab/crates/parser/Cargo.toml
index 2faadcb262..8dd3a771f8 100644
--- a/support/texlab/crates/parser/Cargo.toml
+++ b/support/texlab/crates/parser/Cargo.toml
@@ -7,19 +7,19 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
-log = "0.4.22"
-logos = "0.14.0"
-once_cell = "1.19.0"
+log.workspace = true
+logos = "0.14.2"
+once_cell.workspace = true
pathdiff = "0.2.1"
-regex = "1.10.5"
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+regex.workspace = true
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
-tempfile = "3.10.1"
-versions = "6.3.0"
+tempfile.workspace = true
+versions = "6.3.2"
[dev-dependencies]
-expect-test = "1.5.0"
+expect-test.workspace = true
[lib]
doctest = false
diff --git a/support/texlab/crates/parser/src/latex/lexer.rs b/support/texlab/crates/parser/src/latex/lexer.rs
index 47a6c43b06..19d5ddade5 100644
--- a/support/texlab/crates/parser/src/latex/lexer.rs
+++ b/support/texlab/crates/parser/src/latex/lexer.rs
@@ -27,7 +27,7 @@ impl<'a> Lexer<'a> {
pub fn eat(&mut self) -> Option<(SyntaxKind, &'a str)> {
let (kind, text) = self.tokens.pop()?;
let kind = match kind {
- Token::LineBreak => SyntaxKind::LINE_BREAK,
+ Token::LineBreak => SyntaxKind::WHITESPACE,
Token::Whitespace => SyntaxKind::WHITESPACE,
Token::LineComment => SyntaxKind::COMMENT,
Token::LCurly => SyntaxKind::L_CURLY,
diff --git a/support/texlab/crates/parser/src/latex/tests.rs b/support/texlab/crates/parser/src/latex/tests.rs
index 2c9dc9335f..623c9329fb 100644
--- a/support/texlab/crates/parser/src/latex/tests.rs
+++ b/support/texlab/crates/parser/src/latex/tests.rs
@@ -24,24 +24,24 @@ Baz"#,
PREAMBLE@0..48
TEXT@0..4
WORD@0..3 "Foo"
- LINE_BREAK@3..4 "\n"
+ WHITESPACE@3..4 "\n"
BLOCK_COMMENT@4..22
COMMAND_NAME@4..12 "\\iffalse"
- LINE_BREAK@12..13 "\n"
+ WHITESPACE@12..13 "\n"
WORD@13..18 "Test1"
- LINE_BREAK@18..19 "\n"
+ WHITESPACE@18..19 "\n"
COMMAND_NAME@19..22 "\\fi"
- LINE_BREAK@22..23 "\n"
+ WHITESPACE@22..23 "\n"
TEXT@23..27
WORD@23..26 "Bar"
- LINE_BREAK@26..27 "\n"
+ WHITESPACE@26..27 "\n"
BLOCK_COMMENT@27..44
COMMAND_NAME@27..35 "\\iffalse"
- LINE_BREAK@35..36 "\n"
+ WHITESPACE@35..36 "\n"
COMMAND_NAME@36..40 "\\fii"
- LINE_BREAK@40..41 "\n"
+ WHITESPACE@40..41 "\n"
COMMAND_NAME@41..44 "\\fi"
- LINE_BREAK@44..45 "\n"
+ WHITESPACE@44..45 "\n"
TEXT@45..48
WORD@45..48 "Baz"
@@ -776,7 +776,7 @@ fn test_environment_asymptote() {
KEY@7..10
WORD@7..10 "asy"
R_CURLY@10..11 "}"
- LINE_BREAK@11..12 "\n"
+ WHITESPACE@11..12 "\n"
WHITESPACE@12..16 " "
TEXT@16..22
WORD@16..22 "printf"
@@ -793,7 +793,7 @@ fn test_environment_asymptote() {
R_PAREN@38..39 ")"
TEXT@39..41
WORD@39..40 ";"
- LINE_BREAK@40..41 "\n"
+ WHITESPACE@40..41 "\n"
END@41..50
COMMAND_NAME@41..45 "\\end"
CURLY_GROUP_WORD@45..50
@@ -1289,7 +1289,7 @@ fn test_acronym_package() {
WHITESPACE@26..27 " "
WORD@27..33 "Second"
R_CURLY@33..34 "}"
- LINE_BREAK@34..35 "\n"
+ WHITESPACE@34..35 "\n"
"#]],
);
@@ -2384,7 +2384,7 @@ fn test_issue_568() {
WHITESPACE@15..16 " "
WORD@16..34 "scripts/test.ipynb"
R_CURLY@34..35 "}"
- LINE_BREAK@35..36 "\n"
+ WHITESPACE@35..36 "\n"
LABEL_DEFINITION@36..51
COMMAND_NAME@36..42 "\\label"
CURLY_GROUP_WORD@42..51
@@ -2433,7 +2433,7 @@ fn test_issue_745() {
KEY@15..22
WORD@15..22 "article"
R_CURLY@22..23 "}"
- LINE_BREAK@23..24 "\n"
+ WHITESPACE@23..24 "\n"
PACKAGE_INCLUDE@24..50
COMMAND_NAME@24..35 "\\usepackage"
CURLY_GROUP_WORD_LIST@35..50
@@ -2442,10 +2442,10 @@ fn test_issue_745() {
WORD@36..46 "tabularray"
R_CURLY@46..47 "}"
WHITESPACE@47..48 " "
- LINE_BREAK@48..50 "\n\n"
+ WHITESPACE@48..50 "\n\n"
GENERIC_COMMAND@50..64
COMMAND_NAME@50..63 "\\ExplSyntaxOn"
- LINE_BREAK@63..64 "\n"
+ WHITESPACE@63..64 "\n"
ENVIRONMENT_DEFINITION@64..200
COMMAND_NAME@64..87 "\\NewDocumentEnvironment"
CURLY_GROUP_WORD@87..96
@@ -2463,19 +2463,19 @@ fn test_issue_745() {
TEXT@100..101
WORD@100..101 "m"
R_CURLY@101..102 "}"
- LINE_BREAK@102..103 "\n"
+ WHITESPACE@102..103 "\n"
WHITESPACE@103..107 " "
CURLY_GROUP@107..200
L_CURLY@107..108 "{"
- LINE_BREAK@108..109 "\n"
+ WHITESPACE@108..109 "\n"
WHITESPACE@109..113 " "
GENERIC_COMMAND@113..194
COMMAND_NAME@113..119 "\\use:x"
- LINE_BREAK@119..120 "\n"
+ WHITESPACE@119..120 "\n"
WHITESPACE@120..124 " "
CURLY_GROUP@124..194
L_CURLY@124..125 "{"
- LINE_BREAK@125..126 "\n"
+ WHITESPACE@125..126 "\n"
WHITESPACE@126..130 " "
GENERIC_COMMAND@130..141
COMMAND_NAME@130..140 "\\exp_not:N"
@@ -2488,7 +2488,7 @@ fn test_issue_745() {
KEY@148..152
WORD@148..152 "tblr"
R_CURLY@152..153 "}"
- LINE_BREAK@153..154 "\n"
+ WHITESPACE@153..154 "\n"
WHITESPACE@154..158 " "
BRACK_GROUP@158..179
L_BRACK@158..159 "["
@@ -2500,24 +2500,24 @@ fn test_issue_745() {
WORD@170..172 "#1"
R_CURLY@172..173 "}"
R_BRACK@173..174 "]"
- LINE_BREAK@174..175 "\n"
+ WHITESPACE@174..175 "\n"
WHITESPACE@175..179 " "
CURLY_GROUP@179..188
L_CURLY@179..180 "{"
TEXT@180..182
WORD@180..182 "#2"
R_CURLY@182..183 "}"
- LINE_BREAK@183..184 "\n"
+ WHITESPACE@183..184 "\n"
WHITESPACE@184..188 " "
R_CURLY@188..189 "}"
- LINE_BREAK@189..190 "\n"
+ WHITESPACE@189..190 "\n"
WHITESPACE@190..194 " "
R_CURLY@194..195 "}"
- LINE_BREAK@195..196 "\n"
+ WHITESPACE@195..196 "\n"
WHITESPACE@196..200 " "
CURLY_GROUP@200..223
L_CURLY@200..201 "{"
- LINE_BREAK@201..202 "\n"
+ WHITESPACE@201..202 "\n"
WHITESPACE@202..206 " "
GENERIC_COMMAND@206..221
COMMAND_NAME@206..210 "\\end"
@@ -2526,13 +2526,13 @@ fn test_issue_745() {
TEXT@211..215
WORD@211..215 "tblr"
R_CURLY@215..216 "}"
- LINE_BREAK@216..217 "\n"
+ WHITESPACE@216..217 "\n"
WHITESPACE@217..221 " "
R_CURLY@221..222 "}"
- LINE_BREAK@222..223 "\n"
+ WHITESPACE@222..223 "\n"
GENERIC_COMMAND@223..239
COMMAND_NAME@223..237 "\\ExplSyntaxOff"
- LINE_BREAK@237..239 "\n\n"
+ WHITESPACE@237..239 "\n\n"
ENVIRONMENT@239..271
BEGIN@239..257
COMMAND_NAME@239..245 "\\begin"
@@ -2541,7 +2541,7 @@ fn test_issue_745() {
KEY@246..254
WORD@246..254 "document"
R_CURLY@254..255 "}"
- LINE_BREAK@255..257 "\n\n"
+ WHITESPACE@255..257 "\n\n"
END@257..271
COMMAND_NAME@257..261 "\\end"
CURLY_GROUP_WORD@261..271
@@ -2620,7 +2620,7 @@ This is an asdf undefined command
KEY@15..22
WORD@15..22 "minimal"
R_CURLY@22..23 "}"
- LINE_BREAK@23..24 "\n"
+ WHITESPACE@23..24 "\n"
ENVIRONMENT@24..135
BEGIN@24..41
COMMAND_NAME@24..30 "\\begin"
@@ -2629,7 +2629,7 @@ This is an asdf undefined command
KEY@31..39
WORD@31..39 "document"
R_CURLY@39..40 "}"
- LINE_BREAK@40..41 "\n"
+ WHITESPACE@40..41 "\n"
TEXT@41..75
WORD@41..45 "This"
WHITESPACE@45..46 " "
@@ -2642,24 +2642,24 @@ This is an asdf undefined command
WORD@57..66 "undefined"
WHITESPACE@66..67 " "
WORD@67..74 "command"
- LINE_BREAK@74..75 "\n"
+ WHITESPACE@74..75 "\n"
BLOCK_COMMENT@75..120
COMMAND_NAME@75..83 "\\iffalse"
- LINE_BREAK@83..84 "\n"
+ WHITESPACE@83..84 "\n"
WHITESPACE@84..86 " "
BLOCK_COMMENT@86..97
COMMAND_NAME@86..94 "\\iffalse"
COMMAND_NAME@94..97 "\\fi"
- LINE_BREAK@97..98 "\n"
+ WHITESPACE@97..98 "\n"
WHITESPACE@98..100 " "
COMMAND_NAME@100..104 "\\end"
L_CURLY@104..105 "{"
WORD@105..114 "enumerate"
R_CURLY@114..115 "}"
WHITESPACE@115..116 " "
- LINE_BREAK@116..117 "\n"
+ WHITESPACE@116..117 "\n"
COMMAND_NAME@117..120 "\\fi"
- LINE_BREAK@120..121 "\n"
+ WHITESPACE@120..121 "\n"
END@121..135
COMMAND_NAME@121..125 "\\end"
CURLY_GROUP_WORD@125..135
@@ -2688,7 +2688,7 @@ fn test_issue_857() {
CURLY_GROUP@14..17
L_CURLY@14..15 "{"
R_CURLY@15..16 "}"
- LINE_BREAK@16..17 "\n"
+ WHITESPACE@16..17 "\n"
NEW_COMMAND_DEFINITION@17..38
COMMAND_NAME@17..28 "\\newcommand"
CURLY_GROUP_COMMAND@28..35
@@ -2698,7 +2698,7 @@ fn test_issue_857() {
CURLY_GROUP@35..38
L_CURLY@35..36 "{"
R_CURLY@36..37 "}"
- LINE_BREAK@37..38 "\n"
+ WHITESPACE@37..38 "\n"
NEW_COMMAND_DEFINITION@38..49
COMMAND_NAME@38..49 "\\newcommand"
GENERIC_COMMAND@49..55
@@ -2768,31 +2768,31 @@ fn test_issue_919() {
KEY@15..22
WORD@15..22 "article"
R_CURLY@22..23 "}"
- LINE_BREAK@23..25 "\n\n"
+ WHITESPACE@23..25 "\n\n"
PACKAGE_INCLUDE@25..173
COMMAND_NAME@25..36 "\\usepackage"
CURLY_GROUP_WORD_LIST@36..173
L_CURLY@36..37 "{"
- LINE_BREAK@37..38 "\n"
+ WHITESPACE@37..38 "\n"
WHITESPACE@38..42 " "
KEY@42..48
WORD@42..48 "lipsum"
COMMA@48..49 ","
WHITESPACE@49..50 " "
COMMENT@50..70 "% provides blindtext"
- LINE_BREAK@70..71 "\n"
+ WHITESPACE@70..71 "\n"
WHITESPACE@71..75 " "
KEY@75..83
WORD@75..83 "booktabs"
COMMA@83..84 ","
WHITESPACE@84..85 " "
COMMENT@85..110 "% better rules for ta ..."
- LINE_BREAK@110..111 "\n"
+ WHITESPACE@110..111 "\n"
WHITESPACE@111..115 " "
COMMENT@115..169 "%xcolor % easily defi ..."
- LINE_BREAK@169..170 "\n"
+ WHITESPACE@169..170 "\n"
R_CURLY@170..171 "}"
- LINE_BREAK@171..173 "\n\n"
+ WHITESPACE@171..173 "\n\n"
ENVIRONMENT@173..217
BEGIN@173..194
COMMAND_NAME@173..179 "\\begin"
@@ -2801,11 +2801,11 @@ fn test_issue_919() {
KEY@180..188
WORD@180..188 "document"
R_CURLY@188..189 "}"
- LINE_BREAK@189..190 "\n"
+ WHITESPACE@189..190 "\n"
WHITESPACE@190..194 " "
GENERIC_COMMAND@194..202
COMMAND_NAME@194..201 "\\lipsum"
- LINE_BREAK@201..202 "\n"
+ WHITESPACE@201..202 "\n"
END@202..217
COMMAND_NAME@202..206 "\\end"
CURLY_GROUP_WORD@206..217
@@ -2813,7 +2813,7 @@ fn test_issue_919() {
KEY@207..215
WORD@207..215 "document"
R_CURLY@215..216 "}"
- LINE_BREAK@216..217 "\n"
+ WHITESPACE@216..217 "\n"
"#]],
);
@@ -2853,7 +2853,7 @@ world}"#,
L_CURLY@6..7 "{"
KEY@7..13
WORD@7..12 "hello"
- LINE_BREAK@12..13 "\n"
+ WHITESPACE@12..13 "\n"
TEXT@13..18
WORD@13..18 "world"
ERROR@18..19
@@ -3150,12 +3150,12 @@ Section 2"#,
WHITESPACE@16..17 " "
WORD@17..18 "1"
R_CURLY@18..19 "}"
- LINE_BREAK@19..20 "\n"
+ WHITESPACE@19..20 "\n"
TEXT@20..31
WORD@20..27 "Section"
WHITESPACE@27..28 " "
WORD@28..29 "1"
- LINE_BREAK@29..31 "\n\n"
+ WHITESPACE@29..31 "\n\n"
PARAGRAPH@31..68
COMMAND_NAME@31..41 "\\paragraph"
CURLY_GROUP@41..55
@@ -3165,12 +3165,12 @@ Section 2"#,
WHITESPACE@51..52 " "
WORD@52..53 "1"
R_CURLY@53..54 "}"
- LINE_BREAK@54..55 "\n"
+ WHITESPACE@54..55 "\n"
TEXT@55..68
WORD@55..64 "Paragraph"
WHITESPACE@64..65 " "
WORD@65..66 "1"
- LINE_BREAK@66..68 "\n\n"
+ WHITESPACE@66..68 "\n\n"
PARAGRAPH@68..105
COMMAND_NAME@68..78 "\\paragraph"
CURLY_GROUP@78..92
@@ -3180,12 +3180,12 @@ Section 2"#,
WHITESPACE@88..89 " "
WORD@89..90 "2"
R_CURLY@90..91 "}"
- LINE_BREAK@91..92 "\n"
+ WHITESPACE@91..92 "\n"
TEXT@92..105
WORD@92..101 "Paragraph"
WHITESPACE@101..102 " "
WORD@102..103 "2"
- LINE_BREAK@103..105 "\n\n"
+ WHITESPACE@103..105 "\n\n"
SECTION@105..134
COMMAND_NAME@105..113 "\\section"
CURLY_GROUP@113..125
@@ -3195,7 +3195,7 @@ Section 2"#,
WHITESPACE@121..122 " "
WORD@122..123 "2"
R_CURLY@123..124 "}"
- LINE_BREAK@124..125 "\n"
+ WHITESPACE@124..125 "\n"
TEXT@125..134
WORD@125..132 "Section"
WHITESPACE@132..133 " "
diff --git a/support/texlab/crates/references/Cargo.toml b/support/texlab/crates/references/Cargo.toml
index 8d4e3a6936..3b3abf0ecc 100644
--- a/support/texlab/crates/references/Cargo.toml
+++ b/support/texlab/crates/references/Cargo.toml
@@ -8,8 +8,8 @@ rust-version.workspace = true
[dependencies]
base-db = { path = "../base-db" }
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
[dev-dependencies]
diff --git a/support/texlab/crates/rename/Cargo.toml b/support/texlab/crates/rename/Cargo.toml
index 592bafb474..bbc3487ccf 100644
--- a/support/texlab/crates/rename/Cargo.toml
+++ b/support/texlab/crates/rename/Cargo.toml
@@ -8,8 +8,8 @@ rust-version.workspace = true
[dependencies]
base-db = { path = "../base-db" }
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+rowan.workspace = true
+rustc-hash.workspace = true
syntax = { path = "../syntax" }
[dev-dependencies]
diff --git a/support/texlab/crates/symbols/Cargo.toml b/support/texlab/crates/symbols/Cargo.toml
index c44f120153..3ebc88fa50 100644
--- a/support/texlab/crates/symbols/Cargo.toml
+++ b/support/texlab/crates/symbols/Cargo.toml
@@ -12,14 +12,14 @@ doctest = false
[dependencies]
base-db = { path = "../base-db" }
distro = { path = "../distro" }
-itertools = "0.13.0"
+itertools.workspace = true
line-index = { path = "../line-index" }
-rowan = "0.15.15"
+rowan.workspace = true
syntax = { path = "../syntax" }
-titlecase = "3.0.0"
-url = "2.5.0"
+titlecase.workspace = true
+url.workspace = true
[dev-dependencies]
-regex = "1.10.5"
+regex.workspace = true
test-utils = { path = "../test-utils" }
-expect-test = "1.5.0"
+expect-test.workspace = true
diff --git a/support/texlab/crates/syntax/Cargo.toml b/support/texlab/crates/syntax/Cargo.toml
index 14dfffe380..5ae82f8bc5 100644
--- a/support/texlab/crates/syntax/Cargo.toml
+++ b/support/texlab/crates/syntax/Cargo.toml
@@ -7,9 +7,9 @@ edition.workspace = true
rust-version.workspace = true
[dependencies]
-itertools = "0.13.0"
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
+itertools.workspace = true
+rowan.workspace = true
+rustc-hash.workspace = true
[lib]
doctest = false
diff --git a/support/texlab/crates/syntax/src/latex/cst.rs b/support/texlab/crates/syntax/src/latex/cst.rs
index f16d703162..806be2aa83 100644
--- a/support/texlab/crates/syntax/src/latex/cst.rs
+++ b/support/texlab/crates/syntax/src/latex/cst.rs
@@ -12,7 +12,7 @@ pub fn small_range(node: &dyn AstNode<Language = LatexLanguage>) -> TextRange {
let start = full_range.start();
let mut token = node.syntax().last_token();
while let Some(current) = token {
- if !matches!(current.kind(), LINE_BREAK | WHITESPACE | COMMENT) {
+ if !matches!(current.kind(), WHITESPACE | COMMENT) {
return TextRange::new(start, current.text_range().end());
}
token = current.prev_token();
@@ -233,7 +233,7 @@ impl Key {
self.syntax()
.children_with_tokens()
.filter_map(|node| node.into_token())
- .filter(|node| !matches!(node.kind(), WHITESPACE | LINE_BREAK | COMMENT))
+ .filter(|node| !matches!(node.kind(), WHITESPACE | COMMENT))
}
}
@@ -258,7 +258,7 @@ impl ToString for Key {
.children_with_tokens()
.filter_map(|node| node.into_token())
{
- if matches!(token.kind(), WHITESPACE | LINE_BREAK | COMMENT) {
+ if matches!(token.kind(), WHITESPACE | COMMENT) {
buf.push(' ');
} else {
buf.push_str(token.text());
diff --git a/support/texlab/crates/syntax/src/latex/kind.rs b/support/texlab/crates/syntax/src/latex/kind.rs
index 8b649b1f31..362f2ea058 100644
--- a/support/texlab/crates/syntax/src/latex/kind.rs
+++ b/support/texlab/crates/syntax/src/latex/kind.rs
@@ -4,7 +4,6 @@
pub enum SyntaxKind {
ERROR = 0,
- LINE_BREAK,
WHITESPACE,
COMMENT,
VERBATIM,
diff --git a/support/texlab/crates/test-utils/Cargo.toml b/support/texlab/crates/test-utils/Cargo.toml
index b08d9cc09f..581be2e6a2 100644
--- a/support/texlab/crates/test-utils/Cargo.toml
+++ b/support/texlab/crates/test-utils/Cargo.toml
@@ -10,8 +10,8 @@ rust-version.workspace = true
base-db = { path = "../base-db" }
distro = { path = "../distro" }
line-index = { path = "../line-index" }
-rowan = "0.15.15"
-url = "2.5.0"
+rowan.workspace = true
+url.workspace = true
[lib]
doctest = false
diff --git a/support/texlab/crates/texlab/Cargo.toml b/support/texlab/crates/texlab/Cargo.toml
index f4cb2d3283..149b0c632f 100644
--- a/support/texlab/crates/texlab/Cargo.toml
+++ b/support/texlab/crates/texlab/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "texlab"
description = "LaTeX Language Server"
-version = "5.19.0"
+version.workspace = true
license.workspace = true
readme = "README.md"
authors.workspace = true
@@ -22,15 +22,15 @@ test = false
doctest = false
[dependencies]
-anyhow = "1.0.86"
+anyhow.workspace = true
base-db = { path = "../base-db" }
bibfmt = { path = "../bibfmt" }
citeproc = { path = "../citeproc" }
-clap = { version = "4.5.8", features = ["derive"] }
+clap = { version = "4.5.19", features = ["derive"] }
commands = { path = "../commands" }
completion = { path = "../completion" }
completion-data = { path = "../completion-data" }
-crossbeam-channel = "0.5.13"
+crossbeam-channel.workspace = true
definition = { path = "../definition" }
diagnostics = { path = "../diagnostics" }
distro = { path = "../distro" }
@@ -42,29 +42,29 @@ inlay-hints = { path = "../inlay-hints" }
ipc = { path = "../ipc" }
line-index = { path = "../line-index" }
links = { path = "../links" }
-log = "0.4.22"
-lsp-server = "0.7.6"
+log.workspace = true
+lsp-server = "0.7.7"
lsp-types = "0.95.1"
-notify = "6.1.1"
+notify.workspace = true
notify-debouncer-full = "0.3.1"
parking_lot = "0.12.3"
parser = { path = "../parser" }
references = { path = "../references" }
-regex = "1.10.5"
+regex.workspace = true
rename = { path = "../rename" }
-rowan = "0.15.15"
-rustc-hash = "2.0.0"
-serde = "1.0.203"
-serde_json = "1.0.119"
+rowan.workspace = true
+rustc-hash.workspace = true
+serde.workspace = true
+serde_json.workspace = true
serde_regex = "1.1.0"
serde_repr = "0.1.19"
symbols = { path = "../symbols" }
syntax = { path = "../syntax" }
-tempfile = "3.10.1"
+tempfile.workspace = true
threadpool = "1.8.1"
[dev-dependencies]
-criterion = { version = "0.5.1" }
+criterion.workspace = true
[[bench]]
name = "bench_main"
diff --git a/support/texlab/crates/texlab/src/features/inlay_hint.rs b/support/texlab/crates/texlab/src/features/inlay_hint.rs
index ddd8ff26d8..0689f07af0 100644
--- a/support/texlab/crates/texlab/src/features/inlay_hint.rs
+++ b/support/texlab/crates/texlab/src/features/inlay_hint.rs
@@ -7,10 +7,11 @@ pub fn find_all(
params: lsp_types::InlayHintParams,
) -> Option<Vec<lsp_types::InlayHint>> {
let params = from_proto::inlay_hint_params(workspace, params)?;
+ let line_index = &params.feature.document.line_index;
+ let max_length = workspace.config().inlay_hints.max_length;
let hints = inlay_hints::find_all(&params)?
.into_iter()
- .filter_map(|hint| to_proto::inlay_hint(hint, &params.feature.document.line_index))
- .collect();
+ .filter_map(|hint| to_proto::inlay_hint(hint, line_index, max_length));
- Some(hints)
+ Some(hints.collect())
}
diff --git a/support/texlab/crates/texlab/src/server/options.rs b/support/texlab/crates/texlab/src/server/options.rs
index f4853d7cb9..bc785c56c1 100644
--- a/support/texlab/crates/texlab/src/server/options.rs
+++ b/support/texlab/crates/texlab/src/server/options.rs
@@ -104,6 +104,7 @@ pub struct DiagnosticsOptions {
pub struct InlayHintOptions {
pub label_definitions: Option<bool>,
pub label_references: Option<bool>,
+ pub max_length: Option<usize>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
diff --git a/support/texlab/crates/texlab/src/util/from_proto.rs b/support/texlab/crates/texlab/src/util/from_proto.rs
index b55e3cb0e3..2f4fbe64c5 100644
--- a/support/texlab/crates/texlab/src/util/from_proto.rs
+++ b/support/texlab/crates/texlab/src/util/from_proto.rs
@@ -305,6 +305,7 @@ pub fn config(value: Options) -> Config {
config.inlay_hints.label_definitions = value.inlay_hints.label_definitions.unwrap_or(true);
config.inlay_hints.label_references = value.inlay_hints.label_references.unwrap_or(true);
+ config.inlay_hints.max_length = value.inlay_hints.max_length;
config.completion.matcher = match value.completion.matcher {
CompletionMatcher::Fuzzy => base_db::MatchingAlgo::Skim,
@@ -313,6 +314,8 @@ pub fn config(value: Options) -> Config {
CompletionMatcher::PrefixIgnoreCase => base_db::MatchingAlgo::PrefixIgnoreCase,
};
+ config.syntax.use_file_list = value.build.use_file_list;
+
config
.syntax
.math_environments
diff --git a/support/texlab/crates/texlab/src/util/to_proto.rs b/support/texlab/crates/texlab/src/util/to_proto.rs
index d2c261c8fb..82d0132434 100644
--- a/support/texlab/crates/texlab/src/util/to_proto.rs
+++ b/support/texlab/crates/texlab/src/util/to_proto.rs
@@ -191,13 +191,25 @@ pub fn diagnostic(
})
}
-pub fn inlay_hint(hint: InlayHint, line_index: &LineIndex) -> Option<lsp_types::InlayHint> {
+pub fn inlay_hint(
+ hint: InlayHint,
+ line_index: &LineIndex,
+ max_length: Option<usize>,
+) -> Option<lsp_types::InlayHint> {
let position = line_index.line_col_lsp(hint.offset)?;
+ let trim_text = |text: &mut String| match max_length {
+ Some(max_length) if text.len() > max_length => {
+ text.truncate(max_length);
+ text.push('…');
+ }
+ _ => {}
+ };
+
Some(match hint.data {
InlayHintData::LabelDefinition(label) => {
let number = label.number?;
- let text = match &label.object {
+ let mut text = match &label.object {
RenderedObject::Section { prefix, .. } => {
format!("{} {}", prefix, number)
}
@@ -211,9 +223,11 @@ pub fn inlay_hint(hint: InlayHint, line_index: &LineIndex) -> Option<lsp_types::
RenderedObject::EnumItem => format!("Item {}", number),
};
+ trim_text(&mut text);
+
lsp_types::InlayHint {
position,
- label: lsp_types::InlayHintLabel::String(format!(" {text} ")),
+ label: lsp_types::InlayHintLabel::String(format!(" {text} ",)),
kind: None,
text_edits: None,
tooltip: None,
@@ -223,7 +237,8 @@ pub fn inlay_hint(hint: InlayHint, line_index: &LineIndex) -> Option<lsp_types::
}
}
InlayHintData::LabelReference(label) => {
- let text = label.reference();
+ let mut text = label.reference();
+ trim_text(&mut text);
lsp_types::InlayHint {
position,
diff --git a/support/texlab/texlab.1 b/support/texlab/texlab.1
index 852d37051e..f3d916cf06 100644
--- a/support/texlab/texlab.1
+++ b/support/texlab/texlab.1
@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
-.TH TEXLAB "1" "July 2024" "texlab 5.19.0" "User Commands"
+.TH TEXLAB "1" "October 2024" "texlab 5.20.0" "User Commands"
.SH NAME
-texlab \- manual page for texlab 5.19.0
+texlab \- manual page for texlab 5.20.0
.SH SYNOPSIS
.B texlab
[\fI\,OPTIONS\/\fR] [\fI\,COMMAND\/\fR]
diff --git a/support/texlab/texlab.pdf b/support/texlab/texlab.pdf
index 55922ca427..d1e81ceebb 100644
--- a/support/texlab/texlab.pdf
+++ b/support/texlab/texlab.pdf
Binary files differ
diff --git a/support/texshop/README.txt b/support/texshop/README.txt
index c48dab2cd5..2bc351e58a 100644
--- a/support/texshop/README.txt
+++ b/support/texshop/README.txt
@@ -7,4 +7,4 @@ The main author is Richard Koch, koch@uoregon.edu, with supporting contributions
Consult the program web site, https://pages.uoregon.edu/koch/texshop/texshop.html,
for full source code, an extensive Changes document, and other information.
-The current version, 5.44, was released on September 12, 2024. \ No newline at end of file
+The current version, 5.46, was released on September 25, 2024. \ No newline at end of file
diff --git a/support/texshop/texshop544.html b/support/texshop/texshop544.html
deleted file mode 100644
index 71cd7ca483..0000000000
--- a/support/texshop/texshop544.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>TeXShop</title>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-</head>
-
-<body>
-
-
-<!-- main content -->
-<div id="main">
-
-Version 5.43 was never released. Version 5.44 has two minor changes listed below. In addition, version 5.44 supports Writing Tools, an important component of Apple Intelligence on macOS 15, Sequoia.
-<ul>
-<p><li> Holding down the option key while selecting the Typeset menu, or holding down option-command-T, erases aux files and then typesets. This behavior has been extended to the Typeset icon in the toolbar; holding down the option key and clicking this icon now erases aux files and then typesets.
-<p><li> The tab menu in the toolbar lists the beginnings of chapters, sections, subsections, and so forth; selecting an item in this menu takes you to the corresponding spot in the source file. This menu is supposed to be updated as the user edits the source file. Curiously, a bug prevented this update if the toolbar was in "Text Only" mode. This bug went unreported for perhaps twenty years. Now it is fixed.
-
-<p> TeXShop has a preference setting which creates a Tags menu in the main menu bar, duplicating the Tags menu in the toolbar. The bug also affected this menu bar item. I am unable to fix this second bug without risking performance issues for the editor. However, if both tags menus are visible and the menu bar version becomes out of date, using the toolbar version once will update both versions.
-</ul>
-
-
-<p>
-<p>
-</div>
-
-
-</body>
-</html> \ No newline at end of file
diff --git a/support/texshop/texshop546.html b/support/texshop/texshop546.html
new file mode 100644
index 0000000000..75d6cce3a7
--- /dev/null
+++ b/support/texshop/texshop546.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>TeXShop</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+</head>
+
+<body>
+
+
+<!-- main content -->
+<div id="main">
+
+Version 5.45 was never released. Version 5.46 fixes a few minor problems that crept into version 5.44.
+<ul>
+<p><li> In the English localization, the Edit Menu item "Paste As Comment" was changed to
+"Paste and Match Style". This is now fixed.
+<p><li> Keyboard shortcuts for menu commands are a programming nightmare because keyboards
+are not standard across the globe. This is particularly true for unusual characters like
+{, }, [, ], /, \. Consequently a shortcut which is convenient in English may be awkward in another language. The Macintosh automatically modifies some shortcuts for different keyboards, but I have no idea
+where these modifications are documented.
+
+<p>
+Apple allows users to assign their own shortcuts to menu commands using System Settings and the keyboard module, so I generally refuse to introduce new shortcuts or modify old ones.
+
+<p> In TeXShop 5.44, the keyboard shortcut for "comment" in the English localization was switched from command-{ to command-/. This is fixed and the shortcuts for "comment" and "uncomment" are again command-{ and command-}. These shortcuts work on earlier systems and on the release version of Sequoia.
+
+<p> The current beta of Sequoia with Apple Intelligence changes command-{ to command-/. Let us hope this is fixed before the update is released.
+<p> All of this applies only to the English localization. I left other localizations unchanged because I have no way to determine what Sequoia used with an unusual keyboard will do.
+
+<p><li> The keyboard shortcuts "command +" and "command -" enlarge or shrink the contents of the source window
+in both Single Window mode and Double Window mode. The keyboard shortcuts "shift-command +" and
+"shift-command -" similarly enlarge or shrink the contents of the preview window in both Single Window mode
+and Double Window mode. In previous versions of TeXShop, the shortcuts "command +" and "command -" could also be used to enlarge or shrink the preview window when it was the active window, so two different sets of commands could be used with the Preview Window. This is no longer possible in TeXShop 5.46 because it interfered with annotation features introduced this summer.
+</ul>
+
+<p>
+<p>
+</div>
+
+
+</body>
+</html> \ No newline at end of file