summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-13 03:03:42 +0000
committerNorbert Preining <norbert@preining.info>2022-06-13 03:03:42 +0000
commitef6d63ded56fb892decaa8ab41d7deebbe670473 (patch)
tree9c8eccf2e633fcfe0ad512e5428222ce0707971e
parent86d0c4c6729cfb43e13fb29790810c3cc2521806 (diff)
CTAN sync 202206130303
-rw-r--r--FILES.byname1665
-rw-r--r--FILES.byname.gzbin2438284 -> 2438923 bytes
-rw-r--r--FILES.last07days1254
-rw-r--r--graphics/mcf2graph/CHANGELOG7
-rw-r--r--graphics/mcf2graph/README2
-rw-r--r--graphics/mcf2graph/mcf2graph.mp102
-rw-r--r--graphics/mcf2graph/mcf_exa_code.pdfbin78730 -> 78730 bytes
-rw-r--r--graphics/mcf2graph/mcf_exa_code.tex4
-rw-r--r--graphics/mcf2graph/mcf_exa_soc.mp11
-rw-r--r--graphics/mcf2graph/mcf_example.pdfbin434560 -> 434278 bytes
-rw-r--r--graphics/mcf2graph/mcf_example.tex4
-rw-r--r--graphics/mcf2graph/mcf_library.mcf5
-rw-r--r--graphics/mcf2graph/mcf_man_soc.mp6
-rw-r--r--graphics/mcf2graph/mcf_manual.pdfbin289201 -> 289263 bytes
-rw-r--r--graphics/mcf2graph/mcf_manual.tex36
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.pdfbin195721 -> 195848 bytes
-rw-r--r--graphics/mcf2graph/mcf_mplib_exa.tex4
-rw-r--r--info/tex-vpat/LICENSE2
-rw-r--r--info/tex-vpat/README.md2
-rw-r--r--info/tex-vpat/texlive-vpat.css2
-rw-r--r--info/tex-vpat/texlive-vpat.html16
-rw-r--r--info/tex-vpat/texlive-vpat.pdfbin168389 -> 168091 bytes
-rw-r--r--info/tex-vpat/texlive-vpat.tex10
-rw-r--r--language/korean/cjk-ko/ChangeLog8
-rw-r--r--language/korean/cjk-ko/README2
-rw-r--r--language/korean/cjk-ko/cjk-ko-doc.pdfbin173481 -> 174257 bytes
-rw-r--r--language/korean/cjk-ko/cjk-ko-doc.tex52
-rw-r--r--language/korean/cjk-ko/cjkutf8-josa.sty4
-rw-r--r--language/korean/cjk-ko/cjkutf8-ko.sty128
-rw-r--r--language/korean/cjk-ko/cjkutf8-nanummjhanja.sty4
-rw-r--r--macros/latex/contrib/xcolor/ChangeLog10
-rw-r--r--macros/latex/contrib/xcolor/README56
-rw-r--r--macros/latex/contrib/xcolor/README.md74
-rw-r--r--macros/latex/contrib/xcolor/xcolor.dtx51
-rw-r--r--macros/latex/contrib/xcolor/xcolor.pdfbin858670 -> 864625 bytes
-rw-r--r--macros/latex/contrib/xcolor/xcolor2.pdfbin94138 -> 91583 bytes
-rw-r--r--macros/latex/required/latexbug/README.md8
-rw-r--r--macros/latex/required/latexbug/changes.txt12
-rw-r--r--macros/latex/required/latexbug/latexbug.dtx770
-rw-r--r--macros/latex/required/latexbug/latexbug.pdfbin211648 -> 224257 bytes
-rw-r--r--support/texlab/CHANGELOG.md16
-rw-r--r--support/texlab/Cargo.lock217
-rw-r--r--support/texlab/Cargo.toml26
-rw-r--r--support/texlab/README.md17
-rw-r--r--support/texlab/docs/custom_commands.md21
-rw-r--r--support/texlab/src/citation.rs3
-rw-r--r--support/texlab/src/citation/driver.rs18
-rw-r--r--support/texlab/src/citation/entry.rs35
-rw-r--r--support/texlab/src/citation/field/author.rs11
-rw-r--r--support/texlab/src/citation/field/date.rs6
-rw-r--r--support/texlab/src/citation/field/number.rs6
-rw-r--r--support/texlab/src/citation/field/text.rs16
-rw-r--r--support/texlab/src/citation/output.rs31
-rw-r--r--support/texlab/src/component_db.rs15
-rw-r--r--support/texlab/src/diagnostics.rs11
-rw-r--r--support/texlab/src/diagnostics/build_log.rs3
-rw-r--r--support/texlab/src/diagnostics/chktex.rs4
-rw-r--r--support/texlab/src/diagnostics/debouncer.rs2
-rw-r--r--support/texlab/src/diagnostics/latex.rs8
-rw-r--r--support/texlab/src/distro.rs1
-rw-r--r--support/texlab/src/distro/kpsewhich.rs1
-rw-r--r--support/texlab/src/distro/miktex.rs14
-rw-r--r--support/texlab/src/distro/texlive.rs9
-rw-r--r--support/texlab/src/document.rs8
-rw-r--r--support/texlab/src/environment.rs1
-rw-r--r--support/texlab/src/features.rs213
-rw-r--r--support/texlab/src/features/build.rs4
-rw-r--r--support/texlab/src/features/completion.rs5
-rw-r--r--support/texlab/src/features/completion/acronym_ref.rs120
-rw-r--r--support/texlab/src/features/completion/argument.rs120
-rw-r--r--support/texlab/src/features/completion/begin_command.rs63
-rw-r--r--support/texlab/src/features/completion/citation.rs209
-rw-r--r--support/texlab/src/features/completion/color.rs83
-rw-r--r--support/texlab/src/features/completion/color_model.rs123
-rw-r--r--support/texlab/src/features/completion/component_command.rs144
-rw-r--r--support/texlab/src/features/completion/component_environment.rs147
-rw-r--r--support/texlab/src/features/completion/entry_type.rs200
-rw-r--r--support/texlab/src/features/completion/field.rs158
-rw-r--r--support/texlab/src/features/completion/glossary_ref.rs83
-rw-r--r--support/texlab/src/features/completion/import.rs129
-rw-r--r--support/texlab/src/features/completion/include.rs75
-rw-r--r--support/texlab/src/features/completion/label.rs103
-rw-r--r--support/texlab/src/features/completion/theorem.rs106
-rw-r--r--support/texlab/src/features/completion/tikz_library.rs123
-rw-r--r--support/texlab/src/features/completion/user_command.rs63
-rw-r--r--support/texlab/src/features/completion/user_environment.rs66
-rw-r--r--support/texlab/src/features/definition.rs47
-rw-r--r--support/texlab/src/features/definition/command.rs128
-rw-r--r--support/texlab/src/features/definition/document.rs132
-rw-r--r--support/texlab/src/features/definition/entry.rs109
-rw-r--r--support/texlab/src/features/definition/label.rs77
-rw-r--r--support/texlab/src/features/definition/string.rs159
-rw-r--r--support/texlab/src/features/execute_command.rs103
-rw-r--r--support/texlab/src/features/folding.rs172
-rw-r--r--support/texlab/src/features/formatting/bibtex_internal.rs134
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__command.snap8
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__concatenation.snap8
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__insert_braces.snap8
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__multiple_entries.snap9
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__parens.snap7
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__preamble.snap6
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__string.snap6
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__trailing_comma.snap8
-rw-r--r--support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__wrap_long_lines.snap10
-rw-r--r--support/texlab/src/features/highlight/label.rs68
-rw-r--r--support/texlab/src/features/hover.rs33
-rw-r--r--support/texlab/src/features/hover/citation.rs119
-rw-r--r--support/texlab/src/features/hover/component.rs96
-rw-r--r--support/texlab/src/features/hover/entry_type.rs123
-rw-r--r--support/texlab/src/features/hover/field.rs115
-rw-r--r--support/texlab/src/features/hover/label.rs74
-rw-r--r--support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_cite.snap25
-rw-r--r--support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_entry.snap25
-rw-r--r--support/texlab/src/features/hover/string_ref.rs140
-rw-r--r--support/texlab/src/features/link.rs120
-rw-r--r--support/texlab/src/features/link/include.rs33
-rw-r--r--support/texlab/src/features/reference.rs34
-rw-r--r--support/texlab/src/features/reference/entry.rs186
-rw-r--r--support/texlab/src/features/reference/label.rs181
-rw-r--r--support/texlab/src/features/reference/string.rs186
-rw-r--r--support/texlab/src/features/rename.rs48
-rw-r--r--support/texlab/src/features/rename/command.rs81
-rw-r--r--support/texlab/src/features/rename/entry.rs131
-rw-r--r--support/texlab/src/features/rename/label.rs122
-rw-r--r--support/texlab/src/features/symbol.rs5
-rw-r--r--support/texlab/src/label.rs3
-rw-r--r--support/texlab/src/lang_data.rs3
-rw-r--r--support/texlab/src/main.rs2
-rw-r--r--support/texlab/src/options.rs24
-rw-r--r--support/texlab/src/server.rs68
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_001.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_002.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_003.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_004.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_005.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_006.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_007.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_008.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_009.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_010.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_011.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_012.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_013.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_014.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_015.snap6
-rw-r--r--support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_016.snap6
-rw-r--r--support/texlab/src/syntax/build_log.rs1999
-rw-r--r--support/texlab/src/syntax/latex/analysis/implicit_link.rs40
-rw-r--r--support/texlab/src/syntax/latex/cst.rs2
-rw-r--r--support/texlab/src/syntax/latex/parser.rs63
-rw-r--r--support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_command.snap31
-rw-r--r--support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_path_with_brackets.snap19
-rw-r--r--support/texlab/src/workspace.rs25
-rw-r--r--support/texlab/tests/integration/dev.rs17
-rw-r--r--support/texlab/tests/integration/lsp.rs4
-rw-r--r--support/texlab/tests/integration/lsp/client.rs158
-rw-r--r--support/texlab/tests/integration/lsp/fixture.rs123
-rw-r--r--support/texlab/tests/integration/lsp/text_document.rs11
-rw-r--r--support/texlab/tests/integration/lsp/text_document/completion.rs870
-rw-r--r--support/texlab/tests/integration/lsp/text_document/definition.rs142
-rw-r--r--support/texlab/tests/integration/lsp/text_document/document_highlight.rs62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/document_link.rs73
-rw-r--r--support/texlab/tests/integration/lsp/text_document/document_symbol.rs427
-rw-r--r--support/texlab/tests/integration/lsp/text_document/folding_range.rs97
-rw-r--r--support/texlab/tests/integration/lsp/text_document/formatting.rs148
-rw-r--r--support/texlab/tests/integration/lsp/text_document/hover.rs302
-rw-r--r--support/texlab/tests/integration/lsp/text_document/references.rs275
-rw-r--r--support/texlab/tests/integration/lsp/text_document/rename.rs111
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_empty.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_open_brace.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_simple.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_empty.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_open_brace.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_word.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__begin_environment_without_snippet_support.snap68
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation.snap32
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_acronym.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace_multiple.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_open_brace.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_open_brace.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_simple.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_simple.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_open_brace.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_simple.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_word.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_bibtex.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple.snap69
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple_package.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_class.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_command_definition.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple_end.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_preamble.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_string.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_at_empty.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_article.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_preamble.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_string.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_complete_entry.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_closed.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_open.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_field_name.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_closed.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_open.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_open_brace.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_simple.snap18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_closed_brace.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_open_brace.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_closed_brace.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_open_brace.snap67
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__label.snap73
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_begin.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_end.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_closed_brace.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_open_brace.snap62
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_command.snap19
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_environment.snap31
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_flat.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__enumerate_flat.snap)20
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_nested.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__enumerate_nested.snap)10
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_flat.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__equation_flat.snap)14
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_nested.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__equation_nested.snap)8
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_flat.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__float_flat.snap)14
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_nested.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__float_nested.snap)8
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_flat.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__section_flat.snap)14
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_nested.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__section_nested.snap)8
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_flat.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__theorem_flat.snap)18
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_nested.snap (renamed from support/texlab/tests/it/snapshots/it__document_symbol__theorem_nested.snap)10
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_command.snap9
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_insert_braces.snap8
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_join_strings.snap9
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_multiple_entries.snap17
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_parens.snap8
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_preamble.snap7
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_string.snap7
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_trailing_comma.snap9
-rw-r--r--support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap11
-rw-r--r--support/texlab/tests/integration/lsp/workspace.rs1
-rw-r--r--support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_bibtex.snap (renamed from support/texlab/tests/it/snapshots/it__workspace_symbol__filter_bibtex.snap)22
-rw-r--r--support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_figure.snap (renamed from support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_figure.snap)14
-rw-r--r--support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_item.snap (renamed from support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_item.snap)30
-rw-r--r--support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_math.snap (renamed from support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_math.snap)22
-rw-r--r--support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_section.snap (renamed from support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_section.snap)38
-rw-r--r--support/texlab/tests/integration/lsp/workspace/symbol.rs147
-rw-r--r--support/texlab/tests/integration/main.rs2
-rw-r--r--support/texlab/tests/it/common.rs318
-rw-r--r--support/texlab/tests/it/completion.rs817
-rw-r--r--support/texlab/tests/it/document_symbol.rs438
-rw-r--r--support/texlab/tests/it/hover.rs89
-rw-r--r--support/texlab/tests/it/issues.rs81
-rw-r--r--support/texlab/tests/it/main.rs7
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__command_complete_entry.snap150
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__command_incomplete_entry.snap150
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__empty_document.snap9
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_complete.snap33
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name.snap171
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name_before.snap9
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_incomplete.snap79
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__field_complete_entry.snap171
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__field_incomplete_entry.snap171
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__bibtex__junk.snap9
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__begin_command.snap162
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__citation.snap54
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__citation_after.snap9
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__citation_multi_word.snap34
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__citation_open_brace.snap34
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__class_command.snap150
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__class_environment.snap30
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__class_import.snap171
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color.snap105
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color_set.snap67
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__color_name.snap143
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__empty_document.snap9
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__kernel_command.snap30
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_environment.snap30
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_glyph.snap34
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__label.snap137
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__multi_line_key.snap50
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__package_command.snap34
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__package_environment.snap150
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__package_import.snap102
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__pgf_library.snap143
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__preselect_environment.snap150
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__theorem_environment.snap130
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__user_command.snap30
-rw-r--r--support/texlab/tests/it/snapshots/it__completion__latex__user_environment.snap50
-rw-r--r--support/texlab/tests/it/snapshots/it__hover__empty_bibtex_document.snap6
-rw-r--r--support/texlab/tests/it/snapshots/it__hover__empty_labtex_document.snap6
-rw-r--r--support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file.snap21
-rw-r--r--support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file_mumber.snap21
-rw-r--r--support/texlab/tests/it/snapshots/it__issues__510_completion_with_unmatched_braces.snap57
-rw-r--r--support/texlab/tests/it/workspace_symbol.rs119
-rw-r--r--support/texlab/texlab.pdfbin82740 -> 82677 bytes
-rw-r--r--support/texlab/texlab.tex2
-rw-r--r--systems/mac/mactex/ExtrasFolder.pdfbin38154 -> 38151 bytes
-rw-r--r--systems/mac/mactex/Licenses.txt4
-rw-r--r--systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl2
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb134
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.md52
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha5122
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc14
-rw-r--r--systems/texlive/tlnet/tlpkg/texlive.tlpdb.xzbin2384876 -> 2384984 bytes
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/cs.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/da.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/de.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/es.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/fr.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/it.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/ja.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/messages.pot108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/nl.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/pl.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/pt_BR.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/ru.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sk.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sl.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/sr.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/uk.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/vi.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/zh_CN.po108
-rw-r--r--systems/texlive/tlnet/tlpkg/translations/zh_TW.po108
-rw-r--r--systems/win32/miktex/tm/packages/files.csv.lzmabin653517 -> 655234 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/files.csv.lzmabin653727 -> 655800 bytes
-rw-r--r--systems/win32/miktex/tm/packages/next/pr.ini10
-rw-r--r--systems/win32/miktex/tm/packages/pr.ini12
-rw-r--r--timestamp2
326 files changed, 11560 insertions, 13776 deletions
diff --git a/FILES.byname b/FILES.byname
index bb55b55a7a..56c9391a8b 100644
--- a/FILES.byname
+++ b/FILES.byname
@@ -5228,7 +5228,7 @@
1990/10/02 | 5440 | dviware/vutex/vaxvms.hlp
1990/10/02 | 812 | dviware/vutex/vaxvms.ins
1990/10/02 | 127576 | dviware/vutex/vutex.web
-2022/06/11 | 90419 | FILES.last07days
+2022/06/12 | 91706 | FILES.last07days
2021/07/24 | 1139410 | fonts/aboensis/Aboensis.glyphs
2021/07/24 | 18907382 | fonts/aboensis/aboensis.pdf
2021/07/24 | 137860 | fonts/aboensis/Aboensis-Regular.otf
@@ -155107,21 +155107,21 @@
2011/05/31 | 231925 | graphics/mathspic/perl/sourcecode113.html
2011/05/31 | 183530 | graphics/mathspic/perl/sourcecode113.nw
2011/05/31 | 2864043 | graphics/mathspic/perl/sourcecode113.pdf
-2022/05/07 | 18042 | graphics/mcf2graph/CHANGELOG
-2022/05/08 | 101016 | graphics/mcf2graph/mcf2graph.mp
-2022/05/08 | 78730 | graphics/mcf2graph/mcf_exa_code.pdf
-2022/05/08 | 3812 | graphics/mcf2graph/mcf_exa_code.tex
-2022/05/08 | 434560 | graphics/mcf2graph/mcf_example.pdf
-2022/05/07 | 2984 | graphics/mcf2graph/mcf_example.tex
-2022/05/07 | 2194 | graphics/mcf2graph/mcf_exa_soc.mp
-2022/05/08 | 101374 | graphics/mcf2graph/mcf_library.mcf
-2022/05/08 | 43352 | graphics/mcf2graph/mcf_man_soc.mp
-2022/05/08 | 289201 | graphics/mcf2graph/mcf_manual.pdf
-2022/05/08 | 57619 | graphics/mcf2graph/mcf_manual.tex
-2022/05/08 | 195721 | graphics/mcf2graph/mcf_mplib_exa.pdf
-2022/05/08 | 14575 | graphics/mcf2graph/mcf_mplib_exa.tex
-2022/05/08 | 3649 | graphics/mcf2graph/README
-2022/05/08 | 1048322 | graphics/mcf2graph.zip
+2022/06/12 | 18150 | graphics/mcf2graph/CHANGELOG
+2022/06/12 | 101518 | graphics/mcf2graph/mcf2graph.mp
+2022/06/12 | 78730 | graphics/mcf2graph/mcf_exa_code.pdf
+2022/06/12 | 3812 | graphics/mcf2graph/mcf_exa_code.tex
+2022/06/12 | 434278 | graphics/mcf2graph/mcf_example.pdf
+2022/06/12 | 2984 | graphics/mcf2graph/mcf_example.tex
+2022/06/12 | 2270 | graphics/mcf2graph/mcf_exa_soc.mp
+2022/06/10 | 101331 | graphics/mcf2graph/mcf_library.mcf
+2022/06/12 | 43352 | graphics/mcf2graph/mcf_man_soc.mp
+2022/06/12 | 289263 | graphics/mcf2graph/mcf_manual.pdf
+2022/06/12 | 57636 | graphics/mcf2graph/mcf_manual.tex
+2022/06/12 | 195848 | graphics/mcf2graph/mcf_mplib_exa.pdf
+2022/06/12 | 14575 | graphics/mcf2graph/mcf_mplib_exa.tex
+2022/06/12 | 3649 | graphics/mcf2graph/README
+2022/06/12 | 1048468 | graphics/mcf2graph.zip
2004/07/13 | 8567 | graphics/metaplot/axes.mp
2004/06/28 | 1122 | graphics/metaplot/examples/cap1.cc
2004/06/28 | 2178 | graphics/metaplot/examples/cap1.mp
@@ -165481,8 +165481,8 @@
2019/01/31 | 3393 | info/biblio/sgml2000.ltx
2017/10/14 | 73095 | info/biblio/sgml2010.bib
2017/10/14 | 3393 | info/biblio/sgml2010.ltx
-2021/12/18 | 2684388 | info/biblio/sgml.bib
-2021/12/18 | 3487 | info/biblio/sgml.ltx
+2022/06/11 | 2686314 | info/biblio/sgml.bib
+2022/06/11 | 3479 | info/biblio/sgml.ltx
1997/10/07 | 204292 | info/biblio/texbook1.bib
1997/10/07 | 2953 | info/biblio/texbook1.ltx
2022/02/09 | 460820 | info/biblio/texbook2.bib
@@ -188016,14 +188016,14 @@
2014/05/15 | 266221 | info/tex-virtual-academy-pl/tex/tex_key.html
2014/05/05 | 17632 | info/tex-virtual-academy-pl/tex/tryby.html
2014/05/21 | 1415765 | info/tex-virtual-academy-pl.zip
-2021/04/18 | 258 | info/tex-vpat/LICENSE
+2022/01/30 | 263 | info/tex-vpat/LICENSE
2021/09/25 | 788 | info/tex-vpat/Makefile
-2022/01/30 | 660 | info/tex-vpat/README.md
-2022/01/30 | 8996 | info/tex-vpat/texlive-vpat.css
-2022/01/30 | 158684 | info/tex-vpat/texlive-vpat.html
-2022/01/30 | 168389 | info/tex-vpat/texlive-vpat.pdf
-2022/01/30 | 31814 | info/tex-vpat/texlive-vpat.tex
-2022/01/30 | 192286 | info/tex-vpat.zip
+2022/06/12 | 699 | info/tex-vpat/README.md
+2022/06/12 | 9100 | info/tex-vpat/texlive-vpat.css
+2022/06/12 | 158678 | info/tex-vpat/texlive-vpat.html
+2022/06/12 | 168091 | info/tex-vpat/texlive-vpat.pdf
+2022/06/12 | 31808 | info/tex-vpat/texlive-vpat.tex
+2022/06/12 | 192024 | info/tex-vpat.zip
2021/09/23 | 167478 | info/tlmgrbasics/doc/tlmgr.pdf
2021/09/23 | 23423 | info/tlmgrbasics/doc/tlmgr.tex
2021/09/23 | 447 | info/tlmgrbasics/README
@@ -189118,7 +189118,7 @@
2020/06/01 | 1578753 | install/macros/latex/required/amscls.tds.zip
2022/06/06 | 2977564 | install/macros/latex/required/babel-base.tds.zip
2022/06/08 | 2794804 | install/macros/latex/required/latex-amsmath.tds.zip
-2021/09/25 | 223228 | install/macros/latex/required/latexbug.tds.zip
+2022/06/12 | 242246 | install/macros/latex/required/latexbug.tds.zip
2018/04/06 | 1324669 | install/macros/latex/required/latex-cyrillic.tds.zip
2022/06/08 | 262641 | install/macros/latex/required/latex-firstaid.tds.zip
2022/06/08 | 3110069 | install/macros/latex/required/latex-graphics.tds.zip
@@ -199189,17 +199189,17 @@
2020/01/22 | 1413 | language/japanese/zxjatype/README.md
2020/01/21 | 177243 | language/japanese/zxjatype.zip
2020/01/22 | 32703 | language/japanese/zxjatype/zxjatype.sty
-2021/07/26 | 2827 | language/korean/cjk-ko/ChangeLog
-2021/07/26 | 173481 | language/korean/cjk-ko/cjk-ko-doc.pdf
-2021/07/26 | 9104 | language/korean/cjk-ko/cjk-ko-doc.tex
-2021/07/26 | 7441 | language/korean/cjk-ko/cjkutf8-josa.sty
-2021/07/26 | 15827 | language/korean/cjk-ko/cjkutf8-ko.sty
-2021/07/26 | 1832 | language/korean/cjk-ko/cjkutf8-nanummjhanja.sty
-2021/07/26 | 4624 | language/korean/cjk-ko/kolabels-utf.sty
-2021/07/26 | 4081 | language/korean/cjk-ko/konames-utf.sty
-2021/07/26 | 2685 | language/korean/cjk-ko/kotex.sty
-2021/07/26 | 4299 | language/korean/cjk-ko/README
-2021/07/26 | 174926 | language/korean/cjk-ko.zip
+2022/06/12 | 3072 | language/korean/cjk-ko/ChangeLog
+2022/06/12 | 174257 | language/korean/cjk-ko/cjk-ko-doc.pdf
+2022/06/12 | 9192 | language/korean/cjk-ko/cjk-ko-doc.tex
+2022/06/12 | 7441 | language/korean/cjk-ko/cjkutf8-josa.sty
+2022/06/12 | 13992 | language/korean/cjk-ko/cjkutf8-ko.sty
+2022/06/12 | 1832 | language/korean/cjk-ko/cjkutf8-nanummjhanja.sty
+2022/06/12 | 4624 | language/korean/cjk-ko/kolabels-utf.sty
+2022/06/12 | 4081 | language/korean/cjk-ko/konames-utf.sty
+2022/06/12 | 2685 | language/korean/cjk-ko/kotex.sty
+2022/06/12 | 4299 | language/korean/cjk-ko/README
+2022/06/12 | 175388 | language/korean/cjk-ko.zip
1992/09/26 | 415 | language/korean/ftp.sites
1992/09/26 | 38208 | language/korean/hangul.sft
1992/02/29 | 4891 | language/korean/hcode1_1/conv.c
@@ -234466,24 +234466,24 @@
2018/01/05 | 1923 | macros/latex/contrib/xcntperchap/xcntperchap_labelusage.tex
2018/01/05 | 10505 | macros/latex/contrib/xcntperchap/xcntperchap.sty
2018/01/05 | 372146 | macros/latex/contrib/xcntperchap.zip
-2021/11/01 | 14890 | macros/latex/contrib/xcolor/ChangeLog
+2022/06/12 | 15251 | macros/latex/contrib/xcolor/ChangeLog
2016/10/15 | 998 | macros/latex/contrib/xcolor-material/README.md
2016/10/15 | 46397 | macros/latex/contrib/xcolor-material/xcolor-material.dtx
2016/06/01 | 1917 | macros/latex/contrib/xcolor-material/xcolor-material.ins
2016/10/15 | 632607 | macros/latex/contrib/xcolor-material/xcolor-material.pdf
2016/10/16 | 592161 | macros/latex/contrib/xcolor-material.zip
-2021/11/01 | 1806 | macros/latex/contrib/xcolor/README
+2022/06/12 | 2007 | macros/latex/contrib/xcolor/README.md
2016/08/05 | 618 | macros/latex/contrib/xcolor-solarized/makefile
2016/08/05 | 356 | macros/latex/contrib/xcolor-solarized/README
2016/08/05 | 11317 | macros/latex/contrib/xcolor-solarized/xcolor-solarized.dtx
2016/08/05 | 2156 | macros/latex/contrib/xcolor-solarized/xcolor-solarized.ins
2016/08/05 | 468876 | macros/latex/contrib/xcolor-solarized/xcolor-solarized.pdf
2016/08/05 | 473080 | macros/latex/contrib/xcolor-solarized.zip
-2021/11/01 | 94138 | macros/latex/contrib/xcolor/xcolor2.pdf
-2021/11/01 | 343334 | macros/latex/contrib/xcolor/xcolor.dtx
-2021/11/01 | 703 | macros/latex/contrib/xcolor/xcolor.ins
-2021/11/01 | 858670 | macros/latex/contrib/xcolor/xcolor.pdf
-2021/11/01 | 1011644 | macros/latex/contrib/xcolor.zip
+2022/06/12 | 91583 | macros/latex/contrib/xcolor/xcolor2.pdf
+2022/06/12 | 344001 | macros/latex/contrib/xcolor/xcolor.dtx
+2022/06/12 | 703 | macros/latex/contrib/xcolor/xcolor.ins
+2022/06/12 | 864625 | macros/latex/contrib/xcolor/xcolor.pdf
+2022/06/12 | 1015623 | macros/latex/contrib/xcolor.zip
2015/03/03 | 421916 | macros/latex/contrib/xcookybooky/example/example.pdf
2015/03/03 | 2562 | macros/latex/contrib/xcookybooky/example/example.tex
2014/12/28 | 88981 | macros/latex/contrib/xcookybooky/example/pic/background.pdf
@@ -235859,12 +235859,12 @@
2022/06/08 | 10753 | macros/latex/required/graphics/trig.dtx
2022/06/08 | 199266 | macros/latex/required/graphics/trig.pdf
2022/06/08 | 3073492 | macros/latex/required/graphics.zip
-2021/09/25 | 1021 | macros/latex/required/latexbug/changes.txt
-2021/09/25 | 36311 | macros/latex/required/latexbug/latexbug.dtx
-2021/09/25 | 1963 | macros/latex/required/latexbug/latexbug.ins
-2021/09/25 | 211648 | macros/latex/required/latexbug/latexbug.pdf
-2021/09/25 | 83 | macros/latex/required/latexbug/README.md
-2021/09/25 | 216931 | macros/latex/required/latexbug.zip
+2022/06/12 | 1283 | macros/latex/required/latexbug/changes.txt
+2022/06/12 | 59536 | macros/latex/required/latexbug/latexbug.dtx
+2022/06/12 | 1963 | macros/latex/required/latexbug/latexbug.ins
+2022/06/12 | 224257 | macros/latex/required/latexbug/latexbug.pdf
+2022/06/12 | 248 | macros/latex/required/latexbug/README.md
+2022/06/12 | 232881 | macros/latex/required/latexbug.zip
2022/06/08 | 734 | macros/latex/required/latex-lab/changes.txt
2022/06/08 | 512020 | macros/latex/required/latex-lab/documentmetadata-support-code.pdf
2022/06/08 | 117 | macros/latex/required/latex-lab/documentmetadata-support-code.tex
@@ -276152,373 +276152,381 @@
1994/01/18 | 7272 | support/tex-it/texitrc.unx
1994/01/18 | 25068 | support/tex-it/texit.tex
2006/03/12 | 50172 | support/tex-it.zip
-2022/05/25 | 1547 | support/texlab/benches/bench_main.rs
-2022/05/25 | 40459 | support/texlab/Cargo.lock
-2022/05/25 | 2162 | support/texlab/Cargo.toml
-2022/05/25 | 19133 | support/texlab/CHANGELOG.md
-2022/05/25 | 183 | support/texlab/CONTRIBUTING.md
-2022/05/25 | 6970534 | support/texlab/data/components.json.gz
-2022/05/25 | 57018 | support/texlab/data/lang_data.json
-2022/05/25 | 2021 | support/texlab/docs/custom_messages.md
-2022/05/25 | 380190 | support/texlab/docs/demo.gif
-2022/05/25 | 2250 | support/texlab/docs/lsp_kinds.md
-2022/05/25 | 3935 | support/texlab/docs/options.md
-2022/05/25 | 5516 | support/texlab/docs/previewing.md
-2022/05/25 | 1049 | support/texlab/docs/tectonic.md
-2022/05/25 | 35149 | support/texlab/LICENSE
-2022/05/25 | 4681 | support/texlab/README.md
-2022/05/25 | 6 | support/texlab/rust-toolchain
-2022/05/25 | 5284 | support/texlab/src/capabilities.rs
-2022/05/25 | 22346 | support/texlab/src/citation/driver.rs
-2022/05/25 | 3157 | support/texlab/src/citation/entry.rs
-2022/05/25 | 1682 | support/texlab/src/citation/field/author.rs
-2022/05/25 | 2477 | support/texlab/src/citation/field/date.rs
-2022/05/25 | 1385 | support/texlab/src/citation/field/number.rs
-2022/05/25 | 60 | support/texlab/src/citation/field.rs
-2022/05/25 | 6976 | support/texlab/src/citation/field/text.rs
-2022/05/25 | 2442 | support/texlab/src/citation/output.rs
-2022/05/25 | 882 | support/texlab/src/citation.rs
-2022/05/25 | 1064 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_aksin_2006.snap
-2022/05/25 | 800 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_betram_1996.snap
-2022/05/25 | 1330 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_blom_2021.snap
-2022/05/25 | 1062 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_jain_1999.snap
-2022/05/25 | 1314 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_kastenholz_2006.snap
-2022/05/25 | 988 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_rivest_1978.snap
-2022/05/25 | 585 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_aho_2006.snap
-2022/05/25 | 1411 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_averroes_1998.snap
-2022/05/25 | 1223 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_knuth_1984.snap
-2022/05/25 | 720 | support/texlab/src/citation/snapshots/texlab__citation__tests__collection_matuz_1990.snap
-2022/05/25 | 1176 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_combi_2004.snap
-2022/05/25 | 1051 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_erwin_2007.snap
-2022/05/25 | 1428 | support/texlab/src/citation/snapshots/texlab__citation__tests__mvbook_nietzsche_1988.snap
-2022/05/25 | 967 | support/texlab/src/citation/snapshots/texlab__citation__tests__patent_almendro_1998.snap
-2022/05/25 | 11851 | support/texlab/src/citation/tests.rs
-2022/05/25 | 1593 | support/texlab/src/client.rs
-2022/05/25 | 4408 | support/texlab/src/component_db.rs
-2022/05/25 | 4817 | support/texlab/src/diagnostics/bibtex.rs
-2022/05/25 | 2182 | support/texlab/src/diagnostics/build_log.rs
-2022/05/25 | 2988 | support/texlab/src/diagnostics/chktex.rs
-2022/05/25 | 2097 | support/texlab/src/diagnostics/debouncer.rs
-2022/05/25 | 4419 | support/texlab/src/diagnostics/latex.rs
-2022/05/25 | 1774 | support/texlab/src/diagnostics.rs
-2022/05/25 | 2416 | support/texlab/src/dispatch.rs
-2022/05/25 | 2019 | support/texlab/src/distro/kpsewhich.rs
-2022/05/25 | 2620 | support/texlab/src/distro/miktex.rs
-2022/05/25 | 2108 | support/texlab/src/distro.rs
-2022/05/25 | 1075 | support/texlab/src/distro/texlive.rs
-2022/05/25 | 3528 | support/texlab/src/document.rs
-2022/05/25 | 853 | support/texlab/src/environment.rs
-2022/05/25 | 8267 | support/texlab/src/features/build.rs
-2022/05/25 | 4698 | support/texlab/src/features/completion/acronym_ref.rs
-2022/05/25 | 5493 | support/texlab/src/features/completion/argument.rs
-2022/05/25 | 2135 | support/texlab/src/features/completion/begin_command.rs
-2022/05/25 | 8612 | support/texlab/src/features/completion/citation.rs
-2022/05/25 | 4976 | support/texlab/src/features/completion/color_model.rs
-2022/05/25 | 2891 | support/texlab/src/features/completion/color.rs
-2022/05/25 | 5010 | support/texlab/src/features/completion/component_command.rs
-2022/05/25 | 5074 | support/texlab/src/features/completion/component_environment.rs
-2022/05/25 | 6542 | support/texlab/src/features/completion/entry_type.rs
-2022/05/25 | 5596 | support/texlab/src/features/completion/field.rs
-2022/05/25 | 4023 | support/texlab/src/features/completion/glossary_ref.rs
-2022/05/25 | 5346 | support/texlab/src/features/completion/import.rs
-2022/05/25 | 5688 | support/texlab/src/features/completion/include.rs
-2022/05/25 | 7007 | support/texlab/src/features/completion/label.rs
-2022/05/25 | 23798 | support/texlab/src/features/completion.rs
-2022/05/25 | 3855 | support/texlab/src/features/completion/theorem.rs
-2022/05/25 | 4529 | support/texlab/src/features/completion/tikz_library.rs
-2022/05/25 | 3479 | support/texlab/src/features/completion/types.rs
-2022/05/25 | 2624 | support/texlab/src/features/completion/user_command.rs
-2022/05/25 | 2668 | support/texlab/src/features/completion/user_environment.rs
-2022/05/25 | 1767 | support/texlab/src/features/completion/util.rs
-2022/05/25 | 10234 | support/texlab/src/features/cursor.rs
-2022/05/25 | 3796 | support/texlab/src/features/definition/command.rs
-2022/05/25 | 3399 | support/texlab/src/features/definition/document.rs
-2022/05/25 | 3930 | support/texlab/src/features/definition/entry.rs
-2022/05/25 | 2624 | support/texlab/src/features/definition/label.rs
-2022/05/25 | 903 | support/texlab/src/features/definition.rs
-2022/05/25 | 5126 | support/texlab/src/features/definition/string.rs
-2022/05/25 | 6773 | support/texlab/src/features/folding.rs
-2022/05/25 | 11772 | support/texlab/src/features/formatting/bibtex_internal.rs
-2022/05/25 | 2523 | support/texlab/src/features/formatting/latexindent.rs
-2022/05/25 | 784 | support/texlab/src/features/formatting.rs
-2022/05/25 | 117 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__command.snap
-2022/05/25 | 124 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__concatenation.snap
-2022/05/25 | 114 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__insert_braces.snap
-2022/05/25 | 565 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__multiple_entries.snap
-2022/05/25 | 102 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__parens.snap
-2022/05/25 | 111 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__preamble.snap
-2022/05/25 | 107 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__string.snap
-2022/05/25 | 114 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__trailing_comma.snap
-2022/05/25 | 299 | support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__wrap_long_lines.snap
-2022/05/25 | 3141 | support/texlab/src/features/forward_search.rs
-2022/05/25 | 4799 | support/texlab/src/features/highlight/label.rs
-2022/05/25 | 378 | support/texlab/src/features/highlight.rs
-2022/05/25 | 3517 | support/texlab/src/features/hover/citation.rs
-2022/05/25 | 2797 | support/texlab/src/features/hover/component.rs
-2022/05/25 | 3481 | support/texlab/src/features/hover/entry_type.rs
-2022/05/25 | 3481 | support/texlab/src/features/hover/field.rs
-2022/05/25 | 2092 | support/texlab/src/features/hover/label.rs
-2022/05/25 | 893 | support/texlab/src/features/hover.rs
-2022/05/25 | 493 | support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_cite.snap
-2022/05/25 | 495 | support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_entry.snap
-2022/05/25 | 4009 | support/texlab/src/features/hover/string_ref.rs
-2022/05/25 | 3097 | support/texlab/src/features/link.rs
-2022/05/25 | 3997 | support/texlab/src/features/lsp_kinds.rs
-2022/05/25 | 7196 | support/texlab/src/features/reference/entry.rs
-2022/05/25 | 6250 | support/texlab/src/features/reference/label.rs
-2022/05/25 | 673 | support/texlab/src/features/reference.rs
-2022/05/25 | 6495 | support/texlab/src/features/reference/string.rs
-2022/05/25 | 2838 | support/texlab/src/features/rename/command.rs
-2022/05/25 | 4926 | support/texlab/src/features/rename/entry.rs
-2022/05/25 | 4951 | support/texlab/src/features/rename/label.rs
-2022/05/25 | 879 | support/texlab/src/features/rename.rs
-2022/05/25 | 8866 | support/texlab/src/features.rs
-2022/05/25 | 3397 | support/texlab/src/features/symbol/bibtex.rs
-2022/05/25 | 13898 | support/texlab/src/features/symbol/latex.rs
-2022/05/25 | 6355 | support/texlab/src/features/symbol/project_order.rs
-2022/05/25 | 3739 | support/texlab/src/features/symbol.rs
-2022/05/25 | 3700 | support/texlab/src/features/symbol/types.rs
-2022/05/25 | 8837 | support/texlab/src/label.rs
-2022/05/25 | 1998 | support/texlab/src/lang_data.rs
-2022/05/25 | 923 | support/texlab/src/language.rs
-2022/05/25 | 687 | support/texlab/src/lib.rs
-2022/05/25 | 1268 | support/texlab/src/line_index_ext.rs
-2022/05/25 | 6484 | support/texlab/src/line_index.rs
-2022/05/25 | 1995 | support/texlab/src/main.rs
-2022/05/25 | 3031 | support/texlab/src/options.rs
-2022/05/25 | 488 | support/texlab/src/range.rs
-2022/05/25 | 261 | support/texlab/src/req_queue.rs
-2022/05/25 | 33077 | support/texlab/src/server.rs
-2022/05/25 | 1718 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_001.snap
-2022/05/25 | 1078 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_002.snap
-2022/05/25 | 874 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_003.snap
-2022/05/25 | 1164 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_004.snap
-2022/05/25 | 813 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_005.snap
-2022/05/25 | 873 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_006.snap
-2022/05/25 | 879 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_007.snap
-2022/05/25 | 429 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_008.snap
-2022/05/25 | 901 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_009.snap
-2022/05/25 | 3047 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_010.snap
-2022/05/25 | 1596 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_011.snap
-2022/05/25 | 941 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_012.snap
-2022/05/25 | 714 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_013.snap
-2022/05/25 | 817 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_014.snap
-2022/05/25 | 2470 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_015.snap
-2022/05/25 | 1115 | support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_016.snap
-2022/05/25 | 6825 | support/texlab/src/syntax/bibtex/ast.rs
-2022/05/25 | 3720 | support/texlab/src/syntax/bibtex/lexer.rs
-2022/05/25 | 7423 | support/texlab/src/syntax/bibtex/parser.rs
-2022/05/25 | 1300 | support/texlab/src/syntax/bibtex.rs
-2022/05/25 | 14551 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_001.snap
-2022/05/25 | 8201 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_002.snap
-2022/05/25 | 6630 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_003.snap
-2022/05/25 | 836 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__comment.snap
-2022/05/25 | 1300 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__entry_colon.snap
-2022/05/25 | 370 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__preamble.snap
-2022/05/25 | 4229 | support/texlab/src/syntax/bibtex/tests.rs
-2022/05/25 | 61463 | support/texlab/src/syntax/build_log.rs
-2022/05/25 | 666 | support/texlab/src/syntax/latex/analysis/command.rs
-2022/05/25 | 2185 | support/texlab/src/syntax/latex/analysis/distro_file.rs
-2022/05/25 | 373 | support/texlab/src/syntax/latex/analysis/environment.rs
-2022/05/25 | 2415 | support/texlab/src/syntax/latex/analysis/explicit_link.rs
-2022/05/25 | 466 | support/texlab/src/syntax/latex/analysis/graphics_path.rs
-2022/05/25 | 1839 | support/texlab/src/syntax/latex/analysis/implicit_link.rs
-2022/05/25 | 1984 | support/texlab/src/syntax/latex/analysis/label_name.rs
-2022/05/25 | 648 | support/texlab/src/syntax/latex/analysis/label_number.rs
-2022/05/25 | 1425 | support/texlab/src/syntax/latex/analysis.rs
-2022/05/25 | 586 | support/texlab/src/syntax/latex/analysis/theorem.rs
-2022/05/25 | 1919 | support/texlab/src/syntax/latex/analysis/types.rs
-2022/05/25 | 16958 | support/texlab/src/syntax/latex/cst.rs
-2022/05/25 | 4513 | support/texlab/src/syntax/latex/kind.rs
-2022/05/25 | 18522 | support/texlab/src/syntax/latex/lexer.rs
-2022/05/25 | 50460 | support/texlab/src/syntax/latex/parser.rs
-2022/05/25 | 771 | support/texlab/src/syntax/latex.rs
-2022/05/25 | 611 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__asymptote.snap
-2022/05/25 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__block_comment.snap
-2022/05/25 | 570 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_parameter.snap
-2022/05/25 | 277 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_star.snap
-2022/05/25 | 445 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__comment.snap
-2022/05/25 | 901 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__delimiters.snap
-2022/05/25 | 76 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__empty.snap
-2022/05/25 | 234 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__escape_sequence.snap
-2022/05/25 | 614 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__formula.snap
-2022/05/25 | 118 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__invalid_parameter.snap
-2022/05/25 | 242 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__line_break.snap
-2022/05/25 | 1475 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acronym_declaration.snap
-2022/05/25 | 1374 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_options.snap
-2022/05/25 | 742 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_simple.snap
-2022/05/25 | 786 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_options.snap
-2022/05/25 | 331 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_simple.snap
-2022/05/25 | 655 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__asymptote.snap
-2022/05/25 | 843 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__biblatex_include_options.snap
-2022/05/25 | 355 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__biblatex_include_simple.snap
-2022/05/25 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__bibtex_include_simple.snap
-2022/05/25 | 711 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__block_comments.snap
-2022/05/25 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_missing_end.snap
-2022/05/25 | 283 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_simple.snap
-2022/05/25 | 621 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_error.snap
-2022/05/25 | 772 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_figure.snap
-2022/05/25 | 489 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal_error.snap
-2022/05/25 | 491 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal.snap
-2022/05/25 | 623 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption.snap
-2022/05/25 | 243 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_empty.snap
-2022/05/25 | 287 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_missing_brace.snap
-2022/05/25 | 401 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_multiple_keys.snap
-2022/05/25 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote_postnote.snap
-2022/05/25 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote.snap
-2022/05/25 | 347 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_redundant_comma.snap
-2022/05/25 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_simple.snap
-2022/05/25 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_star.snap
-2022/05/25 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_empty.snap
-2022/05/25 | 1050 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_options.snap
-2022/05/25 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_simple.snap
-2022/05/25 | 710 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_definition_simple.snap
-2022/05/25 | 312 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_reference_simple.snap
-2022/05/25 | 855 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error1.snap
-2022/05/25 | 609 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error2.snap
-2022/05/25 | 497 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error3.snap
-2022/05/25 | 302 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error4.snap
-2022/05/25 | 967 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_simple.snap
-2022/05/25 | 464 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_argc.snap
-2022/05/25 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl_error.snap
-2022/05/25 | 356 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl.snap
-2022/05/25 | 747 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_optional.snap
-2022/05/25 | 631 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_simple.snap
-2022/05/25 | 1223 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_with_begin.snap
-2022/05/25 | 100 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__empty.snap
-2022/05/25 | 906 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_definition_optional_arg.snap
-2022/05/25 | 1134 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_definition.snap
-2022/05/25 | 1286 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested_missing_braces.snap
-2022/05/25 | 1136 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested.snap
-2022/05/25 | 727 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_simple.snap
-2022/05/25 | 313 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_label_reference_simple.snap
-2022/05/25 | 808 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_begin.snap
-2022/05/25 | 839 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_end.snap
-2022/05/25 | 360 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation.snap
-2022/05/25 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__escaped_brackets.snap
-2022/05/25 | 425 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_args.snap
-2022/05/25 | 170 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_empty.snap
-2022/05/25 | 166 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_escape.snap
-2022/05/25 | 944 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_definition_simple.snap
-2022/05/25 | 875 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_options.snap
-2022/05/25 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_simple.snap
-2022/05/25 | 759 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_complicated_options.snap
-2022/05/25 | 696 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_options.snap
-2022/05/25 | 357 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_simple.snap
-2022/05/25 | 412 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_path.snap
-2022/05/25 | 205 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__hello_world.snap
-2022/05/25 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_incomplete.snap
-2022/05/25 | 428 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_simple.snap
-2022/05/25 | 668 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_options.snap
-2022/05/25 | 329 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_simple.snap
-2022/05/25 | 630 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline_double_dollar.snap
-2022/05/25 | 624 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline.snap
-2022/05/25 | 458 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_line_break.snap
-2022/05/25 | 310 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_simple.snap
-2022/05/25 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_number.snap
-2022/05/25 | 846 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_incomplete.snap
-2022/05/25 | 411 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_multiple.snap
-2022/05/25 | 468 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_error.snap
-2022/05/25 | 358 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_incomplete.snap
-2022/05/25 | 470 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_simple.snap
-2022/05/25 | 301 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_simple.snap
-2022/05/25 | 401 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_include_equality_sign.snap
-2022/05/25 | 321 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_include_simple.snap
-2022/05/25 | 325 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_simple.snap
-2022/05/25 | 364 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_no_impl.snap
-2022/05/25 | 472 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_simple.snap
-2022/05/25 | 279 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_empty.snap
-2022/05/25 | 450 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_multiple.snap
-2022/05/25 | 1048 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_options.snap
-2022/05/25 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_simple.snap
-2022/05/25 | 135 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter_error.snap
-2022/05/25 | 137 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter.snap
-2022/05/25 | 343 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__pgf_library_import_simple.snap
-2022/05/25 | 1282 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_enum_item.snap
-2022/05/25 | 521 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_invalid_nesting.snap
-2022/05/25 | 1791 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_nested.snap
-2022/05/25 | 677 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_siblings.snap
-2022/05/25 | 676 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_options.snap
-2022/05/25 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_simple.snap
-2022/05/25 | 734 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_full.snap
-2022/05/25 | 490 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_counter.snap
-2022/05/25 | 598 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description_and_counter.snap
-2022/05/25 | 462 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description.snap
-2022/05/25 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_only_name.snap
-2022/05/25 | 345 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__tikz_library_import_simple.snap
-2022/05/25 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_braces.snap
-2022/05/25 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets.snap
-2022/05/25 | 285 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets_with_group.snap
-2022/05/25 | 353 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__verbatim_include_simple.snap
-2022/05/25 | 50 | support/texlab/src/syntax.rs
-2022/05/25 | 261 | support/texlab/src/syntax/snapshots/texlab__syntax__build_log__tests__parse_007.snap
-2022/05/25 | 7542 | support/texlab/src/workspace.rs
-2022/05/25 | 11495 | support/texlab/tests/it/common.rs
-2022/05/25 | 23511 | support/texlab/tests/it/completion.rs
-2022/05/25 | 11519 | support/texlab/tests/it/document_symbol.rs
-2022/05/25 | 2218 | support/texlab/tests/it/hover.rs
-2022/05/25 | 2264 | support/texlab/tests/it/issues.rs
-2022/05/25 | 125 | support/texlab/tests/it/main.rs
-2022/05/25 | 2915 | support/texlab/tests/it/snapshots/it__completion__bibtex__command_complete_entry.snap
-2022/05/25 | 2915 | support/texlab/tests/it/snapshots/it__completion__bibtex__command_incomplete_entry.snap
-2022/05/25 | 157 | support/texlab/tests/it/snapshots/it__completion__bibtex__empty_document.snap
-2022/05/25 | 1090 | support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_complete.snap
-2022/05/25 | 158 | support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name_before.snap
-2022/05/25 | 5088 | support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name.snap
-2022/05/25 | 2231 | support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_incomplete.snap
-2022/05/25 | 4200 | support/texlab/tests/it/snapshots/it__completion__bibtex__field_complete_entry.snap
-2022/05/25 | 4200 | support/texlab/tests/it/snapshots/it__completion__bibtex__field_incomplete_entry.snap
-2022/05/25 | 157 | support/texlab/tests/it/snapshots/it__completion__bibtex__junk.snap
-2022/05/25 | 9438 | support/texlab/tests/it/snapshots/it__completion__latex__begin_command.snap
-2022/05/25 | 162 | support/texlab/tests/it/snapshots/it__completion__latex__citation_after.snap
-2022/05/25 | 758 | support/texlab/tests/it/snapshots/it__completion__latex__citation_multi_word.snap
-2022/05/25 | 775 | support/texlab/tests/it/snapshots/it__completion__latex__citation_open_brace.snap
-2022/05/25 | 1222 | support/texlab/tests/it/snapshots/it__completion__latex__citation.snap
-2022/05/25 | 2907 | support/texlab/tests/it/snapshots/it__completion__latex__class_command.snap
-2022/05/25 | 550 | support/texlab/tests/it/snapshots/it__completion__latex__class_environment.snap
-2022/05/25 | 5036 | support/texlab/tests/it/snapshots/it__completion__latex__class_import.snap
-2022/05/25 | 1219 | support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color_set.snap
-2022/05/25 | 1927 | support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color.snap
-2022/05/25 | 2668 | support/texlab/tests/it/snapshots/it__completion__latex__color_name.snap
-2022/05/25 | 158 | support/texlab/tests/it/snapshots/it__completion__latex__empty_document.snap
-2022/05/25 | 550 | support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_environment.snap
-2022/05/25 | 3410 | support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_glyph.snap
-2022/05/25 | 559 | support/texlab/tests/it/snapshots/it__completion__latex__kernel_command.snap
-2022/05/25 | 2913 | support/texlab/tests/it/snapshots/it__completion__latex__label.snap
-2022/05/25 | 941 | support/texlab/tests/it/snapshots/it__completion__latex__multi_line_key.snap
-2022/05/25 | 2783 | support/texlab/tests/it/snapshots/it__completion__latex__package_command.snap
-2022/05/25 | 2883 | support/texlab/tests/it/snapshots/it__completion__latex__package_environment.snap
-2022/05/25 | 4063 | support/texlab/tests/it/snapshots/it__completion__latex__package_import.snap
-2022/05/25 | 2835 | support/texlab/tests/it/snapshots/it__completion__latex__pgf_library.snap
-2022/05/25 | 2873 | support/texlab/tests/it/snapshots/it__completion__latex__preselect_environment.snap
-2022/05/25 | 2488 | support/texlab/tests/it/snapshots/it__completion__latex__theorem_environment.snap
-2022/05/25 | 548 | support/texlab/tests/it/snapshots/it__completion__latex__user_command.snap
-2022/05/25 | 938 | support/texlab/tests/it/snapshots/it__completion__latex__user_environment.snap
-2022/05/25 | 1696 | support/texlab/tests/it/snapshots/it__document_symbol__enumerate_flat.snap
-2022/05/25 | 2666 | support/texlab/tests/it/snapshots/it__document_symbol__enumerate_nested.snap
-2022/05/25 | 1084 | support/texlab/tests/it/snapshots/it__document_symbol__equation_flat.snap
-2022/05/25 | 1415 | support/texlab/tests/it/snapshots/it__document_symbol__equation_nested.snap
-2022/05/25 | 1088 | support/texlab/tests/it/snapshots/it__document_symbol__float_flat.snap
-2022/05/25 | 1423 | support/texlab/tests/it/snapshots/it__document_symbol__float_nested.snap
-2022/05/25 | 1061 | support/texlab/tests/it/snapshots/it__document_symbol__section_flat.snap
-2022/05/25 | 1504 | support/texlab/tests/it/snapshots/it__document_symbol__section_nested.snap
-2022/05/25 | 1408 | support/texlab/tests/it/snapshots/it__document_symbol__theorem_flat.snap
-2022/05/25 | 1864 | support/texlab/tests/it/snapshots/it__document_symbol__theorem_nested.snap
-2022/05/25 | 97 | support/texlab/tests/it/snapshots/it__hover__empty_bibtex_document.snap
-2022/05/25 | 97 | support/texlab/tests/it/snapshots/it__hover__empty_labtex_document.snap
-2022/05/25 | 306 | support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file_mumber.snap
-2022/05/25 | 298 | support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file.snap
-2022/05/25 | 1508 | support/texlab/tests/it/snapshots/it__issues__510_completion_with_unmatched_braces.snap
-2022/05/25 | 731 | support/texlab/tests/it/snapshots/it__workspace_symbol__filter_bibtex.snap
-2022/05/25 | 425 | support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_figure.snap
-2022/05/25 | 1045 | support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_item.snap
-2022/05/25 | 751 | support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_math.snap
-2022/05/25 | 1374 | support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_section.snap
-2022/05/25 | 3173 | support/texlab/tests/it/workspace_symbol.rs
-2022/05/25 | 643 | support/texlab/texlab.1
-2022/05/25 | 82740 | support/texlab/texlab.pdf
-2022/05/25 | 2586 | support/texlab/texlab.tex
-2022/05/25 | 7710925 | support/texlab.zip
+2022/06/12 | 1547 | support/texlab/benches/bench_main.rs
+2022/06/12 | 43636 | support/texlab/Cargo.lock
+2022/06/12 | 2222 | support/texlab/Cargo.toml
+2022/06/12 | 19654 | support/texlab/CHANGELOG.md
+2022/06/12 | 183 | support/texlab/CONTRIBUTING.md
+2022/06/12 | 6970534 | support/texlab/data/components.json.gz
+2022/06/12 | 57018 | support/texlab/data/lang_data.json
+2022/06/12 | 678 | support/texlab/docs/custom_commands.md
+2022/06/12 | 2021 | support/texlab/docs/custom_messages.md
+2022/06/12 | 380190 | support/texlab/docs/demo.gif
+2022/06/12 | 2250 | support/texlab/docs/lsp_kinds.md
+2022/06/12 | 3935 | support/texlab/docs/options.md
+2022/06/12 | 5516 | support/texlab/docs/previewing.md
+2022/06/12 | 1049 | support/texlab/docs/tectonic.md
+2022/06/12 | 35149 | support/texlab/LICENSE
+2022/06/12 | 3786 | support/texlab/README.md
+2022/06/12 | 6 | support/texlab/rust-toolchain
+2022/06/12 | 5284 | support/texlab/src/capabilities.rs
+2022/06/12 | 22218 | support/texlab/src/citation/driver.rs
+2022/06/12 | 3231 | support/texlab/src/citation/entry.rs
+2022/06/12 | 1631 | support/texlab/src/citation/field/author.rs
+2022/06/12 | 2477 | support/texlab/src/citation/field/date.rs
+2022/06/12 | 1385 | support/texlab/src/citation/field/number.rs
+2022/06/12 | 60 | support/texlab/src/citation/field.rs
+2022/06/12 | 6933 | support/texlab/src/citation/field/text.rs
+2022/06/12 | 1760 | support/texlab/src/citation/output.rs
+2022/06/12 | 905 | support/texlab/src/citation.rs
+2022/06/12 | 1064 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_aksin_2006.snap
+2022/06/12 | 800 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_betram_1996.snap
+2022/06/12 | 1330 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_blom_2021.snap
+2022/06/12 | 1062 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_jain_1999.snap
+2022/06/12 | 1314 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_kastenholz_2006.snap
+2022/06/12 | 988 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_rivest_1978.snap
+2022/06/12 | 585 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_aho_2006.snap
+2022/06/12 | 1411 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_averroes_1998.snap
+2022/06/12 | 1223 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_knuth_1984.snap
+2022/06/12 | 720 | support/texlab/src/citation/snapshots/texlab__citation__tests__collection_matuz_1990.snap
+2022/06/12 | 1176 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_combi_2004.snap
+2022/06/12 | 1051 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_erwin_2007.snap
+2022/06/12 | 1428 | support/texlab/src/citation/snapshots/texlab__citation__tests__mvbook_nietzsche_1988.snap
+2022/06/12 | 967 | support/texlab/src/citation/snapshots/texlab__citation__tests__patent_almendro_1998.snap
+2022/06/12 | 11851 | support/texlab/src/citation/tests.rs
+2022/06/12 | 1593 | support/texlab/src/client.rs
+2022/06/12 | 4554 | support/texlab/src/component_db.rs
+2022/06/12 | 4817 | support/texlab/src/diagnostics/bibtex.rs
+2022/06/12 | 2158 | support/texlab/src/diagnostics/build_log.rs
+2022/06/12 | 2986 | support/texlab/src/diagnostics/chktex.rs
+2022/06/12 | 2101 | support/texlab/src/diagnostics/debouncer.rs
+2022/06/12 | 4419 | support/texlab/src/diagnostics/latex.rs
+2022/06/12 | 1779 | support/texlab/src/diagnostics.rs
+2022/06/12 | 2416 | support/texlab/src/dispatch.rs
+2022/06/12 | 2035 | support/texlab/src/distro/kpsewhich.rs
+2022/06/12 | 2624 | support/texlab/src/distro/miktex.rs
+2022/06/12 | 2124 | support/texlab/src/distro.rs
+2022/06/12 | 1055 | support/texlab/src/distro/texlive.rs
+2022/06/12 | 3572 | support/texlab/src/document.rs
+2022/06/12 | 869 | support/texlab/src/environment.rs
+2022/06/12 | 8265 | support/texlab/src/features/build.rs
+2022/06/12 | 1127 | support/texlab/src/features/completion/acronym_ref.rs
+2022/06/12 | 2102 | support/texlab/src/features/completion/argument.rs
+2022/06/12 | 489 | support/texlab/src/features/completion/begin_command.rs
+2022/06/12 | 3274 | support/texlab/src/features/completion/citation.rs
+2022/06/12 | 1476 | support/texlab/src/features/completion/color_model.rs
+2022/06/12 | 674 | support/texlab/src/features/completion/color.rs
+2022/06/12 | 949 | support/texlab/src/features/completion/component_command.rs
+2022/06/12 | 829 | support/texlab/src/features/completion/component_environment.rs
+2022/06/12 | 892 | support/texlab/src/features/completion/entry_type.rs
+2022/06/12 | 1056 | support/texlab/src/features/completion/field.rs
+2022/06/12 | 1642 | support/texlab/src/features/completion/glossary_ref.rs
+2022/06/12 | 1828 | support/texlab/src/features/completion/import.rs
+2022/06/12 | 4725 | support/texlab/src/features/completion/include.rs
+2022/06/12 | 4172 | support/texlab/src/features/completion/label.rs
+2022/06/12 | 23770 | support/texlab/src/features/completion.rs
+2022/06/12 | 857 | support/texlab/src/features/completion/theorem.rs
+2022/06/12 | 1033 | support/texlab/src/features/completion/tikz_library.rs
+2022/06/12 | 3479 | support/texlab/src/features/completion/types.rs
+2022/06/12 | 970 | support/texlab/src/features/completion/user_command.rs
+2022/06/12 | 919 | support/texlab/src/features/completion/user_environment.rs
+2022/06/12 | 1767 | support/texlab/src/features/completion/util.rs
+2022/06/12 | 10234 | support/texlab/src/features/cursor.rs
+2022/06/12 | 1498 | support/texlab/src/features/definition/command.rs
+2022/06/12 | 1128 | support/texlab/src/features/definition/document.rs
+2022/06/12 | 1422 | support/texlab/src/features/definition/entry.rs
+2022/06/12 | 1364 | support/texlab/src/features/definition/label.rs
+2022/06/12 | 2150 | support/texlab/src/features/definition.rs
+2022/06/12 | 1196 | support/texlab/src/features/definition/string.rs
+2022/06/12 | 2840 | support/texlab/src/features/execute_command.rs
+2022/06/12 | 2056 | support/texlab/src/features/folding.rs
+2022/06/12 | 7574 | support/texlab/src/features/formatting/bibtex_internal.rs
+2022/06/12 | 2523 | support/texlab/src/features/formatting/latexindent.rs
+2022/06/12 | 784 | support/texlab/src/features/formatting.rs
+2022/06/12 | 3141 | support/texlab/src/features/forward_search.rs
+2022/06/12 | 2951 | support/texlab/src/features/highlight/label.rs
+2022/06/12 | 378 | support/texlab/src/features/highlight.rs
+2022/06/12 | 946 | support/texlab/src/features/hover/citation.rs
+2022/06/12 | 842 | support/texlab/src/features/hover/component.rs
+2022/06/12 | 578 | support/texlab/src/features/hover/entry_type.rs
+2022/06/12 | 630 | support/texlab/src/features/hover/field.rs
+2022/06/12 | 551 | support/texlab/src/features/hover/label.rs
+2022/06/12 | 1468 | support/texlab/src/features/hover.rs
+2022/06/12 | 1240 | support/texlab/src/features/hover/string_ref.rs
+2022/06/12 | 828 | support/texlab/src/features/link/include.rs
+2022/06/12 | 804 | support/texlab/src/features/link.rs
+2022/06/12 | 3997 | support/texlab/src/features/lsp_kinds.rs
+2022/06/12 | 2033 | support/texlab/src/features/reference/entry.rs
+2022/06/12 | 1045 | support/texlab/src/features/reference/label.rs
+2022/06/12 | 1096 | support/texlab/src/features/reference.rs
+2022/06/12 | 1499 | support/texlab/src/features/reference/string.rs
+2022/06/12 | 1511 | support/texlab/src/features/rename/command.rs
+2022/06/12 | 2435 | support/texlab/src/features/rename/entry.rs
+2022/06/12 | 3118 | support/texlab/src/features/rename/label.rs
+2022/06/12 | 1890 | support/texlab/src/features/rename.rs
+2022/06/12 | 1235 | support/texlab/src/features.rs
+2022/06/12 | 3397 | support/texlab/src/features/symbol/bibtex.rs
+2022/06/12 | 13898 | support/texlab/src/features/symbol/latex.rs
+2022/06/12 | 6355 | support/texlab/src/features/symbol/project_order.rs
+2022/06/12 | 3788 | support/texlab/src/features/symbol.rs
+2022/06/12 | 3700 | support/texlab/src/features/symbol/types.rs
+2022/06/12 | 8885 | support/texlab/src/label.rs
+2022/06/12 | 2046 | support/texlab/src/lang_data.rs
+2022/06/12 | 923 | support/texlab/src/language.rs
+2022/06/12 | 687 | support/texlab/src/lib.rs
+2022/06/12 | 1268 | support/texlab/src/line_index_ext.rs
+2022/06/12 | 6484 | support/texlab/src/line_index.rs
+2022/06/12 | 1994 | support/texlab/src/main.rs
+2022/06/12 | 3099 | support/texlab/src/options.rs
+2022/06/12 | 488 | support/texlab/src/range.rs
+2022/06/12 | 261 | support/texlab/src/req_queue.rs
+2022/06/12 | 34461 | support/texlab/src/server.rs
+2022/06/12 | 6825 | support/texlab/src/syntax/bibtex/ast.rs
+2022/06/12 | 3720 | support/texlab/src/syntax/bibtex/lexer.rs
+2022/06/12 | 7423 | support/texlab/src/syntax/bibtex/parser.rs
+2022/06/12 | 1300 | support/texlab/src/syntax/bibtex.rs
+2022/06/12 | 14551 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_001.snap
+2022/06/12 | 8201 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_002.snap
+2022/06/12 | 6630 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_003.snap
+2022/06/12 | 836 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__comment.snap
+2022/06/12 | 1300 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__entry_colon.snap
+2022/06/12 | 370 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__preamble.snap
+2022/06/12 | 4229 | support/texlab/src/syntax/bibtex/tests.rs
+2022/06/12 | 47382 | support/texlab/src/syntax/build_log.rs
+2022/06/12 | 666 | support/texlab/src/syntax/latex/analysis/command.rs
+2022/06/12 | 2185 | support/texlab/src/syntax/latex/analysis/distro_file.rs
+2022/06/12 | 373 | support/texlab/src/syntax/latex/analysis/environment.rs
+2022/06/12 | 2415 | support/texlab/src/syntax/latex/analysis/explicit_link.rs
+2022/06/12 | 466 | support/texlab/src/syntax/latex/analysis/graphics_path.rs
+2022/06/12 | 2047 | support/texlab/src/syntax/latex/analysis/implicit_link.rs
+2022/06/12 | 1984 | support/texlab/src/syntax/latex/analysis/label_name.rs
+2022/06/12 | 648 | support/texlab/src/syntax/latex/analysis/label_number.rs
+2022/06/12 | 1425 | support/texlab/src/syntax/latex/analysis.rs
+2022/06/12 | 586 | support/texlab/src/syntax/latex/analysis/theorem.rs
+2022/06/12 | 1919 | support/texlab/src/syntax/latex/analysis/types.rs
+2022/06/12 | 16996 | support/texlab/src/syntax/latex/cst.rs
+2022/06/12 | 4513 | support/texlab/src/syntax/latex/kind.rs
+2022/06/12 | 18522 | support/texlab/src/syntax/latex/lexer.rs
+2022/06/12 | 51260 | support/texlab/src/syntax/latex/parser.rs
+2022/06/12 | 771 | support/texlab/src/syntax/latex.rs
+2022/06/12 | 611 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__asymptote.snap
+2022/06/12 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__block_comment.snap
+2022/06/12 | 570 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_parameter.snap
+2022/06/12 | 277 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_star.snap
+2022/06/12 | 445 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__comment.snap
+2022/06/12 | 901 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__delimiters.snap
+2022/06/12 | 76 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__empty.snap
+2022/06/12 | 234 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__escape_sequence.snap
+2022/06/12 | 614 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__formula.snap
+2022/06/12 | 118 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__invalid_parameter.snap
+2022/06/12 | 242 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__line_break.snap
+2022/06/12 | 1475 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acronym_declaration.snap
+2022/06/12 | 1374 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_options.snap
+2022/06/12 | 742 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_simple.snap
+2022/06/12 | 786 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_options.snap
+2022/06/12 | 331 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_simple.snap
+2022/06/12 | 655 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__asymptote.snap
+2022/06/12 | 843 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__biblatex_include_options.snap
+2022/06/12 | 355 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__biblatex_include_simple.snap
+2022/06/12 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__bibtex_include_simple.snap
+2022/06/12 | 711 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__block_comments.snap
+2022/06/12 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_missing_end.snap
+2022/06/12 | 283 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_simple.snap
+2022/06/12 | 621 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_error.snap
+2022/06/12 | 772 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_figure.snap
+2022/06/12 | 489 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal_error.snap
+2022/06/12 | 491 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal.snap
+2022/06/12 | 623 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption.snap
+2022/06/12 | 243 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_empty.snap
+2022/06/12 | 287 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_missing_brace.snap
+2022/06/12 | 401 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_multiple_keys.snap
+2022/06/12 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote_postnote.snap
+2022/06/12 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote.snap
+2022/06/12 | 347 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_redundant_comma.snap
+2022/06/12 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_simple.snap
+2022/06/12 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_star.snap
+2022/06/12 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_empty.snap
+2022/06/12 | 1050 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_options.snap
+2022/06/12 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_simple.snap
+2022/06/12 | 710 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_definition_simple.snap
+2022/06/12 | 312 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_reference_simple.snap
+2022/06/12 | 855 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error1.snap
+2022/06/12 | 609 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error2.snap
+2022/06/12 | 497 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error3.snap
+2022/06/12 | 302 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error4.snap
+2022/06/12 | 967 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_simple.snap
+2022/06/12 | 464 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_argc.snap
+2022/06/12 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl_error.snap
+2022/06/12 | 356 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl.snap
+2022/06/12 | 747 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_optional.snap
+2022/06/12 | 631 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_simple.snap
+2022/06/12 | 1223 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_with_begin.snap
+2022/06/12 | 100 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__empty.snap
+2022/06/12 | 906 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_definition_optional_arg.snap
+2022/06/12 | 1134 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_definition.snap
+2022/06/12 | 1286 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested_missing_braces.snap
+2022/06/12 | 1136 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested.snap
+2022/06/12 | 727 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_simple.snap
+2022/06/12 | 313 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_label_reference_simple.snap
+2022/06/12 | 808 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_begin.snap
+2022/06/12 | 839 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_end.snap
+2022/06/12 | 360 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation.snap
+2022/06/12 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__escaped_brackets.snap
+2022/06/12 | 425 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_args.snap
+2022/06/12 | 170 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_empty.snap
+2022/06/12 | 166 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_escape.snap
+2022/06/12 | 944 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_definition_simple.snap
+2022/06/12 | 875 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_options.snap
+2022/06/12 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_simple.snap
+2022/06/12 | 939 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_command.snap
+2022/06/12 | 759 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_complicated_options.snap
+2022/06/12 | 696 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_options.snap
+2022/06/12 | 357 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_simple.snap
+2022/06/12 | 412 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_path.snap
+2022/06/12 | 205 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__hello_world.snap
+2022/06/12 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_incomplete.snap
+2022/06/12 | 428 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_simple.snap
+2022/06/12 | 668 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_options.snap
+2022/06/12 | 329 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_simple.snap
+2022/06/12 | 630 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline_double_dollar.snap
+2022/06/12 | 624 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline.snap
+2022/06/12 | 458 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_line_break.snap
+2022/06/12 | 310 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_simple.snap
+2022/06/12 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_number.snap
+2022/06/12 | 846 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_incomplete.snap
+2022/06/12 | 411 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_multiple.snap
+2022/06/12 | 468 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_error.snap
+2022/06/12 | 358 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_incomplete.snap
+2022/06/12 | 470 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_simple.snap
+2022/06/12 | 301 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_simple.snap
+2022/06/12 | 401 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_include_equality_sign.snap
+2022/06/12 | 321 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_include_simple.snap
+2022/06/12 | 453 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_path_with_brackets.snap
+2022/06/12 | 325 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_simple.snap
+2022/06/12 | 364 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_no_impl.snap
+2022/06/12 | 472 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_simple.snap
+2022/06/12 | 279 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_empty.snap
+2022/06/12 | 450 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_multiple.snap
+2022/06/12 | 1048 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_options.snap
+2022/06/12 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_simple.snap
+2022/06/12 | 135 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter_error.snap
+2022/06/12 | 137 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter.snap
+2022/06/12 | 343 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__pgf_library_import_simple.snap
+2022/06/12 | 1282 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_enum_item.snap
+2022/06/12 | 521 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_invalid_nesting.snap
+2022/06/12 | 1791 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_nested.snap
+2022/06/12 | 677 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_siblings.snap
+2022/06/12 | 676 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_options.snap
+2022/06/12 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_simple.snap
+2022/06/12 | 734 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_full.snap
+2022/06/12 | 490 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_counter.snap
+2022/06/12 | 598 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description_and_counter.snap
+2022/06/12 | 462 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description.snap
+2022/06/12 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_only_name.snap
+2022/06/12 | 345 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__tikz_library_import_simple.snap
+2022/06/12 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_braces.snap
+2022/06/12 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets.snap
+2022/06/12 | 285 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets_with_group.snap
+2022/06/12 | 353 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__verbatim_include_simple.snap
+2022/06/12 | 50 | support/texlab/src/syntax.rs
+2022/06/12 | 261 | support/texlab/src/syntax/snapshots/texlab__syntax__build_log__tests__parse_007.snap
+2022/06/12 | 7625 | support/texlab/src/workspace.rs
+2022/06/12 | 356 | support/texlab/tests/integration/dev.rs
+2022/06/12 | 4753 | support/texlab/tests/integration/lsp/client.rs
+2022/06/12 | 3664 | support/texlab/tests/integration/lsp/fixture.rs
+2022/06/12 | 59 | support/texlab/tests/integration/lsp.rs
+2022/06/12 | 14757 | support/texlab/tests/integration/lsp/text_document/completion.rs
+2022/06/12 | 3010 | support/texlab/tests/integration/lsp/text_document/definition.rs
+2022/06/12 | 1680 | support/texlab/tests/integration/lsp/text_document/document_highlight.rs
+2022/06/12 | 1601 | support/texlab/tests/integration/lsp/text_document/document_link.rs
+2022/06/12 | 8903 | support/texlab/tests/integration/lsp/text_document/document_symbol.rs
+2022/06/12 | 2282 | support/texlab/tests/integration/lsp/text_document/folding_range.rs
+2022/06/12 | 3472 | support/texlab/tests/integration/lsp/text_document/formatting.rs
+2022/06/12 | 5899 | support/texlab/tests/integration/lsp/text_document/hover.rs
+2022/06/12 | 4962 | support/texlab/tests/integration/lsp/text_document/references.rs
+2022/06/12 | 2096 | support/texlab/tests/integration/lsp/text_document/rename.rs
+2022/06/12 | 201 | support/texlab/tests/integration/lsp/text_document.rs
+2022/06/12 | 460 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_empty.snap
+2022/06/12 | 479 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_open_brace.snap
+2022/06/12 | 479 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_simple.snap
+2022/06/12 | 1344 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_empty.snap
+2022/06/12 | 1354 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_open_brace.snap
+2022/06/12 | 445 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_word.snap
+2022/06/12 | 1378 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__begin_environment_without_snippet_support.snap
+2022/06/12 | 511 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_acronym.snap
+2022/06/12 | 494 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace_multiple.snap
+2022/06/12 | 467 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace.snap
+2022/06/12 | 1017 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation.snap
+2022/06/12 | 1160 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_open_brace.snap
+2022/06/12 | 1156 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_open_brace.snap
+2022/06/12 | 1157 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_simple.snap
+2022/06/12 | 1161 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_simple.snap
+2022/06/12 | 1176 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_open_brace.snap
+2022/06/12 | 1177 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_simple.snap
+2022/06/12 | 1186 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_word.snap
+2022/06/12 | 1399 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_bibtex.snap
+2022/06/12 | 1381 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple_package.snap
+2022/06/12 | 1315 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple.snap
+2022/06/12 | 458 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_class.snap
+2022/06/12 | 475 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_command_definition.snap
+2022/06/12 | 1317 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple_end.snap
+2022/06/12 | 419 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple.snap
+2022/06/12 | 390 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_preamble.snap
+2022/06/12 | 380 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_string.snap
+2022/06/12 | 1349 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_at_empty.snap
+2022/06/12 | 417 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_article.snap
+2022/06/12 | 381 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_preamble.snap
+2022/06/12 | 373 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_string.snap
+2022/06/12 | 440 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_complete_entry.snap
+2022/06/12 | 1398 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_closed.snap
+2022/06/12 | 1397 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_open.snap
+2022/06/12 | 1423 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_field_name.snap
+2022/06/12 | 1464 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_closed.snap
+2022/06/12 | 1463 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_open.snap
+2022/06/12 | 464 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_open_brace.snap
+2022/06/12 | 465 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_simple.snap
+2022/06/12 | 1450 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_closed_brace.snap
+2022/06/12 | 1455 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_open_brace.snap
+2022/06/12 | 1437 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_closed_brace.snap
+2022/06/12 | 1436 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_open_brace.snap
+2022/06/12 | 2876 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__label.snap
+2022/06/12 | 449 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_begin.snap
+2022/06/12 | 458 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_end.snap
+2022/06/12 | 1255 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_closed_brace.snap
+2022/06/12 | 1254 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_open_brace.snap
+2022/06/12 | 475 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_command.snap
+2022/06/12 | 714 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_environment.snap
+2022/06/12 | 1624 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_flat.snap
+2022/06/12 | 2679 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_nested.snap
+2022/06/12 | 1037 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_flat.snap
+2022/06/12 | 1419 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_nested.snap
+2022/06/12 | 1043 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_flat.snap
+2022/06/12 | 1429 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_nested.snap
+2022/06/12 | 1016 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_flat.snap
+2022/06/12 | 1510 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_nested.snap
+2022/06/12 | 1344 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_flat.snap
+2022/06/12 | 1868 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_nested.snap
+2022/06/12 | 204 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_command.snap
+2022/06/12 | 193 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_insert_braces.snap
+2022/06/12 | 219 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_join_strings.snap
+2022/06/12 | 1003 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_multiple_entries.snap
+2022/06/12 | 170 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_parens.snap
+2022/06/12 | 203 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_preamble.snap
+2022/06/12 | 181 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_string.snap
+2022/06/12 | 194 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_trailing_comma.snap
+2022/06/12 | 567 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap
+2022/06/12 | 12 | support/texlab/tests/integration/lsp/workspace.rs
+2022/06/12 | 713 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_bibtex.snap
+2022/06/12 | 425 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_figure.snap
+2022/06/12 | 1012 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_item.snap
+2022/06/12 | 735 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_math.snap
+2022/06/12 | 1322 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_section.snap
+2022/06/12 | 3889 | support/texlab/tests/integration/lsp/workspace/symbol.rs
+2022/06/12 | 18 | support/texlab/tests/integration/main.rs
+2022/06/12 | 643 | support/texlab/texlab.1
+2022/06/12 | 82677 | support/texlab/texlab.pdf
+2022/06/12 | 2586 | support/texlab/texlab.tex
+2022/06/12 | 7695316 | support/texlab.zip
2011/11/27 | 456 | support/texlipse/plugin/1.5.0/README.TXT
2011/11/27 | 1726937 | support/texlipse/plugin/1.5.0/texlipse_1.5.0 src.zip
1999/01/30 | 6077 | support/texlist/README
@@ -277921,7 +277929,7 @@
2016/04/25 | 1045 | systems/doc/pdftex/manual/README
2016/04/25 | 1744 | systems/doc/pdftex/manual/syntaxform.awk
2016/04/25 | 3963 | systems/doc/pdftex/manual/syntaxform.pl
-2020/03/02 | 39770 | systems/doc/pdftex/NEWS
+2022/06/11 | 40067 | systems/doc/pdftex/NEWS
2017/04/21 | 2690 | systems/doc/pdftex/README
2006/01/03 | 9609 | systems/doc/pdftex/samplepdftex/cmr10.103
2022/06/08 | 2093 | systems/doc/pdftex/samplepdftex/efcode.tex
@@ -277989,7 +277997,7 @@
2020/03/02 | 319 | systems/doc/pdftex/tests/12-pdf2/test-doc2incl2.tex
2020/03/02 | 263 | systems/doc/pdftex/tests/12-pdf2/test-pdfmajor.tex
2017/04/21 | 1132 | systems/doc/pdftex/tests/Common.mak
-2022/06/09 | 2392131 | systems/doc/pdftex.zip
+2022/06/12 | 2392337 | systems/doc/pdftex.zip
2015/04/26 | 8134 | systems/doc/xetex/NEWS
2015/04/26 | 580 | systems/doc/xetex/README
2009/05/30 | 594620 | systems/doc/xetex/XeTeX-notes.pdf
@@ -281163,17 +281171,17 @@
2022/02/14 | 1388 | systems/texlive/tlnet/archive/bidi-atbegshi.r62009.tar.xz
2019/02/28 | 30508 | systems/texlive/tlnet/archive/bidicontour.doc.r34631.tar.xz
2019/02/28 | 1848 | systems/texlive/tlnet/archive/bidicontour.r34631.tar.xz
-2022/06/11 | 3950460 | systems/texlive/tlnet/archive/bidi.doc.r63539.tar.xz
+2022/06/12 | 3949288 | systems/texlive/tlnet/archive/bidi.doc.r63548.tar.xz
2019/02/28 | 43416 | systems/texlive/tlnet/archive/bidihl.doc.r37795.tar.xz
2019/02/28 | 2356 | systems/texlive/tlnet/archive/bidihl.r37795.tar.xz
2019/02/28 | 25800 | systems/texlive/tlnet/archive/bidipagegrid.doc.r34632.tar.xz
2019/02/28 | 3264 | systems/texlive/tlnet/archive/bidipagegrid.r34632.tar.xz
2019/02/28 | 75456 | systems/texlive/tlnet/archive/bidipresentation.doc.r35267.tar.xz
2019/02/28 | 28048 | systems/texlive/tlnet/archive/bidipresentation.r35267.tar.xz
-2022/06/11 | 126980 | systems/texlive/tlnet/archive/bidi.r63539.tar.xz
+2022/06/12 | 127076 | systems/texlive/tlnet/archive/bidi.r63548.tar.xz
2019/02/28 | 120564 | systems/texlive/tlnet/archive/bidishadowtext.doc.r34633.tar.xz
2019/02/28 | 1312 | systems/texlive/tlnet/archive/bidishadowtext.r34633.tar.xz
-2022/06/11 | 143956 | systems/texlive/tlnet/archive/bidi.source.r63539.tar.xz
+2022/06/12 | 144008 | systems/texlive/tlnet/archive/bidi.source.r63548.tar.xz
2019/02/28 | 736348 | systems/texlive/tlnet/archive/bigfoot.doc.r38248.tar.xz
2019/02/28 | 11372 | systems/texlive/tlnet/archive/bigfoot.r38248.tar.xz
2019/02/28 | 43760 | systems/texlive/tlnet/archive/bigfoot.source.r38248.tar.xz
@@ -282080,8 +282088,8 @@
2020/03/07 | 380 | systems/texlive/tlnet/archive/collection-langspanish.r54141.tar.xz
2022/06/01 | 6648 | systems/texlive/tlnet/archive/collection-latexextra.r63456.tar.xz
2022/06/10 | 700 | systems/texlive/tlnet/archive/collection-latex.r63515.tar.xz
-2021/02/24 | 772 | systems/texlive/tlnet/archive/collection-latexrecommended.r57862.tar.xz
-2022/04/20 | 804 | systems/texlive/tlnet/archive/collection-luatex.r63081.tar.xz
+2022/06/12 | 736 | systems/texlive/tlnet/archive/collection-latexrecommended.r63547.tar.xz
+2022/06/12 | 900 | systems/texlive/tlnet/archive/collection-luatex.r63549.tar.xz
2022/06/10 | 1608 | systems/texlive/tlnet/archive/collection-mathscience.r63517.tar.xz
2021/06/10 | 548 | systems/texlive/tlnet/archive/collection-metapost.r59531.tar.xz
2021/02/24 | 476 | systems/texlive/tlnet/archive/collection-music.r57878.tar.xz
@@ -286472,6 +286480,8 @@
2020/09/16 | 352 | systems/texlive/tlnet/archive/light-latex-make.x86_64-linuxmusl.r56352.tar.xz
2020/09/16 | 352 | systems/texlive/tlnet/archive/light-latex-make.x86_64-linux.r56352.tar.xz
2020/09/16 | 348 | systems/texlive/tlnet/archive/light-latex-make.x86_64-solaris.r56352.tar.xz
+2022/06/12 | 90760 | systems/texlive/tlnet/archive/ligtype.doc.r63549.tar.xz
+2022/06/12 | 9648 | systems/texlive/tlnet/archive/ligtype.r63549.tar.xz
2019/02/28 | 404 | systems/texlive/tlnet/archive/lilyglyphs.aarch64-linux.r46208.tar.xz
2019/02/28 | 404 | systems/texlive/tlnet/archive/lilyglyphs.amd64-freebsd.r31696.tar.xz
2019/02/28 | 404 | systems/texlive/tlnet/archive/lilyglyphs.amd64-netbsd.r31696.tar.xz
@@ -288687,7 +288697,7 @@
2020/07/08 | 379844 | systems/texlive/tlnet/archive/pdftexcmds.doc.r55777.tar.xz
2020/07/08 | 6316 | systems/texlive/tlnet/archive/pdftexcmds.r55777.tar.xz
2020/07/08 | 14052 | systems/texlive/tlnet/archive/pdftexcmds.source.r55777.tar.xz
-2022/06/10 | 2091552 | systems/texlive/tlnet/archive/pdftex.doc.r63512.tar.xz
+2022/06/12 | 2091868 | systems/texlive/tlnet/archive/pdftex.doc.r63546.tar.xz
2022/03/10 | 813844 | systems/texlive/tlnet/archive/pdftex.i386-cygwin.r62546.tar.xz
2022/03/10 | 797936 | systems/texlive/tlnet/archive/pdftex.i386-freebsd.r62568.tar.xz
2022/03/09 | 852756 | systems/texlive/tlnet/archive/pdftex.i386-linux.r62534.tar.xz
@@ -288710,7 +288720,7 @@
2019/02/28 | 348 | systems/texlive/tlnet/archive/pdftex-quiet.x86_64-linuxmusl.r49140.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/pdftex-quiet.x86_64-linux.r49140.tar.xz
2019/02/28 | 340 | systems/texlive/tlnet/archive/pdftex-quiet.x86_64-solaris.r49140.tar.xz
-2022/06/10 | 36960 | systems/texlive/tlnet/archive/pdftex.r63512.tar.xz
+2022/06/12 | 36956 | systems/texlive/tlnet/archive/pdftex.r63546.tar.xz
2022/03/11 | 1700036 | systems/texlive/tlnet/archive/pdftex.universal-darwin.r62610.tar.xz
2022/03/11 | 711728 | systems/texlive/tlnet/archive/pdftex.win32.r62609.tar.xz
2022/03/10 | 825568 | systems/texlive/tlnet/archive/pdftex.x86_64-cygwin.r62545.tar.xz
@@ -290173,6 +290183,7 @@
2021/03/02 | 2216 | systems/texlive/tlnet/archive/schemata.r58020.tar.xz
2021/03/02 | 22824 | systems/texlive/tlnet/archive/schemata.source.r58020.tar.xz
2020/03/09 | 440 | systems/texlive/tlnet/archive/scheme-basic.r54191.tar.xz
+2022/06/12 | 620 | systems/texlive/tlnet/archive/scheme-bookpub.r63547.tar.xz
2021/06/20 | 440 | systems/texlive/tlnet/archive/scheme-context.r59636.tar.xz
2020/03/04 | 564 | systems/texlive/tlnet/archive/scheme-full.r54074.tar.xz
2021/06/30 | 604 | systems/texlive/tlnet/archive/scheme-gust.r59755.tar.xz
@@ -290386,8 +290397,12 @@
2021/01/14 | 604612 | systems/texlive/tlnet/archive/showexpl.doc.r57414.tar.xz
2021/01/14 | 4184 | systems/texlive/tlnet/archive/showexpl.r57414.tar.xz
2021/01/14 | 9180 | systems/texlive/tlnet/archive/showexpl.source.r57414.tar.xz
+2022/06/12 | 59780 | systems/texlive/tlnet/archive/showhyphenation.doc.r63550.tar.xz
+2022/06/12 | 2880 | systems/texlive/tlnet/archive/showhyphenation.r63550.tar.xz
2019/02/28 | 86248 | systems/texlive/tlnet/archive/showhyphens.doc.r39787.tar.xz
2019/02/28 | 1784 | systems/texlive/tlnet/archive/showhyphens.r39787.tar.xz
+2022/06/12 | 45624 | systems/texlive/tlnet/archive/showkerning.doc.r63551.tar.xz
+2022/06/12 | 2448 | systems/texlive/tlnet/archive/showkerning.r63551.tar.xz
2021/10/28 | 231580 | systems/texlive/tlnet/archive/showlabels.doc.r60877.tar.xz
2021/10/28 | 3212 | systems/texlive/tlnet/archive/showlabels.r60877.tar.xz
2021/10/28 | 15948 | systems/texlive/tlnet/archive/showlabels.source.r60877.tar.xz
@@ -290543,6 +290558,8 @@
2020/04/27 | 5153396 | systems/texlive/tlnet/archive/sourcesanspro.r54892.tar.xz
2020/03/24 | 542680 | systems/texlive/tlnet/archive/sourceserifpro.doc.r54512.tar.xz
2020/03/24 | 3673368 | systems/texlive/tlnet/archive/sourceserifpro.r54512.tar.xz
+2022/06/12 | 60068 | systems/texlive/tlnet/archive/spacekern.doc.r63552.tar.xz
+2022/06/12 | 2504 | systems/texlive/tlnet/archive/spacekern.r63552.tar.xz
2021/09/21 | 98732 | systems/texlive/tlnet/archive/spacingtricks.doc.r60559.tar.xz
2021/09/21 | 1636 | systems/texlive/tlnet/archive/spacingtricks.r60559.tar.xz
2021/09/21 | 8468 | systems/texlive/tlnet/archive/spacingtricks.source.r60559.tar.xz
@@ -291316,7 +291333,7 @@
2021/03/23 | 276 | systems/texlive/tlnet/archive/texlive-it.r58653.tar.xz
2022/03/20 | 1898212 | systems/texlive/tlnet/archive/texlive-ja.doc.r62817.tar.xz
2022/03/20 | 276 | systems/texlive/tlnet/archive/texlive-ja.r62817.tar.xz
-2022/04/19 | 146916 | systems/texlive/tlnet/archive/texlive-msg-translations.r63072.tar.xz
+2022/06/12 | 146900 | systems/texlive/tlnet/archive/texlive-msg-translations.r63545.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/texliveonfly.aarch64-linux.r46208.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/texliveonfly.amd64-freebsd.r24062.tar.xz
2019/02/28 | 344 | systems/texlive/tlnet/archive/texliveonfly.amd64-netbsd.r30191.tar.xz
@@ -291343,7 +291360,7 @@
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.amd64-freebsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.amd64-netbsd.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.armhf-linux.r55172.tar.xz
-2022/06/11 | 407048 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63541.tar.xz
+2022/06/12 | 407048 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63544.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.aarch64-linux.r53577.tar.xz
2020/01/27 | 924 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-freebsd.r53577.tar.xz
2020/01/27 | 916 | systems/texlive/tlnet/archive/texlive-scripts-extra.amd64-netbsd.r53577.tar.xz
@@ -291367,7 +291384,7 @@
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-linux.r55172.tar.xz
2020/05/17 | 592 | systems/texlive/tlnet/archive/texlive-scripts.i386-netbsd.r55172.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.i386-solaris.r55172.tar.xz
-2022/06/11 | 109780 | systems/texlive/tlnet/archive/texlive-scripts.r63541.tar.xz
+2022/06/12 | 109792 | systems/texlive/tlnet/archive/texlive-scripts.r63544.tar.xz
2021/02/25 | 572 | systems/texlive/tlnet/archive/texlive-scripts.universal-darwin.r57908.tar.xz
2022/04/19 | 36296 | systems/texlive/tlnet/archive/texlive-scripts.win32.r63068.tar.xz
2020/05/17 | 588 | systems/texlive/tlnet/archive/texlive-scripts.x86_64-cygwin.r55172.tar.xz
@@ -293180,16 +293197,16 @@
2020/07/18 | 47816 | systems/texlive/tlnet/archive/zztex.doc.r55862.tar.xz
2020/07/18 | 101724 | systems/texlive/tlnet/archive/zztex.r55862.tar.xz
2022/06/11 | 108520 | systems/texlive/tlnet/install-tl
-2022/06/11 | 5800496 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/06/11 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/06/11 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/06/12 | 5800488 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/06/12 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/06/12 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
2021/04/11 | 4945 | systems/texlive/tlnet/install-tl-windows.bat
-2022/06/11 | 20462744 | systems/texlive/tlnet/install-tl-windows.exe
-2022/06/11 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/06/11 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/06/11 | 25483992 | systems/texlive/tlnet/install-tl.zip
-2022/06/11 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/06/11 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/06/12 | 20464997 | systems/texlive/tlnet/install-tl-windows.exe
+2022/06/12 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/06/12 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/06/12 | 25484011 | systems/texlive/tlnet/install-tl.zip
+2022/06/12 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/06/12 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
2022/04/03 | 1229 | systems/texlive/tlnet/README.md
2022/04/03 | 0 | systems/texlive/tlnet/TEXLIVE_2022
2022/02/28 | 7791 | systems/texlive/tlnet/tlpkg/gpg/pubring.gpg
@@ -293199,7 +293216,7 @@
2022/02/28 | 1280 | systems/texlive/tlnet/tlpkg/gpg/trustdb.gpg
2022/05/27 | 49794 | systems/texlive/tlnet/tlpkg/installer/config.guess
2010/11/11 | 11651 | systems/texlive/tlnet/tlpkg/installer/COPYING.MinGW-runtime.txt
-2022/06/10 | 7388 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/06/11 | 7397 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/04/27 | 215352 | systems/texlive/tlnet/tlpkg/installer/curl/curl-ca-bundle.crt
2020/04/15 | 2606592 | systems/texlive/tlnet/tlpkg/installer/curl/curl.exe
2017/04/16 | 2629 | systems/texlive/tlnet/tlpkg/installer/installer-options.txt
@@ -293241,12 +293258,12 @@
2021/05/16 | 20371 | systems/texlive/tlnet/tlpkg/TeXLive/TLCrypto.pm
2021/12/21 | 5429 | systems/texlive/tlnet/tlpkg/TeXLive/TLDownload.pm
2021/12/21 | 27582 | systems/texlive/tlnet/tlpkg/TeXLive/TLPaper.pm
-2022/06/11 | 17506510 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/06/11 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/06/12 | 17512345 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/06/12 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
2022/04/18 | 86658 | systems/texlive/tlnet/tlpkg/TeXLive/TLPDB.pm
-2022/06/11 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/06/11 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/06/11 | 2383972 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/06/12 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/06/12 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/06/12 | 2384876 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
2021/12/21 | 58848 | systems/texlive/tlnet/tlpkg/TeXLive/TLPOBJ.pm
2022/04/18 | 42116 | systems/texlive/tlnet/tlpkg/TeXLive/TLPSRC.pm
2021/12/21 | 16130 | systems/texlive/tlnet/tlpkg/TeXLive/TLTREE.pm
@@ -295947,27 +295964,27 @@
2022/03/14 | 3547 | systems/texlive/tlnet/tlpkg/tltcl/lib/tkConfig.sh
2018/11/30 | 1310 | systems/texlive/tlnet/tlpkg/tltcl/tlmgr.gif
2021/10/13 | 25696 | systems/texlive/tlnet/tlpkg/tltcl/tltcl.tcl
-2022/04/12 | 82328 | systems/texlive/tlnet/tlpkg/translations/cs.po
-2022/04/12 | 57597 | systems/texlive/tlnet/tlpkg/translations/da.po
-2022/04/12 | 89787 | systems/texlive/tlnet/tlpkg/translations/de.po
-2022/04/12 | 79475 | systems/texlive/tlnet/tlpkg/translations/es.po
-2022/04/18 | 94215 | systems/texlive/tlnet/tlpkg/translations/fr.po
-2022/04/12 | 87808 | systems/texlive/tlnet/tlpkg/translations/it.po
-2022/04/12 | 62755 | systems/texlive/tlnet/tlpkg/translations/ja.po
-2022/04/12 | 47164 | systems/texlive/tlnet/tlpkg/translations/messages.pot
-2022/04/12 | 58120 | systems/texlive/tlnet/tlpkg/translations/nl.po
-2022/04/12 | 67220 | systems/texlive/tlnet/tlpkg/translations/pl.po
-2022/04/12 | 82660 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
+2022/06/11 | 82328 | systems/texlive/tlnet/tlpkg/translations/cs.po
+2022/06/11 | 57597 | systems/texlive/tlnet/tlpkg/translations/da.po
+2022/06/11 | 89787 | systems/texlive/tlnet/tlpkg/translations/de.po
+2022/06/11 | 79475 | systems/texlive/tlnet/tlpkg/translations/es.po
+2022/06/11 | 94215 | systems/texlive/tlnet/tlpkg/translations/fr.po
+2022/06/11 | 87808 | systems/texlive/tlnet/tlpkg/translations/it.po
+2022/06/11 | 62755 | systems/texlive/tlnet/tlpkg/translations/ja.po
+2022/06/11 | 47164 | systems/texlive/tlnet/tlpkg/translations/messages.pot
+2022/06/11 | 58120 | systems/texlive/tlnet/tlpkg/translations/nl.po
+2022/06/11 | 67220 | systems/texlive/tlnet/tlpkg/translations/pl.po
+2022/06/11 | 82660 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
2019/03/25 | 430 | systems/texlive/tlnet/tlpkg/translations/README
-2022/04/12 | 107491 | systems/texlive/tlnet/tlpkg/translations/ru.po
-2022/04/12 | 89151 | systems/texlive/tlnet/tlpkg/translations/sk.po
-2022/04/12 | 70353 | systems/texlive/tlnet/tlpkg/translations/sl.po
-2022/04/12 | 103384 | systems/texlive/tlnet/tlpkg/translations/sr.po
+2022/06/11 | 107491 | systems/texlive/tlnet/tlpkg/translations/ru.po
+2022/06/11 | 89151 | systems/texlive/tlnet/tlpkg/translations/sk.po
+2022/06/11 | 70353 | systems/texlive/tlnet/tlpkg/translations/sl.po
+2022/06/11 | 103384 | systems/texlive/tlnet/tlpkg/translations/sr.po
2019/03/28 | 847 | systems/texlive/tlnet/tlpkg/translations/translators
-2022/04/12 | 80489 | systems/texlive/tlnet/tlpkg/translations/uk.po
-2022/04/12 | 90493 | systems/texlive/tlnet/tlpkg/translations/vi.po
-2022/04/12 | 63461 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po
-2022/04/12 | 53392 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
+2022/06/11 | 80489 | systems/texlive/tlnet/tlpkg/translations/uk.po
+2022/06/11 | 90493 | systems/texlive/tlnet/tlpkg/translations/vi.po
+2022/06/11 | 63461 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po
+2022/06/11 | 53392 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
2022/04/17 | 4664090 | systems/texlive/tlnet/update-tlmgr-r63037.exe
2022/04/17 | 154 | systems/texlive/tlnet/update-tlmgr-r63037.exe.sha512
2022/04/17 | 455 | systems/texlive/tlnet/update-tlmgr-r63037.exe.sha512.asc
@@ -296711,9 +296728,9 @@
2009/04/21 | 35717 | systems/win32/miktex/tm/packages/accfonts.tar.lzma
2019/12/06 | 338331 | systems/win32/miktex/tm/packages/accsupp.tar.lzma
2021/01/22 | 912973 | systems/win32/miktex/tm/packages/achemso.tar.lzma
-2022/04/15 | 4244771 | systems/win32/miktex/tm/packages/acmart__doc.tar.lzma
-2022/04/15 | 58525 | systems/win32/miktex/tm/packages/acmart__source.tar.lzma
-2022/04/15 | 41523 | systems/win32/miktex/tm/packages/acmart.tar.lzma
+2022/06/12 | 4660428 | systems/win32/miktex/tm/packages/acmart__doc.tar.lzma
+2022/06/12 | 59920 | systems/win32/miktex/tm/packages/acmart__source.tar.lzma
+2022/06/12 | 42043 | systems/win32/miktex/tm/packages/acmart.tar.lzma
2016/07/19 | 105378 | systems/win32/miktex/tm/packages/acmconf.tar.lzma
2022/04/05 | 1230532 | systems/win32/miktex/tm/packages/acro__doc.tar.lzma
2016/08/30 | 774465 | systems/win32/miktex/tm/packages/acroflex.tar.lzma
@@ -296816,9 +296833,9 @@
2021/06/06 | 49641 | systems/win32/miktex/tm/packages/amsfonts__source.tar.lzma
2021/06/06 | 3624424 | systems/win32/miktex/tm/packages/amsfonts.tar.lzma
2013/02/01 | 568955 | systems/win32/miktex/tm/packages/amslatex-primer.tar.lzma
-2021/11/13 | 2342011 | systems/win32/miktex/tm/packages/amsmath__doc.tar.lzma
-2021/11/13 | 115453 | systems/win32/miktex/tm/packages/amsmath__source.tar.lzma
-2021/11/13 | 31094 | systems/win32/miktex/tm/packages/amsmath.tar.lzma
+2022/06/12 | 2368506 | systems/win32/miktex/tm/packages/amsmath__doc.tar.lzma
+2022/06/12 | 115963 | systems/win32/miktex/tm/packages/amsmath__source.tar.lzma
+2022/06/12 | 31431 | systems/win32/miktex/tm/packages/amsmath.tar.lzma
2013/03/11 | 2065077 | systems/win32/miktex/tm/packages/amsrefs.tar.lzma
2011/06/23 | 385532 | systems/win32/miktex/tm/packages/amstex.tar.lzma
2008/12/23 | 68780 | systems/win32/miktex/tm/packages/analogclock.tar.lzma
@@ -296843,7 +296860,9 @@
2007/12/09 | 2450 | systems/win32/miktex/tm/packages/anyfontsize.tar.lzma
2016/07/20 | 36014 | systems/win32/miktex/tm/packages/anysize.tar.lzma
2016/05/03 | 95543 | systems/win32/miktex/tm/packages/aobs-tikz.tar.lzma
-2021/04/14 | 1193779 | systems/win32/miktex/tm/packages/aomart.tar.lzma
+2022/06/12 | 1182581 | systems/win32/miktex/tm/packages/aomart__doc.tar.lzma
+2022/06/12 | 27553 | systems/win32/miktex/tm/packages/aomart__source.tar.lzma
+2022/06/12 | 14021 | systems/win32/miktex/tm/packages/aomart.tar.lzma
2011/07/04 | 257190 | systems/win32/miktex/tm/packages/apa6e.tar.lzma
2020/01/14 | 613370 | systems/win32/miktex/tm/packages/apa6.tar.lzma
2022/01/24 | 748267 | systems/win32/miktex/tm/packages/apa7__doc.tar.lzma
@@ -296874,7 +296893,9 @@
2021/12/15 | 1898718 | systems/win32/miktex/tm/packages/arabi__source.tar.lzma
2021/12/15 | 82891 | systems/win32/miktex/tm/packages/arabi.tar.lzma
2020/03/25 | 834312 | systems/win32/miktex/tm/packages/arabluatex.tar.lzma
-2012/03/21 | 618786 | systems/win32/miktex/tm/packages/arabtex.tar.lzma
+2022/06/12 | 364698 | systems/win32/miktex/tm/packages/arabtex__doc.tar.lzma
+2022/06/12 | 1251619 | systems/win32/miktex/tm/packages/arabtex__source.tar.lzma
+2022/06/12 | 116734 | systems/win32/miktex/tm/packages/arabtex.tar.lzma
2015/09/08 | 525679 | systems/win32/miktex/tm/packages/arabxetex.tar.lzma
2022/05/15 | 5044338 | systems/win32/miktex/tm/packages/arara__doc.tar.lzma
2022/05/15 | 115937 | systems/win32/miktex/tm/packages/arara__source.tar.lzma
@@ -296977,7 +296998,7 @@
2014/09/29 | 121076 | systems/win32/miktex/tm/packages/babel-croatian.tar.lzma
2014/05/21 | 206798 | systems/win32/miktex/tm/packages/babel-czech.tar.lzma
2021/02/10 | 144839 | systems/win32/miktex/tm/packages/babel-danish.tar.lzma
-2022/05/25 | 849621 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma
+2022/06/12 | 869696 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma
2021/09/06 | 157877 | systems/win32/miktex/tm/packages/babel-dutch__doc.tar.lzma
2021/09/06 | 8372 | systems/win32/miktex/tm/packages/babel-dutch__source.tar.lzma
2021/09/06 | 3172 | systems/win32/miktex/tm/packages/babel-dutch.tar.lzma
@@ -297036,11 +297057,11 @@
2021/11/07 | 210288 | systems/win32/miktex/tm/packages/babel-sorbian__doc.tar.lzma
2021/11/07 | 6727 | systems/win32/miktex/tm/packages/babel-sorbian__source.tar.lzma
2021/11/07 | 3401 | systems/win32/miktex/tm/packages/babel-sorbian.tar.lzma
-2022/05/25 | 700275 | systems/win32/miktex/tm/packages/babel__source.tar.lzma
+2022/06/12 | 718701 | systems/win32/miktex/tm/packages/babel__source.tar.lzma
2015/05/25 | 5256 | systems/win32/miktex/tm/packages/babel-spanglish.tar.lzma
2021/05/29 | 222183 | systems/win32/miktex/tm/packages/babel-spanish.tar.lzma
2021/02/10 | 148420 | systems/win32/miktex/tm/packages/babel-swedish.tar.lzma
-2022/05/25 | 185375 | systems/win32/miktex/tm/packages/babel.tar.lzma
+2022/06/12 | 190551 | systems/win32/miktex/tm/packages/babel.tar.lzma
2014/05/21 | 234101 | systems/win32/miktex/tm/packages/babel-thai.tar.lzma
2019/07/06 | 309208 | systems/win32/miktex/tm/packages/babel-turkish.tar.lzma
2021/01/17 | 159246 | systems/win32/miktex/tm/packages/babel-ukrainian.tar.lzma
@@ -297073,9 +297094,9 @@
2020/06/09 | 1269283 | systems/win32/miktex/tm/packages/baskervillef.tar.lzma
2014/02/14 | 401583 | systems/win32/miktex/tm/packages/basque-book.tar.lzma
2012/05/29 | 200192 | systems/win32/miktex/tm/packages/basque-date.tar.lzma
-2022/03/07 | 900065 | systems/win32/miktex/tm/packages/bath-bst__doc.tar.lzma
-2022/03/07 | 36437 | systems/win32/miktex/tm/packages/bath-bst__source.tar.lzma
-2022/03/07 | 8445 | systems/win32/miktex/tm/packages/bath-bst.tar.lzma
+2022/06/12 | 908210 | systems/win32/miktex/tm/packages/bath-bst__doc.tar.lzma
+2022/06/12 | 37747 | systems/win32/miktex/tm/packages/bath-bst__source.tar.lzma
+2022/06/12 | 8634 | systems/win32/miktex/tm/packages/bath-bst.tar.lzma
2016/07/20 | 459648 | systems/win32/miktex/tm/packages/bbding.tar.lzma
2008/11/20 | 35017 | systems/win32/miktex/tm/packages/bbm.tar.lzma
2007/09/01 | 23284 | systems/win32/miktex/tm/packages/bbold.tar.lzma
@@ -297100,6 +297121,9 @@
2011/08/12 | 444235 | systems/win32/miktex/tm/packages/beamersubframe.tar.lzma
2021/04/23 | 282970 | systems/win32/miktex/tm/packages/beamerswitch.tar.lzma
2022/05/25 | 166867 | systems/win32/miktex/tm/packages/beamer.tar.lzma
+2022/06/12 | 348580 | systems/win32/miktex/tm/packages/beamerthemeamurmaple__doc.tar.lzma
+2022/06/12 | 176240 | systems/win32/miktex/tm/packages/beamerthemeamurmaple__source.tar.lzma
+2022/06/12 | 5646 | systems/win32/miktex/tm/packages/beamerthemeamurmaple.tar.lzma
2022/03/12 | 716553 | systems/win32/miktex/tm/packages/beamertheme-arguelles__doc.tar.lzma
2022/03/12 | 952 | systems/win32/miktex/tm/packages/beamertheme-arguelles__source.tar.lzma
2022/03/12 | 2348 | systems/win32/miktex/tm/packages/beamertheme-arguelles.tar.lzma
@@ -297184,9 +297208,9 @@
2020/01/02 | 5062923 | systems/win32/miktex/tm/packages/biblatex-archaeology.tar.lzma
2018/02/14 | 192153 | systems/win32/miktex/tm/packages/biblatex-arthistory-bonn.tar.lzma
2010/07/12 | 2404 | systems/win32/miktex/tm/packages/biblatex-authoryear-icomp-tt.tar.lzma
-2022/03/07 | 387196 | systems/win32/miktex/tm/packages/biblatex-bath__doc.tar.lzma
-2022/03/07 | 32006 | systems/win32/miktex/tm/packages/biblatex-bath__source.tar.lzma
-2022/03/07 | 8414 | systems/win32/miktex/tm/packages/biblatex-bath.tar.lzma
+2022/06/12 | 447853 | systems/win32/miktex/tm/packages/biblatex-bath__doc.tar.lzma
+2022/06/12 | 34960 | systems/win32/miktex/tm/packages/biblatex-bath__source.tar.lzma
+2022/06/12 | 10157 | systems/win32/miktex/tm/packages/biblatex-bath.tar.lzma
2016/04/12 | 106899 | systems/win32/miktex/tm/packages/biblatex-bookinarticle.tar.lzma
2020/03/03 | 286022 | systems/win32/miktex/tm/packages/biblatex-bookinother.tar.lzma
2012/05/29 | 115804 | systems/win32/miktex/tm/packages/biblatex-bwl.tar.lzma
@@ -297292,13 +297316,13 @@
2022/02/18 | 1800 | systems/win32/miktex/tm/packages/bidi-atbegshi__source.tar.lzma
2022/02/18 | 1614 | systems/win32/miktex/tm/packages/bidi-atbegshi.tar.lzma
2014/07/18 | 32691 | systems/win32/miktex/tm/packages/bidicontour.tar.lzma
-2022/05/25 | 3824969 | systems/win32/miktex/tm/packages/bidi__doc.tar.lzma
+2022/06/12 | 3954350 | systems/win32/miktex/tm/packages/bidi__doc.tar.lzma
2015/07/14 | 45842 | systems/win32/miktex/tm/packages/bidihl.tar.lzma
2014/07/18 | 29429 | systems/win32/miktex/tm/packages/bidipagegrid.tar.lzma
2014/09/29 | 102419 | systems/win32/miktex/tm/packages/bidipresentation.tar.lzma
2014/07/18 | 122091 | systems/win32/miktex/tm/packages/bidishadowtext.tar.lzma
-2022/05/25 | 137523 | systems/win32/miktex/tm/packages/bidi__source.tar.lzma
-2022/05/25 | 119689 | systems/win32/miktex/tm/packages/bidi.tar.lzma
+2022/06/12 | 143961 | systems/win32/miktex/tm/packages/bidi__source.tar.lzma
+2022/06/12 | 126663 | systems/win32/miktex/tm/packages/bidi.tar.lzma
2015/09/01 | 787676 | systems/win32/miktex/tm/packages/bigfoot.tar.lzma
2019/12/20 | 478294 | systems/win32/miktex/tm/packages/bigintcalc.tar.lzma
2010/03/08 | 109153 | systems/win32/miktex/tm/packages/bigints.tar.lzma
@@ -297774,11 +297798,13 @@
2017/03/28 | 87081 | systems/win32/miktex/tm/packages/conv-xkv.tar.lzma
2015/01/13 | 388467 | systems/win32/miktex/tm/packages/cookingsymbols.tar.lzma
2016/07/15 | 67621 | systems/win32/miktex/tm/packages/cooking.tar.lzma
-2022/03/29 | 720241 | systems/win32/miktex/tm/packages/cooking-units__doc.tar.lzma
-2022/03/29 | 68314 | systems/win32/miktex/tm/packages/cooking-units__source.tar.lzma
-2022/03/29 | 21009 | systems/win32/miktex/tm/packages/cooking-units.tar.lzma
+2022/06/12 | 724198 | systems/win32/miktex/tm/packages/cooking-units__doc.tar.lzma
+2022/06/12 | 70051 | systems/win32/miktex/tm/packages/cooking-units__source.tar.lzma
+2022/06/12 | 21422 | systems/win32/miktex/tm/packages/cooking-units.tar.lzma
2009/10/14 | 887213 | systems/win32/miktex/tm/packages/cookybooky.tar.lzma
-2009/09/24 | 119752 | systems/win32/miktex/tm/packages/coollist.tar.lzma
+2022/06/12 | 111031 | systems/win32/miktex/tm/packages/coollist__doc.tar.lzma
+2022/06/12 | 7345 | systems/win32/miktex/tm/packages/coollist__source.tar.lzma
+2022/06/12 | 2538 | systems/win32/miktex/tm/packages/coollist.tar.lzma
2009/09/11 | 125261 | systems/win32/miktex/tm/packages/coolstr.tar.lzma
2007/01/02 | 450020 | systems/win32/miktex/tm/packages/cool.tar.bz2
2013/02/11 | 120070 | systems/win32/miktex/tm/packages/coolthms.tar.lzma
@@ -297812,9 +297838,9 @@
2018/05/11 | 2710331 | systems/win32/miktex/tm/packages/cqubeamer.tar.lzma
2020/06/24 | 1215573 | systems/win32/miktex/tm/packages/cquthesis.tar.lzma
2013/04/08 | 31446 | systems/win32/miktex/tm/packages/crbox.tar.lzma
-2022/05/25 | 125248 | systems/win32/miktex/tm/packages/create-theorem__doc.tar.lzma
-2022/05/25 | 6065 | systems/win32/miktex/tm/packages/create-theorem__source.tar.lzma
-2022/05/25 | 9562 | systems/win32/miktex/tm/packages/create-theorem.tar.lzma
+2022/06/12 | 131572 | systems/win32/miktex/tm/packages/create-theorem__doc.tar.lzma
+2022/06/12 | 6414 | systems/win32/miktex/tm/packages/create-theorem__source.tar.lzma
+2022/06/12 | 9771 | systems/win32/miktex/tm/packages/create-theorem.tar.lzma
2022/05/15 | 121301 | systems/win32/miktex/tm/packages/crefthe__doc.tar.lzma
2022/05/15 | 4529 | systems/win32/miktex/tm/packages/crefthe__source.tar.lzma
2022/05/15 | 3207 | systems/win32/miktex/tm/packages/crefthe.tar.lzma
@@ -297836,6 +297862,9 @@
2021/08/19 | 51267 | systems/win32/miktex/tm/packages/cryptocode__source.tar.lzma
2021/08/19 | 21824 | systems/win32/miktex/tm/packages/cryptocode.tar.lzma
2008/08/08 | 67360 | systems/win32/miktex/tm/packages/cryst.tar.lzma
+2022/06/12 | 105995 | systems/win32/miktex/tm/packages/csassignments__doc.tar.lzma
+2022/06/12 | 8634 | systems/win32/miktex/tm/packages/csassignments__source.tar.lzma
+2022/06/12 | 4052 | systems/win32/miktex/tm/packages/csassignments.tar.lzma
2020/03/21 | 288528 | systems/win32/miktex/tm/packages/csbulletin.tar.lzma
2016/06/29 | 1631380 | systems/win32/miktex/tm/packages/csfonts-t1.tar.lzma
2016/06/29 | 66676 | systems/win32/miktex/tm/packages/csfonts.tar.lzma
@@ -297859,9 +297888,9 @@
2017/04/25 | 46327 | systems/win32/miktex/tm/packages/ctanify.tar.lzma
2017/11/26 | 39933 | systems/win32/miktex/tm/packages/ctan-o-mat.tar.lzma
2012/05/11 | 179205 | systems/win32/miktex/tm/packages/ctanupload.tar.lzma
-2021/12/14 | 1116638 | systems/win32/miktex/tm/packages/ctex__doc.tar.lzma
-2021/12/14 | 88082 | systems/win32/miktex/tm/packages/ctex__source.tar.lzma
-2021/12/14 | 133592 | systems/win32/miktex/tm/packages/ctex.tar.lzma
+2022/06/12 | 1118587 | systems/win32/miktex/tm/packages/ctex__doc.tar.lzma
+2022/06/12 | 88254 | systems/win32/miktex/tm/packages/ctex__source.tar.lzma
+2022/06/12 | 130708 | systems/win32/miktex/tm/packages/ctex.tar.lzma
2004/01/11 | 171807 | systems/win32/miktex/tm/packages/ctib.cab
2014/06/30 | 272094 | systems/win32/miktex/tm/packages/cuisine.tar.lzma
2019/02/04 | 130281 | systems/win32/miktex/tm/packages/cuprum.tar.lzma
@@ -298402,9 +298431,9 @@
2015/02/28 | 5938051 | systems/win32/miktex/tm/packages/fancyslides.tar.lzma
2016/06/29 | 190364 | systems/win32/miktex/tm/packages/fancytabs.tar.lzma
2012/06/11 | 1136130 | systems/win32/miktex/tm/packages/fancytooltips.tar.lzma
-2022/04/15 | 140085 | systems/win32/miktex/tm/packages/fancyvrb__doc.tar.lzma
-2022/04/15 | 10956 | systems/win32/miktex/tm/packages/fancyvrb__source.tar.lzma
-2022/04/15 | 12147 | systems/win32/miktex/tm/packages/fancyvrb.tar.lzma
+2022/06/12 | 142175 | systems/win32/miktex/tm/packages/fancyvrb__doc.tar.lzma
+2022/06/12 | 11175 | systems/win32/miktex/tm/packages/fancyvrb__source.tar.lzma
+2022/06/12 | 12127 | systems/win32/miktex/tm/packages/fancyvrb.tar.lzma
2015/07/21 | 21599588 | systems/win32/miktex/tm/packages/fandol.tar.lzma
2018/12/20 | 2489193 | systems/win32/miktex/tm/packages/fascicules.tar.lzma
2013/03/01 | 1410180 | systems/win32/miktex/tm/packages/fast-diagram.tar.lzma
@@ -298457,7 +298486,7 @@
2020/10/03 | 318630 | systems/win32/miktex/tm/packages/filehook.tar.lzma
2012/12/04 | 924573 | systems/win32/miktex/tm/packages/fileinfo.tar.lzma
2011/09/21 | 281409 | systems/win32/miktex/tm/packages/filemod.tar.lzma
-2022/06/11 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/06/12 | 655234 | systems/win32/miktex/tm/packages/files.csv.lzma
2001/05/14 | 5617 | systems/win32/miktex/tm/packages/finbib.tar.lzma
2015/10/20 | 44379 | systems/win32/miktex/tm/packages/findhyph.tar.lzma
2011/10/21 | 89323 | systems/win32/miktex/tm/packages/fink.tar.lzma
@@ -298475,6 +298504,9 @@
2020/07/19 | 1202960 | systems/win32/miktex/tm/packages/fitr.tar.lzma
2015/11/05 | 221723 | systems/win32/miktex/tm/packages/fix2col.tar.lzma
2015/11/17 | 204335 | systems/win32/miktex/tm/packages/fixcmex.tar.lzma
+2022/06/12 | 315710 | systems/win32/miktex/tm/packages/fixdif__doc.tar.lzma
+2022/06/12 | 6459 | systems/win32/miktex/tm/packages/fixdif__source.tar.lzma
+2022/06/12 | 1912 | systems/win32/miktex/tm/packages/fixdif.tar.lzma
2009/07/22 | 4396 | systems/win32/miktex/tm/packages/fixfoot.tar.lzma
2018/03/26 | 289280 | systems/win32/miktex/tm/packages/fixjfm.tar.lzma
2011/03/07 | 125768 | systems/win32/miktex/tm/packages/fixlatvian.tar.lzma
@@ -298622,9 +298654,9 @@
2011/03/01 | 39941 | systems/win32/miktex/tm/packages/fwlw.tar.lzma
2008/05/19 | 143169 | systems/win32/miktex/tm/packages/gaceta.tar.lzma
2006/03/25 | 97724 | systems/win32/miktex/tm/packages/galois.cab
-2021/08/28 | 379668 | systems/win32/miktex/tm/packages/gamebooklib__doc.tar.lzma
-2021/08/28 | 15600 | systems/win32/miktex/tm/packages/gamebooklib__source.tar.lzma
-2021/08/28 | 3444 | systems/win32/miktex/tm/packages/gamebooklib.tar.lzma
+2022/06/12 | 390339 | systems/win32/miktex/tm/packages/gamebooklib__doc.tar.lzma
+2022/06/12 | 17138 | systems/win32/miktex/tm/packages/gamebooklib__source.tar.lzma
+2022/06/12 | 3838 | systems/win32/miktex/tm/packages/gamebooklib.tar.lzma
2011/12/01 | 226038 | systems/win32/miktex/tm/packages/gamebook.tar.lzma
2020/10/03 | 13484 | systems/win32/miktex/tm/packages/gammas.tar.lzma
2015/01/24 | 515639 | systems/win32/miktex/tm/packages/gapfill.tar.lzma
@@ -298655,9 +298687,9 @@
2020/04/15 | 45368 | systems/win32/miktex/tm/packages/genmisc.tar.lzma
2006/09/22 | 12398 | systems/win32/miktex/tm/packages/genmpage.cab
2010/10/16 | 631850 | systems/win32/miktex/tm/packages/gentium.tar.lzma
-2022/05/25 | 1094111 | systems/win32/miktex/tm/packages/gentium-tug__doc.tar.lzma
-2022/05/25 | 22028 | systems/win32/miktex/tm/packages/gentium-tug__source.tar.lzma
-2022/05/25 | 8761855 | systems/win32/miktex/tm/packages/gentium-tug.tar.lzma
+2022/06/12 | 1414867 | systems/win32/miktex/tm/packages/gentium-tug__doc.tar.lzma
+2022/06/12 | 472970 | systems/win32/miktex/tm/packages/gentium-tug__source.tar.lzma
+2022/06/12 | 8763129 | systems/win32/miktex/tm/packages/gentium-tug.tar.lzma
2020/10/16 | 575125 | systems/win32/miktex/tm/packages/gentombow.tar.lzma
2020/01/03 | 921500 | systems/win32/miktex/tm/packages/geometry.tar.lzma
2015/05/25 | 5374621 | systems/win32/miktex/tm/packages/georgian.tar.lzma
@@ -298762,11 +298794,11 @@
2016/11/04 | 1845 | systems/win32/miktex/tm/packages/graphics-cfg.tar.lzma
2022/04/23 | 1058 | systems/win32/miktex/tm/packages/graphics-def__doc.tar.lzma
2022/04/23 | 10877 | systems/win32/miktex/tm/packages/graphics-def.tar.lzma
-2021/12/15 | 2014148 | systems/win32/miktex/tm/packages/graphics__doc.tar.lzma
+2022/06/12 | 2489783 | systems/win32/miktex/tm/packages/graphics__doc.tar.lzma
2021/11/20 | 2665 | systems/win32/miktex/tm/packages/graphics-pln__doc.tar.lzma
2021/11/20 | 9050 | systems/win32/miktex/tm/packages/graphics-pln.tar.lzma
-2021/12/15 | 65145 | systems/win32/miktex/tm/packages/graphics__source.tar.lzma
-2021/12/15 | 15589 | systems/win32/miktex/tm/packages/graphics.tar.lzma
+2022/06/12 | 69680 | systems/win32/miktex/tm/packages/graphics__source.tar.lzma
+2022/06/12 | 15597 | systems/win32/miktex/tm/packages/graphics.tar.lzma
2014/01/14 | 985128 | systems/win32/miktex/tm/packages/graphicxbox.tar.lzma
2021/01/07 | 410801 | systems/win32/miktex/tm/packages/graphicxpsd.tar.lzma
2020/11/24 | 89188 | systems/win32/miktex/tm/packages/graphicx-psmin.tar.lzma
@@ -298946,9 +298978,9 @@
2016/07/28 | 127569 | systems/win32/miktex/tm/packages/huncial.tar.lzma
2016/11/28 | 817841 | systems/win32/miktex/tm/packages/hustthesis.tar.lzma
2021/06/03 | 152237 | systems/win32/miktex/tm/packages/hvarabic.tar.lzma
-2022/05/25 | 900867 | systems/win32/miktex/tm/packages/hvextern__doc.tar.lzma
-2022/05/25 | 13596 | systems/win32/miktex/tm/packages/hvextern__source.tar.lzma
-2022/05/25 | 6301 | systems/win32/miktex/tm/packages/hvextern.tar.lzma
+2022/06/12 | 1121779 | systems/win32/miktex/tm/packages/hvextern__doc.tar.lzma
+2022/06/12 | 14262 | systems/win32/miktex/tm/packages/hvextern__source.tar.lzma
+2022/06/12 | 6507 | systems/win32/miktex/tm/packages/hvextern.tar.lzma
2022/05/04 | 7243414 | systems/win32/miktex/tm/packages/hvfloat__doc.tar.lzma
2022/05/04 | 1844086 | systems/win32/miktex/tm/packages/hvfloat__source.tar.lzma
2022/05/04 | 11974 | systems/win32/miktex/tm/packages/hvfloat.tar.lzma
@@ -299156,8 +299188,8 @@
2022/01/24 | 6258 | systems/win32/miktex/tm/packages/karnaugh-map.tar.lzma
2015/05/25 | 338988 | systems/win32/miktex/tm/packages/karnaughmap.tar.lzma
2016/07/20 | 146948 | systems/win32/miktex/tm/packages/karnaugh.tar.lzma
-2022/04/05 | 141741 | systems/win32/miktex/tm/packages/kaytannollista-latexia__source.tar.lzma
-2022/04/05 | 847634 | systems/win32/miktex/tm/packages/kaytannollista-latexia.tar.lzma
+2022/06/12 | 141712 | systems/win32/miktex/tm/packages/kaytannollista-latexia__source.tar.lzma
+2022/06/12 | 847726 | systems/win32/miktex/tm/packages/kaytannollista-latexia.tar.lzma
2021/02/10 | 348142 | systems/win32/miktex/tm/packages/kblocks.tar.lzma
2011/11/03 | 732961 | systems/win32/miktex/tm/packages/kdgdocs.tar.lzma
2016/07/16 | 106291 | systems/win32/miktex/tm/packages/kdgreek.tar.lzma
@@ -299234,12 +299266,12 @@
2022/04/23 | 3506939 | systems/win32/miktex/tm/packages/l3experimental__doc.tar.lzma
2022/04/23 | 80674 | systems/win32/miktex/tm/packages/l3experimental__source.tar.lzma
2022/04/23 | 24012 | systems/win32/miktex/tm/packages/l3experimental.tar.lzma
-2022/05/15 | 11434668 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
-2022/05/15 | 587131 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
-2022/05/15 | 171089 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma
-2022/01/24 | 1809233 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma
-2022/01/24 | 45993 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
-2022/01/24 | 21833 | systems/win32/miktex/tm/packages/l3packages.tar.lzma
+2022/06/12 | 11442946 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
+2022/06/12 | 588080 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
+2022/06/12 | 171542 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma
+2022/06/12 | 1820657 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma
+2022/06/12 | 46156 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
+2022/06/12 | 22098 | systems/win32/miktex/tm/packages/l3packages.tar.lzma
2008/04/02 | 115132 | systems/win32/miktex/tm/packages/labbook.tar.lzma
2006/11/14 | 45130 | systems/win32/miktex/tm/packages/labelcas.cab
2019/05/15 | 27323 | systems/win32/miktex/tm/packages/labels4easylist.tar.lzma
@@ -299298,9 +299330,9 @@
2022/03/17 | 235515 | systems/win32/miktex/tm/packages/latex-firstaid-dev__doc.tar.lzma
2022/03/17 | 8142 | systems/win32/miktex/tm/packages/latex-firstaid-dev__source.tar.lzma
2022/03/17 | 3453 | systems/win32/miktex/tm/packages/latex-firstaid-dev.tar.lzma
-2021/11/13 | 233486 | systems/win32/miktex/tm/packages/latex-firstaid__doc.tar.lzma
-2021/11/13 | 7963 | systems/win32/miktex/tm/packages/latex-firstaid__source.tar.lzma
-2021/11/13 | 3571 | systems/win32/miktex/tm/packages/latex-firstaid.tar.lzma
+2022/06/12 | 251784 | systems/win32/miktex/tm/packages/latex-firstaid__doc.tar.lzma
+2022/06/12 | 8106 | systems/win32/miktex/tm/packages/latex-firstaid__source.tar.lzma
+2022/06/12 | 3498 | systems/win32/miktex/tm/packages/latex-firstaid.tar.lzma
2009/06/30 | 18674 | systems/win32/miktex/tm/packages/latex-fonts.tar.lzma
2022/03/09 | 1308485 | systems/win32/miktex/tm/packages/latex-for-undergraduates__source.tar.lzma
2022/03/09 | 1785199 | systems/win32/miktex/tm/packages/latex-for-undergraduates.tar.lzma
@@ -299309,12 +299341,15 @@
2022/05/25 | 2507228 | systems/win32/miktex/tm/packages/latex-graphics-dev__doc.tar.lzma
2022/03/17 | 57226 | systems/win32/miktex/tm/packages/latex-graphics-dev__source.tar.lzma
2022/03/17 | 16127 | systems/win32/miktex/tm/packages/latex-graphics-dev.tar.lzma
-2022/04/15 | 1046579 | systems/win32/miktex/tm/packages/latexindent__doc.tar.lzma
-2022/04/15 | 123667 | systems/win32/miktex/tm/packages/latexindent__source.tar.lzma
-2022/04/15 | 68951 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
+2022/06/12 | 1061603 | systems/win32/miktex/tm/packages/latexindent__doc.tar.lzma
+2022/06/12 | 124238 | systems/win32/miktex/tm/packages/latexindent__source.tar.lzma
+2022/06/12 | 69208 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
2022/05/25 | 2314081 | systems/win32/miktex/tm/packages/latex-lab-dev__doc.tar.lzma
2022/05/25 | 29805 | systems/win32/miktex/tm/packages/latex-lab-dev__source.tar.lzma
2022/05/25 | 10862 | systems/win32/miktex/tm/packages/latex-lab-dev.tar.lzma
+2022/06/12 | 1871411 | systems/win32/miktex/tm/packages/latex-lab__doc.tar.lzma
+2022/06/12 | 22192 | systems/win32/miktex/tm/packages/latex-lab__source.tar.lzma
+2022/06/12 | 9115 | systems/win32/miktex/tm/packages/latex-lab.tar.lzma
2021/11/01 | 980484 | systems/win32/miktex/tm/packages/latex-make__doc.tar.lzma
2021/11/01 | 29509 | systems/win32/miktex/tm/packages/latex-make__source.tar.lzma
2021/11/01 | 9784 | systems/win32/miktex/tm/packages/latex-make.tar.lzma
@@ -299410,6 +299445,9 @@
2021/09/20 | 154495 | systems/win32/miktex/tm/packages/light-latex-make__doc.tar.lzma
2021/09/20 | 11704 | systems/win32/miktex/tm/packages/light-latex-make__source.tar.lzma
2021/09/20 | 13466 | systems/win32/miktex/tm/packages/light-latex-make.tar.lzma
+2022/06/12 | 85990 | systems/win32/miktex/tm/packages/ligtype__doc.tar.lzma
+2022/06/12 | 5992 | systems/win32/miktex/tm/packages/ligtype__source.tar.lzma
+2022/06/12 | 9927 | systems/win32/miktex/tm/packages/ligtype.tar.lzma
2020/10/03 | 1578806 | systems/win32/miktex/tm/packages/lilyglyphs.tar.lzma
2017/07/23 | 286625 | systems/win32/miktex/tm/packages/limap.tar.lzma
2021/12/02 | 381486 | systems/win32/miktex/tm/packages/limecv__doc.tar.lzma
@@ -299468,9 +299506,9 @@
2014/03/24 | 64015 | systems/win32/miktex/tm/packages/logicproof.tar.lzma
2014/06/23 | 812321 | systems/win32/miktex/tm/packages/logicpuzzle.tar.lzma
2015/08/11 | 2423 | systems/win32/miktex/tm/packages/logic.tar.lzma
-2021/07/29 | 447112 | systems/win32/miktex/tm/packages/logix__doc.tar.lzma
-2021/07/29 | 2633959 | systems/win32/miktex/tm/packages/logix__source.tar.lzma
-2021/07/29 | 382501 | systems/win32/miktex/tm/packages/logix.tar.lzma
+2022/06/12 | 464648 | systems/win32/miktex/tm/packages/logix__doc.tar.lzma
+2022/06/12 | 3698739 | systems/win32/miktex/tm/packages/logix__source.tar.lzma
+2022/06/12 | 388263 | systems/win32/miktex/tm/packages/logix.tar.lzma
2004/04/30 | 132197 | systems/win32/miktex/tm/packages/logpap.cab
2010/08/09 | 6112 | systems/win32/miktex/tm/packages/logreq.tar.lzma
2016/05/25 | 390962 | systems/win32/miktex/tm/packages/lollipop.tar.lzma
@@ -299525,9 +299563,9 @@
2021/06/12 | 788588 | systems/win32/miktex/tm/packages/ltx4yt__doc.tar.lzma
2021/06/12 | 18647 | systems/win32/miktex/tm/packages/ltx4yt__source.tar.lzma
2021/06/12 | 3955 | systems/win32/miktex/tm/packages/ltx4yt.tar.lzma
-2021/12/07 | 27704018 | systems/win32/miktex/tm/packages/ltxbase__doc.tar.lzma
-2021/12/07 | 679723 | systems/win32/miktex/tm/packages/ltxbase__source.tar.lzma
-2021/12/07 | 220159 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma
+2022/06/12 | 30005361 | systems/win32/miktex/tm/packages/ltxbase__doc.tar.lzma
+2022/06/12 | 711717 | systems/win32/miktex/tm/packages/ltxbase__source.tar.lzma
+2022/06/12 | 226338 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma
2020/10/03 | 409074 | systems/win32/miktex/tm/packages/ltxcmds.tar.lzma
2011/03/30 | 6745 | systems/win32/miktex/tm/packages/ltxdockit.tar.lzma
2019/04/16 | 78752 | systems/win32/miktex/tm/packages/ltxguidex.tar.lzma
@@ -299556,9 +299594,9 @@
2019/04/06 | 2685 | systems/win32/miktex/tm/packages/luaimageembed.tar.lzma
2011/02/19 | 180907 | systems/win32/miktex/tm/packages/luaindex.tar.lzma
2010/11/24 | 424357 | systems/win32/miktex/tm/packages/luainputenc.tar.lzma
-2022/04/05 | 165849 | systems/win32/miktex/tm/packages/luakeys__doc.tar.lzma
-2022/04/05 | 5959 | systems/win32/miktex/tm/packages/luakeys__source.tar.lzma
-2022/04/05 | 6729 | systems/win32/miktex/tm/packages/luakeys.tar.lzma
+2022/06/12 | 249938 | systems/win32/miktex/tm/packages/luakeys__doc.tar.lzma
+2022/06/12 | 12557 | systems/win32/miktex/tm/packages/luakeys__source.tar.lzma
+2022/06/12 | 8816 | systems/win32/miktex/tm/packages/luakeys.tar.lzma
2013/05/21 | 154494 | systems/win32/miktex/tm/packages/lualatex-doc-de.tar.lzma
2013/05/21 | 128214 | systems/win32/miktex/tm/packages/lualatex-doc.tar.lzma
2022/01/02 | 201693 | systems/win32/miktex/tm/packages/lualatex-math__doc.tar.lzma
@@ -299590,9 +299628,9 @@
2021/06/06 | 4099 | systems/win32/miktex/tm/packages/luatex85__source.tar.lzma
2021/06/06 | 2000 | systems/win32/miktex/tm/packages/luatex85.tar.lzma
2015/10/06 | 276167 | systems/win32/miktex/tm/packages/luatexbase.tar.lzma
-2022/04/15 | 3106378 | systems/win32/miktex/tm/packages/luatexja__doc.tar.lzma
-2022/04/15 | 219743 | systems/win32/miktex/tm/packages/luatexja__source.tar.lzma
-2022/04/15 | 191438 | systems/win32/miktex/tm/packages/luatexja.tar.lzma
+2022/06/12 | 3106562 | systems/win32/miktex/tm/packages/luatexja__doc.tar.lzma
+2022/06/12 | 219761 | systems/win32/miktex/tm/packages/luatexja__source.tar.lzma
+2022/06/12 | 191416 | systems/win32/miktex/tm/packages/luatexja.tar.lzma
2022/03/29 | 338848 | systems/win32/miktex/tm/packages/luatexko__doc.tar.lzma
2022/03/29 | 12516 | systems/win32/miktex/tm/packages/luatexko__source.tar.lzma
2022/03/29 | 23623 | systems/win32/miktex/tm/packages/luatexko.tar.lzma
@@ -299602,15 +299640,17 @@
2021/09/18 | 73725 | systems/win32/miktex/tm/packages/lua-uca__doc.tar.lzma
2021/09/18 | 3843 | systems/win32/miktex/tm/packages/lua-uca__source.tar.lzma
2021/09/18 | 72763 | systems/win32/miktex/tm/packages/lua-uca.tar.lzma
-2021/05/18 | 117951 | systems/win32/miktex/tm/packages/lua-ul.tar.lzma
+2022/06/12 | 106485 | systems/win32/miktex/tm/packages/lua-ul__doc.tar.lzma
+2022/06/12 | 12507 | systems/win32/miktex/tm/packages/lua-ul__source.tar.lzma
+2022/06/12 | 7309 | systems/win32/miktex/tm/packages/lua-ul.tar.lzma
2022/03/07 | 71376 | systems/win32/miktex/tm/packages/lua-uni-algos__doc.tar.lzma
2022/03/07 | 4188 | systems/win32/miktex/tm/packages/lua-uni-algos__source.tar.lzma
2022/03/07 | 7878 | systems/win32/miktex/tm/packages/lua-uni-algos.tar.lzma
2021/01/11 | 294199 | systems/win32/miktex/tm/packages/lua-visual-debug.tar.lzma
2021/03/03 | 103795 | systems/win32/miktex/tm/packages/luavlna.tar.lzma
-2022/05/25 | 678657 | systems/win32/miktex/tm/packages/lua-widow-control__doc.tar.lzma
-2022/05/25 | 45104 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
-2022/05/25 | 13988 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
+2022/06/12 | 701886 | systems/win32/miktex/tm/packages/lua-widow-control__doc.tar.lzma
+2022/06/12 | 45687 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
+2022/06/12 | 15670 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
2021/10/14 | 114779 | systems/win32/miktex/tm/packages/luaxml__doc.tar.lzma
2021/10/14 | 9729 | systems/win32/miktex/tm/packages/luaxml__source.tar.lzma
2021/10/14 | 32350 | systems/win32/miktex/tm/packages/luaxml.tar.lzma
@@ -299637,7 +299677,8 @@
2022/03/29 | 456985 | systems/win32/miktex/tm/packages/lwarp__source.tar.lzma
2022/03/29 | 211696 | systems/win32/miktex/tm/packages/lwarp.tar.lzma
2013/12/23 | 1470948 | systems/win32/miktex/tm/packages/lxfonts.tar.lzma
-2011/01/18 | 57807 | systems/win32/miktex/tm/packages/ly1.tar.lzma
+2022/06/12 | 4108 | systems/win32/miktex/tm/packages/ly1__doc.tar.lzma
+2022/06/12 | 55350 | systems/win32/miktex/tm/packages/ly1.tar.lzma
2019/05/29 | 884130 | systems/win32/miktex/tm/packages/lyluatex.tar.lzma
2006/01/13 | 1323609 | systems/win32/miktex/tm/packages/m3d.cab
2021/08/01 | 191252 | systems/win32/miktex/tm/packages/macrolist__doc.tar.lzma
@@ -299691,9 +299732,9 @@
2018/07/27 | 222854 | systems/win32/miktex/tm/packages/marginfit.tar.lzma
2020/05/12 | 265372 | systems/win32/miktex/tm/packages/marginfix.tar.lzma
2018/08/14 | 331408 | systems/win32/miktex/tm/packages/marginnote.tar.lzma
-2022/05/25 | 944745 | systems/win32/miktex/tm/packages/markdown__doc.tar.lzma
-2022/05/25 | 89978 | systems/win32/miktex/tm/packages/markdown__source.tar.lzma
-2022/05/25 | 43013 | systems/win32/miktex/tm/packages/markdown.tar.lzma
+2022/06/12 | 943980 | systems/win32/miktex/tm/packages/markdown__doc.tar.lzma
+2022/06/12 | 89950 | systems/win32/miktex/tm/packages/markdown__source.tar.lzma
+2022/06/12 | 42990 | systems/win32/miktex/tm/packages/markdown.tar.lzma
2012/04/17 | 561606 | systems/win32/miktex/tm/packages/marvosym.tar.lzma
2022/03/12 | 4785503 | systems/win32/miktex/tm/packages/matapli__doc.tar.lzma
2022/03/12 | 11211 | systems/win32/miktex/tm/packages/matapli__source.tar.lzma
@@ -300061,9 +300102,9 @@
2018/01/12 | 157226 | systems/win32/miktex/tm/packages/miktex-zip-bin-x64.tar.lzma
2022/03/12 | 39680 | systems/win32/miktex/tm/packages/miktex-zlib-bin-2.9.tar.lzma
2022/03/29 | 43240 | systems/win32/miktex/tm/packages/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/06/11 | 278678 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/06/11 | 1457670 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/06/11 | 1343842 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/06/12 | 281155 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/06/12 | 1461670 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/06/12 | 1348395 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/03/12 | 13516 | systems/win32/miktex/tm/packages/miktex-zzip-bin-2.9.tar.lzma
2022/03/29 | 14391 | systems/win32/miktex/tm/packages/miktex-zzip-bin-x64-2.9.tar.lzma
2016/07/15 | 35914 | systems/win32/miktex/tm/packages/mil3.tar.lzma
@@ -300124,7 +300165,9 @@
2001/05/14 | 14248 | systems/win32/miktex/tm/packages/mltex.tar.lzma
2020/11/24 | 474181 | systems/win32/miktex/tm/packages/mluexercise.tar.lzma
2008/08/28 | 19372 | systems/win32/miktex/tm/packages/mmap.tar.lzma
-2014/11/20 | 219578 | systems/win32/miktex/tm/packages/mnotes.tar.lzma
+2022/06/12 | 213547 | systems/win32/miktex/tm/packages/mnotes__doc.tar.lzma
+2022/06/12 | 6807 | systems/win32/miktex/tm/packages/mnotes__source.tar.lzma
+2022/06/12 | 2432 | systems/win32/miktex/tm/packages/mnotes.tar.lzma
2020/07/03 | 356853 | systems/win32/miktex/tm/packages/mnras.tar.lzma
2007/02/24 | 5021321 | systems/win32/miktex/tm/packages/mnsymbol.tar.bz2
2019/02/16 | 263396 | systems/win32/miktex/tm/packages/modeles-factures-belges-assocs.tar.lzma
@@ -300204,6 +300247,9 @@
2010/06/04 | 111466 | systems/win32/miktex/tm/packages/multido.tar.lzma
2012/05/29 | 215932 | systems/win32/miktex/tm/packages/multienv.tar.lzma
2017/12/01 | 386199 | systems/win32/miktex/tm/packages/multiexpand.tar.lzma
+2022/06/12 | 100494 | systems/win32/miktex/tm/packages/multifootnote__doc.tar.lzma
+2022/06/12 | 3738 | systems/win32/miktex/tm/packages/multifootnote__source.tar.lzma
+2022/06/12 | 2115 | systems/win32/miktex/tm/packages/multifootnote.tar.lzma
2018/11/05 | 435059 | systems/win32/miktex/tm/packages/multilang.tar.lzma
2008/08/19 | 8906 | systems/win32/miktex/tm/packages/multiobjective.tar.lzma
2021/03/17 | 625165 | systems/win32/miktex/tm/packages/multirow.tar.lzma
@@ -300289,199 +300335,199 @@
2018/04/09 | 400132 | systems/win32/miktex/tm/packages/newunicodechar.tar.lzma
2011/09/19 | 101312 | systems/win32/miktex/tm/packages/newvbtm.tar.lzma
2021/03/17 | 232249 | systems/win32/miktex/tm/packages/newverbs.tar.lzma
-2022/06/11 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/06/11 | 51558 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/06/11 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/06/11 | 1021848 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
-2022/06/11 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/06/11 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/06/11 | 31522 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/06/11 | 30147 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/06/11 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/06/11 | 56620 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/06/11 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/06/11 | 86760 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
-2022/06/11 | 95284 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
-2022/06/11 | 68873 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/06/11 | 77069 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/06/11 | 27249 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/06/11 | 31343 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/06/11 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/06/11 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/06/11 | 32956 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/06/11 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/06/11 | 51485 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/06/11 | 57271 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/06/11 | 244963 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/06/11 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/06/11 | 179878 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
-2022/06/11 | 196117 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
-2022/06/11 | 92916 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
-2022/06/11 | 103094 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/06/11 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/06/11 | 24121 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/06/11 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/06/11 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
-2022/06/11 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/06/11 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/06/11 | 326660 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/06/11 | 41306 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
-2022/06/11 | 45825 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
-2022/06/11 | 120617 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/06/11 | 135376 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/06/11 | 1302484 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
-2022/06/11 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/06/11 | 99818 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/06/11 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/06/11 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/06/11 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/06/11 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/06/11 | 28567 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/06/11 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/06/11 | 63311 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/06/11 | 135950 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/06/11 | 155500 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/06/11 | 73478 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/06/11 | 78973 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/06/11 | 72015 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/06/11 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/06/11 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/06/11 | 296039 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/06/11 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/06/11 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/06/11 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/06/11 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/06/11 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/06/11 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/06/11 | 96634 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/06/11 | 115657 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/06/11 | 38427 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/06/11 | 43826 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
-2022/06/11 | 484371 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/06/11 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
-2022/06/11 | 203838 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/06/11 | 247332 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/06/11 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/06/11 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/06/11 | 95433 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/06/11 | 109480 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
-2022/06/11 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
-2022/06/11 | 18369 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/06/11 | 28424 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/06/11 | 30543 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/06/11 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/06/11 | 681939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/06/11 | 532454 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/06/11 | 598231 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/06/11 | 477849 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
-2022/06/11 | 528019 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/06/11 | 93958 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/06/11 | 103340 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
-2022/06/11 | 1752146 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/06/11 | 1982085 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/06/11 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/06/11 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/06/11 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/06/11 | 32135 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/06/11 | 7753 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
-2022/06/11 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/06/11 | 190504 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/06/11 | 208806 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/06/11 | 251127 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/06/11 | 286412 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/06/11 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/06/11 | 104556 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/06/11 | 126533 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
-2022/06/11 | 139102 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
-2022/06/11 | 288202 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/06/11 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
-2022/06/11 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
-2022/06/11 | 181514 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/06/11 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
-2022/06/11 | 55569 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/06/11 | 31413 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/06/11 | 35166 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/06/11 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/06/11 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/06/11 | 43362 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/06/11 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/06/11 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/06/11 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/06/11 | 197036 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/06/11 | 213277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/06/11 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/06/11 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/06/11 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
-2022/06/11 | 824369 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/06/11 | 200397 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/06/11 | 202836 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/06/11 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/06/11 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/06/11 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/06/11 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/06/11 | 1181127 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
-2022/06/11 | 1322743 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/06/11 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/06/11 | 23944 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/06/11 | 31588 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/06/11 | 37374 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/06/11 | 64708 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/06/11 | 72885 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/06/11 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/06/11 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/06/11 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/06/11 | 758953 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/06/11 | 1357073 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/06/11 | 1501239 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
-2022/06/11 | 42818 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
-2022/06/11 | 52478 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/06/11 | 57618 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/06/11 | 63740 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
-2022/06/11 | 25550 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/06/11 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/06/11 | 16560 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/06/11 | 18494 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/06/11 | 64489 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
-2022/06/11 | 71007 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/06/11 | 156966 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/06/11 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/06/11 | 58667 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/06/11 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/06/11 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
-2022/06/11 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
-2022/06/11 | 2694876 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
-2022/06/11 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/06/11 | 55285 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/06/11 | 62381 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
-2022/06/11 | 37115 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/06/11 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/06/11 | 28689 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/06/11 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
-2022/06/11 | 67703 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
-2022/06/11 | 73526 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/06/11 | 316243 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/06/11 | 351697 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/06/11 | 55756 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/06/11 | 57525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/06/11 | 591567 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/06/11 | 629429 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
-2022/06/11 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/06/11 | 43224 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/06/11 | 278728 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/06/11 | 1457397 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/06/11 | 1345239 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/06/11 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/06/11 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/06/12 | 655800 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/06/12 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/06/12 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/06/12 | 1021846 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/06/12 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/06/12 | 28797 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/06/12 | 31521 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/06/12 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/06/12 | 35240 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/06/12 | 56619 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/06/12 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/06/12 | 86759 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/06/12 | 95285 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/06/12 | 68874 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/06/12 | 77069 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/06/12 | 27249 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/06/12 | 31343 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/06/12 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/06/12 | 394369 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/06/12 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/06/12 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/06/12 | 51483 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/06/12 | 57270 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/06/12 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/06/12 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/06/12 | 179876 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/06/12 | 196116 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/06/12 | 92918 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/06/12 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/06/12 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/06/12 | 24121 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/06/12 | 481499 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/06/12 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/06/12 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/06/12 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/06/12 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/06/12 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/06/12 | 45824 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/06/12 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/06/12 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/06/12 | 1302483 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/06/12 | 1454762 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/06/12 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/06/12 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/06/12 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/06/12 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/06/12 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/06/12 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/06/12 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/06/12 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/06/12 | 135948 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/06/12 | 155499 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/06/12 | 73478 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/06/12 | 78976 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/06/12 | 72014 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/06/12 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/06/12 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/06/12 | 296039 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/06/12 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/06/12 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/06/12 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/06/12 | 112587 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/06/12 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/06/12 | 73145 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/06/12 | 96632 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/06/12 | 115656 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/06/12 | 38427 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/06/12 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/06/12 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/06/12 | 565928 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/06/12 | 203836 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/06/12 | 247334 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/06/12 | 152030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/06/12 | 168821 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/06/12 | 95433 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/06/12 | 109479 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/06/12 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/06/12 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/06/12 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/06/12 | 30541 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/06/12 | 631281 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/06/12 | 681939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/06/12 | 532455 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/06/12 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/06/12 | 477849 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/06/12 | 528018 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/06/12 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/06/12 | 103338 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/06/12 | 1752147 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/06/12 | 1982085 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/06/12 | 68009 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/06/12 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/06/12 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/06/12 | 32134 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/06/12 | 7753 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/06/12 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/06/12 | 190506 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/06/12 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/06/12 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/06/12 | 286412 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/06/12 | 99258 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/06/12 | 104556 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/06/12 | 126535 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/06/12 | 139101 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/06/12 | 288200 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/06/12 | 325269 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/06/12 | 199830 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/06/12 | 181515 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/06/12 | 49770 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/06/12 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/06/12 | 31413 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/06/12 | 35169 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/06/12 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/06/12 | 43917 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/06/12 | 43362 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/06/12 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/06/12 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/06/12 | 52327 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/06/12 | 197038 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/06/12 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/06/12 | 36047 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/06/12 | 41181 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/06/12 | 755741 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/06/12 | 824371 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/06/12 | 200397 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/06/12 | 202834 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/06/12 | 210270 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/06/12 | 245097 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/06/12 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/06/12 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/06/12 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/06/12 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/06/12 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/06/12 | 23945 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/06/12 | 31585 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/06/12 | 37376 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/06/12 | 64708 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/06/12 | 72887 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/06/12 | 50799 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/06/12 | 58662 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/06/12 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/06/12 | 758955 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/06/12 | 1357073 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/06/12 | 1501236 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/06/12 | 42816 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/06/12 | 52480 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/06/12 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/06/12 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/06/12 | 25551 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/06/12 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/06/12 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/06/12 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/06/12 | 64487 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/06/12 | 71007 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/06/12 | 156963 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/06/12 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/06/12 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/06/12 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/06/12 | 100486 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/06/12 | 107704 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/06/12 | 2694877 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/06/12 | 2820688 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/06/12 | 55283 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/06/12 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/06/12 | 37116 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/06/12 | 41203 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/06/12 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/06/12 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/06/12 | 67705 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/06/12 | 73529 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/06/12 | 316243 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/06/12 | 351697 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/06/12 | 55758 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/06/12 | 57527 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/06/12 | 591569 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/06/12 | 629430 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/06/12 | 39726 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/06/12 | 43224 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/06/12 | 281202 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/06/12 | 1463795 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/06/12 | 1348312 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/06/12 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/06/12 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
2019/03/12 | 1412 | systems/win32/miktex/tm/packages/nextpage.tar.lzma
-2022/06/11 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/06/12 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2018/07/06 | 145915 | systems/win32/miktex/tm/packages/nexus-otf.tar.lzma
2017/03/30 | 191149 | systems/win32/miktex/tm/packages/nfssext-cfr.tar.lzma
2012/12/20 | 612251 | systems/win32/miktex/tm/packages/nicefilelist.tar.lzma
2017/06/22 | 263407 | systems/win32/miktex/tm/packages/niceframe.tar.lzma
2017/06/22 | 276883 | systems/win32/miktex/tm/packages/niceframe-type1.tar.lzma
-2022/05/15 | 1938790 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
-2022/05/15 | 145963 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
-2022/05/15 | 34643 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
+2022/06/12 | 1952705 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
+2022/06/12 | 146655 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
+2022/06/12 | 34871 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
2015/11/25 | 2555178 | systems/win32/miktex/tm/packages/nicetext.tar.lzma
2018/07/30 | 243633 | systems/win32/miktex/tm/packages/nidanfloat.tar.lzma
2016/01/26 | 74424 | systems/win32/miktex/tm/packages/nihbiosketch.tar.lzma
@@ -300495,9 +300541,9 @@
2022/03/07 | 211246 | systems/win32/miktex/tm/packages/njustthesis__doc.tar.lzma
2022/03/07 | 5218 | systems/win32/miktex/tm/packages/njustthesis__source.tar.lzma
2022/03/07 | 4628 | systems/win32/miktex/tm/packages/njustthesis.tar.lzma
-2022/05/25 | 1278608 | systems/win32/miktex/tm/packages/njuthesis__doc.tar.lzma
-2022/05/25 | 55770 | systems/win32/miktex/tm/packages/njuthesis__source.tar.lzma
-2022/05/25 | 15755 | systems/win32/miktex/tm/packages/njuthesis.tar.lzma
+2022/06/12 | 1286843 | systems/win32/miktex/tm/packages/njuthesis__doc.tar.lzma
+2022/06/12 | 56299 | systems/win32/miktex/tm/packages/njuthesis__source.tar.lzma
+2022/06/12 | 15891 | systems/win32/miktex/tm/packages/njuthesis.tar.lzma
2022/01/24 | 641666 | systems/win32/miktex/tm/packages/njuvisual__doc.tar.lzma
2022/01/24 | 176344 | systems/win32/miktex/tm/packages/njuvisual__source.tar.lzma
2021/11/30 | 154274 | systems/win32/miktex/tm/packages/njuvisual.tar.lzma
@@ -300566,9 +300612,9 @@
2021/11/25 | 3927 | systems/win32/miktex/tm/packages/numspell__source.tar.lzma
2021/11/25 | 13944 | systems/win32/miktex/tm/packages/numspell.tar.lzma
2021/01/17 | 4842977 | systems/win32/miktex/tm/packages/nunito.tar.lzma
-2022/05/25 | 2025452 | systems/win32/miktex/tm/packages/nwafuthesis__doc.tar.lzma
-2022/05/25 | 837475 | systems/win32/miktex/tm/packages/nwafuthesis__source.tar.lzma
-2022/05/25 | 26061 | systems/win32/miktex/tm/packages/nwafuthesis.tar.lzma
+2022/06/12 | 2034371 | systems/win32/miktex/tm/packages/nwafuthesis__doc.tar.lzma
+2022/06/12 | 837837 | systems/win32/miktex/tm/packages/nwafuthesis__source.tar.lzma
+2022/06/12 | 26491 | systems/win32/miktex/tm/packages/nwafuthesis.tar.lzma
2022/02/22 | 1321604 | systems/win32/miktex/tm/packages/nwejm__doc.tar.lzma
2022/02/22 | 49626 | systems/win32/miktex/tm/packages/nwejm__source.tar.lzma
2022/02/22 | 4098367 | systems/win32/miktex/tm/packages/nwejm.tar.lzma
@@ -300685,7 +300731,9 @@
2011/04/19 | 297242 | systems/win32/miktex/tm/packages/path.tar.lzma
2009/11/11 | 144973 | systems/win32/miktex/tm/packages/pauldoc.tar.lzma
2016/07/16 | 12007 | systems/win32/miktex/tm/packages/pawpict.tar.lzma
-2011/07/09 | 39655 | systems/win32/miktex/tm/packages/pax.tar.lzma
+2022/06/12 | 3446 | systems/win32/miktex/tm/packages/pax__doc.tar.lzma
+2022/06/12 | 5270240 | systems/win32/miktex/tm/packages/pax__source.tar.lzma
+2022/06/12 | 5267458 | systems/win32/miktex/tm/packages/pax.tar.lzma
2021/05/29 | 263566 | systems/win32/miktex/tm/packages/pbalance.tar.lzma
2016/07/16 | 139982 | systems/win32/miktex/tm/packages/pb-diagram.tar.lzma
2021/10/21 | 794209 | systems/win32/miktex/tm/packages/pbibtex-base__doc.tar.lzma
@@ -300916,15 +300964,16 @@
2009/06/10 | 140988 | systems/win32/miktex/tm/packages/polynomial.tar.lzma
2017/07/19 | 441304 | systems/win32/miktex/tm/packages/polynom.tar.lzma
2020/07/19 | 477070 | systems/win32/miktex/tm/packages/polytable.tar.lzma
-2021/04/23 | 5456 | systems/win32/miktex/tm/packages/poormanlog.tar.lzma
+2022/06/12 | 2674 | systems/win32/miktex/tm/packages/poormanlog__doc.tar.lzma
+2022/06/12 | 4073 | systems/win32/miktex/tm/packages/poormanlog.tar.lzma
2017/11/05 | 1472985 | systems/win32/miktex/tm/packages/poppler.tar.lzma
2020/08/09 | 526374 | systems/win32/miktex/tm/packages/popupmenu.tar.lzma
2018/06/04 | 314792 | systems/win32/miktex/tm/packages/postage.tar.lzma
2016/07/18 | 2930 | systems/win32/miktex/tm/packages/postcards.tar.lzma
2010/06/04 | 97045 | systems/win32/miktex/tm/packages/poster.tar.lzma
-2022/05/04 | 957835 | systems/win32/miktex/tm/packages/postnotes__doc.tar.lzma
-2022/05/04 | 30797 | systems/win32/miktex/tm/packages/postnotes__source.tar.lzma
-2022/05/04 | 7610 | systems/win32/miktex/tm/packages/postnotes.tar.lzma
+2022/06/12 | 958988 | systems/win32/miktex/tm/packages/postnotes__doc.tar.lzma
+2022/06/12 | 30823 | systems/win32/miktex/tm/packages/postnotes__source.tar.lzma
+2022/06/12 | 7610 | systems/win32/miktex/tm/packages/postnotes.tar.lzma
2019/11/26 | 283083 | systems/win32/miktex/tm/packages/powerdot-fuberlin.tar.lzma
2021/05/20 | 1035605 | systems/win32/miktex/tm/packages/powerdot.tar.lzma
2018/06/09 | 1279130 | systems/win32/miktex/tm/packages/powerdot-tuliplab.tar.lzma
@@ -300939,12 +300988,15 @@
2019/02/18 | 818014 | systems/win32/miktex/tm/packages/present.tar.lzma
2014/09/29 | 634074 | systems/win32/miktex/tm/packages/pressrelease.tar.lzma
2008/11/07 | 35981 | systems/win32/miktex/tm/packages/prettyref.tar.lzma
+2022/06/12 | 338153 | systems/win32/miktex/tm/packages/prettytok__doc.tar.lzma
+2022/06/12 | 2361 | systems/win32/miktex/tm/packages/prettytok__source.tar.lzma
+2022/06/12 | 5721 | systems/win32/miktex/tm/packages/prettytok.tar.lzma
2022/02/22 | 326888 | systems/win32/miktex/tm/packages/preview__doc.tar.lzma
2022/02/22 | 23240 | systems/win32/miktex/tm/packages/preview__source.tar.lzma
2022/02/22 | 6917 | systems/win32/miktex/tm/packages/preview.tar.lzma
2019/06/20 | 375963 | systems/win32/miktex/tm/packages/prftree.tar.lzma
2021/04/23 | 274028 | systems/win32/miktex/tm/packages/principia.tar.lzma
-2022/06/11 | 937 | systems/win32/miktex/tm/packages/pr.ini
+2022/06/12 | 921 | systems/win32/miktex/tm/packages/pr.ini
2010/09/27 | 248469 | systems/win32/miktex/tm/packages/printlen.tar.lzma
2008/06/17 | 77313 | systems/win32/miktex/tm/packages/proba.tar.lzma
2017/07/12 | 988486 | systems/win32/miktex/tm/packages/probsoln.tar.lzma
@@ -300953,9 +301005,9 @@
2022/05/15 | 2785 | systems/win32/miktex/tm/packages/prociagssymp.tar.lzma
2011/04/08 | 38187 | systems/win32/miktex/tm/packages/prodint.tar.lzma
2011/01/07 | 399299 | systems/win32/miktex/tm/packages/productbox.tar.lzma
-2022/03/17 | 6958545 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
-2022/03/17 | 2014291 | systems/win32/miktex/tm/packages/profcollege__source.tar.lzma
-2022/03/17 | 1189077 | systems/win32/miktex/tm/packages/profcollege.tar.lzma
+2022/06/12 | 7687254 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
+2022/06/12 | 2019614 | systems/win32/miktex/tm/packages/profcollege__source.tar.lzma
+2022/06/12 | 1204062 | systems/win32/miktex/tm/packages/profcollege.tar.lzma
2022/05/04 | 129701 | systems/win32/miktex/tm/packages/proflabo__doc.tar.lzma
2022/05/04 | 5591 | systems/win32/miktex/tm/packages/proflabo__source.tar.lzma
2022/05/04 | 3000 | systems/win32/miktex/tm/packages/proflabo.tar.lzma
@@ -301152,12 +301204,14 @@
2021/06/06 | 7038 | systems/win32/miktex/tm/packages/pxbase__source.tar.lzma
2021/06/06 | 12610 | systems/win32/miktex/tm/packages/pxbase.tar.lzma
2021/06/03 | 344357 | systems/win32/miktex/tm/packages/pxchfon.tar.lzma
-2018/04/04 | 204193 | systems/win32/miktex/tm/packages/pxcjkcat.tar.lzma
+2022/06/12 | 199987 | systems/win32/miktex/tm/packages/pxcjkcat__doc.tar.lzma
+2022/06/12 | 13334 | systems/win32/miktex/tm/packages/pxcjkcat__source.tar.lzma
+2022/06/12 | 10444 | systems/win32/miktex/tm/packages/pxcjkcat.tar.lzma
2009/01/22 | 695938 | systems/win32/miktex/tm/packages/pxfonts.tar.lzma
2011/03/17 | 62963 | systems/win32/miktex/tm/packages/pxgreeks.tar.lzma
-2022/05/15 | 148194 | systems/win32/miktex/tm/packages/pxjahyper__doc.tar.lzma
-2022/05/15 | 6448 | systems/win32/miktex/tm/packages/pxjahyper__source.tar.lzma
-2022/05/15 | 18087 | systems/win32/miktex/tm/packages/pxjahyper.tar.lzma
+2022/06/12 | 159324 | systems/win32/miktex/tm/packages/pxjahyper__doc.tar.lzma
+2022/06/12 | 6746 | systems/win32/miktex/tm/packages/pxjahyper__source.tar.lzma
+2022/06/12 | 19573 | systems/win32/miktex/tm/packages/pxjahyper.tar.lzma
2020/05/06 | 121548 | systems/win32/miktex/tm/packages/pxjodel.tar.lzma
2013/05/06 | 2352 | systems/win32/miktex/tm/packages/pxpgfmark.tar.lzma
2021/12/14 | 316121 | systems/win32/miktex/tm/packages/pxpic__doc.tar.lzma
@@ -301170,9 +301224,9 @@
2021/11/01 | 9326 | systems/win32/miktex/tm/packages/pxtxalfa.tar.lzma
2020/02/09 | 131421 | systems/win32/miktex/tm/packages/pxufont.tar.lzma
2020/12/22 | 604136 | systems/win32/miktex/tm/packages/pygmentex.tar.lzma
-2022/03/17 | 97333 | systems/win32/miktex/tm/packages/pyluatex__doc.tar.lzma
-2022/03/17 | 4750 | systems/win32/miktex/tm/packages/pyluatex__source.tar.lzma
-2022/03/17 | 7362 | systems/win32/miktex/tm/packages/pyluatex.tar.lzma
+2022/06/12 | 98476 | systems/win32/miktex/tm/packages/pyluatex__doc.tar.lzma
+2022/06/12 | 4840 | systems/win32/miktex/tm/packages/pyluatex__source.tar.lzma
+2022/06/12 | 7432 | systems/win32/miktex/tm/packages/pyluatex.tar.lzma
2021/08/05 | 1179 | systems/win32/miktex/tm/packages/python__doc.tar.lzma
2017/02/10 | 3926 | systems/win32/miktex/tm/packages/pythonhighlight.tar.lzma
2021/08/05 | 2235 | systems/win32/miktex/tm/packages/python.tar.lzma
@@ -301381,7 +301435,9 @@
2021/12/23 | 15022 | systems/win32/miktex/tm/packages/schulmathematik__source.tar.lzma
2021/12/23 | 11757 | systems/win32/miktex/tm/packages/schulmathematik.tar.lzma
2021/06/03 | 761837 | systems/win32/miktex/tm/packages/schulschriften.tar.lzma
-2020/01/03 | 213046 | systems/win32/miktex/tm/packages/schwalbe-chess.tar.lzma
+2022/06/12 | 201526 | systems/win32/miktex/tm/packages/schwalbe-chess__doc.tar.lzma
+2022/06/12 | 16479 | systems/win32/miktex/tm/packages/schwalbe-chess__source.tar.lzma
+2022/06/12 | 8004 | systems/win32/miktex/tm/packages/schwalbe-chess.tar.lzma
2004/05/07 | 2764 | systems/win32/miktex/tm/packages/scientificpaper.cab
2018/06/04 | 198147 | systems/win32/miktex/tm/packages/scientific-thesis-cover.tar.lzma
2006/08/19 | 180408 | systems/win32/miktex/tm/packages/sciposter.cab
@@ -301476,7 +301532,13 @@
2013/01/24 | 2349 | systems/win32/miktex/tm/packages/showdim.tar.lzma
2021/01/14 | 619243 | systems/win32/miktex/tm/packages/showexpl.tar.lzma
2004/01/11 | 1359 | systems/win32/miktex/tm/packages/showframe.cab
+2022/06/12 | 56933 | systems/win32/miktex/tm/packages/showhyphenation__doc.tar.lzma
+2022/06/12 | 4095 | systems/win32/miktex/tm/packages/showhyphenation__source.tar.lzma
+2022/06/12 | 3102 | systems/win32/miktex/tm/packages/showhyphenation.tar.lzma
2016/02/23 | 88396 | systems/win32/miktex/tm/packages/showhyphens.tar.lzma
+2022/06/12 | 42938 | systems/win32/miktex/tm/packages/showkerning__doc.tar.lzma
+2022/06/12 | 3934 | systems/win32/miktex/tm/packages/showkerning__source.tar.lzma
+2022/06/12 | 2895 | systems/win32/miktex/tm/packages/showkerning.tar.lzma
2021/11/01 | 232340 | systems/win32/miktex/tm/packages/showlabels__doc.tar.lzma
2021/11/01 | 16232 | systems/win32/miktex/tm/packages/showlabels__source.tar.lzma
2021/11/01 | 3399 | systems/win32/miktex/tm/packages/showlabels.tar.lzma
@@ -301486,9 +301548,9 @@
2022/03/07 | 11698 | systems/win32/miktex/tm/packages/shtthesis.tar.lzma
2008/10/29 | 11321 | systems/win32/miktex/tm/packages/shuffle.tar.lzma
2016/07/29 | 162960 | systems/win32/miktex/tm/packages/sidecap.tar.lzma
-2022/05/25 | 397378 | systems/win32/miktex/tm/packages/sidenotesplus__doc.tar.lzma
-2022/05/25 | 13114 | systems/win32/miktex/tm/packages/sidenotesplus__source.tar.lzma
-2022/05/25 | 5671 | systems/win32/miktex/tm/packages/sidenotesplus.tar.lzma
+2022/06/12 | 398552 | systems/win32/miktex/tm/packages/sidenotesplus__doc.tar.lzma
+2022/06/12 | 13138 | systems/win32/miktex/tm/packages/sidenotesplus__source.tar.lzma
+2022/06/12 | 5674 | systems/win32/miktex/tm/packages/sidenotesplus.tar.lzma
2020/03/25 | 315226 | systems/win32/miktex/tm/packages/sidenotes.tar.lzma
2005/06/12 | 46888 | systems/win32/miktex/tm/packages/sides.cab
2016/02/18 | 315728 | systems/win32/miktex/tm/packages/signchart.tar.lzma
@@ -301522,9 +301584,9 @@
2008/07/22 | 360807 | systems/win32/miktex/tm/packages/sistyle.tar.lzma
2011/04/21 | 76017 | systems/win32/miktex/tm/packages/sitem.tar.lzma
2007/12/09 | 81490 | systems/win32/miktex/tm/packages/siunits.tar.lzma
-2022/05/04 | 1243499 | systems/win32/miktex/tm/packages/siunitx__doc.tar.lzma
-2022/05/04 | 116556 | systems/win32/miktex/tm/packages/siunitx__source.tar.lzma
-2022/05/04 | 64939 | systems/win32/miktex/tm/packages/siunitx.tar.lzma
+2022/06/12 | 1243489 | systems/win32/miktex/tm/packages/siunitx__doc.tar.lzma
+2022/06/12 | 116559 | systems/win32/miktex/tm/packages/siunitx__source.tar.lzma
+2022/06/12 | 64876 | systems/win32/miktex/tm/packages/siunitx.tar.lzma
2009/02/21 | 477338 | systems/win32/miktex/tm/packages/skaknew.tar.lzma
2018/02/08 | 221377 | systems/win32/miktex/tm/packages/skak.tar.lzma
2011/06/23 | 1471957 | systems/win32/miktex/tm/packages/skb.tar.lzma
@@ -301568,6 +301630,9 @@
2019/05/20 | 4282908 | systems/win32/miktex/tm/packages/sourcecodepro.tar.lzma
2020/05/06 | 5790444 | systems/win32/miktex/tm/packages/sourcesanspro.tar.lzma
2018/11/11 | 4187664 | systems/win32/miktex/tm/packages/sourceserifpro.tar.lzma
+2022/06/12 | 57170 | systems/win32/miktex/tm/packages/spacekern__doc.tar.lzma
+2022/06/12 | 4100 | systems/win32/miktex/tm/packages/spacekern__source.tar.lzma
+2022/06/12 | 2728 | systems/win32/miktex/tm/packages/spacekern.tar.lzma
2021/10/03 | 99041 | systems/win32/miktex/tm/packages/spacingtricks__doc.tar.lzma
2021/10/03 | 8883 | systems/win32/miktex/tm/packages/spacingtricks__source.tar.lzma
2021/10/03 | 1854 | systems/win32/miktex/tm/packages/spacingtricks.tar.lzma
@@ -301749,17 +301814,17 @@
2010/04/27 | 105370 | systems/win32/miktex/tm/packages/tabularborder.tar.lzma
2009/05/05 | 795482 | systems/win32/miktex/tm/packages/tabularcalc.tar.lzma
2009/06/02 | 151374 | systems/win32/miktex/tm/packages/tabularew.tar.lzma
-2022/03/07 | 688863 | systems/win32/miktex/tm/packages/tabularray__doc.tar.lzma
-2022/03/07 | 18080 | systems/win32/miktex/tm/packages/tabularray__source.tar.lzma
-2022/03/07 | 33560 | systems/win32/miktex/tm/packages/tabularray.tar.lzma
+2022/06/12 | 686640 | systems/win32/miktex/tm/packages/tabularray__doc.tar.lzma
+2022/06/12 | 19349 | systems/win32/miktex/tm/packages/tabularray__source.tar.lzma
+2022/06/12 | 34335 | systems/win32/miktex/tm/packages/tabularray.tar.lzma
2014/06/23 | 268624 | systems/win32/miktex/tm/packages/tabulary.tar.lzma
2019/01/19 | 1553147 | systems/win32/miktex/tm/packages/tabu.tar.lzma
2013/01/24 | 612797 | systems/win32/miktex/tm/packages/tabvar.tar.lzma
2019/09/10 | 116225 | systems/win32/miktex/tm/packages/tagging.tar.lzma
2016/09/27 | 70712 | systems/win32/miktex/tm/packages/tagpair.tar.lzma
-2022/05/15 | 1726254 | systems/win32/miktex/tm/packages/tagpdf__doc.tar.lzma
-2022/05/15 | 77272 | systems/win32/miktex/tm/packages/tagpdf__source.tar.lzma
-2022/05/15 | 27266 | systems/win32/miktex/tm/packages/tagpdf.tar.lzma
+2022/06/12 | 1874106 | systems/win32/miktex/tm/packages/tagpdf__doc.tar.lzma
+2022/06/12 | 77564 | systems/win32/miktex/tm/packages/tagpdf__source.tar.lzma
+2022/06/12 | 27403 | systems/win32/miktex/tm/packages/tagpdf.tar.lzma
2007/08/13 | 135721 | systems/win32/miktex/tm/packages/talk.tar.lzma
2022/02/07 | 63660 | systems/win32/miktex/tm/packages/talos__doc.tar.lzma
2022/02/07 | 2030 | systems/win32/miktex/tm/packages/talos__source.tar.lzma
@@ -301873,12 +301938,16 @@
2021/08/19 | 9425 | systems/win32/miktex/tm/packages/thesis-ekf__source.tar.lzma
2021/08/19 | 113397 | systems/win32/miktex/tm/packages/thesis-ekf.tar.lzma
2020/03/14 | 416081 | systems/win32/miktex/tm/packages/thesis-gwu.tar.lzma
-2018/11/11 | 1423236 | systems/win32/miktex/tm/packages/thesis-qom.tar.lzma
+2022/06/12 | 908308 | systems/win32/miktex/tm/packages/thesis-qom__doc.tar.lzma
+2022/06/12 | 539365 | systems/win32/miktex/tm/packages/thesis-qom__source.tar.lzma
+2022/06/12 | 13542 | systems/win32/miktex/tm/packages/thesis-qom.tar.lzma
2016/07/18 | 175742 | systems/win32/miktex/tm/packages/thesis.tar.lzma
2006/04/13 | 31560 | systems/win32/miktex/tm/packages/thesis-titlepage-fhac.cab
2016/02/12 | 300542 | systems/win32/miktex/tm/packages/thinsp.tar.lzma
2005/05/04 | 26602 | systems/win32/miktex/tm/packages/thmbox.cab
-2020/08/17 | 286004 | systems/win32/miktex/tm/packages/thmtools.tar.lzma
+2022/06/12 | 252114 | systems/win32/miktex/tm/packages/thmtools__doc.tar.lzma
+2022/06/12 | 32280 | systems/win32/miktex/tm/packages/thmtools__source.tar.lzma
+2022/06/12 | 13496 | systems/win32/miktex/tm/packages/thmtools.tar.lzma
2021/06/27 | 2001389 | systems/win32/miktex/tm/packages/thorshammer__doc.tar.lzma
2021/06/27 | 42862 | systems/win32/miktex/tm/packages/thorshammer__source.tar.lzma
2021/06/27 | 12793 | systems/win32/miktex/tm/packages/thorshammer.tar.lzma
@@ -301965,9 +302034,9 @@
2021/08/28 | 190055 | systems/win32/miktex/tm/packages/tikztosvg__doc.tar.lzma
2021/08/28 | 3392 | systems/win32/miktex/tm/packages/tikztosvg__source.tar.lzma
2021/08/28 | 2185 | systems/win32/miktex/tm/packages/tikztosvg.tar.lzma
-2022/04/15 | 674319 | systems/win32/miktex/tm/packages/tikz-trackschematic__doc.tar.lzma
-2022/04/15 | 14659 | systems/win32/miktex/tm/packages/tikz-trackschematic__source.tar.lzma
-2022/04/15 | 15496 | systems/win32/miktex/tm/packages/tikz-trackschematic.tar.lzma
+2022/06/12 | 676126 | systems/win32/miktex/tm/packages/tikz-trackschematic__doc.tar.lzma
+2022/06/12 | 14788 | systems/win32/miktex/tm/packages/tikz-trackschematic__source.tar.lzma
+2022/06/12 | 15441 | systems/win32/miktex/tm/packages/tikz-trackschematic.tar.lzma
2019/02/16 | 125431 | systems/win32/miktex/tm/packages/tikz-truchet.tar.lzma
2020/05/30 | 6545569 | systems/win32/miktex/tm/packages/tile-graphic.tar.lzma
2019/01/19 | 739163 | systems/win32/miktex/tm/packages/timbreicmc.tar.lzma
@@ -302065,8 +302134,8 @@
2005/06/02 | 90162 | systems/win32/miktex/tm/packages/ttcmex.cab
2016/11/04 | 106224 | systems/win32/miktex/tm/packages/ttf2pk.tar.lzma
2010/12/13 | 260868 | systems/win32/miktex/tm/packages/tucv.tar.lzma
-2022/05/04 | 1144549 | systems/win32/miktex/tm/packages/tuda-ci__doc.tar.lzma
-2022/05/04 | 43649 | systems/win32/miktex/tm/packages/tuda-ci.tar.lzma
+2022/06/12 | 1133807 | systems/win32/miktex/tm/packages/tuda-ci__doc.tar.lzma
+2022/06/12 | 43769 | systems/win32/miktex/tm/packages/tuda-ci.tar.lzma
2021/07/16 | 3775680 | systems/win32/miktex/tm/packages/tudscr__doc.tar.lzma
2021/07/16 | 315855 | systems/win32/miktex/tm/packages/tudscr__source.tar.lzma
2021/07/16 | 159856 | systems/win32/miktex/tm/packages/tudscr.tar.lzma
@@ -302095,7 +302164,9 @@
2011/03/17 | 62666 | systems/win32/miktex/tm/packages/txgreeks.tar.lzma
2017/03/07 | 138703 | systems/win32/miktex/tm/packages/txuprcal.tar.lzma
2016/07/20 | 332781 | systems/win32/miktex/tm/packages/type1cm.tar.lzma
-2019/01/19 | 376816 | systems/win32/miktex/tm/packages/typed-checklist.tar.lzma
+2022/06/12 | 695297 | systems/win32/miktex/tm/packages/typed-checklist__doc.tar.lzma
+2022/06/12 | 24744 | systems/win32/miktex/tm/packages/typed-checklist__source.tar.lzma
+2022/06/12 | 5752 | systems/win32/miktex/tm/packages/typed-checklist.tar.lzma
2013/03/28 | 203332 | systems/win32/miktex/tm/packages/typedref.tar.lzma
2012/06/29 | 17744747 | systems/win32/miktex/tm/packages/typeface.tar.lzma
2010/02/22 | 178784 | systems/win32/miktex/tm/packages/typehtml.tar.lzma
@@ -302148,9 +302219,9 @@
2009/07/25 | 338486 | systems/win32/miktex/tm/packages/umtypewriter.tar.lzma
2019/05/24 | 4787 | systems/win32/miktex/tm/packages/unam-thesis.tar.lzma
2019/05/24 | 643280 | systems/win32/miktex/tm/packages/unamthesis.tar.lzma
-2022/05/25 | 1444558 | systems/win32/miktex/tm/packages/unbtex__doc.tar.lzma
-2022/05/25 | 5267 | systems/win32/miktex/tm/packages/unbtex__source.tar.lzma
-2022/05/25 | 6090 | systems/win32/miktex/tm/packages/unbtex.tar.lzma
+2022/06/12 | 1444459 | systems/win32/miktex/tm/packages/unbtex__doc.tar.lzma
+2022/06/12 | 5333 | systems/win32/miktex/tm/packages/unbtex__source.tar.lzma
+2022/06/12 | 6086 | systems/win32/miktex/tm/packages/unbtex.tar.lzma
2016/07/28 | 149437 | systems/win32/miktex/tm/packages/uncial.tar.lzma
2007/01/19 | 2544 | systems/win32/miktex/tm/packages/underbracket.tar.bz2
2021/01/02 | 2037946 | systems/win32/miktex/tm/packages/undergradmath.tar.lzma
@@ -302367,21 +302438,23 @@
2022/05/25 | 435648 | systems/win32/miktex/tm/packages/xduts__doc.tar.lzma
2022/05/25 | 25054 | systems/win32/miktex/tm/packages/xduts__source.tar.lzma
2022/05/25 | 518114 | systems/win32/miktex/tm/packages/xduts.tar.lzma
-2016/09/13 | 393323 | systems/win32/miktex/tm/packages/xebaposter.tar.lzma
+2022/06/12 | 402629 | systems/win32/miktex/tm/packages/xebaposter__doc.tar.lzma
+2022/06/12 | 171888 | systems/win32/miktex/tm/packages/xebaposter__source.tar.lzma
+2022/06/12 | 10291 | systems/win32/miktex/tm/packages/xebaposter.tar.lzma
2017/08/05 | 9511 | systems/win32/miktex/tm/packages/xechangebar.tar.lzma
-2021/12/14 | 1542959 | systems/win32/miktex/tm/packages/xecjk__doc.tar.lzma
-2021/12/14 | 89507 | systems/win32/miktex/tm/packages/xecjk__source.tar.lzma
-2021/12/14 | 220331 | systems/win32/miktex/tm/packages/xecjk.tar.lzma
+2022/06/12 | 1606243 | systems/win32/miktex/tm/packages/xecjk__doc.tar.lzma
+2022/06/12 | 89601 | systems/win32/miktex/tm/packages/xecjk__source.tar.lzma
+2022/06/12 | 221643 | systems/win32/miktex/tm/packages/xecjk.tar.lzma
2013/04/08 | 3203 | systems/win32/miktex/tm/packages/xecolor.tar.lzma
2019/12/20 | 68329 | systems/win32/miktex/tm/packages/xecyrmongolian.tar.lzma
2019/10/08 | 695808 | systems/win32/miktex/tm/packages/xecyr.tar.lzma
2014/12/22 | 80890 | systems/win32/miktex/tm/packages/xeindex.tar.lzma
2009/03/24 | 1448867 | systems/win32/miktex/tm/packages/xelibertine.tar.lzma
2018/04/17 | 358102 | systems/win32/miktex/tm/packages/xellipsis.tar.lzma
-2022/05/25 | 1010376 | systems/win32/miktex/tm/packages/xepersian__doc.tar.lzma
+2022/06/12 | 1012293 | systems/win32/miktex/tm/packages/xepersian__doc.tar.lzma
2020/09/06 | 1301445 | systems/win32/miktex/tm/packages/xepersian-hm.tar.lzma
-2022/05/25 | 75567 | systems/win32/miktex/tm/packages/xepersian__source.tar.lzma
-2022/05/25 | 60205 | systems/win32/miktex/tm/packages/xepersian.tar.lzma
+2022/06/12 | 76132 | systems/win32/miktex/tm/packages/xepersian__source.tar.lzma
+2022/06/12 | 60313 | systems/win32/miktex/tm/packages/xepersian.tar.lzma
2019/08/22 | 623746 | systems/win32/miktex/tm/packages/xesearch.tar.lzma
2021/04/07 | 26436 | systems/win32/miktex/tm/packages/xesoul.tar.lzma
2021/03/03 | 146851 | systems/win32/miktex/tm/packages/xespotcolor.tar.lzma
@@ -302407,11 +302480,11 @@
2022/03/09 | 169064 | systems/win32/miktex/tm/packages/xindex__source.tar.lzma
2022/03/09 | 34916 | systems/win32/miktex/tm/packages/xindex.tar.lzma
2016/11/05 | 133165 | systems/win32/miktex/tm/packages/xindy.tar.lzma
-2022/05/25 | 2192278 | systems/win32/miktex/tm/packages/xint__doc.tar.lzma
+2022/06/12 | 3584357 | systems/win32/miktex/tm/packages/xint__doc.tar.lzma
2021/11/07 | 3453 | systems/win32/miktex/tm/packages/xintsession__doc.tar.lzma
2021/11/07 | 7211 | systems/win32/miktex/tm/packages/xintsession.tar.lzma
-2022/05/25 | 401689 | systems/win32/miktex/tm/packages/xint__source.tar.lzma
-2022/05/25 | 80366 | systems/win32/miktex/tm/packages/xint.tar.lzma
+2022/06/12 | 421802 | systems/win32/miktex/tm/packages/xint__source.tar.lzma
+2022/06/12 | 80579 | systems/win32/miktex/tm/packages/xint.tar.lzma
2021/12/23 | 340939 | systems/win32/miktex/tm/packages/xistercian__doc.tar.lzma
2021/12/23 | 14576 | systems/win32/miktex/tm/packages/xistercian__source.tar.lzma
2021/12/23 | 5110 | systems/win32/miktex/tm/packages/xistercian.tar.lzma
@@ -302434,7 +302507,9 @@
2012/08/21 | 562569 | systems/win32/miktex/tm/packages/xpeek.tar.lzma
2015/05/25 | 567618 | systems/win32/miktex/tm/packages/xpiano.tar.lzma
2013/01/07 | 1309974 | systems/win32/miktex/tm/packages/xpicture.tar.lzma
-2020/10/20 | 412596 | systems/win32/miktex/tm/packages/xpinyin.tar.lzma
+2022/06/12 | 205490 | systems/win32/miktex/tm/packages/xpinyin__doc.tar.lzma
+2022/06/12 | 11176 | systems/win32/miktex/tm/packages/xpinyin__source.tar.lzma
+2022/06/12 | 201920 | systems/win32/miktex/tm/packages/xpinyin.tar.lzma
2015/01/13 | 142159 | systems/win32/miktex/tm/packages/xprintlen.tar.lzma
2012/05/29 | 205053 | systems/win32/miktex/tm/packages/xpunctuate.tar.lzma
2014/09/29 | 253828 | systems/win32/miktex/tm/packages/xq.tar.lzma
@@ -302530,9 +302605,9 @@
2022/04/23 | 1049392 | systems/win32/miktex/tm/packages/zref-check__doc.tar.lzma
2022/04/23 | 21302 | systems/win32/miktex/tm/packages/zref-check__source.tar.lzma
2022/04/23 | 5823 | systems/win32/miktex/tm/packages/zref-check.tar.lzma
-2022/04/23 | 1520584 | systems/win32/miktex/tm/packages/zref-clever__doc.tar.lzma
-2022/04/23 | 50757 | systems/win32/miktex/tm/packages/zref-clever__source.tar.lzma
-2022/04/23 | 22922 | systems/win32/miktex/tm/packages/zref-clever.tar.lzma
+2022/06/12 | 1527484 | systems/win32/miktex/tm/packages/zref-clever__doc.tar.lzma
+2022/06/12 | 50827 | systems/win32/miktex/tm/packages/zref-clever__source.tar.lzma
+2022/06/12 | 22916 | systems/win32/miktex/tm/packages/zref-clever.tar.lzma
2022/04/15 | 668022 | systems/win32/miktex/tm/packages/zref__doc.tar.lzma
2022/04/15 | 37823 | systems/win32/miktex/tm/packages/zref__source.tar.lzma
2022/04/15 | 14656 | systems/win32/miktex/tm/packages/zref.tar.lzma
@@ -302806,7 +302881,7 @@
2004/06/04 | 404 | tds/tds.sed
2004/06/23 | 65418 | tds/tds.tex
2019/05/29 | 304264 | tds.zip
-2022/06/12 | 186 | timestamp
+2022/06/13 | 186 | timestamp
2002/08/26 | 61898 | usergrps/dante/antrag.pdf
2002/08/26 | 118217 | usergrps/dante/antrag.ps
2022/02/28 | 917 | usergrps/dante/dtk/doc/beispiel.bib
diff --git a/FILES.byname.gz b/FILES.byname.gz
index e1375a4952..4251b1a316 100644
--- a/FILES.byname.gz
+++ b/FILES.byname.gz
Binary files differ
diff --git a/FILES.last07days b/FILES.last07days
index 83c2db74e6..7adb7616df 100644
--- a/FILES.last07days
+++ b/FILES.last07days
@@ -1,268 +1,926 @@
-2022/06/11 | 99818 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
-2022/06/11 | 99256 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
-2022/06/11 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
-2022/06/11 | 96634 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
-2022/06/11 | 95433 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
-2022/06/11 | 95284 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/06/12 | 99816 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-2.9.tar.lzma
+2022/06/12 | 9927 | systems/win32/miktex/tm/packages/ligtype.tar.lzma
+2022/06/12 | 99258 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-2.9.tar.lzma
+2022/06/12 | 988 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_rivest_1978.snap
+2022/06/12 | 98476 | systems/win32/miktex/tm/packages/pyluatex__doc.tar.lzma
+2022/06/12 | 9771 | systems/win32/miktex/tm/packages/create-theorem.tar.lzma
+2022/06/12 | 97201 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-2.9.tar.lzma
+2022/06/12 | 970 | support/texlab/src/features/completion/user_command.rs
+2022/06/12 | 967 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_simple.snap
+2022/06/12 | 967 | support/texlab/src/citation/snapshots/texlab__citation__tests__patent_almendro_1998.snap
+2022/06/12 | 96632 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-2.9.tar.lzma
+2022/06/12 | 9648 | systems/texlive/tlnet/archive/ligtype.r63549.tar.xz
+2022/06/12 | 958988 | systems/win32/miktex/tm/packages/postnotes__doc.tar.lzma
+2022/06/12 | 95433 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-2.9.tar.lzma
+2022/06/12 | 95285 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-x64-2.9.tar.lzma
+2022/06/12 | 949 | support/texlab/src/features/completion/component_command.rs
+2022/06/12 | 946 | support/texlab/src/features/hover/citation.rs
+2022/06/12 | 944 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_definition_simple.snap
+2022/06/12 | 943980 | systems/win32/miktex/tm/packages/markdown__doc.tar.lzma
+2022/06/12 | 939 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_command.snap
+2022/06/12 | 93959 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
+2022/06/12 | 92918 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/06/12 | 923 | support/texlab/src/language.rs
+2022/06/12 | 921 | systems/win32/miktex/tm/packages/pr.ini
+2022/06/12 | 919 | support/texlab/src/features/completion/user_environment.rs
+2022/06/12 | 9192 | language/korean/cjk-ko/cjk-ko-doc.tex
+2022/06/12 | 91583 | macros/latex/contrib/xcolor/xcolor2.pdf
+2022/06/12 | 9115 | systems/win32/miktex/tm/packages/latex-lab.tar.lzma
+2022/06/12 | 9100 | info/tex-vpat/texlive-vpat.css
+2022/06/12 | 908308 | systems/win32/miktex/tm/packages/thesis-qom__doc.tar.lzma
+2022/06/12 | 908210 | systems/win32/miktex/tm/packages/bath-bst__doc.tar.lzma
+2022/06/12 | 90760 | systems/texlive/tlnet/archive/ligtype.doc.r63549.tar.xz
+2022/06/12 | 906 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_definition_optional_arg.snap
+2022/06/12 | 905 | support/texlab/src/citation.rs
+2022/06/12 | 901 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__delimiters.snap
+2022/06/12 | 900 | systems/texlive/tlnet/archive/collection-luatex.r63549.tar.xz
+2022/06/12 | 89950 | systems/win32/miktex/tm/packages/markdown__source.tar.lzma
+2022/06/12 | 89601 | systems/win32/miktex/tm/packages/xecjk__source.tar.lzma
+2022/06/12 | 892 | support/texlab/src/features/completion/entry_type.rs
+2022/06/12 | 8903 | support/texlab/tests/integration/lsp/text_document/document_symbol.rs
+2022/06/12 | 8885 | support/texlab/src/label.rs
+2022/06/12 | 88254 | systems/win32/miktex/tm/packages/ctex__source.tar.lzma
+2022/06/12 | 8816 | systems/win32/miktex/tm/packages/luakeys.tar.lzma
+2022/06/12 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
+2022/06/12 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
+2022/06/12 | 8763129 | systems/win32/miktex/tm/packages/gentium-tug.tar.lzma
+2022/06/12 | 875 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_options.snap
+2022/06/12 | 869 | support/texlab/src/environment.rs
+2022/06/12 | 869696 | systems/win32/miktex/tm/packages/babel__doc.tar.lzma
+2022/06/12 | 86759 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/06/12 | 864625 | macros/latex/contrib/xcolor/xcolor.pdf
+2022/06/12 | 8634 | systems/win32/miktex/tm/packages/csassignments__source.tar.lzma
+2022/06/12 | 8634 | systems/win32/miktex/tm/packages/bath-bst.tar.lzma
+2022/06/12 | 85990 | systems/win32/miktex/tm/packages/ligtype__doc.tar.lzma
+2022/06/12 | 857 | support/texlab/src/features/completion/theorem.rs
+2022/06/12 | 855 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error1.snap
+2022/06/12 | 847726 | systems/win32/miktex/tm/packages/kaytannollista-latexia.tar.lzma
+2022/06/12 | 846 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_incomplete.snap
+2022/06/12 | 843 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__biblatex_include_options.snap
+2022/06/12 | 842 | support/texlab/src/features/hover/component.rs
+2022/06/12 | 839 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_end.snap
+2022/06/12 | 837837 | systems/win32/miktex/tm/packages/nwafuthesis__source.tar.lzma
+2022/06/12 | 836 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__comment.snap
+2022/06/12 | 829 | support/texlab/src/features/completion/component_environment.rs
+2022/06/12 | 828 | support/texlab/src/features/link/include.rs
+2022/06/12 | 82677 | support/texlab/texlab.pdf
+2022/06/12 | 8265 | support/texlab/src/features/build.rs
+2022/06/12 | 824371 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
+2022/06/12 | 8201 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_002.snap
+2022/06/12 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
+2022/06/12 | 8106 | systems/win32/miktex/tm/packages/latex-firstaid__source.tar.lzma
+2022/06/12 | 808 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_missing_begin.snap
+2022/06/12 | 80579 | systems/win32/miktex/tm/packages/xint.tar.lzma
+2022/06/12 | 804 | support/texlab/src/features/link.rs
+2022/06/12 | 800 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_betram_1996.snap
+2022/06/12 | 8004 | systems/win32/miktex/tm/packages/schwalbe-chess.tar.lzma
+2022/06/12 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
+2022/06/12 | 78976 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
+2022/06/12 | 78730 | graphics/mcf2graph/mcf_exa_code.pdf
+2022/06/12 | 786 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_options.snap
+2022/06/12 | 784 | support/texlab/src/features/formatting.rs
+2022/06/12 | 77564 | systems/win32/miktex/tm/packages/tagpdf__source.tar.lzma
+2022/06/12 | 7753 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/06/12 | 772 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_figure.snap
+2022/06/12 | 771 | support/texlab/src/syntax/latex.rs
+2022/06/12 | 77069 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
+2022/06/12 | 76 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__empty.snap
+2022/06/12 | 7695316 | support/texlab.zip
+2022/06/12 | 7687254 | systems/win32/miktex/tm/packages/profcollege__doc.tar.lzma
+2022/06/12 | 7625 | support/texlab/src/workspace.rs
+2022/06/12 | 76132 | systems/win32/miktex/tm/packages/xepersian__source.tar.lzma
+2022/06/12 | 7610 | systems/win32/miktex/tm/packages/postnotes.tar.lzma
+2022/06/12 | 759 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_complicated_options.snap
+2022/06/12 | 758955 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
+2022/06/12 | 7574 | support/texlab/src/features/formatting/bibtex_internal.rs
+2022/06/12 | 755741 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
+2022/06/12 | 747 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_optional.snap
+2022/06/12 | 7441 | language/korean/cjk-ko/cjkutf8-josa.sty
+2022/06/12 | 7432 | systems/win32/miktex/tm/packages/pyluatex.tar.lzma
+2022/06/12 | 742 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_simple.snap
+2022/06/12 | 7423 | support/texlab/src/syntax/bibtex/parser.rs
+2022/06/12 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
+2022/06/12 | 736 | systems/texlive/tlnet/archive/collection-latexrecommended.r63547.tar.xz
+2022/06/12 | 735 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_math.snap
+2022/06/12 | 73529 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
+2022/06/12 | 734 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_full.snap
+2022/06/12 | 73478 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
+2022/06/12 | 7345 | systems/win32/miktex/tm/packages/coollist__source.tar.lzma
+2022/06/12 | 73145 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
+2022/06/12 | 7309 | systems/win32/miktex/tm/packages/lua-ul.tar.lzma
+2022/06/12 | 72887 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
+2022/06/12 | 727 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_simple.snap
+2022/06/12 | 724198 | systems/win32/miktex/tm/packages/cooking-units__doc.tar.lzma
+2022/06/12 | 720 | support/texlab/src/citation/snapshots/texlab__citation__tests__collection_matuz_1990.snap
+2022/06/12 | 72014 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
+2022/06/12 | 718701 | systems/win32/miktex/tm/packages/babel__source.tar.lzma
+2022/06/12 | 714 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_environment.snap
+2022/06/12 | 713 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_bibtex.snap
+2022/06/12 | 711 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__block_comments.snap
+2022/06/12 | 711717 | systems/win32/miktex/tm/packages/ltxbase__source.tar.lzma
+2022/06/12 | 710 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_definition_simple.snap
+2022/06/12 | 71007 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
+2022/06/12 | 703 | macros/latex/contrib/xcolor/xcolor.ins
+2022/06/12 | 701886 | systems/win32/miktex/tm/packages/lua-widow-control__doc.tar.lzma
+2022/06/12 | 70051 | systems/win32/miktex/tm/packages/cooking-units__source.tar.lzma
+2022/06/12 | 6 | support/texlab/rust-toolchain
+2022/06/12 | 699 | info/tex-vpat/README.md
+2022/06/12 | 6970534 | support/texlab/data/components.json.gz
+2022/06/12 | 696 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_options.snap
+2022/06/12 | 69680 | systems/win32/miktex/tm/packages/graphics__source.tar.lzma
+2022/06/12 | 695297 | systems/win32/miktex/tm/packages/typed-checklist__doc.tar.lzma
+2022/06/12 | 6933 | support/texlab/src/citation/field/text.rs
+2022/06/12 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
+2022/06/12 | 69208 | systems/win32/miktex/tm/packages/latexindent.tar.lzma
+2022/06/12 | 68874 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
+2022/06/12 | 687 | support/texlab/src/lib.rs
+2022/06/12 | 686640 | systems/win32/miktex/tm/packages/tabularray__doc.tar.lzma
+2022/06/12 | 6825 | support/texlab/src/syntax/bibtex/ast.rs
+2022/06/12 | 681939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
+2022/06/12 | 6807 | systems/win32/miktex/tm/packages/mnotes__source.tar.lzma
+2022/06/12 | 68009 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
+2022/06/12 | 678 | support/texlab/docs/custom_commands.md
+2022/06/12 | 677 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_siblings.snap
+2022/06/12 | 67705 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/06/12 | 676 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_options.snap
+2022/06/12 | 676126 | systems/win32/miktex/tm/packages/tikz-trackschematic__doc.tar.lzma
+2022/06/12 | 674 | support/texlab/src/features/completion/color.rs
+2022/06/12 | 6746 | systems/win32/miktex/tm/packages/pxjahyper__source.tar.lzma
+2022/06/12 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
+2022/06/12 | 668 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_options.snap
+2022/06/12 | 666 | support/texlab/src/syntax/latex/analysis/command.rs
+2022/06/12 | 6630 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_003.snap
+2022/06/12 | 655 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__asymptote.snap
+2022/06/12 | 655800 | systems/win32/miktex/tm/packages/next/files.csv.lzma
+2022/06/12 | 655234 | systems/win32/miktex/tm/packages/files.csv.lzma
+2022/06/12 | 6507 | systems/win32/miktex/tm/packages/hvextern.tar.lzma
+2022/06/12 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
+2022/06/12 | 648 | support/texlab/src/syntax/latex/analysis/label_number.rs
+2022/06/12 | 64876 | systems/win32/miktex/tm/packages/siunitx.tar.lzma
+2022/06/12 | 6484 | support/texlab/src/line_index.rs
+2022/06/12 | 64708 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
+2022/06/12 | 6459 | systems/win32/miktex/tm/packages/fixdif__source.tar.lzma
+2022/06/12 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
+2022/06/12 | 64487 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/06/12 | 643 | support/texlab/texlab.1
+2022/06/12 | 6414 | systems/win32/miktex/tm/packages/create-theorem__source.tar.lzma
+2022/06/12 | 63739 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
+2022/06/12 | 6355 | support/texlab/src/features/symbol/project_order.rs
+2022/06/12 | 63310 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
+2022/06/12 | 631 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_simple.snap
+2022/06/12 | 631281 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
+2022/06/12 | 630 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline_double_dollar.snap
+2022/06/12 | 630 | support/texlab/src/features/hover/field.rs
+2022/06/12 | 629430 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/06/12 | 624 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inline.snap
+2022/06/12 | 623 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption.snap
+2022/06/12 | 62380 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
+2022/06/12 | 621 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_error.snap
+2022/06/12 | 620 | systems/texlive/tlnet/archive/scheme-bookpub.r63547.tar.xz
+2022/06/12 | 614 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__formula.snap
+2022/06/12 | 611 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__asymptote.snap
+2022/06/12 | 60 | support/texlab/src/citation/field.rs
+2022/06/12 | 609 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error2.snap
+2022/06/12 | 6086 | systems/win32/miktex/tm/packages/unbtex.tar.lzma
+2022/06/12 | 60313 | systems/win32/miktex/tm/packages/xepersian.tar.lzma
+2022/06/12 | 60068 | systems/texlive/tlnet/archive/spacekern.doc.r63552.tar.xz
+2022/06/12 | 59 | support/texlab/tests/integration/lsp.rs
+2022/06/12 | 5992 | systems/win32/miktex/tm/packages/ligtype__source.tar.lzma
+2022/06/12 | 59920 | systems/win32/miktex/tm/packages/acmart__source.tar.lzma
+2022/06/12 | 598 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description_and_counter.snap
+2022/06/12 | 598230 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
+2022/06/12 | 59780 | systems/texlive/tlnet/archive/showhyphenation.doc.r63550.tar.xz
+2022/06/12 | 59536 | macros/latex/required/latexbug/latexbug.dtx
+2022/06/12 | 591569 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
+2022/06/12 | 5899 | support/texlab/tests/integration/lsp/text_document/hover.rs
+2022/06/12 | 588080 | systems/win32/miktex/tm/packages/l3kernel__source.tar.lzma
+2022/06/12 | 586 | support/texlab/src/syntax/latex/analysis/theorem.rs
+2022/06/12 | 58665 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
+2022/06/12 | 58662 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
+2022/06/12 | 585 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_aho_2006.snap
+2022/06/12 | 5800488 | systems/texlive/tlnet/install-tl-unx.tar.gz
+2022/06/12 | 578 | support/texlab/src/features/hover/entry_type.rs
+2022/06/12 | 57636 | graphics/mcf2graph/mcf_manual.tex
+2022/06/12 | 57617 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
+2022/06/12 | 5752 | systems/win32/miktex/tm/packages/typed-checklist.tar.lzma
+2022/06/12 | 57527 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
+2022/06/12 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
+2022/06/12 | 57270 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
+2022/06/12 | 5721 | systems/win32/miktex/tm/packages/prettytok.tar.lzma
+2022/06/12 | 57170 | systems/win32/miktex/tm/packages/spacekern__doc.tar.lzma
+2022/06/12 | 570 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_parameter.snap
+2022/06/12 | 57018 | support/texlab/data/lang_data.json
+2022/06/12 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
+2022/06/12 | 56933 | systems/win32/miktex/tm/packages/showhyphenation__doc.tar.lzma
+2022/06/12 | 567 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap
+2022/06/12 | 5674 | systems/win32/miktex/tm/packages/sidenotesplus.tar.lzma
+2022/06/12 | 56619 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
+2022/06/12 | 565928 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/06/12 | 5646 | systems/win32/miktex/tm/packages/beamerthemeamurmaple.tar.lzma
+2022/06/12 | 56299 | systems/win32/miktex/tm/packages/njuthesis__source.tar.lzma
+2022/06/12 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_number.snap
+2022/06/12 | 558 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote_postnote.snap
+2022/06/12 | 55758 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
+2022/06/12 | 55568 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
+2022/06/12 | 55350 | systems/win32/miktex/tm/packages/ly1.tar.lzma
+2022/06/12 | 55283 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
+2022/06/12 | 551 | support/texlab/src/features/hover/label.rs
+2022/06/12 | 5516 | support/texlab/docs/previewing.md
+2022/06/12 | 539365 | systems/win32/miktex/tm/packages/thesis-qom__source.tar.lzma
+2022/06/12 | 5333 | systems/win32/miktex/tm/packages/unbtex__source.tar.lzma
+2022/06/12 | 532455 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
+2022/06/12 | 5284 | support/texlab/src/capabilities.rs
+2022/06/12 | 528018 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
+2022/06/12 | 5270240 | systems/win32/miktex/tm/packages/pax__source.tar.lzma
+2022/06/12 | 5267458 | systems/win32/miktex/tm/packages/pax.tar.lzma
+2022/06/12 | 52480 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
+2022/06/12 | 52327 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
+2022/06/12 | 521 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_invalid_nesting.snap
+2022/06/12 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
+2022/06/12 | 51557 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
+2022/06/12 | 51483 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
+2022/06/12 | 51260 | support/texlab/src/syntax/latex/parser.rs
+2022/06/12 | 511 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_acronym.snap
+2022/06/12 | 50 | support/texlab/src/syntax.rs
+2022/06/12 | 50827 | systems/win32/miktex/tm/packages/zref-clever__source.tar.lzma
+2022/06/12 | 50799 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
+2022/06/12 | 497 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error3.snap
+2022/06/12 | 49770 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/06/12 | 4962 | support/texlab/tests/integration/lsp/text_document/references.rs
+2022/06/12 | 494 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace_multiple.snap
+2022/06/12 | 491 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal.snap
+2022/06/12 | 490 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_counter.snap
+2022/06/12 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+2022/06/12 | 489 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__caption_minimal_error.snap
+2022/06/12 | 489 | support/texlab/src/features/completion/begin_command.rs
+2022/06/12 | 488 | support/texlab/src/range.rs
+2022/06/12 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
+2022/06/12 | 484370 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
+2022/06/12 | 4840 | systems/win32/miktex/tm/packages/pyluatex__source.tar.lzma
+2022/06/12 | 4817 | support/texlab/src/diagnostics/bibtex.rs
+2022/06/12 | 481499 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
+2022/06/12 | 479 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_simple.snap
+2022/06/12 | 479 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_open_brace.snap
+2022/06/12 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
+2022/06/12 | 477849 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/06/12 | 475 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_command.snap
+2022/06/12 | 475 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_command_definition.snap
+2022/06/12 | 4753 | support/texlab/tests/integration/lsp/client.rs
+2022/06/12 | 47382 | support/texlab/src/syntax/build_log.rs
+2022/06/12 | 472 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_simple.snap
+2022/06/12 | 472970 | systems/win32/miktex/tm/packages/gentium-tug__source.tar.lzma
+2022/06/12 | 4725 | support/texlab/src/features/completion/include.rs
+2022/06/12 | 470 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_simple.snap
+2022/06/12 | 468 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_error.snap
+2022/06/12 | 467 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace.snap
+2022/06/12 | 466 | support/texlab/src/syntax/latex/analysis/graphics_path.rs
+2022/06/12 | 4660428 | systems/win32/miktex/tm/packages/acmart__doc.tar.lzma
+2022/06/12 | 465 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_simple.snap
+2022/06/12 | 464 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_open_brace.snap
+2022/06/12 | 464 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_argc.snap
+2022/06/12 | 464648 | systems/win32/miktex/tm/packages/logix__doc.tar.lzma
+2022/06/12 | 462 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_name_with_description.snap
+2022/06/12 | 4624 | language/korean/cjk-ko/kolabels-utf.sty
+2022/06/12 | 46156 | systems/win32/miktex/tm/packages/l3packages__source.tar.lzma
+2022/06/12 | 460 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_empty.snap
+2022/06/12 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
+2022/06/12 | 458 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_end.snap
+2022/06/12 | 458 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_class.snap
+2022/06/12 | 458 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_line_break.snap
+2022/06/12 | 45824 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
+2022/06/12 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
+2022/06/12 | 45687 | systems/win32/miktex/tm/packages/lua-widow-control__source.tar.lzma
+2022/06/12 | 45624 | systems/texlive/tlnet/archive/showkerning.doc.r63551.tar.xz
+2022/06/12 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+2022/06/12 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
+2022/06/12 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
+2022/06/12 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
+2022/06/12 | 4554 | support/texlab/src/component_db.rs
+2022/06/12 | 453 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_path_with_brackets.snap
+2022/06/12 | 4513 | support/texlab/src/syntax/latex/kind.rs
+2022/06/12 | 450 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_multiple.snap
+2022/06/12 | 449 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_begin.snap
+2022/06/12 | 447853 | systems/win32/miktex/tm/packages/biblatex-bath__doc.tar.lzma
+2022/06/12 | 445 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_word.snap
+2022/06/12 | 445 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__comment.snap
+2022/06/12 | 4419 | support/texlab/src/diagnostics/latex.rs
+2022/06/12 | 440 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_complete_entry.snap
+2022/06/12 | 43917 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
+2022/06/12 | 43825 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
+2022/06/12 | 43769 | systems/win32/miktex/tm/packages/tuda-ci.tar.lzma
+2022/06/12 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
+2022/06/12 | 43636 | support/texlab/Cargo.lock
+2022/06/12 | 434278 | graphics/mcf2graph/mcf_example.pdf
+2022/06/12 | 43362 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
+2022/06/12 | 43352 | graphics/mcf2graph/mcf_man_soc.mp
+2022/06/12 | 43224 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
+2022/06/12 | 4299 | language/korean/cjk-ko/README
+2022/06/12 | 42990 | systems/win32/miktex/tm/packages/markdown.tar.lzma
+2022/06/12 | 42938 | systems/win32/miktex/tm/packages/showkerning__doc.tar.lzma
+2022/06/12 | 428 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_simple.snap
+2022/06/12 | 42816 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
+2022/06/12 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_prenote.snap
+2022/06/12 | 426 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__block_comment.snap
+2022/06/12 | 425 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_figure.snap
+2022/06/12 | 425 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_args.snap
+2022/06/12 | 4229 | support/texlab/src/syntax/bibtex/tests.rs
+2022/06/12 | 421802 | systems/win32/miktex/tm/packages/xint__source.tar.lzma
+2022/06/12 | 42043 | systems/win32/miktex/tm/packages/acmart.tar.lzma
+2022/06/12 | 419 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple.snap
+2022/06/12 | 417 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_article.snap
+2022/06/12 | 4172 | support/texlab/src/features/completion/label.rs
+2022/06/12 | 41305 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
+2022/06/12 | 412 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_path.snap
+2022/06/12 | 41203 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
+2022/06/12 | 411 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_multiple.snap
+2022/06/12 | 41181 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
+2022/06/12 | 4108 | systems/win32/miktex/tm/packages/ly1__doc.tar.lzma
+2022/06/12 | 4100 | systems/win32/miktex/tm/packages/spacekern__source.tar.lzma
+2022/06/12 | 4095 | systems/win32/miktex/tm/packages/showhyphenation__source.tar.lzma
+2022/06/12 | 4081 | language/korean/cjk-ko/konames-utf.sty
+2022/06/12 | 4073 | systems/win32/miktex/tm/packages/poormanlog.tar.lzma
+2022/06/12 | 407048 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63544.tar.xz
+2022/06/12 | 4052 | systems/win32/miktex/tm/packages/csassignments.tar.lzma
+2022/06/12 | 402629 | systems/win32/miktex/tm/packages/xebaposter__doc.tar.lzma
+2022/06/12 | 401 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_include_equality_sign.snap
+2022/06/12 | 401 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_multiple_keys.snap
+2022/06/12 | 3997 | support/texlab/src/features/lsp_kinds.rs
+2022/06/12 | 398552 | systems/win32/miktex/tm/packages/sidenotesplus__doc.tar.lzma
+2022/06/12 | 39726 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
+2022/06/12 | 3954350 | systems/win32/miktex/tm/packages/bidi__doc.tar.lzma
+2022/06/12 | 3949288 | systems/texlive/tlnet/archive/bidi.doc.r63548.tar.xz
+2022/06/12 | 394369 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
+2022/06/12 | 3935 | support/texlab/docs/options.md
+2022/06/12 | 3934 | systems/win32/miktex/tm/packages/showkerning__source.tar.lzma
+2022/06/12 | 390 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_preamble.snap
+2022/06/12 | 390339 | systems/win32/miktex/tm/packages/gamebooklib__doc.tar.lzma
+2022/06/12 | 3889 | support/texlab/tests/integration/lsp/workspace/symbol.rs
+2022/06/12 | 388263 | systems/win32/miktex/tm/packages/logix.tar.lzma
+2022/06/12 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
+2022/06/12 | 38427 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
+2022/06/12 | 3838 | systems/win32/miktex/tm/packages/gamebooklib.tar.lzma
+2022/06/12 | 381 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_preamble.snap
+2022/06/12 | 3812 | graphics/mcf2graph/mcf_exa_code.tex
+2022/06/12 | 380 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_string.snap
+2022/06/12 | 380190 | support/texlab/docs/demo.gif
+2022/06/12 | 378 | support/texlab/src/features/highlight.rs
+2022/06/12 | 3788 | support/texlab/src/features/symbol.rs
+2022/06/12 | 3786 | support/texlab/README.md
+2022/06/12 | 37747 | systems/win32/miktex/tm/packages/bath-bst__source.tar.lzma
+2022/06/12 | 373 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_string.snap
+2022/06/12 | 373 | support/texlab/src/syntax/latex/analysis/environment.rs
+2022/06/12 | 3738 | systems/win32/miktex/tm/packages/multifootnote__source.tar.lzma
+2022/06/12 | 37376 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
+2022/06/12 | 3720 | support/texlab/src/syntax/bibtex/lexer.rs
+2022/06/12 | 37116 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
+2022/06/12 | 370 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__preamble.snap
+2022/06/12 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
+2022/06/12 | 3700 | support/texlab/src/features/symbol/types.rs
+2022/06/12 | 3698739 | systems/win32/miktex/tm/packages/logix__source.tar.lzma
+2022/06/12 | 36956 | systems/texlive/tlnet/archive/pdftex.r63546.tar.xz
+2022/06/12 | 3664 | support/texlab/tests/integration/lsp/fixture.rs
+2022/06/12 | 364 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__math_operator_no_impl.snap
+2022/06/12 | 3649 | graphics/mcf2graph/README
+2022/06/12 | 364698 | systems/win32/miktex/tm/packages/arabtex__doc.tar.lzma
+2022/06/12 | 360 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation.snap
+2022/06/12 | 36047 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
+2022/06/12 | 358 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_range_incomplete.snap
+2022/06/12 | 3584357 | systems/win32/miktex/tm/packages/xint__doc.tar.lzma
+2022/06/12 | 357 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_simple.snap
+2022/06/12 | 3572 | support/texlab/src/document.rs
+2022/06/12 | 356 | support/texlab/tests/integration/dev.rs
+2022/06/12 | 356 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl.snap
+2022/06/12 | 355 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__biblatex_include_simple.snap
+2022/06/12 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__theorem_definition_only_name.snap
+2022/06/12 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__escaped_brackets.snap
+2022/06/12 | 354 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_no_impl_error.snap
+2022/06/12 | 353 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__verbatim_include_simple.snap
+2022/06/12 | 35240 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
+2022/06/12 | 35169 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
+2022/06/12 | 351697 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
+2022/06/12 | 35149 | support/texlab/LICENSE
+2022/06/12 | 3498 | systems/win32/miktex/tm/packages/latex-firstaid.tar.lzma
+2022/06/12 | 34960 | systems/win32/miktex/tm/packages/biblatex-bath__source.tar.lzma
+2022/06/12 | 34871 | systems/win32/miktex/tm/packages/nicematrix.tar.lzma
+2022/06/12 | 348580 | systems/win32/miktex/tm/packages/beamerthemeamurmaple__doc.tar.lzma
+2022/06/12 | 347 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_redundant_comma.snap
+2022/06/12 | 3479 | support/texlab/src/features/completion/types.rs
+2022/06/12 | 3472 | support/texlab/tests/integration/lsp/text_document/formatting.rs
+2022/06/12 | 345 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__tikz_library_import_simple.snap
+2022/06/12 | 3446 | systems/win32/miktex/tm/packages/pax__doc.tar.lzma
+2022/06/12 | 34461 | support/texlab/src/server.rs
+2022/06/12 | 344001 | macros/latex/contrib/xcolor/xcolor.dtx
+2022/06/12 | 343 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__pgf_library_import_simple.snap
+2022/06/12 | 34335 | systems/win32/miktex/tm/packages/tabularray.tar.lzma
+2022/06/12 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/06/12 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_simple.snap
+2022/06/12 | 339 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__bibtex_include_simple.snap
+2022/06/12 | 3397 | support/texlab/src/features/symbol/bibtex.rs
+2022/06/12 | 338153 | systems/win32/miktex/tm/packages/prettytok__doc.tar.lzma
+2022/06/12 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__svg_include_simple.snap
+2022/06/12 | 337 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_simple.snap
+2022/06/12 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
+2022/06/12 | 331 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_reference_simple.snap
+2022/06/12 | 329 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__inkscape_include_simple.snap
+2022/06/12 | 32955 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
+2022/06/12 | 3274 | support/texlab/src/features/completion/citation.rs
+2022/06/12 | 326661 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
+2022/06/12 | 325 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_simple.snap
+2022/06/12 | 325269 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
+2022/06/12 | 3231 | support/texlab/src/citation/entry.rs
+2022/06/12 | 32280 | systems/win32/miktex/tm/packages/thmtools__source.tar.lzma
+2022/06/12 | 321 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_include_simple.snap
+2022/06/12 | 32134 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
+2022/06/12 | 31808 | info/tex-vpat/texlive-vpat.tex
+2022/06/12 | 316243 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
+2022/06/12 | 31585 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
+2022/06/12 | 315710 | systems/win32/miktex/tm/packages/fixdif__doc.tar.lzma
+2022/06/12 | 31521 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
+2022/06/12 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__import_incomplete.snap
+2022/06/12 | 314 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__glossary_entry_reference_simple.snap
+2022/06/12 | 31431 | systems/win32/miktex/tm/packages/amsmath.tar.lzma
+2022/06/12 | 3141 | support/texlab/src/features/forward_search.rs
+2022/06/12 | 31413 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
+2022/06/12 | 313 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__equation_label_reference_simple.snap
+2022/06/12 | 31343 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
+2022/06/12 | 312 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_reference_simple.snap
+2022/06/12 | 3118 | support/texlab/src/features/rename/label.rs
+2022/06/12 | 310 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_definition_simple.snap
+2022/06/12 | 3106562 | systems/win32/miktex/tm/packages/luatexja__doc.tar.lzma
+2022/06/12 | 3102 | systems/win32/miktex/tm/packages/showhyphenation.tar.lzma
+2022/06/12 | 3099 | support/texlab/src/options.rs
+2022/06/12 | 30823 | systems/win32/miktex/tm/packages/postnotes__source.tar.lzma
+2022/06/12 | 3072 | language/korean/cjk-ko/ChangeLog
+2022/06/12 | 30541 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
+2022/06/12 | 302 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__color_set_definition_error4.snap
+2022/06/12 | 301 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__label_reference_simple.snap
+2022/06/12 | 30146 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
+2022/06/12 | 3010 | support/texlab/tests/integration/lsp/text_document/definition.rs
+2022/06/12 | 30005361 | systems/win32/miktex/tm/packages/ltxbase__doc.tar.lzma
+2022/06/12 | 2986 | support/texlab/src/diagnostics/chktex.rs
+2022/06/12 | 2984 | graphics/mcf2graph/mcf_example.tex
+2022/06/12 | 296039 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
+2022/06/12 | 2951 | support/texlab/src/features/highlight/label.rs
+2022/06/12 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_star.snap
+2022/06/12 | 294 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_simple.snap
+2022/06/12 | 2895 | systems/win32/miktex/tm/packages/showkerning.tar.lzma
+2022/06/12 | 289263 | graphics/mcf2graph/mcf_manual.pdf
+2022/06/12 | 288200 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
+2022/06/12 | 2880 | systems/texlive/tlnet/archive/showhyphenation.r63550.tar.xz
+2022/06/12 | 287 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_missing_brace.snap
+2022/06/12 | 28797 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
+2022/06/12 | 2876 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__label.snap
+2022/06/12 | 28690 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
+2022/06/12 | 286412 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
+2022/06/12 | 285 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets_with_group.snap
+2022/06/12 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
+2022/06/12 | 28569 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
+2022/06/12 | 28422 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
+2022/06/12 | 2840 | support/texlab/src/features/execute_command.rs
+2022/06/12 | 283 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_simple.snap
+2022/06/12 | 2820688 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
+2022/06/12 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_empty.snap
+2022/06/12 | 281 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__brace_group_missing_end.snap
+2022/06/12 | 281202 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
+2022/06/12 | 281155 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
+2022/06/12 | 279 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_empty.snap
+2022/06/12 | 277 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__command_with_star.snap
+2022/06/12 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
+2022/06/12 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
+2022/06/12 | 27553 | systems/win32/miktex/tm/packages/aomart__source.tar.lzma
+2022/06/12 | 27403 | systems/win32/miktex/tm/packages/tagpdf.tar.lzma
+2022/06/12 | 2728 | systems/win32/miktex/tm/packages/spacekern.tar.lzma
+2022/06/12 | 27249 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
+2022/06/12 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
+2022/06/12 | 2694877 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/06/12 | 2685 | language/korean/cjk-ko/kotex.sty
+2022/06/12 | 2679 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_nested.snap
+2022/06/12 | 2674 | systems/win32/miktex/tm/packages/poormanlog__doc.tar.lzma
+2022/06/12 | 26491 | systems/win32/miktex/tm/packages/nwafuthesis.tar.lzma
+2022/06/12 | 2624 | support/texlab/src/distro/miktex.rs
+2022/06/12 | 261 | support/texlab/src/syntax/snapshots/texlab__syntax__build_log__tests__parse_007.snap
+2022/06/12 | 261 | support/texlab/src/req_queue.rs
+2022/06/12 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
+2022/06/12 | 2586 | support/texlab/texlab.tex
+2022/06/12 | 25551 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
+2022/06/12 | 25484011 | systems/texlive/tlnet/install-tl.zip
+2022/06/12 | 2538 | systems/win32/miktex/tm/packages/coollist.tar.lzma
+2022/06/12 | 2523 | support/texlab/src/features/formatting/latexindent.rs
+2022/06/12 | 252114 | systems/win32/miktex/tm/packages/thmtools__doc.tar.lzma
+2022/06/12 | 251784 | systems/win32/miktex/tm/packages/latex-firstaid__doc.tar.lzma
+2022/06/12 | 251129 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
+2022/06/12 | 25107 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
+2022/06/12 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
+2022/06/12 | 2504 | systems/texlive/tlnet/archive/spacekern.r63552.tar.xz
+2022/06/12 | 249938 | systems/win32/miktex/tm/packages/luakeys__doc.tar.lzma
+2022/06/12 | 248 | macros/latex/required/latexbug/README.md
+2022/06/12 | 2489783 | systems/win32/miktex/tm/packages/graphics__doc.tar.lzma
+2022/06/12 | 2477 | support/texlab/src/citation/field/date.rs
+2022/06/12 | 24744 | systems/win32/miktex/tm/packages/typed-checklist__source.tar.lzma
+2022/06/12 | 247334 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
+2022/06/12 | 245097 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
+2022/06/12 | 244961 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
+2022/06/12 | 2448 | systems/texlive/tlnet/archive/showkerning.r63551.tar.xz
+2022/06/12 | 243 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__citation_empty.snap
+2022/06/12 | 2435 | support/texlab/src/features/rename/entry.rs
+2022/06/12 | 2432 | systems/win32/miktex/tm/packages/mnotes.tar.lzma
+2022/06/12 | 242 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__line_break.snap
+2022/06/12 | 242246 | install/macros/latex/required/latexbug.tds.zip
+2022/06/12 | 2416 | support/texlab/src/dispatch.rs
+2022/06/12 | 2415 | support/texlab/src/syntax/latex/analysis/explicit_link.rs
+2022/06/12 | 24121 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
+2022/06/12 | 23945 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
+2022/06/12 | 2392337 | systems/doc/pdftex.zip
+2022/06/12 | 2384876 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+2022/06/12 | 23770 | support/texlab/src/features/completion.rs
+2022/06/12 | 2368506 | systems/win32/miktex/tm/packages/amsmath__doc.tar.lzma
+2022/06/12 | 2361 | systems/win32/miktex/tm/packages/prettytok__source.tar.lzma
+2022/06/12 | 234 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__escape_sequence.snap
+2022/06/12 | 232881 | macros/latex/required/latexbug.zip
+2022/06/12 | 22916 | systems/win32/miktex/tm/packages/zref-clever.tar.lzma
+2022/06/12 | 2282 | support/texlab/tests/integration/lsp/text_document/folding_range.rs
+2022/06/12 | 2270 | graphics/mcf2graph/mcf_exa_soc.mp
+2022/06/12 | 226338 | systems/win32/miktex/tm/packages/ltxbase.tar.lzma
+2022/06/12 | 2250 | support/texlab/docs/lsp_kinds.md
+2022/06/12 | 224257 | macros/latex/required/latexbug/latexbug.pdf
+2022/06/12 | 2222 | support/texlab/Cargo.toml
+2022/06/12 | 22218 | support/texlab/src/citation/driver.rs
+2022/06/12 | 22192 | systems/win32/miktex/tm/packages/latex-lab__source.tar.lzma
+2022/06/12 | 221643 | systems/win32/miktex/tm/packages/xecjk.tar.lzma
+2022/06/12 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
+2022/06/12 | 22098 | systems/win32/miktex/tm/packages/l3packages.tar.lzma
+2022/06/12 | 219 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_join_strings.snap
+2022/06/12 | 219761 | systems/win32/miktex/tm/packages/luatexja__source.tar.lzma
+2022/06/12 | 2185 | support/texlab/src/syntax/latex/analysis/distro_file.rs
+2022/06/12 | 2158 | support/texlab/src/diagnostics/build_log.rs
+2022/06/12 | 2150 | support/texlab/src/features/definition.rs
+2022/06/12 | 21422 | systems/win32/miktex/tm/packages/cooking-units.tar.lzma
+2022/06/12 | 213547 | systems/win32/miktex/tm/packages/mnotes__doc.tar.lzma
+2022/06/12 | 213278 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
+2022/06/12 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
+2022/06/12 | 2124 | support/texlab/src/distro.rs
+2022/06/12 | 2115 | systems/win32/miktex/tm/packages/multifootnote.tar.lzma
+2022/06/12 | 2102 | support/texlab/src/features/completion/argument.rs
+2022/06/12 | 210270 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
+2022/06/12 | 2101 | support/texlab/src/diagnostics/debouncer.rs
+2022/06/12 | 2096 | support/texlab/tests/integration/lsp/text_document/rename.rs
+2022/06/12 | 2091868 | systems/texlive/tlnet/archive/pdftex.doc.r63546.tar.xz
+2022/06/12 | 208808 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
+2022/06/12 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_brackets.snap
+2022/06/12 | 206 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__unmatched_braces.snap
+2022/06/12 | 205 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__hello_world.snap
+2022/06/12 | 2056 | support/texlab/src/features/folding.rs
+2022/06/12 | 205490 | systems/win32/miktex/tm/packages/xpinyin__doc.tar.lzma
+2022/06/12 | 204 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_command.snap
+2022/06/12 | 2047 | support/texlab/src/syntax/latex/analysis/implicit_link.rs
+2022/06/12 | 2046 | support/texlab/src/lang_data.rs
+2022/06/12 | 20464997 | systems/texlive/tlnet/install-tl-windows.exe
+2022/06/12 | 203 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_preamble.snap
+2022/06/12 | 203836 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
+2022/06/12 | 2035 | support/texlab/src/distro/kpsewhich.rs
+2022/06/12 | 2034371 | systems/win32/miktex/tm/packages/nwafuthesis__doc.tar.lzma
+2022/06/12 | 2033 | support/texlab/src/features/reference/entry.rs
+2022/06/12 | 202834 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
+2022/06/12 | 2021 | support/texlab/docs/custom_messages.md
+2022/06/12 | 201 | support/texlab/tests/integration/lsp/text_document.rs
+2022/06/12 | 2019614 | systems/win32/miktex/tm/packages/profcollege__source.tar.lzma
+2022/06/12 | 201920 | systems/win32/miktex/tm/packages/xpinyin.tar.lzma
+2022/06/12 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
+2022/06/12 | 201526 | systems/win32/miktex/tm/packages/schwalbe-chess__doc.tar.lzma
+2022/06/12 | 2007 | macros/latex/contrib/xcolor/README.md
+2022/06/12 | 200397 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
+2022/06/12 | 199987 | systems/win32/miktex/tm/packages/pxcjkcat__doc.tar.lzma
+2022/06/12 | 199830 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
+2022/06/12 | 1994 | support/texlab/src/main.rs
+2022/06/12 | 1984 | support/texlab/src/syntax/latex/analysis/label_name.rs
+2022/06/12 | 1982085 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
+2022/06/12 | 197038 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
+2022/06/12 | 19654 | support/texlab/CHANGELOG.md
+2022/06/12 | 1963 | macros/latex/required/latexbug/latexbug.ins
+2022/06/12 | 196116 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
+2022/06/12 | 195848 | graphics/mcf2graph/mcf_mplib_exa.pdf
+2022/06/12 | 19573 | systems/win32/miktex/tm/packages/pxjahyper.tar.lzma
+2022/06/12 | 1952705 | systems/win32/miktex/tm/packages/nicematrix__doc.tar.lzma
+2022/06/12 | 194 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_trailing_comma.snap
+2022/06/12 | 193 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_insert_braces.snap
+2022/06/12 | 19349 | systems/win32/miktex/tm/packages/tabularray__source.tar.lzma
+2022/06/12 | 192024 | info/tex-vpat.zip
+2022/06/12 | 1919 | support/texlab/src/syntax/latex/analysis/types.rs
+2022/06/12 | 191416 | systems/win32/miktex/tm/packages/luatexja.tar.lzma
+2022/06/12 | 1912 | systems/win32/miktex/tm/packages/fixdif.tar.lzma
+2022/06/12 | 190551 | systems/win32/miktex/tm/packages/babel.tar.lzma
+2022/06/12 | 190506 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
+2022/06/12 | 18 | support/texlab/tests/integration/main.rs
+2022/06/12 | 1890 | support/texlab/src/features/rename.rs
+2022/06/12 | 1874106 | systems/win32/miktex/tm/packages/tagpdf__doc.tar.lzma
+2022/06/12 | 1871411 | systems/win32/miktex/tm/packages/latex-lab__doc.tar.lzma
+2022/06/12 | 1868 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_nested.snap
+2022/06/12 | 18522 | support/texlab/src/syntax/latex/lexer.rs
+2022/06/12 | 18492 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
+2022/06/12 | 183 | support/texlab/CONTRIBUTING.md
+2022/06/12 | 18368 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
+2022/06/12 | 1832 | language/korean/cjk-ko/cjkutf8-nanummjhanja.sty
+2022/06/12 | 1828 | support/texlab/src/features/completion/import.rs
+2022/06/12 | 1820657 | systems/win32/miktex/tm/packages/l3packages__doc.tar.lzma
+2022/06/12 | 181 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_string.snap
+2022/06/12 | 181515 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
+2022/06/12 | 18150 | graphics/mcf2graph/CHANGELOG
+2022/06/12 | 179876 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
+2022/06/12 | 1791 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_nested.snap
+2022/06/12 | 1779 | support/texlab/src/diagnostics.rs
+2022/06/12 | 1767 | support/texlab/src/features/completion/util.rs
+2022/06/12 | 176240 | systems/win32/miktex/tm/packages/beamerthemeamurmaple__source.tar.lzma
+2022/06/12 | 1760 | support/texlab/src/citation/output.rs
+2022/06/12 | 175388 | language/korean/cjk-ko.zip
+2022/06/12 | 1752147 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
+2022/06/12 | 17512345 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
+2022/06/12 | 174257 | language/korean/cjk-ko/cjk-ko-doc.pdf
+2022/06/12 | 173008 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
+2022/06/12 | 171888 | systems/win32/miktex/tm/packages/xebaposter__source.tar.lzma
+2022/06/12 | 171542 | systems/win32/miktex/tm/packages/l3kernel.tar.lzma
+2022/06/12 | 17138 | systems/win32/miktex/tm/packages/gamebooklib__source.tar.lzma
+2022/06/12 | 170 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_parens.snap
+2022/06/12 | 170 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_empty.snap
+2022/06/12 | 16996 | support/texlab/src/syntax/latex/cst.rs
+2022/06/12 | 168821 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
+2022/06/12 | 1680 | support/texlab/tests/integration/lsp/text_document/document_highlight.rs
+2022/06/12 | 168091 | info/tex-vpat/texlive-vpat.pdf
+2022/06/12 | 166 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__generic_command_escape.snap
+2022/06/12 | 16561 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
+2022/06/12 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
+2022/06/12 | 16479 | systems/win32/miktex/tm/packages/schwalbe-chess__source.tar.lzma
+2022/06/12 | 1642 | support/texlab/src/features/completion/glossary_ref.rs
+2022/06/12 | 1631 | support/texlab/src/citation/field/author.rs
+2022/06/12 | 1624 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_flat.snap
+2022/06/12 | 1606243 | systems/win32/miktex/tm/packages/xecjk__doc.tar.lzma
+2022/06/12 | 1601 | support/texlab/tests/integration/lsp/text_document/document_link.rs
+2022/06/12 | 1593 | support/texlab/src/client.rs
+2022/06/12 | 159324 | systems/win32/miktex/tm/packages/pxjahyper__doc.tar.lzma
+2022/06/12 | 15891 | systems/win32/miktex/tm/packages/njuthesis.tar.lzma
+2022/06/12 | 158678 | info/tex-vpat/texlive-vpat.html
+2022/06/12 | 156963 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
+2022/06/12 | 15670 | systems/win32/miktex/tm/packages/lua-widow-control.tar.lzma
+2022/06/12 | 15597 | systems/win32/miktex/tm/packages/graphics.tar.lzma
+2022/06/12 | 155499 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
+2022/06/12 | 1547 | support/texlab/benches/bench_main.rs
+2022/06/12 | 15441 | systems/win32/miktex/tm/packages/tikz-trackschematic.tar.lzma
+2022/06/12 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
+2022/06/12 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
+2022/06/12 | 1527484 | systems/win32/miktex/tm/packages/zref-clever__doc.tar.lzma
+2022/06/12 | 15251 | macros/latex/contrib/xcolor/ChangeLog
+2022/06/12 | 152030 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
+2022/06/12 | 1511 | support/texlab/src/features/rename/command.rs
+2022/06/12 | 1510 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_nested.snap
+2022/06/12 | 1501236 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
+2022/06/12 | 1499 | support/texlab/src/features/reference/string.rs
+2022/06/12 | 1498 | support/texlab/src/features/definition/command.rs
+2022/06/12 | 14788 | systems/win32/miktex/tm/packages/tikz-trackschematic__source.tar.lzma
+2022/06/12 | 1476 | support/texlab/src/features/completion/color_model.rs
+2022/06/12 | 1475 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acronym_declaration.snap
+2022/06/12 | 14757 | support/texlab/tests/integration/lsp/text_document/completion.rs
+2022/06/12 | 146900 | systems/texlive/tlnet/archive/texlive-msg-translations.r63545.tar.xz
+2022/06/12 | 1468 | support/texlab/src/features/hover.rs
+2022/06/12 | 146655 | systems/win32/miktex/tm/packages/nicematrix__source.tar.lzma
+2022/06/12 | 1464 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_closed.snap
+2022/06/12 | 1463 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_open.snap
+2022/06/12 | 1463795 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
+2022/06/12 | 1461670 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
+2022/06/12 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
+2022/06/12 | 14575 | graphics/mcf2graph/mcf_mplib_exa.tex
+2022/06/12 | 1455 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_open_brace.snap
+2022/06/12 | 14551 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__biblatex_examples_001.snap
+2022/06/12 | 1454762 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
+2022/06/12 | 1450 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_closed_brace.snap
+2022/06/12 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+2022/06/12 | 1444459 | systems/win32/miktex/tm/packages/unbtex__doc.tar.lzma
+2022/06/12 | 14412 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
+2022/06/12 | 144008 | systems/texlive/tlnet/archive/bidi.source.r63548.tar.xz
+2022/06/12 | 143961 | systems/win32/miktex/tm/packages/bidi__source.tar.lzma
+2022/06/12 | 1437 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_closed_brace.snap
+2022/06/12 | 1436 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_open_brace.snap
+2022/06/12 | 1429 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_nested.snap
+2022/06/12 | 1428 | support/texlab/src/citation/snapshots/texlab__citation__tests__mvbook_nietzsche_1988.snap
+2022/06/12 | 14262 | systems/win32/miktex/tm/packages/hvextern__source.tar.lzma
+2022/06/12 | 1425 | support/texlab/src/syntax/latex/analysis.rs
+2022/06/12 | 1423 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_field_name.snap
+2022/06/12 | 1422 | support/texlab/src/features/definition/entry.rs
+2022/06/12 | 142175 | systems/win32/miktex/tm/packages/fancyvrb__doc.tar.lzma
+2022/06/12 | 1419 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_nested.snap
+2022/06/12 | 141712 | systems/win32/miktex/tm/packages/kaytannollista-latexia__source.tar.lzma
+2022/06/12 | 1414867 | systems/win32/miktex/tm/packages/gentium-tug__doc.tar.lzma
+2022/06/12 | 1411 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_averroes_1998.snap
+2022/06/12 | 14021 | systems/win32/miktex/tm/packages/aomart.tar.lzma
+2022/06/12 | 1399 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_bibtex.snap
+2022/06/12 | 13992 | language/korean/cjk-ko/cjkutf8-ko.sty
+2022/06/12 | 1398 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_closed.snap
+2022/06/12 | 1397 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_open.snap
+2022/06/12 | 139101 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
+2022/06/12 | 13898 | support/texlab/src/features/symbol/latex.rs
+2022/06/12 | 1385 | support/texlab/src/citation/field/number.rs
+2022/06/12 | 1381 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple_package.snap
+2022/06/12 | 137 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter.snap
+2022/06/12 | 1378 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__begin_environment_without_snippet_support.snap
+2022/06/12 | 1374 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__acroynm_definition_options.snap
+2022/06/12 | 1364 | support/texlab/src/features/definition/label.rs
+2022/06/12 | 135 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__parameter_error.snap
+2022/06/12 | 135948 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
+2022/06/12 | 1357073 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
+2022/06/12 | 1354 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_open_brace.snap
+2022/06/12 | 13542 | systems/win32/miktex/tm/packages/thesis-qom.tar.lzma
+2022/06/12 | 135377 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
+2022/06/12 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
+2022/06/12 | 1349 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_at_empty.snap
+2022/06/12 | 13496 | systems/win32/miktex/tm/packages/thmtools.tar.lzma
+2022/06/12 | 1348395 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
+2022/06/12 | 1348312 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
+2022/06/12 | 1344 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_flat.snap
+2022/06/12 | 1344 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_empty.snap
+2022/06/12 | 13334 | systems/win32/miktex/tm/packages/pxcjkcat__source.tar.lzma
+2022/06/12 | 1330 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_blom_2021.snap
+2022/06/12 | 1322 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_section.snap
+2022/06/12 | 1322742 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
+2022/06/12 | 1317 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple_end.snap
+2022/06/12 | 1315 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple.snap
+2022/06/12 | 131572 | systems/win32/miktex/tm/packages/create-theorem__doc.tar.lzma
+2022/06/12 | 1314 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_kastenholz_2006.snap
+2022/06/12 | 13138 | systems/win32/miktex/tm/packages/sidenotesplus__source.tar.lzma
+2022/06/12 | 130708 | systems/win32/miktex/tm/packages/ctex.tar.lzma
+2022/06/12 | 1302483 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
+2022/06/12 | 1300 | support/texlab/src/syntax/bibtex/snapshots/texlab__syntax__bibtex__tests__entry_colon.snap
+2022/06/12 | 1300 | support/texlab/src/syntax/bibtex.rs
+2022/06/12 | 12 | support/texlab/tests/integration/lsp/workspace.rs
+2022/06/12 | 1286 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested_missing_braces.snap
+2022/06/12 | 1286843 | systems/win32/miktex/tm/packages/njuthesis__doc.tar.lzma
+2022/06/12 | 1283 | macros/latex/required/latexbug/changes.txt
+2022/06/12 | 1282 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__structure_enum_item.snap
+2022/06/12 | 127076 | systems/texlive/tlnet/archive/bidi.r63548.tar.xz
+2022/06/12 | 1268 | support/texlab/src/line_index_ext.rs
+2022/06/12 | 126663 | systems/win32/miktex/tm/packages/bidi.tar.lzma
+2022/06/12 | 126535 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
+2022/06/12 | 1255 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_closed_brace.snap
+2022/06/12 | 12557 | systems/win32/miktex/tm/packages/luakeys__source.tar.lzma
+2022/06/12 | 1254 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_open_brace.snap
+2022/06/12 | 1251619 | systems/win32/miktex/tm/packages/arabtex__source.tar.lzma
+2022/06/12 | 12507 | systems/win32/miktex/tm/packages/lua-ul__source.tar.lzma
+2022/06/12 | 1243489 | systems/win32/miktex/tm/packages/siunitx__doc.tar.lzma
+2022/06/12 | 124238 | systems/win32/miktex/tm/packages/latexindent__source.tar.lzma
+2022/06/12 | 1240 | support/texlab/src/features/hover/string_ref.rs
+2022/06/12 | 1235 | support/texlab/src/features.rs
+2022/06/12 | 1223 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__command_definition_with_begin.snap
+2022/06/12 | 1223 | support/texlab/src/citation/snapshots/texlab__citation__tests__book_knuth_1984.snap
+2022/06/12 | 12127 | systems/win32/miktex/tm/packages/fancyvrb.tar.lzma
+2022/06/12 | 120616 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
+2022/06/12 | 1204062 | systems/win32/miktex/tm/packages/profcollege.tar.lzma
+2022/06/12 | 1196 | support/texlab/src/features/definition/string.rs
+2022/06/12 | 118 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__lexer__tests__invalid_parameter.snap
+2022/06/12 | 1186 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_word.snap
+2022/06/12 | 11851 | support/texlab/src/citation/tests.rs
+2022/06/12 | 1182581 | systems/win32/miktex/tm/packages/aomart__doc.tar.lzma
+2022/06/12 | 1181126 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
+2022/06/12 | 1177 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_simple.snap
+2022/06/12 | 1176 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_open_brace.snap
+2022/06/12 | 1176 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_combi_2004.snap
+2022/06/12 | 116734 | systems/win32/miktex/tm/packages/arabtex.tar.lzma
+2022/06/12 | 116559 | systems/win32/miktex/tm/packages/siunitx__source.tar.lzma
+2022/06/12 | 1161 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_simple.snap
+2022/06/12 | 1160 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_open_brace.snap
+2022/06/12 | 115963 | systems/win32/miktex/tm/packages/amsmath__source.tar.lzma
+2022/06/12 | 1157 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_simple.snap
+2022/06/12 | 1156 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_open_brace.snap
+2022/06/12 | 115656 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
+2022/06/12 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
+2022/06/12 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
+2022/06/12 | 11442946 | systems/win32/miktex/tm/packages/l3kernel__doc.tar.lzma
+2022/06/12 | 1136 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_nested.snap
+2022/06/12 | 1134 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__environment_definition.snap
+2022/06/12 | 1133807 | systems/win32/miktex/tm/packages/tuda-ci__doc.tar.lzma
+2022/06/12 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
+2022/06/12 | 1128 | support/texlab/src/features/definition/document.rs
+2022/06/12 | 1127 | support/texlab/src/features/completion/acronym_ref.rs
+2022/06/12 | 112587 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
+2022/06/12 | 1121779 | systems/win32/miktex/tm/packages/hvextern__doc.tar.lzma
+2022/06/12 | 1118587 | systems/win32/miktex/tm/packages/ctex__doc.tar.lzma
+2022/06/12 | 11176 | systems/win32/miktex/tm/packages/xpinyin__source.tar.lzma
+2022/06/12 | 11175 | systems/win32/miktex/tm/packages/fancyvrb__source.tar.lzma
+2022/06/12 | 111031 | systems/win32/miktex/tm/packages/coollist__doc.tar.lzma
+2022/06/12 | 109792 | systems/texlive/tlnet/archive/texlive-scripts.r63544.tar.xz
+2022/06/12 | 1096 | support/texlab/src/features/reference.rs
+2022/06/12 | 109479 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
+2022/06/12 | 107704 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/06/12 | 1064 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_aksin_2006.snap
+2022/06/12 | 106485 | systems/win32/miktex/tm/packages/lua-ul__doc.tar.lzma
+2022/06/12 | 1062 | support/texlab/src/citation/snapshots/texlab__citation__tests__article_jain_1999.snap
+2022/06/12 | 1061603 | systems/win32/miktex/tm/packages/latexindent__doc.tar.lzma
+2022/06/12 | 105995 | systems/win32/miktex/tm/packages/csassignments__doc.tar.lzma
+2022/06/12 | 1056 | support/texlab/src/features/completion/field.rs
+2022/06/12 | 1055 | support/texlab/src/distro/texlive.rs
+2022/06/12 | 1051 | support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_erwin_2007.snap
+2022/06/12 | 1050 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__class_include_options.snap
+2022/06/12 | 1049 | support/texlab/docs/tectonic.md
+2022/06/12 | 1048 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__package_include_options.snap
+2022/06/12 | 1048468 | graphics/mcf2graph.zip
+2022/06/12 | 1045 | support/texlab/src/features/reference/label.rs
+2022/06/12 | 104556 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
+2022/06/12 | 10444 | systems/win32/miktex/tm/packages/pxcjkcat.tar.lzma
+2022/06/12 | 1043 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_flat.snap
+2022/06/12 | 1037 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_flat.snap
+2022/06/12 | 1033 | support/texlab/src/features/completion/tikz_library.rs
+2022/06/12 | 103338 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/06/12 | 103093 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
+2022/06/12 | 10291 | systems/win32/miktex/tm/packages/xebaposter.tar.lzma
+2022/06/12 | 10234 | support/texlab/src/features/cursor.rs
+2022/06/12 | 1021846 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
+2022/06/12 | 1017 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation.snap
+2022/06/12 | 1016 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_flat.snap
+2022/06/12 | 10157 | systems/win32/miktex/tm/packages/biblatex-bath.tar.lzma
+2022/06/12 | 1015623 | macros/latex/contrib/xcolor.zip
+2022/06/12 | 101518 | graphics/mcf2graph/mcf2graph.mp
+2022/06/12 | 1012 | support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_item.snap
+2022/06/12 | 1012293 | systems/win32/miktex/tm/packages/xepersian__doc.tar.lzma
+2022/06/12 | 100 | support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__empty.snap
+2022/06/12 | 100494 | systems/win32/miktex/tm/packages/multifootnote__doc.tar.lzma
+2022/06/12 | 100486 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
+2022/06/12 | 1003 | support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_multiple_entries.snap
2022/06/11 | 948824 | systems/texlive/tlnet/archive/tex4ht.r63542.tar.xz
-2022/06/11 | 93958 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-2.9.tar.lzma
-2022/06/11 | 937 | systems/win32/miktex/tm/packages/pr.ini
+2022/06/11 | 94215 | systems/texlive/tlnet/tlpkg/translations/fr.po
2022/06/11 | 93489 | macros/luatex/latex/ligtype/ligtype.lua
-2022/06/11 | 92916 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-2.9.tar.lzma
+2022/06/11 | 90493 | systems/texlive/tlnet/tlpkg/translations/vi.po
2022/06/11 | 8 | macros/luatex/latex/spacekern/DEPENDS.txt
2022/06/11 | 8 | macros/luatex/latex/showkerning/DEPENDS.txt
2022/06/11 | 8 | macros/luatex/latex/showhyphenation/DEPENDS.txt
2022/06/11 | 8 | macros/luatex/latex/ligtype/DEPENDS.txt
-2022/06/11 | 88151 | systems/win32/miktex/tm/packages/next/miktex-png-bin-x64-2.9.tar.lzma
-2022/06/11 | 8783 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-x64-2.9.tar.lzma
-2022/06/11 | 86760 | systems/win32/miktex/tm/packages/next/miktex-bibtex8bit-bin-2.9.tar.lzma
+2022/06/11 | 89787 | systems/texlive/tlnet/tlpkg/translations/de.po
+2022/06/11 | 89151 | systems/texlive/tlnet/tlpkg/translations/sk.po
+2022/06/11 | 87808 | systems/texlive/tlnet/tlpkg/translations/it.po
2022/06/11 | 8644 | systems/texlive/tlnet/archive/luakeys.r63537.tar.xz
2022/06/11 | 843 | macros/luatex/latex/showkerning/showkerning.sty
-2022/06/11 | 824369 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-x64-2.9.tar.lzma
-2022/06/11 | 81461 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-x64-2.9.tar.lzma
-2022/06/11 | 79025 | systems/win32/miktex/tm/packages/next/miktex-png-bin-2.9.tar.lzma
-2022/06/11 | 78973 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-x64-2.9.tar.lzma
-2022/06/11 | 7753 | systems/win32/miktex/tm/packages/next/miktex-md5-bin-2.9.tar.lzma
+2022/06/11 | 82660 | systems/texlive/tlnet/tlpkg/translations/pt_BR.po
+2022/06/11 | 82328 | systems/texlive/tlnet/tlpkg/translations/cs.po
+2022/06/11 | 80489 | systems/texlive/tlnet/tlpkg/translations/uk.po
+2022/06/11 | 79475 | systems/texlive/tlnet/tlpkg/translations/es.po
2022/06/11 | 7747 | fonts/psfonts/ly1/README.md
-2022/06/11 | 77069 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-x64-2.9.tar.lzma
-2022/06/11 | 758953 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin-x64.tar.lzma
-2022/06/11 | 755742 | systems/win32/miktex/tm/packages/next/miktex-pdftex-bin-2.9.tar.lzma
2022/06/11 | 75408 | systems/texlive/tlnet/archive/xepersian.source.r63540.tar.xz
-2022/06/11 | 74069 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-x64-2.9.tar.lzma
-2022/06/11 | 73526 | systems/win32/miktex/tm/packages/next/miktex-web-bin-x64-2.9.tar.lzma
-2022/06/11 | 73478 | systems/win32/miktex/tm/packages/next/miktex-fonts-bin-2.9.tar.lzma
-2022/06/11 | 73147 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-x64-2.9.tar.lzma
-2022/06/11 | 72885 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-x64-2.9.tar.lzma
-2022/06/11 | 72015 | systems/win32/miktex/tm/packages/next/miktex-freeglut-bin-2.9.tar.lzma
-2022/06/11 | 71007 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-x64-2.9.tar.lzma
-2022/06/11 | 693068 | systems/win32/miktex/tm/packages/next/miktex-ptex-bin.tar.lzma
-2022/06/11 | 68873 | systems/win32/miktex/tm/packages/next/miktex-bibtex-bin-2.9.tar.lzma
-2022/06/11 | 681939 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-x64-2.9.tar.lzma
-2022/06/11 | 68008 | systems/win32/miktex/tm/packages/next/miktex-lzma-bin-2.9.tar.lzma
-2022/06/11 | 67703 | systems/win32/miktex/tm/packages/next/miktex-web-bin-2.9.tar.lzma
+2022/06/11 | 7397 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+2022/06/11 | 70353 | systems/texlive/tlnet/tlpkg/translations/sl.po
2022/06/11 | 6726 | macros/luatex/latex/spacekern/spacekern.lua
-2022/06/11 | 67254 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-x64-2.9.tar.lzma
-2022/06/11 | 653727 | systems/win32/miktex/tm/packages/next/files.csv.lzma
-2022/06/11 | 653517 | systems/win32/miktex/tm/packages/files.csv.lzma
-2022/06/11 | 65055 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-x64-2.9.tar.lzma
-2022/06/11 | 64708 | systems/win32/miktex/tm/packages/next/miktex-ps2pk-bin-2.9.tar.lzma
-2022/06/11 | 64542 | systems/win32/miktex/tm/packages/next/miktex-graphite2-bin-2.9.tar.lzma
-2022/06/11 | 64489 | systems/win32/miktex/tm/packages/next/miktex-tex4ht-bin-2.9.tar.lzma
+2022/06/11 | 67220 | systems/texlive/tlnet/tlpkg/translations/pl.po
2022/06/11 | 64178 | macros/luatex/latex/showhyphenation.zip
2022/06/11 | 64020 | macros/luatex/latex/spacekern/spacekern.pdf
2022/06/11 | 64002 | macros/luatex/latex/spacekern.zip
-2022/06/11 | 63740 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin-x64.tar.lzma
2022/06/11 | 63462 | macros/luatex/latex/showhyphenation/showhyphenation.pdf
-2022/06/11 | 63311 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-x64-2.9.tar.lzma
-2022/06/11 | 631279 | systems/win32/miktex/tm/packages/next/miktex-lcdf-typetools-bin-2.9.tar.lzma
-2022/06/11 | 629429 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-x64-2.9.tar.lzma
+2022/06/11 | 63461 | systems/texlive/tlnet/tlpkg/translations/zh_CN.po
+2022/06/11 | 62755 | systems/texlive/tlnet/tlpkg/translations/ja.po
2022/06/11 | 6252 | systems/texlive/tlnet/archive/hvextern.r63535.tar.xz
-2022/06/11 | 62381 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-x64-2.9.tar.lzma
2022/06/11 | 60172 | systems/texlive/tlnet/archive/xepersian.r63540.tar.xz
-2022/06/11 | 598231 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-x64-2.9.tar.lzma
-2022/06/11 | 591567 | systems/win32/miktex/tm/packages/next/miktex-yap-bin-2.9.tar.lzma
-2022/06/11 | 58667 | systems/win32/miktex/tm/packages/next/miktex-texify-bin-2.9.tar.lzma
-2022/06/11 | 58663 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-x64-2.9.tar.lzma
-2022/06/11 | 5800496 | systems/texlive/tlnet/install-tl-unx.tar.gz
-2022/06/11 | 57618 | systems/win32/miktex/tm/packages/next/miktex-tdsutil-bin.tar.lzma
-2022/06/11 | 57525 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin-x64.tar.lzma
-2022/06/11 | 57331 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-x64-2.9.tar.lzma
-2022/06/11 | 57271 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-x64-2.9.tar.lzma
-2022/06/11 | 56993 | systems/win32/miktex/tm/packages/next/miktex-fmt-bin-2.9.tar.lzma
-2022/06/11 | 56620 | systems/win32/miktex/tm/packages/next/miktex-bibarts-bin-2.9.tar.lzma
-2022/06/11 | 565930 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-x64-2.9.tar.lzma
+2022/06/11 | 58120 | systems/texlive/tlnet/tlpkg/translations/nl.po
+2022/06/11 | 57597 | systems/texlive/tlnet/tlpkg/translations/da.po
2022/06/11 | 56056 | systems/texlive/tlnet/archive/njuthesis.source.r63538.tar.xz
-2022/06/11 | 55756 | systems/win32/miktex/tm/packages/next/miktex-xml2pmx-bin.tar.lzma
-2022/06/11 | 55569 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-x64-2.9.tar.lzma
-2022/06/11 | 55285 | systems/win32/miktex/tm/packages/next/miktex-ttf2pk2-bin-2.9.tar.lzma
-2022/06/11 | 532454 | systems/win32/miktex/tm/packages/next/miktex-libressl-bin-2.9.tar.lzma
-2022/06/11 | 528019 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-x64-2.9.tar.lzma
-2022/06/11 | 52478 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-x64-2.9.tar.lzma
-2022/06/11 | 52326 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-x64-2.9.tar.lzma
-2022/06/11 | 52094 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-x64-2.9.tar.lzma
-2022/06/11 | 51558 | systems/win32/miktex/tm/packages/next/miktex-arctrl-bin-2.9.tar.lzma
-2022/06/11 | 51485 | systems/win32/miktex/tm/packages/next/miktex-cjkutils-bin-2.9.tar.lzma
-2022/06/11 | 50798 | systems/win32/miktex/tm/packages/next/miktex-psutils-bin-2.9.tar.lzma
-2022/06/11 | 49769 | systems/win32/miktex/tm/packages/next/miktex-mpmcli-bin-2.9.tar.lzma
+2022/06/11 | 53392 | systems/texlive/tlnet/tlpkg/translations/zh_TW.po
2022/06/11 | 49540 | macros/luatex/latex/showkerning.zip
-2022/06/11 | 48 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
-2022/06/11 | 48825 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-x64-2.9.tar.lzma
-2022/06/11 | 484371 | systems/win32/miktex/tm/packages/next/miktex-harfbuzz-bin-2.9.tar.lzma
-2022/06/11 | 481497 | systems/win32/miktex/tm/packages/next/miktex-doc.tar.lzma
-2022/06/11 | 47923 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-x64-2.9.tar.lzma
-2022/06/11 | 477849 | systems/win32/miktex/tm/packages/next/miktex-log4cxx-bin-2.9.tar.lzma
+2022/06/11 | 47164 | systems/texlive/tlnet/tlpkg/translations/messages.pot
2022/06/11 | 47132 | macros/luatex/latex/showkerning/showkerning.pdf
-2022/06/11 | 46067 | systems/win32/miktex/tm/packages/next/miktex-dvicopy-bin-2.9.tar.lzma
2022/06/11 | 4584 | macros/generic/xint/README.md
-2022/06/11 | 45825 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-x64-2.9.tar.lzma
2022/06/11 | 4574401 | install/macros/xetex/latex/bidi.tds.zip
-2022/06/11 | 45742 | systems/win32/miktex/tm/packages/next/miktex-m-tx-bin-2.9.tar.lzma
-2022/06/11 | 455 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
-2022/06/11 | 455 | systems/texlive/tlnet/install-tl.zip.sha512.asc
-2022/06/11 | 455 | systems/texlive/tlnet/install-tl-windows.exe.sha512.asc
-2022/06/11 | 455 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512.asc
-2022/06/11 | 43916 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-x64-2.9.tar.lzma
-2022/06/11 | 43826 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-x64-2.9.tar.lzma
2022/06/11 | 43660 | systems/texlive/tlnet/archive/tuda-ci.r63536.tar.xz
-2022/06/11 | 43646 | systems/win32/miktex/tm/packages/next/miktex-expat-bin-2.9.tar.lzma
-2022/06/11 | 43362 | systems/win32/miktex/tm/packages/next/miktex-mtprint-bin-2.9.tar.lzma
-2022/06/11 | 43224 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-x64-2.9.tar.lzma
-2022/06/11 | 42818 | systems/win32/miktex/tm/packages/next/miktex-synctex-bin-2.9.tar.lzma
2022/06/11 | 4242531 | install/macros/generic/xint.tds.zip
2022/06/11 | 4171121 | macros/xetex/latex/bidi.zip
-2022/06/11 | 41306 | systems/win32/miktex/tm/packages/next/miktex-dvipng-bin-2.9.tar.lzma
2022/06/11 | 4129632 | macros/generic/xint.zip
-2022/06/11 | 41202 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin-x64.tar.lzma
-2022/06/11 | 41182 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin-x64.tar.lzma
-2022/06/11 | 407048 | systems/texlive/tlnet/archive/texlive-scripts.doc.r63541.tar.xz
-2022/06/11 | 39728 | systems/win32/miktex/tm/packages/next/miktex-zlib-bin-2.9.tar.lzma
-2022/06/11 | 3950460 | systems/texlive/tlnet/archive/bidi.doc.r63539.tar.xz
-2022/06/11 | 394370 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-x64-2.9.tar.lzma
-2022/06/11 | 38561 | systems/win32/miktex/tm/packages/next/miktex-mthelp-bin-2.9.tar.lzma
-2022/06/11 | 38427 | systems/win32/miktex/tm/packages/next/miktex-gsf2pk-bin-2.9.tar.lzma
-2022/06/11 | 37374 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-x64-2.9.tar.lzma
-2022/06/11 | 37115 | systems/win32/miktex/tm/packages/next/miktex-upmendex-bin.tar.lzma
-2022/06/11 | 37081 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-x64-2.9.tar.lzma
-2022/06/11 | 36049 | systems/win32/miktex/tm/packages/next/miktex-patgen-bin.tar.lzma
-2022/06/11 | 35242 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-x64-2.9.tar.lzma
-2022/06/11 | 351697 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-x64-2.9.tar.lzma
-2022/06/11 | 35166 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-x64-2.9.tar.lzma
-2022/06/11 | 34052 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-x64-2.9.tar.lzma
+2022/06/11 | 40067 | systems/doc/pdftex/NEWS
+2022/06/11 | 3479 | info/biblio/sgml.ltx
2022/06/11 | 3357583 | macros/xetex/latex/bidi/bidi.pdf
-2022/06/11 | 332414 | systems/win32/miktex/tm/packages/next/miktex-cairo-bin-2.9.tar.lzma
-2022/06/11 | 32956 | systems/win32/miktex/tm/packages/next/miktex-chktex-bin-2.9.tar.lzma
-2022/06/11 | 326660 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-x64-2.9.tar.lzma
-2022/06/11 | 325270 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-x64-2.9.tar.lzma
2022/06/11 | 32472 | systems/texlive/tlnet/archive/kpathsea.r63534.tar.xz
-2022/06/11 | 32135 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-x64-2.9.tar.lzma
-2022/06/11 | 316243 | systems/win32/miktex/tm/packages/next/miktex-xetex-bin-2.9.tar.lzma
-2022/06/11 | 31588 | systems/win32/miktex/tm/packages/next/miktex-posix-bin-2.9.tar.lzma
-2022/06/11 | 31522 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-x64-2.9.tar.lzma
-2022/06/11 | 31413 | systems/win32/miktex/tm/packages/next/miktex-mspack-bin-2.9.tar.lzma
-2022/06/11 | 31343 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-x64-2.9.tar.lzma
-2022/06/11 | 30543 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-x64-2.9.tar.lzma
-2022/06/11 | 30147 | systems/win32/miktex/tm/packages/next/miktex-axohelp-bin-2.9.tar.lzma
-2022/06/11 | 296039 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-x64-2.9.tar.lzma
-2022/06/11 | 288202 | systems/win32/miktex/tm/packages/next/miktex-mo-bin-2.9.tar.lzma
-2022/06/11 | 28799 | systems/win32/miktex/tm/packages/next/miktex-autosp-bin-2.9.tar.lzma
-2022/06/11 | 28689 | systems/win32/miktex/tm/packages/next/miktex-uriparser-bin-2.9.tar.lzma
-2022/06/11 | 286412 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-x64-2.9.tar.lzma
-2022/06/11 | 285715 | systems/win32/miktex/tm/packages/next/miktex-dvipdfmx-bin-2.9.tar.lzma
-2022/06/11 | 28567 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-x64-2.9.tar.lzma
-2022/06/11 | 28424 | systems/win32/miktex/tm/packages/next/miktex-lacheck-bin-2.9.tar.lzma
-2022/06/11 | 2820687 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-x64-2.9.tar.lzma
-2022/06/11 | 278728 | systems/win32/miktex/tm/packages/next/miktex-zzdb1-2.9.tar.lzma
-2022/06/11 | 278678 | systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma
-2022/06/11 | 27637 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-x64-2.9.tar.lzma
-2022/06/11 | 27591 | systems/win32/miktex/tm/packages/next/miktex-makeindex-bin-2.9.tar.lzma
-2022/06/11 | 27249 | systems/win32/miktex/tm/packages/next/miktex-bzip2-bin-2.9.tar.lzma
-2022/06/11 | 270300 | systems/win32/miktex/tm/packages/next/miktex-console-bin-x64-2.9.tar.lzma
-2022/06/11 | 2694876 | systems/win32/miktex/tm/packages/next/miktex-texworks-bin-2.9.tar.lzma
+2022/06/11 | 2686314 | info/biblio/sgml.bib
2022/06/11 | 2623546 | macros/generic/xint/sourcexint.pdf
2022/06/11 | 260788 | systems/texlive/tlnet/archive/luakeys.doc.r63537.tar.xz
-2022/06/11 | 259257 | systems/win32/miktex/tm/packages/next/miktex-freetype2-bin-2.9.tar.lzma
-2022/06/11 | 25550 | systems/win32/miktex/tm/packages/next/miktex-teckit-bin-2.9.tar.lzma
-2022/06/11 | 25483992 | systems/texlive/tlnet/install-tl.zip
-2022/06/11 | 251127 | systems/win32/miktex/tm/packages/next/miktex-metapost-bin-2.9.tar.lzma
-2022/06/11 | 25106 | systems/win32/miktex/tm/packages/next/miktex-findtexmf-bin-2.9.tar.lzma
-2022/06/11 | 25060 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-x64-2.9.tar.lzma
-2022/06/11 | 247332 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin-x64.tar.lzma
-2022/06/11 | 245096 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-x64-2.9.tar.lzma
-2022/06/11 | 244963 | systems/win32/miktex/tm/packages/next/miktex-console-bin-2.9.tar.lzma
-2022/06/11 | 24121 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-x64-2.9.tar.lzma
-2022/06/11 | 23944 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-x64-2.9.tar.lzma
-2022/06/11 | 2383972 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
-2022/06/11 | 22147 | systems/win32/miktex/tm/packages/next/miktex-fribidixetex-bin-2.9.tar.lzma
-2022/06/11 | 213277 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-x64-2.9.tar.lzma
-2022/06/11 | 21315 | systems/win32/miktex/tm/packages/next/miktex-devnag-bin-2.9.tar.lzma
-2022/06/11 | 210275 | systems/win32/miktex/tm/packages/next/miktex-pmx-bin-2.9.tar.lzma
-2022/06/11 | 208806 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-x64-2.9.tar.lzma
-2022/06/11 | 20462744 | systems/texlive/tlnet/install-tl-windows.exe
-2022/06/11 | 203838 | systems/win32/miktex/tm/packages/next/miktex-hitex-bin.tar.lzma
-2022/06/11 | 202836 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-x64-2.9.tar.lzma
-2022/06/11 | 20184 | systems/win32/miktex/tm/packages/next/miktex-popt-bin-2.9.tar.lzma
-2022/06/11 | 200397 | systems/win32/miktex/tm/packages/next/miktex-pixman-bin-2.9.tar.lzma
-2022/06/11 | 199832 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-2.9.tar.lzma
2022/06/11 | 1983035 | macros/generic/xint/xint.dtx
-2022/06/11 | 1982085 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-x64-2.9.tar.lzma
-2022/06/11 | 197036 | systems/win32/miktex/tm/packages/next/miktex-omegaware-bin-2.9.tar.lzma
-2022/06/11 | 196117 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-x64-2.9.tar.lzma
2022/06/11 | 194746 | support/TeX4ht/source/ChangeLog
2022/06/11 | 1937 | macros/luatex/latex/ligtype/ligtype.sty
-2022/06/11 | 190504 | systems/win32/miktex/tm/packages/next/miktex-metafont-bin-2.9.tar.lzma
-2022/06/11 | 18494 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-x64-2.9.tar.lzma
-2022/06/11 | 18369 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-x64-2.9.tar.lzma
-2022/06/11 | 181514 | systems/win32/miktex/tm/packages/next/miktex-mpfr-bin-x64-2.9.tar.lzma
-2022/06/11 | 179878 | systems/win32/miktex/tm/packages/next/miktex-curl-bin-2.9.tar.lzma
2022/06/11 | 178024 | macros/xetex/latex/bidi/bidi-doc.pdf
2022/06/11 | 17700 | macros/luatex/latex/ligtype/ligtype.tex
-2022/06/11 | 1752146 | systems/win32/miktex/tm/packages/next/miktex-luatex-bin-2.9.tar.lzma
-2022/06/11 | 17506510 | systems/texlive/tlnet/tlpkg/texlive.tlpdb
-2022/06/11 | 173007 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-x64-2.9.tar.lzma
-2022/06/11 | 168819 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-x64-2.9.tar.lzma
-2022/06/11 | 16560 | systems/win32/miktex/tm/packages/next/miktex-tex2xindy-bin-2.9.tar.lzma
-2022/06/11 | 16503 | systems/win32/miktex/tm/packages/next/miktex-kpathsea-bin-2.9.tar.lzma
2022/06/11 | 15796 | systems/texlive/tlnet/archive/njuthesis.r63538.tar.xz
-2022/06/11 | 156966 | systems/win32/miktex/tm/packages/next/miktex-tex-bin-2.9.tar.lzma
-2022/06/11 | 155500 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-x64-2.9.tar.lzma
-2022/06/11 | 153 | systems/texlive/tlnet/install-tl-windows.exe.sha512
-2022/06/11 | 152 | systems/texlive/tlnet/install-tl-unx.tar.gz.sha512
-2022/06/11 | 152031 | systems/win32/miktex/tm/packages/next/miktex-hunspell-bin-2.9.tar.lzma
-2022/06/11 | 1501239 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-x64-2.9.tar.lzma
2022/06/11 | 149761 | macros/generic/xint/CHANGES.html
2022/06/11 | 149254 | install/fonts/psfonts/ly1.tds.zip
-2022/06/11 | 145 | systems/texlive/tlnet/install-tl.zip.sha512
-2022/06/11 | 1457670 | systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma
-2022/06/11 | 1457397 | systems/win32/miktex/tm/packages/next/miktex-zzdb2-2.9.tar.lzma
-2022/06/11 | 1454764 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-x64-2.9.tar.lzma
-2022/06/11 | 144 | systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
-2022/06/11 | 14411 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-x64-2.9.tar.lzma
-2022/06/11 | 143956 | systems/texlive/tlnet/archive/bidi.source.r63539.tar.xz
2022/06/11 | 141382 | fonts/psfonts/ly1.zip
-2022/06/11 | 139102 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-x64-2.9.tar.lzma
2022/06/11 | 136384 | systems/texlive/tlnet/archive/tex4ht.doc.r63542.tar.xz
-2022/06/11 | 135950 | systems/win32/miktex/tm/packages/next/miktex-fontconfig-bin-2.9.tar.lzma
-2022/06/11 | 1357073 | systems/win32/miktex/tm/packages/next/miktex-runtime-bin-2.9.tar.lzma
-2022/06/11 | 135376 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-x64-2.9.tar.lzma
-2022/06/11 | 13514 | systems/win32/miktex/tm/packages/next/miktex-zzip-bin-2.9.tar.lzma
-2022/06/11 | 1345239 | systems/win32/miktex/tm/packages/next/miktex-zzdb3-2.9.tar.lzma
-2022/06/11 | 1343842 | systems/win32/miktex/tm/packages/miktex-zzdb3-2.9.tar.lzma
2022/06/11 | 1323 | macros/xetex/latex/bidi/README
-2022/06/11 | 1322743 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-x64-2.9.tar.lzma
-2022/06/11 | 1302484 | systems/win32/miktex/tm/packages/next/miktex-dvisvgm-bin-2.9.tar.lzma
2022/06/11 | 1279292 | systems/texlive/tlnet/archive/njuthesis.doc.r63538.tar.xz
-2022/06/11 | 126980 | systems/texlive/tlnet/archive/bidi.r63539.tar.xz
-2022/06/11 | 126533 | systems/win32/miktex/tm/packages/next/miktex-mktex-bin-2.9.tar.lzma
2022/06/11 | 1256612 | systems/texlive/tlnet/archive/tex4ht.source.r63542.tar.xz
2022/06/11 | 12104 | fonts/psfonts/ly1/latex/ly1enc.def
-2022/06/11 | 120617 | systems/win32/miktex/tm/packages/next/miktex-dvips-bin-2.9.tar.lzma
-2022/06/11 | 1181127 | systems/win32/miktex/tm/packages/next/miktex-poppler-bin-2.9.tar.lzma
2022/06/11 | 11650 | macros/luatex/latex/spacekern/spacekern.tex
2022/06/11 | 11628 | macros/luatex/latex/showhyphenation/showhyphenation.tex
-2022/06/11 | 115657 | systems/win32/miktex/tm/packages/next/miktex-gregorio-bin-x64-2.9.tar.lzma
-2022/06/11 | 1156464 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-x64-2.9.tar.lzma
-2022/06/11 | 1153 | systems/win32/miktex/tm/packages/next/pr.ini
2022/06/11 | 11372 | macros/luatex/latex/showkerning/showkerning.tex
2022/06/11 | 1132972 | systems/texlive/tlnet/archive/tuda-ci.doc.r63536.tar.xz
2022/06/11 | 1131784 | systems/texlive/tlnet/archive/hvextern.doc.r63535.tar.xz
-2022/06/11 | 113052 | systems/win32/miktex/tm/packages/next/miktex-epstopdf-bin-x64-2.9.tar.lzma
-2022/06/11 | 112588 | systems/win32/miktex/tm/packages/next/miktex-gd-bin-x64-2.9.tar.lzma
-2022/06/11 | 109780 | systems/texlive/tlnet/archive/texlive-scripts.r63541.tar.xz
-2022/06/11 | 109480 | systems/win32/miktex/tm/packages/next/miktex-jpeg-bin-x64-2.9.tar.lzma
2022/06/11 | 108520 | systems/texlive/tlnet/install-tl
2022/06/11 | 1079700 | systems/texlive/tlnet/archive/kpathsea.doc.r63534.tar.xz
-2022/06/11 | 107705 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-x64-2.9.tar.lzma
+2022/06/11 | 107491 | systems/texlive/tlnet/tlpkg/translations/ru.po
2022/06/11 | 1067429 | macros/generic/xint/xint.pdf
2022/06/11 | 10482 | support/TeX4ht/source/tex4ht-jats.tex
2022/06/11 | 104559 | macros/luatex/latex/ligtype.zip
-2022/06/11 | 104556 | systems/win32/miktex/tm/packages/next/miktex-mfware-bin-x64-2.9.tar.lzma
-2022/06/11 | 103340 | systems/win32/miktex/tm/packages/next/miktex-lua53-bin-x64-2.9.tar.lzma
+2022/06/11 | 103384 | systems/texlive/tlnet/tlpkg/translations/sr.po
2022/06/11 | 1031 | macros/luatex/latex/spacekern/spacekern.sty
-2022/06/11 | 103094 | systems/win32/miktex/tm/packages/next/miktex-cweb-bin-x64-2.9.tar.lzma
-2022/06/11 | 1021848 | systems/win32/miktex/tm/packages/next/miktex-asymptote-bin-2.9.tar.lzma
2022/06/11 | 101614 | macros/luatex/latex/ligtype/ligtype.pdf
2022/06/11 | 1012124 | systems/texlive/tlnet/archive/xepersian.doc.r63540.tar.xz
-2022/06/11 | 100487 | systems/win32/miktex/tm/packages/next/miktex-texware-bin-2.9.tar.lzma
2022/06/10 | 987845 | macros/xetex/latex/bidi/bidi.dtx
2022/06/10 | 9684 | macros/latex/contrib/tuda-ci/tex/tudamecheng.cfg
2022/06/10 | 9383 | macros/latex/contrib/tuda-ci/tex/beamerouterthemeTUDa.sty
@@ -276,7 +934,6 @@
2022/06/10 | 7720 | systems/texlive/tlnet/archive/firstaid.source.r63514.tar.xz
2022/06/10 | 769 | macros/luatex/latex/showhyphenation/README.md
2022/06/10 | 761651 | macros/xetex/latex/bidi/gull.jpg
-2022/06/10 | 7388 | systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
2022/06/10 | 7336 | macros/latex/contrib/tuda-ci/example/DEMO-TUDaBeamer.tex
2022/06/10 | 7225 | macros/luatex/latex/showkerning/showkerning.lua
2022/06/10 | 71644 | macros/xetex/latex/xepersian/xepersian-doc-basics.ltx
@@ -331,7 +988,6 @@
2022/06/10 | 383984 | systems/texlive/tlnet/archive/arabtex.doc.r63519.tar.xz
2022/06/10 | 3815 | macros/latex/contrib/tuda-ci/tex/beamercolorthemeTUDa.sty
2022/06/10 | 38154 | systems/mac/mactex/ExtrasFolder.pdf
-2022/06/10 | 36960 | systems/texlive/tlnet/archive/pdftex.r63512.tar.xz
2022/06/10 | 3596 | macros/xetex/latex/bidi/bidi-doc-preamble.ltx
2022/06/10 | 342598 | macros/xetex/latex/xepersian/xepersian.dtx
2022/06/10 | 3287 | macros/latex/contrib/tuda-ci/tex/tudafonts.sty
@@ -370,7 +1026,6 @@
2022/06/10 | 211444 | systems/texlive/tlnet/archive/pxcjkcat.doc.r63518.tar.xz
2022/06/10 | 2108 | macros/xetex/latex/xepersian/xepersian-doc-title.ltx
2022/06/10 | 2108 | macros/xetex/latex/bidi/bidi-doc-title.ltx
-2022/06/10 | 2091552 | systems/texlive/tlnet/archive/pdftex.doc.r63512.tar.xz
2022/06/10 | 19811 | macros/latex/contrib/tuda-ci/tex/tudaposter.cls
2022/06/10 | 1961 | macros/xetex/latex/bidi/bidi-doc-plain-programming.ltx
2022/06/10 | 19461 | macros/latex/contrib/tuda-ci/tex/tudasciposter.cls
@@ -417,6 +1072,7 @@
2022/06/10 | 105448 | systems/texlive/tlnet/archive/csassignments.doc.r63517.tar.xz
2022/06/10 | 1022 | macros/luatex/latex/showhyphenation/showhyphenation.sty
2022/06/10 | 10200 | systems/texlive/tlnet/archive/pxcjkcat.r63518.tar.xz
+2022/06/10 | 101331 | graphics/mcf2graph/mcf_library.mcf
2022/06/10 | 10092 | systems/texlive/tlnet/archive/xebaposter.r63513.tar.xz
2022/06/10 | 10078 | macros/latex/contrib/tuda-ci/tex/beamerthemeTUDa-mecheng.sty
2022/06/09 | 967162 | macros/xetex/latex/thesis-qom/doc/thesis-qom.pdf
@@ -447,7 +1103,6 @@
2022/06/09 | 270687 | macros/luatex/generic/luakeys.zip
2022/06/09 | 254353 | macros/luatex/generic/luakeys/luakeys-doc.pdf
2022/06/09 | 25126 | macros/xetex/latex/thesis-qom/doc/images/xindy_shellescape.png
-2022/06/09 | 2392131 | systems/doc/pdftex.zip
2022/06/09 | 17904 | macros/xetex/latex/thesis-qom/doc/chapters/morelatex.tex
2022/06/09 | 17192 | macros/xetex/latex/thesis-qom/doc/chapters/bib-index.tex
2022/06/09 | 1706 | macros/luatex/generic/luakeys/luakeys-debug.tex
@@ -1086,178 +1741,3 @@
2022/06/06 | 143170 | macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.pdf
2022/06/06 | 1184300 | systems/texlive/tlnet/archive/latexindent.doc.r63492.tar.xz
2022/06/06 | 101088 | systems/texlive/tlnet/archive/pyluatex.doc.r63491.tar.xz
-2022/06/05 | 986 | web/c_cpp/cweb/ctang-pc.ch
-2022/06/05 | 9843 | support/latexindent/LatexIndent/Lines.pm
-2022/06/05 | 9815882 | support/latexindent/latexindent.exe
-2022/06/05 | 9638 | macros/luatex/latex/pyluatex/pyluatex-json.lua
-2022/06/05 | 961 | web/c_cpp/cweb/examples/Makefile
-2022/06/05 | 938 | web/c_cpp/cweb/cweav-pc.ch
-2022/06/05 | 9029 | web/c_cpp/cweb/examples/wc.w
-2022/06/05 | 896 | web/c_cpp/cweb/comm-pc.ch
-2022/06/05 | 89460 | systems/texlive/tlnet/archive/xecjk.source.r63486.tar.xz
-2022/06/05 | 8829 | support/latexindent/LatexIndent/IfElseFi.pm
-2022/06/05 | 88104 | systems/texlive/tlnet/archive/ctex.source.r63484.tar.xz
-2022/06/05 | 8687 | web/c_cpp/cweb/cweb.el
-2022/06/05 | 84746 | web/c_cpp/cweb/cwebman.tex
-2022/06/05 | 8462 | support/latexindent/LatexIndent/FileExtension.pm
-2022/06/05 | 838 | support/latexindent/LatexIndent/Version.pm
-2022/06/05 | 82658 | macros/luatex/latex/pyluatex/pyluatex.pdf
-2022/06/05 | 8102 | web/c_cpp/cweb/comm-ql.ch
-2022/06/05 | 8026 | support/latexindent/documentation/sec-the-line-switch.tex
-2022/06/05 | 8023 | web/c_cpp/cweb/examples/oemacs.el
-2022/06/05 | 783 | web/c_cpp/cweb/cweav-man.ch
-2022/06/05 | 783 | web/c_cpp/cweb/ctang-man.ch
-2022/06/05 | 782 | web/c_cpp/cweb/comm-man.ch
-2022/06/05 | 7564 | macros/luatex/latex/pyluatex/pyluatex.lua
-2022/06/05 | 744 | web/c_cpp/cweb/cweav-w32.ch
-2022/06/05 | 74181 | support/latexindent/documentation/sec-default-user-local.tex
-2022/06/05 | 7329 | support/latexindent/LatexIndent/BackUpFileProcedure.pm
-2022/06/05 | 7280 | support/latexindent/LatexIndent/MandatoryArgument.pm
-2022/06/05 | 7193 | support/latexindent/documentation/subsubsec-no-add-remaining-code-blocks.tex
-2022/06/05 | 717 | macros/luatex/latex/pyluatex/example/readme-example.tex
-2022/06/05 | 7161 | support/latexindent/documentation/figure-schematic.png
-2022/06/05 | 7019 | web/c_cpp/cweb/cweav-bs.ch
-2022/06/05 | 699955 | support/TeX4ht/source/tex4ht-fonts-modern.tex
-2022/06/05 | 6964 | support/latexindent/LatexIndent/TrailingComments.pm
-2022/06/05 | 6835 | web/c_cpp/cweb/examples/treeprint.w
-2022/06/05 | 6808 | support/latexindent/LatexIndent/Environment.pm
-2022/06/05 | 6694 | support/latexindent/LatexIndent/Item.pm
-2022/06/05 | 66115 | support/latexindent/documentation/subsec-poly-switches.tex
-2022/06/05 | 659 | web/c_cpp/cweb/comm-os2.ch
-2022/06/05 | 6522 | support/latexindent/LatexIndent/OptionalArgument.pm
-2022/06/05 | 65059 | support/latexindent/LatexIndent/AlignmentAtAmpersand.pm
-2022/06/05 | 633 | support/latexindent/documentation/cmhlistings.tex
-2022/06/05 | 628 | macros/luatex/latex/pyluatex/example/readme-custom-env.tex
-2022/06/05 | 6167230 | support/latexindent.zip
-2022/06/05 | 610 | support/latexindent/documentation/sec-references.tex
-2022/06/05 | 6023 | support/latexindent/LatexIndent/Else.pm
-2022/06/05 | 599 | web/c_cpp/cweb/examples/wmerg-pc.ch
-2022/06/05 | 5958 | support/latexindent/documentation/subsubsec-commands-with-arguments.tex
-2022/06/05 | 5910 | web/c_cpp/cweb/comm-bs.ch
-2022/06/05 | 581 | web/c_cpp/cweb/examples/wmer-os2.ch
-2022/06/05 | 5811 | web/c_cpp/cweb/examples/xview_types.w
-2022/06/05 | 5809 | support/latexindent/LatexIndent/UnNamedGroupingBracesBrackets.pm
-2022/06/05 | 578 | web/c_cpp/cweb/examples/extex.ch
-2022/06/05 | 5717 | support/latexindent/documentation/test-default-settings.tex
-2022/06/05 | 5715 | support/latexindent/documentation/subsec-combine-text-wrap-para-line-breaks.tex
-2022/06/05 | 56195 | web/c_cpp/cweb/ctangle.w
-2022/06/05 | 54385 | support/latexindent/documentation/latexindent-yaml-schema.json
-2022/06/05 | 5430 | support/latexindent/LatexIndent/KeyEqualsValuesBraces.pm
-2022/06/05 | 5416 | web/c_cpp/cweb/Makefile
-2022/06/05 | 5390 | support/latexindent/LatexIndent/Check.pm
-2022/06/05 | 5381 | web/c_cpp/cweb/ctang-bs.ch
-2022/06/05 | 5321 | web/c_cpp/cweb/comm-mac.ch
-2022/06/05 | 5266 | support/latexindent/documentation/subsubsec-headings.tex
-2022/06/05 | 502 | web/c_cpp/cweb/comm-amiga.ch
-2022/06/05 | 5008 | web/pwebmac/index.md
-2022/06/05 | 48605 | support/latexindent/LatexIndent/GetYamlSettings.pm
-2022/06/05 | 4855 | support/latexindent/documentation/subsubsec-ifelsefi.tex
-2022/06/05 | 4816 | support/latexindent/LatexIndent/BlankLines.pm
-2022/06/05 | 47887 | web/c_cpp/cweb/common.w
-2022/06/05 | 475 | web/c_cpp/cweb/cweav-ql.ch
-2022/06/05 | 451 | web/c_cpp/cweb/ctang-ql.ch
-2022/06/05 | 44096 | support/latexindent/documentation/logo.png
-2022/06/05 | 4365 | support/latexindent/LatexIndent/RoundBrackets.pm
-2022/06/05 | 4340 | support/latexindent/LatexIndent/NamedGroupingBracesBrackets.pm
-2022/06/05 | 4333 | macros/luatex/latex/pyluatex/example/data-visualization.tex
-2022/06/05 | 4284 | macros/luatex/latex/pyluatex/pyluatex-interpreter.py
-2022/06/05 | 42352 | macros/latex/contrib/fancyvrb/doc/fancyvrb-doc.tex
-2022/06/05 | 3973 | web/c_cpp/cweb/cweb.1
-2022/06/05 | 3940 | web/c_cpp/cweb/README
-2022/06/05 | 39167 | macros/luatex/latex/pyluatex/example/population.csv
-2022/06/05 | 38418 | web/c_cpp/cweb/examples/oemacs.w
-2022/06/05 | 3831 | support/latexindent/documentation/subsubsec-special.tex
-2022/06/05 | 3747 | support/latexindent/LatexIndent/Replacement.pm
-2022/06/05 | 3482 | support/latexindent/LatexIndent/HorizontalWhiteSpace.pm
-2022/06/05 | 3433 | support/latexindent/documentation/subsubsec-environments-with-items.tex
-2022/06/05 | 3412 | support/latexindent/latexindent.pl
-2022/06/05 | 3339 | support/latexindent/LatexIndent/Tokens.pm
-2022/06/05 | 3320 | web/c_cpp/cweb/comm-vms.ch
-2022/06/05 | 3315 | macros/luatex/latex/pyluatex/example/beamer.tex
-2022/06/05 | 32955 | web/c_cpp/cweb/ctangle.c
-2022/06/05 | 3205 | macros/luatex/latex/pyluatex/pyluatex.sty
-2022/06/05 | 2997 | support/latexindent/documentation/sec-the-m-switch.tex
-2022/06/05 | 2946 | web/c_cpp/cweb/examples/README
-2022/06/05 | 28891 | support/latexindent/documentation/sec-appendices.tex
-2022/06/05 | 2858 | web/c_cpp/cweb/readme.ql
-2022/06/05 | 27969 | web/c_cpp/cweb/cwebmac.tex
-2022/06/05 | 2738 | web/c_cpp/cweb/comm-w32.ch
-2022/06/05 | 27328 | support/latexindent/LatexIndent/Verbatim.pm
-2022/06/05 | 27067 | support/TeX4ht/source/Makefile
-2022/06/05 | 2701 | support/latexindent/LatexIndent/Switches.pm
-2022/06/05 | 2690 | support/latexindent/LatexIndent/Preamble.pm
-2022/06/05 | 25355 | web/c_cpp/cweb/examples/wmerge.w
-2022/06/05 | 25324 | web/c_cpp/cweb/common.c
-2022/06/05 | 25167 | support/latexindent/documentation/sec-how-to-use.tex
-2022/06/05 | 24863 | support/latexindent/documentation/subsec-text-wrap.tex
-2022/06/05 | 24410 | support/latexindent/LatexIndent/Arguments.pm
-2022/06/05 | 24110 | support/latexindent/documentation/latexindent.tex
-2022/06/05 | 2400 | macros/luatex/latex/pyluatex/example/typesetting-listings.tex
-2022/06/05 | 233 | web/pwebmac/trapman.ch
-2022/06/05 | 2320 | support/latexindent/LatexIndent/Logger.pm
-2022/06/05 | 2300 | macros/luatex/latex/pyluatex/example/repl.tex
-2022/06/05 | 22818 | support/latexindent/LatexIndent/Document.pm
-2022/06/05 | 22636 | web/pwebmac/pwebmac.tex
-2022/06/05 | 22334 | support/latexindent/documentation/subsec-one-sentence-per-line.tex
-2022/06/05 | 2220 | web/pwebmac/README.md
-2022/06/05 | 221584 | systems/texlive/tlnet/archive/xecjk.r63486.tar.xz
-2022/06/05 | 217 | web/c_cpp/cweb/examples/wc-dos.ch
-2022/06/05 | 2176 | web/c_cpp/cweb/iso_types.w
-2022/06/05 | 21628 | support/latexindent/documentation/sec-replacements.tex
-2022/06/05 | 21564 | support/latexindent/LatexIndent/Indent.pm
-2022/06/05 | 21307 | support/TeX4ht/source/tex4ht-cond4ht.tex
-2022/06/05 | 2109 | support/latexindent/documentation/sec-demonstration.tex
-2022/06/05 | 2105 | macros/luatex/latex/pyluatex/example/typesetting-minted.tex
-2022/06/05 | 20913 | web/c_cpp/cweb/examples/wordtest.w
-2022/06/05 | 205156 | systems/texlive/tlnet/archive/xpinyin.doc.r63485.tar.xz
-2022/06/05 | 20388 | support/latexindent/LatexIndent/Sentence.pm
-2022/06/05 | 200616 | systems/texlive/tlnet/archive/xpinyin.r63485.tar.xz
-2022/06/05 | 19922 | support/latexindent/defaultSettings.yaml
-2022/06/05 | 1929 | support/latexindent/documentation/sec-conclusions-know-limitations.tex
-2022/06/05 | 1887 | support/latexindent/documentation/subsec-noAdditionalIndent-indentRules.tex
-2022/06/05 | 1879 | support/latexindent/documentation/figure-schematic.tex
-2022/06/05 | 1876 | support/latexindent/README
-2022/06/05 | 1858 | web/c_cpp/cweb/examples/xlib_types.w
-2022/06/05 | 18573 | web/c_cpp/cweb/prod.w
-2022/06/05 | 1849 | macros/luatex/latex/pyluatex/example/matplotlib-pgf.tex
-2022/06/05 | 18321 | support/latexindent/LatexIndent/ModifyLineBreaks.pm
-2022/06/05 | 1801 | macros/luatex/latex/pyluatex/README.md
-2022/06/05 | 17979 | support/latexindent/LatexIndent/Wrap.pm
-2022/06/05 | 177286 | web/c_cpp/cweb/cweave.w
-2022/06/05 | 1674 | web/c_cpp/cweb/c++lib.w
-2022/06/05 | 1664 | support/latexindent/documentation/logo.tex
-2022/06/05 | 16560 | support/latexindent/documentation/subsubsec-environments-and-their-arguments.tex
-2022/06/05 | 1648 | web/c_cpp/cweb/cweav-vms.ch
-2022/06/05 | 1603552 | systems/texlive/tlnet/archive/xecjk.doc.r63486.tar.xz
-2022/06/05 | 15976 | support/latexindent/documentation/sec-fine-tuning.tex
-2022/06/05 | 1558 | support/latexindent/latexindent-module-installer.pl
-2022/06/05 | 1554 | web/c_cpp/cweb/ctang-vms.ch
-2022/06/05 | 1542 | web/c_cpp/cweb/makefile.bs
-2022/06/05 | 1527 | macros/luatex/latex/pyluatex/example/matplotlib-external.tex
-2022/06/05 | 1514 | web/pwebmac/Xerrorlog.tex
-2022/06/05 | 1488 | support/latexindent/documentation/title.tex
-2022/06/05 | 1485 | support/latexindent/LatexIndent/DoubleBackSlash.pm
-2022/06/05 | 1429 | macros/luatex/latex/pyluatex/example/sessions.tex
-2022/06/05 | 14024 | support/latexindent/documentation/subsec-commands-and-their-options.tex
-2022/06/05 | 13890 | support/latexindent/LatexIndent/Special.pm
-2022/06/05 | 13703 | macros/luatex/latex/pyluatex/pyluatex.tex
-2022/06/05 | 13420 | support/latexindent/LatexIndent/HiddenChildren.pm
-2022/06/05 | 130424 | systems/texlive/tlnet/archive/ctex.r63484.tar.xz
-2022/06/05 | 12897 | support/latexindent/LatexIndent/LogFile.pm
-2022/06/05 | 12759 | web/pwebmac/makeall
-2022/06/05 | 12672 | web/c_cpp/cweb/examples/extex.w
-2022/06/05 | 12646 | support/latexindent/LatexIndent/Braces.pm
-2022/06/05 | 12081 | support/latexindent/documentation/sec-introduction.tex
-2022/06/05 | 120011 | macros/luatex/latex/pyluatex.zip
-2022/06/05 | 11595 | web/pwebmac/webman.ch
-2022/06/05 | 11300 | support/latexindent/LatexIndent/FileContents.pm
-2022/06/05 | 11296 | web/c_cpp/cweb/common.h
-2022/06/05 | 1116908 | systems/texlive/tlnet/archive/ctex.doc.r63484.tar.xz
-2022/06/05 | 11142 | support/latexindent/LatexIndent/Heading.pm
-2022/06/05 | 1104377 | support/latexindent/documentation/latexindent.pdf
-2022/06/05 | 10840 | systems/texlive/tlnet/archive/xpinyin.source.r63485.tar.xz
-2022/06/05 | 10829 | support/latexindent/documentation/sec-indent-config-and-settings.tex
-2022/06/05 | 10622 | support/latexindent/LatexIndent/Command.pm
-2022/06/05 | 10549 | web/c_cpp/cweb/examples/kspell.el
-2022/06/05 | 1049 | macros/luatex/latex/pyluatex/example/typesetting-example.tex
-2022/06/05 | 1013 | web/c_cpp/cweb/ctang-w32.ch
diff --git a/graphics/mcf2graph/CHANGELOG b/graphics/mcf2graph/CHANGELOG
index 00015d74f5..28629b6d28 100644
--- a/graphics/mcf2graph/CHANGELOG
+++ b/graphics/mcf2graph/CHANGELOG
@@ -1,6 +1,11 @@
*******************************************************************************
- Changelog of mcf2graph software package by Akira Yamaji 2022-05-08
+ Changelog of mcf2graph software package by Akira Yamaji 2022-06-12
*******************************************************************************
+[ver. 4.85 / 2022-06-12]
+ -fix bug in function mc_query()
+ -update mcf_library.mcf
+ -update MCF manual
+
[ver. 4.84 / 2022-05-08]
-fix bug in atom drawing
-improve report output
diff --git a/graphics/mcf2graph/README b/graphics/mcf2graph/README
index d14681dc17..ce2a661f32 100644
--- a/graphics/mcf2graph/README
+++ b/graphics/mcf2graph/README
@@ -1,7 +1,7 @@
********************************************************************************
mcf2graph : Convert Molecular Coding Format to graphics with MetaPost
Author : Akira Yamaji
- version : 4.84 2022-05-08
+ version : 4.85 2022-06-12
E-mail : mcf2graph@gmail.com
Located at : http://www.ctan.org/pkg/mcf2graph
********************************************************************************
diff --git a/graphics/mcf2graph/mcf2graph.mp b/graphics/mcf2graph/mcf2graph.mp
index 75ae74cf07..a0fec4985f 100644
--- a/graphics/mcf2graph/mcf2graph.mp
+++ b/graphics/mcf2graph/mcf2graph.mp
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% mcf2graph ver 4.84 Copyright (c) 2013-2022 Akira Yamaji
+% mcf2graph ver 4.85 Copyright (c) 2013-2022 Akira Yamaji
%
% Permission is hereby granted, free of charge, to any person obtaining a copy of this software
% and associated documentation files (the "Software"), to deal in the Software without restriction,
@@ -33,13 +33,13 @@
% Set output MOL file (V3000) : mpost -s ahlength=6 FILENAME
% Set output report : mpost -s ahlength=7 FILENAME
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-message "* This is mcf2graph ver 4.84 2022.05.08";
+message "* This is mcf2graph ver 4.85 2022.06.12";
tracingstats:=1; prologues:=3; warningcheck:=0;
%-------------------------------------------------------------------------------------------------
numeric save_num[],parts_com[][],parts_par[][],parts_cnt[],tbl_atom[],tbl_group[][],tbl_atom_wt[],
- tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[];
-string save_str[],tbl_atom_str[],str_tbl[],tag[],aux_delimiter,default_library,
- default_temp_file,mpfont,atomfont,tempc,temps,blanks;
+ tbl_atom_mi[],tbl_char_wd[],tbl_char_ht[],at_char[];
+string save_str[],tbl_atom_str[],str_tbl[],tag[],info_s[],arg_s[],aux_delimiter,default_library,
+ file_input,file_output,default_temp_file,mpfont,atomfont,tempc,temps,blanks;
pair save_pair[],msize,mposition,fsize,fmargin,dum,save_mposition;
%-------------------------------------------------------------------------------------------------
fig_num:=str_cnt:=tbl_cnt:=mangle:=sw_expand:=sw_frame:=sw_trimming:=sw_ext_all:=0;
@@ -182,16 +182,16 @@ enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def beginfigm(text s)=
begingroup
- save ',mc,f_ext,blen,ext,add,ang_br,fw_n,bw_n,at_colon,info_cnt,group_num,info_s,bond_cntA,
+ save ',mc,f_ext,blen,ext,add,ang_br,fw_n,bw_n,at_colon,info_cnt,group_num,bond_cntA,
warning_cnt,hideH_cnt,filter_s,mc_indent,cntM,cntA,cntB,minX,minY,maxX,maxY,posA,posM,
hideH,lineB,sB,eB,angB,angA,lenB,angX,numS,sumA,bond_num,wdM,htM,chargeA,addA,add_rot,
- file_input,file_output,cal_FM,cal_MW,cal_MI,inf_Cat,inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,
+ cal_FM,cal_MW,cal_MI,inf_Cat,inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,
inf_USE,inf_EXA,inf_EXB,inf_MW,mol_pic,sC,sI,sS,sT,sV,color_list,unit_cnt,f_end,semic_cnt,
- f_match,var_n,tag_a,var_a,at_char,arg_s;
+ f_match,var_n,tag_a,var_a;
numeric mc_indent[],hideH[],lineB[],sB[],eB[],angB[],angA[],lenB[],angX[],strA[],sumA[],
- bond_num[],wdM[],htM[],chargeA[],addA[],add_rot[],at_char[];
+ bond_num[],wdM[],htM[],chargeA[],addA[],add_rot[];
pair posA[],posM[][];
- string info_s[],mc[],tag_a[],var_a[],arg_s[],mc,filter_s,file_input,file_output,cal_FM,cal_MW,
+ string mc[],tag_a[],var_a[],mc,filter_s,cal_FM,cal_MW,
cal_MI,inf_Cat,inf_NO,inf_EN,inf_JN,inf_FM,inf_CAS,inf_USE,inf_EXA,inf_EXB,inf_MW,
sC,sI,sS,sT,sV;
picture mol_pic[];
@@ -205,7 +205,7 @@ def beginfigm(text s)=
mc:=temps:=cal_MW:=cal_MI:=cal_FM:=filter_s:=""; file_input:=default_library;
%------------------------------------------------------------------------------------------------
parts_num:=parts_usr_start; parts_int:=parts_int_start;
- fig_num:=fig_num+1; f_ext:=cntM:=mc_row:=info_cnt:=f_EOF:=at_char[0]:=0;
+ fig_num:=fig_num+1; f_ext:=cntM:=mc_row:=info_cnt:=f_EOF:=0;
%------------------------------------------------------------------------------------------------
for list=s:
at_colon:=scan_char(":",list,0,1);
@@ -316,7 +316,7 @@ def pickup_data_unit(expr t,v,f)=
endfor
fi
else:
- inf_num:=split_char(sS,";")+1;
+ inf_num:=split_char(sS,";");
for i=1 upto inf_num:
sI:=arg_s[i]; nA:=scan_char(":",sI,0,1);
tag_a[i]:=substring(0,nA-1) of sI; var_a[i]:=substring(nA,length(sI)) of sI;
@@ -1553,17 +1553,20 @@ def proc_err(expr e,n)= err_adr[incr err_cnt]:=n; err_code[err_cnt]:=e;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def mc_query(text s)=
begingroup
- save f_mcf,f_line,unit_row,unit_cnt,line_s,row_cnt,semic_cnt,info_cnt,order,min_n,key_cnt,
- info_s,sign_at,sign_n,filter_n,filter_tag,filter_var,filter_sign,filter_cnt,filter_p,
- at_char,at_colon,at_equal,at_less,at_greater,at_n,sort_all,key_s,sort_s;
- string line_s[][],sort_s[],sort_all[],key_s[],filter_tag[],filter_var[],info_s[];
- numeric row_cnt[],order[],order_tbl[],filter_sign[],filter_p[],at_char[];
- unit_row:=f_mcf:=mc_row:=info_cnt:=key_cnt:=filter_cnt:=0; unit_cnt:=1;
+ save f_mcf,f_line,unit_row,unit_cnt,line_s,row_cnt,semic_cnt,info_cnt,order,min_n,max_n,
+ sign_at,sign_n,filter_n,filter_tag,filter_var,filter_sign,filter_cnt,filter_p,lib_unit_cnt,
+ at_colon,at_equal,at_less,at_greater,at_n,sort_tbl,key_s,sort_s,sign_s,sV,sS,sT,sort_oder;
+ string line_s[][],sort_s,sort_tbl[],key_s,filter_tag[],filter_var[],sign_s[],sV,sS,sT;
+ numeric row_cnt[],order[],order_tbl[],filter_sign[],filter_p[];
+ unit_row:=f_mcf:=mc_row:=info_cnt:=filter_cnt:=lib_unit_cnt:=0; unit_cnt:=1;
file_input:=default_library; file_output:=default_temp_file;
+ sign_s[1]:="="; sign_s[2]:="<>"; sign_s[3]:="<"; sign_s[4]:=">"; sign_s[5]:="<=";
+ sign_s[6]:=">=";
%-----------------------------------------------------------------------------------------------
for list=s:
at_colon:=scan_char(":",list,0,1); at_equal:=scan_char("=",list,0,1);
at_less:=scan_char("<",list,0,1); at_greater:=scan_char(">",list,0,1);
+ key_s:="";
%---------------------------------------------------------------------------------------------
if at_colon>=2: sign_at:=at_colon; sign_n:=0; at_n:=1;
ef at_equal>=2: if (at_equal-1)=at_less: sign_at:=at_equal; sign_n:=5; at_n:=2;
@@ -1577,7 +1580,9 @@ def mc_query(text s)=
if sign_n=0:
if sT="f": if scan_char(".",sV,0,1)=0: file_input:=sV&".mcf"; else: file_input:=sV; fi
ef sT="o": if scan_char(".",sV,0,1)=0: file_output:=sV&".aux"; else: file_output:=sV; fi
- ef sT="s": key_s[incr key_cnt]:=sV; fi
+ ef sT="a": key_s:=sV; sort_oder:=0;
+ ef sT="d": key_s:=sV; sort_oder:=1;
+ fi
else:
filter_tag[incr filter_cnt]:=sT; filter_sign[filter_cnt]:=sign_n;
if (sign_n>=3)and(is_num(sV)=1): filter_var[filter_cnt]:=fix_num(sV);
@@ -1591,13 +1596,11 @@ def mc_query(text s)=
if (substring(0,2) of temps)="+-":
row_cnt[unit_cnt]:=unit_row; f_mcf:=unit_row:=0; filter_n:=1;
for i=1 upto filter_cnt: filter_p[i]:=0; endfor
- for i=1 upto key_cnt: sort_s[i]:=""; endfor
+ sort_s:="";
for i=1 upto info_cnt:
- nA:=scan_char(":",info_s[i],0,1);
- sT:=substring(0,nA-1) of info_s[i]; sV:=substring(nA,length(info_s[i])) of info_s[i];
- for j=1 upto key_cnt:
- if key_s[j]=sT: if is_num(sV)=1: sort_s[j]:=fix_num(sV); else: sort_s[j]:=sV; fi fi
- endfor
+ nA:=scan_char(":",arg_s[i],0,1);
+ sT:=substring(0,nA-1) of arg_s[i]; sV:=substring(nA,length(arg_s[i])) of arg_s[i];
+ if sT=key_s: if is_num(sV)=1: sort_s:=fix_num(sV); else: sort_s:=sV; fi fi
for j=1 upto filter_cnt:
if filter_tag[j]=sT:
filter_p[j]:=1;
@@ -1610,28 +1613,37 @@ def mc_query(text s)=
ef filter_sign[j]=6: if not(temps>=filter_var[j]): filter_n:=0; fi fi fi endfor
endfor
for i=1 upto filter_cnt: if filter_p[i]=0: filter_n:=0; fi endfor
- sort_all[unit_cnt]:="";
- for j=1 upto key_cnt:
- if j=key_cnt: sort_all[unit_cnt]:=sort_all[unit_cnt]&sort_s[j];
- else: sort_all[unit_cnt]:=fix_str(15,sort_s[1]); fi endfor
- info_cnt:=0; if filter_n=1: unit_cnt:=unit_cnt+1; fi
+ info_cnt:=0; lib_unit_cnt:=lib_unit_cnt+1;
+ if filter_n=1: if key_s<>"": sort_tbl[unit_cnt]:=sort_s; fi unit_cnt:=unit_cnt+1; fi
ef subc(1,temps)="+": f_mcf:=1; mc_row:=1;
ef subc(1,temps)<>"%":
- if f_mcf=1: mc_row:=mc_row+1;
- else:
- info_cnt:=split_char(temps,";")+1; for i=1 upto info_cnt: info_s[i]:=arg_s[i]; endfor fi
- fi
+ if f_mcf=1: mc_row:=mc_row+1; else: info_cnt:=split_char(temps,";"); fi fi
fi
endfor
- %=============================================================================================
unit_cnt:=unit_cnt-1;
- if key_cnt>=1:
+ %=============================================================================================
+ printf "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";
+ printf "% Input : "&file_input&" ["&decimal(lib_unit_cnt)&"]";;
+ printf "% Output : "&file_output&" ["&decimal(unit_cnt)&"]";
+ if filter_cnt>=1:
+ for i=1 upto filter_cnt:
+ printf "% Filter("&decimal(i)&"): "&filter_tag[i]&" "&sign_s[filter_sign[i]]&filter_var[i];
+ endfor
+ if key_s<>"": printf "% Sort key : "&key_s&iif(sort_oder=0," (ascending)"," (descending)"); fi
+ printf "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%";
+ %-----------------------------------------------------------------------------------------
+ if key_s<>"":
for i=1 upto unit_cnt: order[i]:=0; endfor
- for i=1 upto unit_cnt: temps:="~";
- for j=1 upto unit_cnt:
- if order[j]=0: if sort_all[j]<temps: temps:=sort_all[j]; min_n:=j; fi fi
- endfor
- order[min_n]:=i; order_tbl[i]:=min_n;
+ for i=1 upto unit_cnt:
+ if sort_oder=0: temps:="~";
+ for j=1 upto unit_cnt:
+ if order[j]=0: if sort_tbl[j]<temps: temps:=sort_tbl[j]; min_n:=j; fi fi endfor
+ order[min_n]:=i; order_tbl[i]:=min_n;
+ ef sort_oder=1: temps:=" ";
+ for j=1 upto unit_cnt:
+ if order[j]=0: if sort_tbl[j]>temps: temps:=sort_tbl[j]; max_n:=j; fi fi endfor
+ order[max_n]:=i; order_tbl[i]:=max_n;
+ fi
endfor
for i=1 upto unit_cnt:
for j=1 upto row_cnt[order_tbl[i]]: printf line_s[order_tbl[i]][j]; endfor
@@ -1641,10 +1653,6 @@ def mc_query(text s)=
endgroup;
enddef;
%=============================================================================================
-vardef fix_str(expr n,s)=
- if length(s)<n: sS:=s&substring(0,n-length(s)) of blanks;
- ef length(s)>n: sS:=substring(0,n) of s; fi sS enddef;
-%-------------------------------------------------------------------------------------------------
vardef fix_num(expr s)=
sS:=s; nN:=scan_char(".",sS,0,1);
if nN=0: sS:=fsr(4)(sS); ef nN=1: sS:=" 0"&sS;
@@ -1667,6 +1675,6 @@ vardef scan_chars(expr s,c)=
nN:=0; for i=1 upto length(s): if subc(i,s)=c: at_char[incr nN]:=i; fi endfor nN enddef;
%-------------------------------------------------------------------------------------------------
vardef split_char(expr s,c)=
- nN:=scan_chars(s,c); at_char[nN+1]:=length(s)+1;
- for i=1 upto nN+1: arg_s[i]:=substring(at_char[i-1],at_char[i]-1) of s; endfor nN enddef;
+ nN:=scan_chars(s,c)+1; at_char[0]:=0; at_char[nN]:=length(s)+1;
+ for i=1 upto nN: arg_s[i]:=substring (at_char[i-1],at_char[i]-1) of s; endfor nN enddef;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/graphics/mcf2graph/mcf_exa_code.pdf b/graphics/mcf2graph/mcf_exa_code.pdf
index 51743be2c8..64cc1bef8a 100644
--- a/graphics/mcf2graph/mcf_exa_code.pdf
+++ b/graphics/mcf2graph/mcf_exa_code.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_exa_code.tex b/graphics/mcf2graph/mcf_exa_code.tex
index 1be25c7aba..d5e2807b43 100644
--- a/graphics/mcf2graph/mcf_exa_code.tex
+++ b/graphics/mcf2graph/mcf_exa_code.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Print out mcf data list by A.Yamaji 2022.05.08
+% Print out mcf data list by A.Yamaji 2022.06.12
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 4.84
+% ** mcf2graph.mf must be version 4.85
% ** use mcf_library.mcf
% ** typeset by LuaLaTeX(luamplib)
\documentclass{article}
diff --git a/graphics/mcf2graph/mcf_exa_soc.mp b/graphics/mcf2graph/mcf_exa_soc.mp
index 0c4b39380d..2e7874177c 100644
--- a/graphics/mcf2graph/mcf_exa_soc.mp
+++ b/graphics/mcf2graph/mcf_exa_soc.mp
@@ -1,8 +1,8 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format by Akira Yamaji 2022.05.08
+% Molecular Coding Format by Akira Yamaji 2022.06.12
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph; %%% it must be version 4.84
-message "* mcf_exa_soc 2022.05.08";
+input mcf2graph; %%% it must be version 4.85
+message "* mcf_exa_soc 2022.06.12";
message "";
%------------------------------------------------------------------------------
%%%%sw_frame:=Outside;
@@ -21,8 +21,9 @@ tag1:="J"; tag2:="C"; tag3:="fm"; tag4:="mw"; tag5:="EN"; tag6:="MW";
%label.rt(inf_EN&" / "&cal_MW&" / "&decimal(num_MW-scantokens(inf_MW)),(0,0));)
%------------------------------------------------------------------------------
%%%%mc_query("Cat=biological","MW<200","s:MW");
-%%%%mc_query("Cat=biological","MW<150.0","s:EN");
-%%%%mc_query("MW>=150","MW<=250","s:MW");
+%%%%mc_query("Cat=biological","MW<110.0","s:EN");
+%%%%mc_query("Cat=biological","MW>=150","MW<=200","a:EN");
+%%%%mc_query("Cat=biological","MW>=150","MW<=200","d:MW");
%******************************************************************************
fsize:=(35mm,24mm);
max_blength:=4mm;
diff --git a/graphics/mcf2graph/mcf_example.pdf b/graphics/mcf2graph/mcf_example.pdf
index 9afd61cf8e..c978c19eb8 100644
--- a/graphics/mcf2graph/mcf_example.pdf
+++ b/graphics/mcf2graph/mcf_example.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_example.tex b/graphics/mcf2graph/mcf_example.tex
index fee9b0ba5d..a081702378 100644
--- a/graphics/mcf2graph/mcf_example.tex
+++ b/graphics/mcf2graph/mcf_example.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2022.05.08
+% Example of MCF Typeset with LuaLaTeX(luamplib) by A.Yamaji 2022.06.12
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mf must be version 4.84
+% ** mcf2graph.mf must be version 4.85
% ** use mcf_library.mcf
% ** typeset by LuaLaTeX(luamplib)
\documentclass{article}
diff --git a/graphics/mcf2graph/mcf_library.mcf b/graphics/mcf2graph/mcf_library.mcf
index b23c8c6611..839346726e 100644
--- a/graphics/mcf2graph/mcf_library.mcf
+++ b/graphics/mcf2graph/mcf_library.mcf
@@ -1,16 +1,15 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% molecular library file mcf_library.mcf by Akira Yamaji 2022.05.08
+% molecular library file mcf_library.mcf by Akira Yamaji 2022.06.12
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tag1:var1;tag2:var2;tag3:var3 .....
% first character of line "%" comment out
% first character of line "+" begin MCF
% first string of line "+-" end MCF
-% first string of line "%-" end header
% Cat = Category
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%==============================================================================
% molecular data for mcf_example.tex EXA=1(155) EXA=2(7)
-%-=============================================================================
+%==============================================================================
Cat:biological;EN:Adenine;MW:135.13;EXA:1
+
<30,?6,3=?5,{1,3,5,9}=dl,{2,6,9}:N,5:/NH2,7:NH
diff --git a/graphics/mcf2graph/mcf_man_soc.mp b/graphics/mcf2graph/mcf_man_soc.mp
index f3344cff25..e9fc711828 100644
--- a/graphics/mcf2graph/mcf_man_soc.mp
+++ b/graphics/mcf2graph/mcf_man_soc.mp
@@ -1,9 +1,9 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% MCF file for mcf_manual.tex by Akira.Yamaji 2022.05.08
+% MCF file for mcf_manual.tex by Akira.Yamaji 2022.06.12
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-input mcf2graph; %% it must be version 4.84
+input mcf2graph; %% it must be version 4.85
% ** use library file 'mcf_library.mcf'
-message "mcf_man_soc 2022.05.08"; message "";
+message "mcf_man_soc 2022.06.12"; message "";
%------------------------------------------------------------------------
sw_mframe:=0;
sw_expand:=0;
diff --git a/graphics/mcf2graph/mcf_manual.pdf b/graphics/mcf2graph/mcf_manual.pdf
index 46fad77072..1336e1e33d 100644
--- a/graphics/mcf2graph/mcf_manual.pdf
+++ b/graphics/mcf2graph/mcf_manual.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_manual.tex b/graphics/mcf2graph/mcf_manual.tex
index e3aac3ed4b..ccfdd511ab 100644
--- a/graphics/mcf2graph/mcf_manual.tex
+++ b/graphics/mcf2graph/mcf_manual.tex
@@ -1,5 +1,5 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Molecular Coding Format manual by Akira Yamaji 2022.05.08
+% Molecular Coding Format manual by Akira Yamaji 2022.06.12
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[a4paper]{article}
%%%\usepackage{graphicx}
@@ -1559,10 +1559,8 @@ bye
% first character of line "%" comment out
% first character of line "+" begin MCF
% first string of line "+-" end MCF
-% first string of line "%-" end header
% Cat = Category
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%------------------------------------------------------------------------------
Cat:biological;EN:Adenine;MW:135.13
+
<30,?6,3=?5,{1,3,5,9}=dl,{2,6,9}:N,5:/NH2,7:NH
@@ -1620,39 +1618,43 @@ Cat:biological;EN:Stearic acid;MW:284.48
%
% "f:filename" : input file name (default "mcf_library.mcf")
% "o:filename" : output file name (default "temp.mcf")
-% "s:sort-key" : sort by sort-key
+%
+% "a:sort-key" : sort by sort-key ascending
+% "d:sort-key" : sort by sort-key descending
%
% operator : = , <> , <= , >= , < , >
%
% filter 1 : Cat=biological
% filter 2 : MW>=285
% filter 3 : MW<=295
+%
%--------------------------------------------------------------
-mc_query("s:EN","Cat=biological","MW>=285","MW<=295");
+mc_query("Cat=biological","MW>=285","MW<=290","a:EN");
%--------------------------------------------------------------
-forever:
- beginfigm("f:temp","v+:*") % use file temp.mcf / select all
- if f_EOF=0: if mc_check(mc)=0: MC(scantokens(mc)) fi fi
- endfigm
- exitif f_EOF=1;
-endfor
-%---------------------------------------------------------------
\end{verbatim}
%---------------------------------------------------------------
\paragraph{(output)}
\begin{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Input : mcf_library.mcf [506]
+% Output : temp.mcf [5]
+% Filter(1): Cat =biological
+% Filter(2): MW >= 285
+% Filter(3): MW <= 290
+% Sort key : EN (ascending)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Cat:biological;EN:Atoropin;MW:289.375;EXA:1
+
-<30,O,!,//O,!,!,Ph,@$1,\~zb^-60,|,?7`1.1,@6,*\^190`1.25,N!,&3~wb,$3:/!OH~wv
+<30,O,!,//O,!2,Ph,@$1,\~zb^-60,|,?7`1.1,@6,*\^190`1.25,N!,&3~wb,$3:/!OH~wv
+------------------------------------------------------------------------------
-Cat:biological;EN:Cianidanol;MW:290.27;EXA:1
+Cat:biological;EN:Luteolin;MW:286.24;EXA:-
+
-<30,Ph,3=?6,@8,*\,Ph,7:O,{1,5,13,14}:/OH,9:/*OH
+<30,Ph,3=?6,9=dl,10:O,7://O,@9,\,Ph,{2,6,14,15}:/OH
+------------------------------------------------------------------------------
Cat:biological;EN:Lycorine;MW:287.315;EXA:1
+
<30,Ph,{-4,-2}=?6,{6,(9,12)}=?5,13=dl,8:N,{15,17}:O,
- 9:/*H^180,10:*/H^60,13:*/OH,14:/*OH
+ {9'^180,10^60}:*/H,{13,14'}:*/OH
+------------------------------------------------------------------------------
Cat:biological;EN:Morphine;MW:285.343;EXA:1
+
@@ -1661,7 +1663,7 @@ Cat:biological;EN:Morphine;MW:285.343;EXA:1
+------------------------------------------------------------------------------
Cat:biological;EN:Piperine;MW:285.343;EXA:1
+
-<30,Ph,|,-1=?5,{1,3}:O,@$4,\,!!,!,!!,!,//O,!,|,?6,1:N
+<30,Ph,-1=?5,{-1,-3}:O,@4,\,!!,!,!!,!,//O,!,?6,-6:N
+------------------------------------------------------------------------------
\end{verbatim}
%------------------------------------------------------------------------------
diff --git a/graphics/mcf2graph/mcf_mplib_exa.pdf b/graphics/mcf2graph/mcf_mplib_exa.pdf
index 861f6a1596..f1b1033ffd 100644
--- a/graphics/mcf2graph/mcf_mplib_exa.pdf
+++ b/graphics/mcf2graph/mcf_mplib_exa.pdf
Binary files differ
diff --git a/graphics/mcf2graph/mcf_mplib_exa.tex b/graphics/mcf2graph/mcf_mplib_exa.tex
index 1d37cc0492..eaabc597a3 100644
--- a/graphics/mcf2graph/mcf_mplib_exa.tex
+++ b/graphics/mcf2graph/mcf_mplib_exa.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2022.05.08
+% Example of MCF typest with LuaLaTeX(luamplib) by A.Yamaji 2022.06.12
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% ** mcf2graph.mp must be version 4.84
+% ** mcf2graph.mp must be version 4.85
% ** use mcf_library.mcf
\documentclass{article}
%------------------------------------------------------------------------------
diff --git a/info/tex-vpat/LICENSE b/info/tex-vpat/LICENSE
index 01d9c767ae..d4579fa92d 100644
--- a/info/tex-vpat/LICENSE
+++ b/info/tex-vpat/LICENSE
@@ -1,4 +1,4 @@
-TeX VPAT Statement (c) 2021 by TeX Users Group
+TeX VPAT Statement (c) 2021-2022 by TeX Users Group
TeX VPAT is licensed under a
Creative Commons Attribution 3.0 Unported License.
diff --git a/info/tex-vpat/README.md b/info/tex-vpat/README.md
index c9a91137d4..9f14cd0b00 100644
--- a/info/tex-vpat/README.md
+++ b/info/tex-vpat/README.md
@@ -14,4 +14,6 @@ Creative Commons Attribution 3.0 Unported License.
You should have received a copy of the license along with this
work. If not, see [http://creativecommons.org/licenses/by/3.0/](http://creativecommons.org/licenses/by/3.0/).
+Version 2.1: updated to TeXLive 2022
+
Version 2.0: updated to the new release of TeXLive manual \ No newline at end of file
diff --git a/info/tex-vpat/texlive-vpat.css b/info/tex-vpat/texlive-vpat.css
index 7dd4406cac..ad3d517de2 100644
--- a/info/tex-vpat/texlive-vpat.css
+++ b/info/tex-vpat/texlive-vpat.css
@@ -142,8 +142,10 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
.hline {border-top: 1px solid black;}
div.array {text-align:center;}
table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
+table.longtable{border-collapse: collapse; border-spacing: 0;}
div.longtable{text-align:center;}
table.longtable{margin-left:auto; margin-right: auto;}
+caption.longtable .id{font-weight:bold;}
tr#TBL-4-1- {border-top:0.112em solid #000;}
tr#TBL-4-1- {border-bottom:0.06999em solid #000}
tr#TBL-4-9- {border-bottom:0.112em solid #000}
diff --git a/info/tex-vpat/texlive-vpat.html b/info/tex-vpat/texlive-vpat.html
index 5478635a6c..d558eb040a 100644
--- a/info/tex-vpat/texlive-vpat.html
+++ b/info/tex-vpat/texlive-vpat.html
@@ -24,7 +24,7 @@
class="cmr-12">TeX</span><span
class="cmr-12">&#x00A0;Users Group</span></div><br />
<div class="date" ><span
-class="cmr-12">Version 2.0, January 2022</span></div>
+class="cmr-12">Version 2.1, June 2022</span></div>
@@ -106,13 +106,13 @@ href="#x1-31000" id="QQ2-1-31">Legal Disclaimer</a></span>
id="x1-2000"></a>Name of Product/Version</h3>
<a
id="x1-2000doc"></a>
-<!--l. 26--><p class="noindent" >TeXLive 2021.
+<!--l. 26--><p class="noindent" >TeXLive 2022.
<!--l. 29--><p class="noindent" >
<h3 class="sectionHead"><a
id="x1-3000"></a>Report Date</h3>
<a
id="x1-3000doc"></a>
-<!--l. 32--><p class="noindent" >January 2022.
+<!--l. 32--><p class="noindent" >June 2022.
<!--l. 35--><p class="noindent" >
<h3 class="sectionHead"><a
id="x1-4000"></a>Product Description</h3>
@@ -121,8 +121,8 @@ href="#x1-31000" id="QQ2-1-31">Legal Disclaimer</a></span>
<!--l. 38--><p class="noindent" >TeXLive is the reference distribution of TeX&#x00A0;and related software supported by
TeX&#x00A0;Users Group, a membership-based not-for-profit organization dedicated to
support, promotion and advocacy of TeX&#x00A0;typesetting system created by Donald
-Knuth and maintained by the international community of developers. As of 2021
-TeXLive contains more than 460&#x00A0;programs and more than 7300&#x00A0;software
+Knuth and maintained by the international community of developers. As of 2022
+TeXLive contains more than 470&#x00A0;programs and more than 7600&#x00A0;software
packages.
<!--l. 45--><p class="noindent" >
<h3 class="sectionHead"><a
@@ -324,14 +324,14 @@ class="description">
class="cmbx-10">Not Applicable:</span> </dt><dd
class="description">
<!--l. 149--><p class="noindent" >The criterion is not relevant to the product.
-
-
-
</dd><dt class="description">
<!--l. 150--><p class="noindent" >
<span
class="cmbx-10">Not Evaluated:</span> </dt><dd
class="description">
+
+
+
<!--l. 150--><p class="noindent" >The product has not been evaluated against the criterion. This can be
used only in WCAG 2.0 Level AAA.
</dd></dl>
diff --git a/info/tex-vpat/texlive-vpat.pdf b/info/tex-vpat/texlive-vpat.pdf
index 11138d3717..26ab4cd80e 100644
--- a/info/tex-vpat/texlive-vpat.pdf
+++ b/info/tex-vpat/texlive-vpat.pdf
Binary files differ
diff --git a/info/tex-vpat/texlive-vpat.tex b/info/tex-vpat/texlive-vpat.tex
index 22831eb18f..1b7c6671c1 100644
--- a/info/tex-vpat/texlive-vpat.tex
+++ b/info/tex-vpat/texlive-vpat.tex
@@ -11,7 +11,7 @@
(International Edition)\\
(Based upon VPAT\textsuperscript{\textregistered} version~2.4)}
\author{\TeX\ Users Group}
-\date{Version 2.0, January 2022}
+\date{Version 2.1, June 2022}
\maketitle
\clearpage
@@ -23,13 +23,13 @@
\section{Name of Product/Version}
\label{sec:name}
-\TeX Live 2021.
+\TeX Live 2022.
\section{Report Date}
\label{sec:date}
-January 2022.
+June 2022.
\section{Product Description}
@@ -39,8 +39,8 @@ January 2022.
supported by \TeX\ Users Group, a membership-based not-for-profit
organization dedicated to support, promotion and advocacy of \TeX\
typesetting system created by Donald Knuth and maintained by the
-international community of developers. As of 2021 \TeX Live contains
-more than 460~programs and more than 7300~software packages.
+international community of developers. As of 2022 \TeX Live contains
+more than 470~programs and more than 7600~software packages.
\section{Contact Information}
\label{sec:contact_info}
diff --git a/language/korean/cjk-ko/ChangeLog b/language/korean/cjk-ko/ChangeLog
index 2bea4780c5..a4c4d1f5df 100644
--- a/language/korean/cjk-ko/ChangeLog
+++ b/language/korean/cjk-ko/ChangeLog
@@ -1,3 +1,11 @@
+2022-06-12 Dohyun Kim <nomos at ktug org>
+
+ Version 2.3
+
+ * cjkutf8-ko.sty: remove redefinitions of MakeUppercase and
+ MakeLowercase, being not needed with LaTeX kernel 2022/06;
+ use keyval-based option processing of LaTeX kernel 2022/06.
+
2021-07-26 Dohyun Kim <nomos at ktug org>
Version 2.2
diff --git a/language/korean/cjk-ko/README b/language/korean/cjk-ko/README
index 457094f2c4..99319a2e06 100644
--- a/language/korean/cjk-ko/README
+++ b/language/korean/cjk-ko/README
@@ -1,4 +1,4 @@
-CJK-ko package version 2.2 (2021/07/26)
+CJK-ko package version 2.3 (2022/06/12)
=======================================
This package supports typesetting of modern Korean documents with the help
diff --git a/language/korean/cjk-ko/cjk-ko-doc.pdf b/language/korean/cjk-ko/cjk-ko-doc.pdf
index 7de7a154ec..cd9f79bef0 100644
--- a/language/korean/cjk-ko/cjk-ko-doc.pdf
+++ b/language/korean/cjk-ko/cjk-ko-doc.pdf
Binary files differ
diff --git a/language/korean/cjk-ko/cjk-ko-doc.tex b/language/korean/cjk-ko/cjk-ko-doc.tex
index 53a10800af..7e621f931c 100644
--- a/language/korean/cjk-ko/cjk-ko-doc.tex
+++ b/language/korean/cjk-ko/cjk-ko-doc.tex
@@ -25,7 +25,7 @@
\title{\cjkko\ 간단 매뉴얼}
\author{Dohyun Kim \normalsize $<$\texttt{nomos at ktug org}$>$ \and
\normalsize $<$\url{http://github.com/dohyunkim/cjk-ko}$>$}
-\date{Version 2.2\quad \today}
+\date{Version 2.3\quad \today}
\begin{document}
\maketitle
@@ -135,26 +135,36 @@
\end{itemize}
\section{한글 카운터}
-\koTeX\ 패키지와 동일하다. 사용례: \cs{pagenumbering\{onum\}}
-\begin{itemize}\leftskip=1cm \labelsep=1em \itemsep=0pt plus0pt
- \def\cs#1{\texttt{\bfseries #1}}
- \item[\cs{jaso}] ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ
- \item[\cs{gana}] 가 나 다 라 마 바 사 아 자 차 카 타 파 하
- \item[\cs{ojaso}] ㉠ ㉡ ㉢ ㉣ ㉤ ㉥ ㉦ ㉧ ㉨ ㉩ ㉪ ㉫ ㉬ ㉭
- \item[\cs{ogana}] ㉮ ㉯ ㉰ ㉱ ㉲ ㉳ ㉴ ㉵ ㉶ ㉷ ㉸ ㉹ ㉺ ㉻
- \item[\cs{pjaso}] ㈀ ㈁ ㈂ ㈃ ㈄ ㈅ ㈆ ㈇ ㈈ ㈉ ㈊ ㈋ ㈌ ㈍
- \item[\cs{pgana}] ㈎ ㈏ ㈐ ㈑ ㈒ ㈓ ㈔ ㈕ ㈖ ㈗ ㈘ ㈙ ㈚ ㈛
- \item[\cs{onum}] ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮
- \item[\cs{pnum}] ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂
- \item[\cs{oeng}] ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ $\cdots$ ⓩ
- \item[\cs{peng}] ⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ $\cdots$ ⒵
- \item[\cs{hnum}] 하나 둘 셋 넷 다섯 여섯 일곱 여덟 아홉 열 열하나 $\cdots$ 스물넷
- \item[\cs{Hnum}] 첫 둘 셋 넷 다섯 여섯 일곱 여덟 아홉 열 열한 $\cdots$ 스물넷
- \item[\cs{hroman}] ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ ⅻ
- \item[\cs{hRoman}] Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ
- \item[\cs{hNum}] 일 이 삼 사 오 육 칠 팔 구 십 십일 십이 $\cdots$ 이십사
- \item[\cs{hanjanum}] 一 二 三 四 五 六 七 八 九 十 十一 十二 $\cdots$ 二十四
-\end{itemize}
+
+\begin{table}
+ \centering
+ \def\cs#1{\texttt{\bfseries #1}}
+ \begin{tabular}{rl}\\
+ \hline
+ \cs{jaso}& ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅅ ㅇ ㅈ ㅊ ㅋ ㅌ ㅍ ㅎ\\
+ \cs{gana}& 가 나 다 라 마 바 사 아 자 차 카 타 파 하\\
+ \cs{ojaso}& ㉠ ㉡ ㉢ ㉣ ㉤ ㉥ ㉦ ㉧ ㉨ ㉩ ㉪ ㉫ ㉬ ㉭\\
+ \cs{ogana}& ㉮ ㉯ ㉰ ㉱ ㉲ ㉳ ㉴ ㉵ ㉶ ㉷ ㉸ ㉹ ㉺ ㉻\\
+ \cs{pjaso}& ㈀ ㈁ ㈂ ㈃ ㈄ ㈅ ㈆ ㈇ ㈈ ㈉ ㈊ ㈋ ㈌ ㈍\\
+ \cs{pgana}& ㈎ ㈏ ㈐ ㈑ ㈒ ㈓ ㈔ ㈕ ㈖ ㈗ ㈘ ㈙ ㈚ ㈛\\
+ \cs{onum}& ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮\\
+ \cs{pnum}& ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂\\
+ \cs{oeng}& ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ $\cdots$ ⓩ\\
+ \cs{peng}& ⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ $\cdots$ ⒵\\
+ \cs{hnum}& 하나 둘 셋 넷 다섯 여섯 일곱 여덟 아홉 열 열하나 $\cdots$ 스물넷\\
+ \cs{Hnum}& 첫 둘 셋 넷 다섯 여섯 일곱 여덟 아홉 열 열한 $\cdots$ 스물넷\\
+ \cs{hroman}& ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ ⅻ\\
+ \cs{hRoman}& Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ\\
+ \cs{hNum}& 일 이 삼 사 오 육 칠 팔 구 십 십일 십이 $\cdots$ 이십사\\
+ \cs{hanjanum}& 一 二 三 四 五 六 七 八 九 十 十一 十二 $\cdots$ 二十四\\
+ \hline
+ \end{tabular}
+ \caption{한글 카운터 목록}\label{hangulcounters}
+\end{table}
+
+\koTeX\ 패키지와 동일하다.
+표~\ref{hangulcounters}\를 참조.
+사용례: \cs{pagenumbering\{onum\}}
\section{\texttt{kotex.sty}}
다양한 \koTeX\ 패키지로의 준자동적인 연결을 담당하는 스타일 파일이다.
diff --git a/language/korean/cjk-ko/cjkutf8-josa.sty b/language/korean/cjk-ko/cjkutf8-josa.sty
index cffa6f4457..a0ed02cfed 100644
--- a/language/korean/cjk-ko/cjkutf8-josa.sty
+++ b/language/korean/cjk-ko/cjkutf8-josa.sty
@@ -1,6 +1,6 @@
% cjkutf8-josa.sty
%
-% Copyright (c) 2016-2021 Dohyun Kim <nomos at ktug org>
+% Copyright (c) 2016-2022 Dohyun Kim <nomos at ktug org>
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
% MA 02110-1301 USA
-\ProvidesPackage{cjkutf8-josa}[2021/07/20 v2.1 Automatic Josa selection for cjk-ko]
+\ProvidesPackage{cjkutf8-josa}[2022/06/12 v2.3 Automatic Josa selection for cjk-ko]
\AtBeginDocument{
\ifx\use@josa\undefined\else
diff --git a/language/korean/cjk-ko/cjkutf8-ko.sty b/language/korean/cjk-ko/cjkutf8-ko.sty
index 4b8f167b9c..209b2ee1a6 100644
--- a/language/korean/cjk-ko/cjkutf8-ko.sty
+++ b/language/korean/cjk-ko/cjkutf8-ko.sty
@@ -1,6 +1,6 @@
% cjkutf8-ko.sty
%
-% Copyright (c) 2016-2021 Dohyun Kim <nomos at ktug org>
+% Copyright (c) 2016-2022 Dohyun Kim <nomos at ktug org>
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
@@ -17,55 +17,45 @@
% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
% MA 02110-1301 USA
-\NeedsTeXFormat{LaTeX2e}[2021/06/01]
-\ProvidesPackage{cjkutf8-ko}[2021/07/26 v2.2 Hangul typesetting on CJKutf8]
-
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname eTeXversion\endcsname\relax
- \PackageError{cjkutf8-ko}
- {e-TeX engine is required}
- {Please update your TeX system to the latest distribution}
-\endinput\fi
+\NeedsTeXFormat{LaTeX2e}[2022/06/01]
+\ProvidesPackage{cjkutf8-ko}[2022/06/12 v2.3 Hangul typesetting on CJKutf8]
\newif\if@hangul
\newif\if@hanja
\let\use@josa\empty
-\DeclareOption{hangul}{\@hangultrue}
-\DeclareOption{hanja}{\@hanjatrue\@hangultrue}
-\DeclareOption{usecjkt1font}{\let\usecjk@@font\empty\@hangultrue}
-\DeclareOption{usedotemph}{\let\usedot@mph\empty}
-\DeclareOption{nojosa}{\let\use@josa\undefined}
-\DeclareOption{truetype}{\let\use@cjk@cmap@\relax}
-\DeclareOption*{\expandafter\CJKKO@userfont@option\CurrentOption=\end}
-\def\CJKKO@userfont@option#1=#2\end{%
- \ifx\empty#2\empty
- \PassOptionsToPackage{#1}{CJKutf8}
- \else
- \def\reserved@a{mj}\def\reserved@b{gt}\def\reserved@c{#1}
- \ifx\reserved@a\reserved@c
- \edef\CJKKO@mjfont{\CJKKO@removetrailingEQ#2}
- \IfFileExists{c70\CJKKO@mjfont.fd}{}{%
- \PackageError{cjkutf8-ko}{`c70\CJKKO@mjfont.fd' does not exist}{}
- \let\CJKKO@mjfont\undefined
- }
- \else
- \ifx\reserved@b\reserved@c
- \edef\CJKKO@gtfont{\CJKKO@removetrailingEQ#2}
- \IfFileExists{c70\CJKKO@gtfont.fd}{}{%
- \PackageError{cjkutf8-ko}{`c70\CJKKO@gtfont.fd' does not exist}{}
- \let\CJKKO@gtfont\undefined
- }
- \else
- \PackageError{cjkutf8-ko}
- {Unknown hangul font type: #1}
- {Allowed font types are `mj' and `gt'}
- \fi
- \fi
- \fi
+\DeclareKeys
+{
+ hangul.code = \@hangultrue ,
+ hangul.usage = load ,
+ hanja.code = \@hanjatrue\@hangultrue ,
+ hanja.usage = load ,
+ usecjkt1font.code = \let\usecjk@@font\empty\@hangultrue ,
+ usecjkt1font.usage = load ,
+ usedotemph.code = \let\usedot@mph\empty ,
+ usedotemph.usage = load ,
+ nojosa.code = \let\use@josa\undefined ,
+ nojosa.usage = preamble ,
+ truetype.code = \let\use@cjk@cmap@\relax ,
+ truetype.usage = load ,
+ mj.code = \def\CJKKO@mjfont{#1} ,
+ mj.usage = load ,
+ gt.code = \def\CJKKO@gtfont{#1} ,
+ gt.usage = load
}
-\def\CJKKO@removetrailingEQ#1={#1}
-\ProcessOptions\relax
+\DeclareUnknownKeyHandler{\PassOptionsToPackage{#1}{CJKutf8}}
+\ProcessKeyOptions
+
+\ifdefined\CJKKO@mjfont
+ \IfFileExists{c70\CJKKO@mjfont.fd}{}{%
+ \PackageError{cjkutf8-ko}{`c70\CJKKO@mjfont.fd' does not exist}{}
+ \let\CJKKO@mjfont\undefined }
+\fi
+\ifdefined\CJKKO@gtfont
+ \IfFileExists{c70\CJKKO@gtfont.fd}{}{%
+ \PackageError{cjkutf8-ko}{`c70\CJKKO@gtfont.fd' does not exist}{}
+ \let\CJKKO@gtfont\undefined }
+\fi
\ifx\CJKKO@mjfont\undefined
\IfFileExists{c70nanummj.fd}{\def\CJKKO@mjfont{nanummj}}{
@@ -432,56 +422,6 @@
\fi % added
\fi}
-%%%%%%%%%%%%%%%%%%%%%%%%%
-% protect against lowercase
-\count@="80 \loop
- \lccode\count@=\count@
- \ifnum\count@<"DF \advance\count@\@ne \repeat
-% redefine MakeUppercase/MakeLowercase
-\DeclareRobustCommand{\MakeUppercase}[1]{{%
- % begin patch
- \count@"A0 \loop
- \ifnum\count@="B7 \else
- \begingroup
- \@tempcnta\count@ \advance\@tempcnta-"20
- \lccode`\~\count@ \lccode`\!\@tempcnta \lccode"C3="C3\relax
- \lowercase{\endgroup
- \expandafter\def\csname u8:\string^^c3\string~\endcsname{^^c3!}}%
- \fi
- \ifnum\count@<"BE \advance\count@\@ne \repeat
- % end patch
- \def\i{I}\def\j{J}%
- \def\reserved@a##1##2{\let##1##2\reserved@a}%
- \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \let\UTF@two@octets@noexpand\@empty
- \let\UTF@three@octets@noexpand\@empty
- \let\UTF@four@octets@noexpand\@empty
- \protected@edef\reserved@a{\uppercase{#1}}%
- \reserved@a
-}}
-\DeclareRobustCommand{\MakeLowercase}[1]{{%
- % begin patch
- \count@"80 \loop
- \ifnum\count@="97 \else
- \begingroup
- \@tempcnta\count@ \advance\@tempcnta "20
- \lccode`\~\count@ \lccode`\!\@tempcnta \lccode"C3="C3\relax
- \lowercase{\endgroup
- \expandafter\def\csname u8:\string^^c3\string~\endcsname{^^c3!}}%
- \fi
- \ifnum\count@<"9E \advance\count@\@ne \repeat
- % end patch
- \def\reserved@a##1##2{\let##2##1\reserved@a}%
- \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \let\UTF@two@octets@noexpand\@empty
- \let\UTF@three@octets@noexpand\@empty
- \let\UTF@four@octets@noexpand\@empty
- \protected@edef\reserved@a{\lowercase{#1}}%
- \reserved@a
-}}
-\protected@edef\MakeUppercase#1{\MakeUppercase{#1}}
-\protected@edef\MakeLowercase#1{\MakeLowercase{#1}}
-
%%% for fancyvrb/verbments package
\AddToHook{env/VerbatimOut/begin}{\CJK@makeInactive}
diff --git a/language/korean/cjk-ko/cjkutf8-nanummjhanja.sty b/language/korean/cjk-ko/cjkutf8-nanummjhanja.sty
index 68b763eea5..e9a86f0d27 100644
--- a/language/korean/cjk-ko/cjkutf8-nanummjhanja.sty
+++ b/language/korean/cjk-ko/cjkutf8-nanummjhanja.sty
@@ -1,6 +1,6 @@
% cjkutf8-nanummjhanja.sty
%
-% Copyright (c) 2016-2021 Dohyun Kim <nomos at ktug org>
+% Copyright (c) 2016-2022 Dohyun Kim <nomos at ktug org>
%
% This program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
% MA 02110-1301 USA
\ProvidesPackage{cjkutf8-nanummjhanja}
- [2021/07/26 v2.2 UHC hanja for Nanum Myeongjo]
+ [2022/06/12 v2.3 UHC hanja for Nanum Myeongjo]
\def\CJKKO@mjdefault{nanummj}
\def\CJKKO@mjhanjafamily{\def\CJK@family{uhcmj}}
diff --git a/macros/latex/contrib/xcolor/ChangeLog b/macros/latex/contrib/xcolor/ChangeLog
index 1e613111c2..48ac99bfbd 100644
--- a/macros/latex/contrib/xcolor/ChangeLog
+++ b/macros/latex/contrib/xcolor/ChangeLog
@@ -3,6 +3,14 @@ https://github.com/latex3/xcolor/issues
History
=======
+2022/06/12 v2.14
+* New features:
+ - Load if it exists the code from LaTeX to define \mathcolor.
+* Bugfixes (LaTeX Team)
+ - Modify \XC@info to avoid spurious error from \colorlet{foo}{} issue #12
+ - make \normalcolor, \colorbox, \fcolorbox \textcolor, \pagecolor,
+ \nopagecolor, \definecolor, \DefineNamedColor protected as in color.sty issue #17
+
2021/10/31 v2.13
* Bugfixes (LaTeX Team)
- use \@backslashchar color rather than \string\color to
@@ -11,7 +19,7 @@ History
- Declare dvisvgm option to match graphics and color packages.
Make dvipdfm an alias for dvipdfmx
- Modify \XC@info to avoid spurious text from \colorlet{foo}{.!50}
-
+
2016/05/11 v2.12
* New features:
- \nopagecolor command as introduced in `color' v1.1a
diff --git a/macros/latex/contrib/xcolor/README b/macros/latex/contrib/xcolor/README
deleted file mode 100644
index fa4b7dc333..0000000000
--- a/macros/latex/contrib/xcolor/README
+++ /dev/null
@@ -1,56 +0,0 @@
-Package `xcolor' by Dr. Uwe Kern
-Maintained by the LaTeX Project https://github.com/latex3/xcolor/issues
-
-
-`xcolor' provides easy driver-independent access to several kinds of
-colors, tints, shades, tones, and mixes of arbitrary colors by means of
-color expressions like \color{red!50!green!20!blue}.
-It allows to select a document-wide target color model and offers tools
-for automatic color schemes, conversion between nine color models,
-alternating table row colors, color blending and masking, color
-separation, and color wheel calculations.
-
-Installation instructions
-=========================
-
-Extract all package files:
- `latex xcolor.ins'
-
-Put the generated files to their respective locations
-within the TeX installation:
- *.sty -> /tex/latex/xcolor/
- *.def -> /tex/latex/xcolor/
- *.pro -> /dvips/xcolor/
-
-Create the documentation:
- `latex xcolor.dtx'
- `latex xcolor.dtx'
- `makeindex -s gind.ist xcolor.idx'
- `latex xcolor.dtx'
- `latex xcolor.dtx'
-
-Run the test files (N=1,2,...):
- `latex xcolorN.tex'
- `latex xcolorN.tex'
-
-Notes
-=====
-
-- `xcolor1.tex' should run with both LaTeX and pdfLaTeX, it yields a
- 50-page document with several systematic color conversion examples
-- `xcolor2.tex' is a 3-page `pstricks' example document that won't run
- with pdfLaTeX
-- `xcolor3.tex' is a 2-page example for demonstrating several display
- and logging facilities
-- `xcolor4.tex' is a 1-page driver test file;
- uncomment the relevant code line in the header and run it with the
- appropriate program, e.g., `latex xcolor4' or any other processor;
- apply any desired post-processing like dvips, dvipdfm, etc.
-- If the file `xcolor.ins' is missing, run `latex xcolor.dtx' once
- and quit the LaTeX compiler as soon as the first error message
- appears.
-
-History
-=======
-
-See file `ChangeLog'.
diff --git a/macros/latex/contrib/xcolor/README.md b/macros/latex/contrib/xcolor/README.md
new file mode 100644
index 0000000000..dd8e528ccd
--- /dev/null
+++ b/macros/latex/contrib/xcolor/README.md
@@ -0,0 +1,74 @@
+## Package `xcolor` by Dr. Uwe Kern
+
+Version 2022-06-12 v2.14
+
+Maintained by the LaTeX Project https://github.com/latex3/xcolor/issues
+
+`xcolor` provides easy driver-independent access to several kinds of
+colors, tints, shades, tones, and mixes of arbitrary colors by means of
+color expressions like \color{red!50!green!20!blue}.
+It allows to select a document-wide target color model and offers tools
+for automatic color schemes, conversion between nine color models,
+alternating table row colors, color blending and masking, color
+separation, and color wheel calculations.
+
+## Copyright (C)
+- 2003-2021 Dr. Uwe Kern
+- 2021-2022 The LaTeX Project
+
+## License
+LaTeX Project Public License, version 1.3c or later.
+
+## Installation instructions
+
+* Extract all package files:
+
+ ~~~~
+ latex xcolor.ins
+ ~~~~
+
+* Put the generated files to their respective locations
+within the TeX installation:
+
+ ~~~~
+ *.sty -> /tex/latex/xcolor/
+ *.def -> /tex/latex/xcolor/
+ *.pro -> /dvips/xcolor/
+ ~~~~
+
+* Create the documentation:
+
+ ~~~~
+ latex xcolor.dtx
+ latex xcolor.dtx
+ makeindex -s gind.ist xcolor.idx
+ latex xcolor.dtx
+ latex xcolor.dtx
+ ~~~~
+
+* Run the test files (N=1,2,...):
+
+ ~~~~
+ latex xcolorN.tex
+ latex xcolorN.tex
+ ~~~~
+
+## Notes
+
+- `xcolor1.tex` should run with both LaTeX and pdfLaTeX, it yields a
+ 50-page document with several systematic color conversion examples
+- `xcolor2.tex` is a 3-page `pstricks` example document that won't run
+ with pdfLaTeX
+- `xcolor3.tex` is a 2-page example for demonstrating several display
+ and logging facilities
+- `xcolor4.tex` is a 1-page driver test file;
+ uncomment the relevant code line in the header and run it with the
+ appropriate program, e.g., `latex xcolor4` or any other processor;
+ apply any desired post-processing like dvips, dvipdfm, etc.
+- If the file `xcolor.ins` is missing, run `latex xcolor.dtx` once
+ and quit the LaTeX compiler as soon as the first error message
+ appears.
+
+## History
+
+See file `ChangeLog`.
diff --git a/macros/latex/contrib/xcolor/xcolor.dtx b/macros/latex/contrib/xcolor/xcolor.dtx
index 8162c8f863..e6b5129012 100644
--- a/macros/latex/contrib/xcolor/xcolor.dtx
+++ b/macros/latex/contrib/xcolor/xcolor.dtx
@@ -2,7 +2,7 @@
%%
%% ----------------------------------------------------------------
%% Copyright (C) 2003-2021 by Dr. Uwe Kern <xcolor at ukern dot de>
-%% 2021 LaTeX Project https://github.com/latex3/xcolor/issues
+%% 2021-2022 LaTeX Project https://github.com/latex3/xcolor/issues
%% ----------------------------------------------------------------
%%
%<*package>
@@ -18,8 +18,8 @@
%%
%</package>
%<*extract|driver|test1|test2|test3|test4>
-\def\XCfileversion{v2.13}%
-\def\XCfiledate{2021/10/31}%
+\def\XCfileversion{v2.14}%
+\def\XCfiledate{2022/06/12}%
%</extract|driver|test1|test2|test3|test4>
%
% This file may be distributed and/or modified under the
@@ -34,7 +34,6 @@
%
% \fi
%
-% \CheckSum{4864}
%
% \DoNotIndex{\def,\gdef,\edef,\xdef,\long,\let}
% \DoNotIndex{\ifnum,\ifdim,\iftrue,\iffalse,\ifx,\ifcase,\else,\or,\fi}
@@ -100,15 +99,18 @@
\listfiles
\ProvidesFile{xcolor.dtx}[\XCfiledate\space\XCfileversion\space
`xcolor' source and documentation (UK)]
+\PassOptionsToPackage
+ {
+ hyperindex=false,bookmarks,bookmarksopen,bookmarksopenlevel=1,%
+ pdftitle={xcolor \XCfileversion{} (\XCfiledate)},
+ pdfauthor={Dr. Uwe Kern},%
+ pdfsubject={Color extensions for LaTeX and pdfLaTeX},%
+ pdfkeywords={xcolor,color,colour,model,tint,tone,shade,harmony,spot,latex,pdftex,dvips,%
+ conversion,blend,mix,mask,separation,rgb,cmy,cmyk,hsb,gray,html,wave,thsb,wheel}
+ }{hyperref}
\documentclass{ltxdoc}
\usepackage[table,showerrors,dvipsnames,hyperref]{xcolor}[2005/06/06]
\usepackage{chngpage,varioref,tabularx,amsmath,amsthm}
-\usepackage
- [\GinDriver,hyperindex=false,bookmarks,bookmarksopen,bookmarksopenlevel=1,%
- pdftitle={xcolor \XCfileversion{} (\XCfiledate)},pdfauthor={Dr. Uwe Kern},%
- pdfsubject={Color extensions for LaTeX and pdfLaTeX},%
- pdfkeywords={xcolor,color,colour,model,tint,tone,shade,harmony,spot,latex,pdftex,dvips,%
- conversion,blend,mix,mask,separation,rgb,cmy,cmyk,hsb,gray,html,wave,thsb,wheel}]{hyperref}
\OnlyDescription
\EnableCrossrefs
\CodelineIndex
@@ -1137,6 +1139,12 @@
% This is still experimental code that may confuse \File{.dvi} viewers.
% The opposite option \Option{noxcdraw} forces usage of the generic (driver-independent) code.
%
+% \subsubsection{Colors in math}
+%
+% While it is possible to color parts of a formula using |\color| commands the approach is fairly cumbersome.
+% Therefore the command \cs{mathcolor} has been added to the \Package{color} and \Package{xcolor} package,
+% which has the same syntax as \cs{textcolor}. The full documentation and examples of its use is in \texttt{mathcolor.pdf}
+% in the \LaTeX{} documentation.
%
% \subsubsection{Using the current color}
%
@@ -4850,7 +4858,7 @@
% \end{itemize}
% See table \vref{tab.internal} for some examples.
% \begin{macrocode}
-\def\definecolor{\@testopt{\XC@definecolor}{}}
+\protected\def\definecolor{\@testopt{\XC@definecolor}{}}
\def\XC@definecolor[#1]#2%
{\@testopt{\XC@definec@lor[#1]{#2}}\colornameprefix}
% \end{macrocode}
@@ -5067,7 +5075,7 @@
% \begin{macro}{\DefineNamedColor}
% \marg{type}\marg{name}\marg{model-list}\marg{spec-list}
% \begin{macrocode}
-\def\DefineNamedColor#1%
+\protected\def\DefineNamedColor#1%
{\@nameuse{XC@\ifdefinecolors defin\else prepar\fi ecolor}[#1]}
% \end{macrocode}
% \end{macro}
@@ -5432,7 +5440,7 @@
% The naming is by analogy with |\textrm| (as opposed to |\rm| and |\rmfamily|) although it is slightly a misnomer as the command also works in math-mode.
% Additionally, it calls |\leavevmode| to ensure the start of horizontal mode.
% \begin{macrocode}
-\def\textcolor#1#{\@textcolor{#1}}
+\protected\def\textcolor#1#{\@textcolor{#1}}
\def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}}
% \end{macrocode}
% \end{macro}
@@ -5443,7 +5451,7 @@
% Specifies the background color for the current, and all following, pages.
% It is a global declaration which does not respect \TeX\ groups.
% \begin{macrocode}
-\def\pagecolor
+\protected\def\pagecolor
{\begingroup
\let\ignorespaces\endgroup \let\set@color\set@page@color
\color}
@@ -5454,13 +5462,18 @@
% Removes any currently specified page color returning to the default transparent background.
% It is not yet supported by all driver options and so generates a warning if there is no definition in the driver file.
% \begin{macrocode}
-\def\nopagecolor
+\protected\def\nopagecolor
{\@ifundefined{no@page@color}%
{\PackageInfo{xcolor}{\@backslashchar nopagecolor\space is not supported}}%
{\no@page@color}}
% \end{macrocode}
% \end{macro}
%
+% \subsubsection{mathcolor}
+% We load the new mathcolor support from the kernel if it exists. The documentation
+% is in \texttt{mathcolor.pdf}
+%
+\InputIfFileExists{mathcolor.ltx}{}{}
%
% \subsubsection{Colored boxes}
%
@@ -5469,7 +5482,7 @@
% \oarg{model}\marg{spec}\marg{text}\\
% Takes the same argument forms as |\textcolor|, but the color specifies the \emph{background} color of the box.
% \begin{macrocode}
-\def\colorbox#1#{\protect\color@box{#1}}
+\protected\def\colorbox#1#{\color@box{#1}}
\def\color@box#1#2{\color@b@x\relax{\color#1{#2}}}
% \end{macrocode}
% \end{macro}
@@ -5482,7 +5495,7 @@
% Puts a frame of the first color around a box with a background specified by the second color.
% If only the first optional argument is given, it specifies the color model for both colors.
% \begin{macrocode}
-\def\fcolorbox#1#{\color@fbox{#1}}
+\protected\def\fcolorbox#1#{\color@fbox{#1}}
\def\color@fbox#1#2#3#{\protect\color@fb@x{#1}{#2}{#3}}
\def\color@fb@x#1#2#3#4%
{\color@b@x{\fboxsep\z@\color#1{#2}\XC@fbox}%
@@ -6133,7 +6146,7 @@
\ifin@\def#2{4}\else\expandafter\in@\expandafter:\expandafter{#2}%
\ifin@\def#2{3}\else\expandafter\in@\expandafter!\expandafter{#2}%
\ifin@\def#2{2}\else % now there's no >,:,!
- \if-\expandafter\@car#2\@nil\def#2{2}\else % catches -red
+ \if-\expandafter\@car#2\relax\@nil\def#2{2}\else % catches -red
\edef#2{\noexpand\in@{/./}{/#2/}}#2%
\edef#2{\ifin@0\else1\fi}\fi\fi\fi\fi}
% \end{macrocode}
@@ -6975,7 +6988,7 @@
% |\normalcolor| is defined (to |\relax|) in the \LaTeX\ kernel, so it is safe to use this in macros that may possibly be used in conjunction with color.
% It will have no effect until the \XCP{} is also loaded.
% \begin{macrocode}
-\def\normalcolor{\let\current@color\default@color\set@color}
+\protected\def\normalcolor{\let\current@color\default@color\set@color}
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/xcolor/xcolor.pdf b/macros/latex/contrib/xcolor/xcolor.pdf
index ac7a3d3ef8..be04b36451 100644
--- a/macros/latex/contrib/xcolor/xcolor.pdf
+++ b/macros/latex/contrib/xcolor/xcolor.pdf
Binary files differ
diff --git a/macros/latex/contrib/xcolor/xcolor2.pdf b/macros/latex/contrib/xcolor/xcolor2.pdf
index 2391e374e8..35c2946529 100644
--- a/macros/latex/contrib/xcolor/xcolor2.pdf
+++ b/macros/latex/contrib/xcolor/xcolor2.pdf
Binary files differ
diff --git a/macros/latex/required/latexbug/README.md b/macros/latex/required/latexbug/README.md
index 4a0865f299..5d85ee7688 100644
--- a/macros/latex/required/latexbug/README.md
+++ b/macros/latex/required/latexbug/README.md
@@ -1,2 +1,8 @@
# latexbug
-latexbug package required to sent bug reports to the LaTeX bug database
+
+The latexbug package is required when you want to send bug reports to the LaTeX bug database.
+
+See https://www.latex-project.org/bugs/ for information how to best produce a bug report.
+
+- Author: LaTeX Project Team
+- License: LPPL 1.3c
diff --git a/macros/latex/required/latexbug/changes.txt b/macros/latex/required/latexbug/changes.txt
index 7374beabe6..f831f9f9f8 100644
--- a/macros/latex/required/latexbug/changes.txt
+++ b/macros/latex/required/latexbug/changes.txt
@@ -1,6 +1,16 @@
+2022-06-10 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * latexbug.dtx:
+ Don't warn for hypdoc, used by doc V2 (gh/5)
+
+ Added ltdoc.cfg
+
+ Added all kinds of babel locale files so that they do not show
+ up as external (might be a never ending story)
+
2021-09-25 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
- * latexbug.dtx: don't warn for expl3.ltx (part of rollback)
+ * latexbug.dtx: don't warn for expl3.ltx (part of rollback)
2021-08-26 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
diff --git a/macros/latex/required/latexbug/latexbug.dtx b/macros/latex/required/latexbug/latexbug.dtx
index 6f23da96ae..aabe09838b 100644
--- a/macros/latex/required/latexbug/latexbug.dtx
+++ b/macros/latex/required/latexbug/latexbug.dtx
@@ -2,7 +2,7 @@
%
% Package latexbug for use with LaTeX2e
%
-% Copyright 2016-2021
+% Copyright 2016-2022
%
% The LaTeX3 Project and any individual authors listed elsewhere
% in this file.
@@ -210,10 +210,12 @@
% The database, if you want to call that, inside \texttt{latexbug} is
% simply a comma separated key value list consisting of file names
% \texttt{=} maintainer info. Most of the time the maintainer info is
-% \texttt{us} or \texttt{us*} (meaning we maintain it, so the file is
-% fine) or \texttt{ignore} (meaning we do not maintain it, but it is a
-% file that is likely to appear for one or the other reason and we
-% should accept such a bug report nonetheless).
+% \texttt{us} or \texttt{us*} (the star means we maintain it, but in some
+% repository other that \texttt{latex2e} --- either \texttt{latex3} (default) or some
+% other we point to, so the file is fine) or \texttt{ignore} (meaning
+% we do not maintain it, but it is a file that is likely to appear for
+% one or the other reason and we should accept such a bug report
+% nonetheless without giving any warning).
%
% Any file loaded in the bug report not listed will show up in the
% error listing flagged as ``third-party'' code that should be removed
@@ -265,7 +267,7 @@
% \begin{macrocode}
%<*package>
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{latexbug}[2021/09/25 v1.0l Bug-classification]
+\ProvidesPackage{latexbug}[2022/06/10 v1.0m Bug-classification]
% \end{macrocode}
%
% \begin{macro}{\latexbug@empty}
@@ -413,6 +415,7 @@ ltluatex.tex = us ,
ltnews.cls = us ,
ltxcheck.tex = us ,
ltxdoc.cls = us ,
+ltxdoc.cfg = us ,
ltxguide.cls = us ,
ly1enc.dfu = us ,
macce.def = us ,
@@ -555,6 +558,760 @@ verbtest.tex = us ,
x.tex = us ,
xr.sty = us ,
xspace.sty = us ,
+%--------------------------------- babel (locale files)
+babel-slovenian.tex = ignore ,
+babel-slovene.tex = ignore ,
+babel-slovak.tex = ignore ,
+babel-urdu.tex = ignore ,
+babel-northernkurdish.tex = ignore ,
+babel-kurmanji.tex = ignore ,
+babel-northernkurdish-arabic.tex = ignore ,
+babel-northernkurdish-arab.tex = ignore ,
+babel-northernsami.tex = ignore ,
+babel-samin.tex = ignore ,
+babel-soga.tex = ignore ,
+babel-swahili.tex = ignore ,
+babel-cherokee.tex = ignore ,
+babel-koyrachiini.tex = ignore ,
+babel-kabyle.tex = ignore ,
+babel-uyghur.tex = ignore ,
+babel-kako.tex = ignore ,
+babel-uzbek.tex = ignore ,
+babel-uzbek-latn.tex = ignore ,
+babel-uzbek-arabic.tex = ignore ,
+babel-uzbek-cyrillic.tex = ignore ,
+babel-uzbek-latin.tex = ignore ,
+babel-uzbek-arab.tex = ignore ,
+babel-uzbek-cyrl.tex = ignore ,
+babel-polish.tex = ignore ,
+babel-rombo.tex = ignore ,
+babel-vietnam.tex = ignore ,
+babel-vietnamese.tex = ignore ,
+babel-masai.tex = ignore ,
+babel-albanian.tex = ignore ,
+babel-kamba.tex = ignore ,
+babel-swedish.tex = ignore ,
+babel-irish.tex = ignore ,
+babel-hebrew.tex = ignore ,
+babel-inarisami.tex = ignore ,
+babel-malay.tex = ignore ,
+babel-malay-singapore.tex = ignore ,
+babel-malay-sg.tex = ignore ,
+babel-malay-brunei.tex = ignore ,
+babel-malay-bn.tex = ignore ,
+babel-mazanderani.tex = ignore ,
+babel-khmer.tex = ignore ,
+babel-maltese.tex = ignore ,
+babel-tasawaq.tex = ignore ,
+babel-bemba.tex = ignore ,
+babel-armenian.tex = ignore ,
+babel-amharic.tex = ignore ,
+babel-zarma.tex = ignore ,
+babel-nynorsk.tex = ignore ,
+babel-norwegiannynorsk.tex = ignore ,
+babel-belarusian.tex = ignore ,
+babel-danish.tex = ignore ,
+babel-kalaallisut.tex = ignore ,
+babel-shambala.tex = ignore ,
+babel-marathi.tex = ignore ,
+babel-kazakh.tex = ignore ,
+babel-norsk.tex = ignore ,
+babel-norwegian.tex = ignore ,
+babel-akan.tex = ignore ,
+babel-kyrgyz.tex = ignore ,
+babel-gujarati.tex = ignore ,
+babel-samburu.tex = ignore ,
+babel-dzongkha.tex = ignore ,
+babel-malagasy.tex = ignore ,
+babel-mongolian.tex = ignore ,
+babel-cornish.tex = ignore ,
+babel-walser.tex = ignore ,
+babel-yangben.tex = ignore ,
+babel-sangu.tex = ignore ,
+babel-bambara.tex = ignore ,
+babel-centralatlastamazight.tex = ignore ,
+babel-ancientgreek.tex = ignore ,
+babel-machame.tex = ignore ,
+babel-sichuanyi.tex = ignore ,
+babel-ewe.tex = ignore ,
+babel-hawaiian.tex = ignore ,
+babel-japanese.tex = ignore ,
+babel-churchslavonic.tex = ignore ,
+babel-churchslavic.tex = ignore ,
+babel-churchslavic-cyrs.tex = ignore ,
+babel-churchslavic-glagolitic.tex = ignore ,
+babel-churchslavic-glag.tex = ignore ,
+babel-churchslavic-oldcyrillic.tex = ignore ,
+babel-polytonicgreek.tex = ignore ,
+babel-greek.tex = ignore ,
+babel-monotonicgreek.tex = ignore ,
+babel-igbo.tex = ignore ,
+babel-latvian.tex = ignore ,
+babel-occitan.tex = ignore ,
+babel-westernfrisian.tex = ignore ,
+babel-luxembourgish.tex = ignore ,
+babel-italian.tex = ignore ,
+babel-oromo.tex = ignore ,
+babel-catalan.tex = ignore ,
+babel-icelandic.tex = ignore ,
+babel-czech.tex = ignore ,
+babel-interlingua.tex = ignore ,
+babel-telugu.tex = ignore ,
+babel-friulian.tex = ignore ,
+babel-vai-latin.tex = ignore ,
+babel-vai-vaii.tex = ignore ,
+babel-vai.tex = ignore ,
+babel-vai-latn.tex = ignore ,
+babel-vai-vai.tex = ignore ,
+babel-russian.tex = ignore ,
+babel-turkmen.tex = ignore ,
+babel-jolafonyi.tex = ignore ,
+babel-rundi.tex = ignore ,
+babel-konkani.tex = ignore ,
+babel-piedmontese.tex = ignore ,
+babel-standardmoroccantamazight.tex = ignore ,
+babel-quechua.tex = ignore ,
+babel-meru.tex = ignore ,
+babel-nyankole.tex = ignore ,
+babel-romanian-md.tex = ignore ,
+babel-romanian-moldova.tex = ignore ,
+babel-romanian.tex = ignore ,
+babel-moldavian.tex = ignore ,
+babel-luo.tex = ignore ,
+babel-usorbian.tex = ignore ,
+babel-uppersorbian.tex = ignore ,
+babel-yoruba.tex = ignore ,
+babel-syriac.tex = ignore ,
+babel-makhuwameetto.tex = ignore ,
+babel-northernluri.tex = ignore ,
+babel-aghem.tex = ignore ,
+babel-meta.tex = ignore ,
+babel-zulu.tex = ignore ,
+babel-centralkurdish-latin.tex = ignore ,
+babel-centralkurdish-latn.tex = ignore ,
+babel-sorani.tex = ignore ,
+babel-centralkurdish.tex = ignore ,
+babel-cantonese.tex = ignore ,
+babel-makonde.tex = ignore ,
+babel-somali.tex = ignore ,
+babel-sanskrit.tex = ignore ,
+babel-sanskrit-telu.tex = ignore ,
+babel-sanskrit-malayalam.tex = ignore ,
+babel-sanskrit-devanagari.tex = ignore ,
+babel-sanskrit-bengali.tex = ignore ,
+babel-sanskrit-gujr.tex = ignore ,
+babel-sanskrit-gujarati.tex = ignore ,
+babel-sanskrit-deva.tex = ignore ,
+babel-sanskrit-telugu.tex = ignore ,
+babel-sanskrit-knda.tex = ignore ,
+babel-sanskrit-beng.tex = ignore ,
+babel-sanskrit-kannada.tex = ignore ,
+babel-sanskrit-mlym.tex = ignore ,
+babel-chiga.tex = ignore ,
+babel-teso.tex = ignore ,
+babel-yiddish.tex = ignore ,
+babel-portuguese.tex = ignore ,
+babel-brazilian.tex = ignore ,
+babel-portuguese-portugal.tex = ignore ,
+babel-portuguese-br.tex = ignore ,
+babel-portuguese-brazil.tex = ignore ,
+babel-portuguese-pt.tex = ignore ,
+babel-pashto.tex = ignore ,
+babel-embu.tex = ignore ,
+babel-chinese-hans-mo.tex = ignore ,
+babel-chinese-hant-hk.tex = ignore ,
+babel-chinese-simplified.tex = ignore ,
+babel-chinese-hans-hk.tex = ignore ,
+babel-chinese-hant.tex = ignore ,
+babel-chinese-simplified-singapore.tex = ignore ,
+babel-chinese-simplified-hongkongsarchina.tex = ignore ,
+babel-chinese-hans-sg.tex = ignore ,
+babel-chinese-hans.tex = ignore ,
+babel-chinese-traditional-macausarchina.tex = ignore ,
+babel-chinese.tex = ignore ,
+babel-chinese-hant-mo.tex = ignore ,
+babel-chinese-traditional.tex = ignore ,
+babel-chinese-simplified-macausarchina.tex = ignore ,
+babel-chinese-traditional-hongkongsarchina.tex = ignore ,
+babel-ukrainian.tex = ignore ,
+babel-serbian-latn-me.tex = ignore ,
+babel-serbian-latin-kosovo.tex = ignore ,
+babel-serbian-latn.tex = ignore ,
+babel-serbian-cyrl-me.tex = ignore ,
+babel-serbian-cyrillic-montenegro.tex = ignore ,
+babel-serbian-cyrillic.tex = ignore ,
+babel-serbian-cyrl-ba.tex = ignore ,
+babel-serbian-cyrl.tex = ignore ,
+babel-serbian.tex = ignore ,
+babel-serbian-latin-bosniaherzegovina.tex = ignore ,
+babel-serbian-latin.tex = ignore ,
+babel-serbian-cyrl-xk.tex = ignore ,
+babel-serbian-latn-ba.tex = ignore ,
+babel-serbian-latin-montenegro.tex = ignore ,
+babel-serbian-latn-xk.tex = ignore ,
+babel-serbian-cyrillic-kosovo.tex = ignore ,
+babel-serbian-cyrillic-bosniaherzegovina.tex = ignore ,
+babel-bodo.tex = ignore ,
+babel-sango.tex = ignore ,
+babel-punjabi-gurmukhi.tex = ignore ,
+babel-punjabi-arabic.tex = ignore ,
+babel-punjabi-guru.tex = ignore ,
+babel-punjabi.tex = ignore ,
+babel-punjabi-arab.tex = ignore ,
+babel-shona.tex = ignore ,
+babel-sinhala.tex = ignore ,
+babel-malayalam.tex = ignore ,
+babel-tibetan.tex = ignore ,
+babel-macedonian.tex = ignore ,
+babel-northndebele.tex = ignore ,
+babel-tachelhit-tifinagh.tex = ignore ,
+babel-tachelhit.tex = ignore ,
+babel-tachelhit-tfng.tex = ignore ,
+babel-tachelhit-latn.tex = ignore ,
+babel-tachelhit-latin.tex = ignore ,
+babel-hausa.tex = ignore ,
+babel-hausa-niger.tex = ignore ,
+babel-hausa-gh.tex = ignore ,
+babel-hausa-ghana.tex = ignore ,
+babel-hausa-ne.tex = ignore ,
+babel-kannada.tex = ignore ,
+babel-bosnian.tex = ignore ,
+babel-bosnian-cyrillic.tex = ignore ,
+babel-bosnian-cyrl.tex = ignore ,
+babel-bosnian-latn.tex = ignore ,
+babel-bosnian-latin.tex = ignore ,
+babel-kikuyu.tex = ignore ,
+babel-burmese.tex = ignore ,
+babel-arabic-lb.tex = ignore ,
+babel-arabic-jordan.tex = ignore ,
+babel-arabic-palestinianterritories.tex = ignore ,
+babel-arabic-iraq.tex = ignore ,
+babel-arabic-ma.tex = ignore ,
+babel-arabic-egypt.tex = ignore ,
+babel-arabic-lebanon.tex = ignore ,
+babel-arabic-dz.tex = ignore ,
+babel-arabic-morocco.tex = ignore ,
+babel-arabic-eg.tex = ignore ,
+babel-arabic-ps.tex = ignore ,
+babel-arabic-iq.tex = ignore ,
+babel-arabic-tunisia.tex = ignore ,
+babel-arabic-jo.tex = ignore ,
+babel-arabic-algeria.tex = ignore ,
+babel-arabic-sy.tex = ignore ,
+babel-arabic-syria.tex = ignore ,
+babel-arabic-tn.tex = ignore ,
+babel-arabic.tex = ignore ,
+babel-sakha.tex = ignore ,
+babel-rwa.tex = ignore ,
+babel-galician.tex = ignore ,
+babel-manx.tex = ignore ,
+babel-croatian.tex = ignore ,
+babel-hungarian.tex = ignore ,
+babel-magyar.tex = ignore ,
+babel-dutch.tex = ignore ,
+babel-bulgarian.tex = ignore ,
+babel-kashmiri.tex = ignore ,
+babel-bengali.tex = ignore ,
+babel-nepali.tex = ignore ,
+babel-gusii.tex = ignore ,
+babel-asturian.tex = ignore ,
+babel-filipino.tex = ignore ,
+babel-afrikaans.tex = ignore ,
+babel-bena.tex = ignore ,
+babel-norwegianbokmal.tex = ignore ,
+babel-colognian.tex = ignore ,
+babel-hindi.tex = ignore ,
+babel-mundang.tex = ignore ,
+babel-georgian.tex = ignore ,
+babel-asu.tex = ignore ,
+babel-austrian.tex = ignore ,
+babel-german-switzerland.tex = ignore ,
+babel-german-austria.tex = ignore ,
+babel-german-switzerland-traditional.tex = ignore ,
+babel-german-ch.tex = ignore ,
+babel-german-at.tex = ignore ,
+babel-german-traditional.tex = ignore ,
+babel-nswissgerman.tex = ignore ,
+babel-swissgerman.tex = ignore ,
+babel-ngerman.tex = ignore ,
+babel-naustrian.tex = ignore ,
+babel-german-austria-traditional.tex = ignore ,
+babel-german.tex = ignore ,
+babel-assamese.tex = ignore ,
+babel-azerbaijani-latin.tex = ignore ,
+babel-azerbaijani-cyrl.tex = ignore ,
+babel-azerbaijani.tex = ignore ,
+babel-azerbaijani-cyrillic.tex = ignore ,
+babel-azerbaijani-latn.tex = ignore ,
+babel-bafia.tex = ignore ,
+babel-scottishgaelic.tex = ignore ,
+babel-breton.tex = ignore ,
+babel-korean-han.tex = ignore ,
+babel-korean.tex = ignore ,
+babel-korean-hani.tex = ignore ,
+babel-finnish.tex = ignore ,
+babel-ossetic.tex = ignore ,
+babel-lubakatanga.tex = ignore ,
+babel-langi.tex = ignore ,
+babel-esperanto.tex = ignore ,
+babel-basaa.tex = ignore ,
+babel-indonesian.tex = ignore ,
+babel-french-swissfrench.tex = ignore ,
+babel-french-canadianfrench.tex = ignore ,
+babel-french-be.tex = ignore ,
+babel-french-ca.tex = ignore ,
+babel-french-belgium.tex = ignore ,
+babel-french-ch.tex = ignore ,
+babel-french.tex = ignore ,
+babel-french-canada.tex = ignore ,
+babel-french-lu.tex = ignore ,
+babel-french-switzerland.tex = ignore ,
+babel-french-luxembourg.tex = ignore ,
+babel-ganda.tex = ignore ,
+babel-taita.tex = ignore ,
+babel-nama.tex = ignore ,
+babel-lingala.tex = ignore ,
+babel-spanish-mx.tex = ignore ,
+babel-spanish.tex = ignore ,
+babel-spanish-mexico.tex = ignore ,
+babel-mexican.tex = ignore ,
+babel-estonian.tex = ignore ,
+babel-vunjo.tex = ignore ,
+babel-kwasio.tex = ignore ,
+babel-koyraborosenni.tex = ignore ,
+babel-usenglish.tex = ignore ,
+babel-english-newzealand.tex = ignore ,
+babel-english.tex = ignore ,
+babel-english-ca.tex = ignore ,
+babel-australian.tex = ignore ,
+babel-english-australia.tex = ignore ,
+babel-english-canada.tex = ignore ,
+babel-british.tex = ignore ,
+babel-american.tex = ignore ,
+babel-americanenglish.tex = ignore ,
+babel-canadianenglish.tex = ignore ,
+babel-australianenglish.tex = ignore ,
+babel-english-gb.tex = ignore ,
+babel-english-unitedkingdom.tex = ignore ,
+babel-canadian.tex = ignore ,
+babel-ukenglish.tex = ignore ,
+babel-newzealand.tex = ignore ,
+babel-english-au.tex = ignore ,
+babel-english-unitedstates.tex = ignore ,
+babel-english-nz.tex = ignore ,
+babel-britishenglish.tex = ignore ,
+babel-english-us.tex = ignore ,
+babel-ngiemboon.tex = ignore ,
+babel-persian.tex = ignore ,
+babel-lithuanian.tex = ignore ,
+babel-fulah.tex = ignore ,
+babel-ngomba.tex = ignore ,
+babel-lakota.tex = ignore ,
+babel-faroese.tex = ignore ,
+babel-ewondo.tex = ignore ,
+babel-oriya.tex = ignore ,
+babel-welsh.tex = ignore ,
+babel-sena.tex = ignore ,
+babel-basque.tex = ignore ,
+babel-lao.tex = ignore ,
+babel-medievallatin.tex = ignore ,
+babel-classiclatin.tex = ignore ,
+babel-ecclesiasticlatin.tex = ignore ,
+babel-latin.tex = ignore ,
+babel-chechen.tex = ignore ,
+babel-romansh.tex = ignore ,
+babel-lsorbian.tex = ignore ,
+babel-lowersorbian.tex = ignore ,
+babel-tamil.tex = ignore ,
+babel-thai.tex = ignore ,
+babel-tongan.tex = ignore ,
+babel-kabuverdianu.tex = ignore ,
+babel-turkish.tex = ignore ,
+babel-coptic.tex = ignore ,
+babel-duala.tex = ignore ,
+babel-kinyarwanda.tex = ignore ,
+babel-morisyen.tex = ignore ,
+babel-tigrinya.tex = ignore ,
+babel-kalenjin.tex = ignore ,
+babel-luyia.tex = ignore ,
+babel-nuer.tex = ignore ,
+%-- looks like the files are sometimes loaded without extension
+babel-slovenian = ignore ,
+babel-slovene = ignore ,
+babel-slovak = ignore ,
+babel-urdu = ignore ,
+babel-northernkurdish = ignore ,
+babel-kurmanji = ignore ,
+babel-northernkurdish-arabic = ignore ,
+babel-northernkurdish-arab = ignore ,
+babel-northernsami = ignore ,
+babel-samin = ignore ,
+babel-soga = ignore ,
+babel-swahili = ignore ,
+babel-cherokee = ignore ,
+babel-koyrachiini = ignore ,
+babel-kabyle = ignore ,
+babel-uyghur = ignore ,
+babel-kako = ignore ,
+babel-uzbek = ignore ,
+babel-uzbek-latn = ignore ,
+babel-uzbek-arabic = ignore ,
+babel-uzbek-cyrillic = ignore ,
+babel-uzbek-latin = ignore ,
+babel-uzbek-arab = ignore ,
+babel-uzbek-cyrl = ignore ,
+babel-polish = ignore ,
+babel-rombo = ignore ,
+babel-vietnam = ignore ,
+babel-vietnamese = ignore ,
+babel-masai = ignore ,
+babel-albanian = ignore ,
+babel-kamba = ignore ,
+babel-swedish = ignore ,
+babel-irish = ignore ,
+babel-hebrew = ignore ,
+babel-inarisami = ignore ,
+babel-malay = ignore ,
+babel-malay-singapore = ignore ,
+babel-malay-sg = ignore ,
+babel-malay-brunei = ignore ,
+babel-malay-bn = ignore ,
+babel-mazanderani = ignore ,
+babel-khmer = ignore ,
+babel-maltese = ignore ,
+babel-tasawaq = ignore ,
+babel-bemba = ignore ,
+babel-armenian = ignore ,
+babel-amharic = ignore ,
+babel-zarma = ignore ,
+babel-nynorsk = ignore ,
+babel-norwegiannynorsk = ignore ,
+babel-belarusian = ignore ,
+babel-danish = ignore ,
+babel-kalaallisut = ignore ,
+babel-shambala = ignore ,
+babel-marathi = ignore ,
+babel-kazakh = ignore ,
+babel-norsk = ignore ,
+babel-norwegian = ignore ,
+babel-akan = ignore ,
+babel-kyrgyz = ignore ,
+babel-gujarati = ignore ,
+babel-samburu = ignore ,
+babel-dzongkha = ignore ,
+babel-malagasy = ignore ,
+babel-mongolian = ignore ,
+babel-cornish = ignore ,
+babel-walser = ignore ,
+babel-yangben = ignore ,
+babel-sangu = ignore ,
+babel-bambara = ignore ,
+babel-centralatlastamazight = ignore ,
+babel-ancientgreek = ignore ,
+babel-machame = ignore ,
+babel-sichuanyi = ignore ,
+babel-ewe = ignore ,
+babel-hawaiian = ignore ,
+babel-japanese = ignore ,
+babel-churchslavonic = ignore ,
+babel-churchslavic = ignore ,
+babel-churchslavic-cyrs = ignore ,
+babel-churchslavic-glagolitic = ignore ,
+babel-churchslavic-glag = ignore ,
+babel-churchslavic-oldcyrillic = ignore ,
+babel-polytonicgreek = ignore ,
+babel-greek = ignore ,
+babel-monotonicgreek = ignore ,
+babel-igbo = ignore ,
+babel-latvian = ignore ,
+babel-occitan = ignore ,
+babel-westernfrisian = ignore ,
+babel-luxembourgish = ignore ,
+babel-italian = ignore ,
+babel-oromo = ignore ,
+babel-catalan = ignore ,
+babel-icelandic = ignore ,
+babel-czech = ignore ,
+babel-interlingua = ignore ,
+babel-telugu = ignore ,
+babel-friulian = ignore ,
+babel-vai-latin = ignore ,
+babel-vai-vaii = ignore ,
+babel-vai = ignore ,
+babel-vai-latn = ignore ,
+babel-vai-vai = ignore ,
+babel-russian = ignore ,
+babel-turkmen = ignore ,
+babel-jolafonyi = ignore ,
+babel-rundi = ignore ,
+babel-konkani = ignore ,
+babel-piedmontese = ignore ,
+babel-standardmoroccantamazight = ignore ,
+babel-quechua = ignore ,
+babel-meru = ignore ,
+babel-nyankole = ignore ,
+babel-romanian-md = ignore ,
+babel-romanian-moldova = ignore ,
+babel-romanian = ignore ,
+babel-moldavian = ignore ,
+babel-luo = ignore ,
+babel-usorbian = ignore ,
+babel-uppersorbian = ignore ,
+babel-yoruba = ignore ,
+babel-syriac = ignore ,
+babel-makhuwameetto = ignore ,
+babel-northernluri = ignore ,
+babel-aghem = ignore ,
+babel-meta = ignore ,
+babel-zulu = ignore ,
+babel-centralkurdish-latin = ignore ,
+babel-centralkurdish-latn = ignore ,
+babel-sorani = ignore ,
+babel-centralkurdish = ignore ,
+babel-cantonese = ignore ,
+babel-makonde = ignore ,
+babel-somali = ignore ,
+babel-sanskrit = ignore ,
+babel-sanskrit-telu = ignore ,
+babel-sanskrit-malayalam = ignore ,
+babel-sanskrit-devanagari = ignore ,
+babel-sanskrit-bengali = ignore ,
+babel-sanskrit-gujr = ignore ,
+babel-sanskrit-gujarati = ignore ,
+babel-sanskrit-deva = ignore ,
+babel-sanskrit-telugu = ignore ,
+babel-sanskrit-knda = ignore ,
+babel-sanskrit-beng = ignore ,
+babel-sanskrit-kannada = ignore ,
+babel-sanskrit-mlym = ignore ,
+babel-chiga = ignore ,
+babel-teso = ignore ,
+babel-yiddish = ignore ,
+babel-portuguese = ignore ,
+babel-brazilian = ignore ,
+babel-portuguese-portugal = ignore ,
+babel-portuguese-br = ignore ,
+babel-portuguese-brazil = ignore ,
+babel-portuguese-pt = ignore ,
+babel-pashto = ignore ,
+babel-embu = ignore ,
+babel-chinese-hans-mo = ignore ,
+babel-chinese-hant-hk = ignore ,
+babel-chinese-simplified = ignore ,
+babel-chinese-hans-hk = ignore ,
+babel-chinese-hant = ignore ,
+babel-chinese-simplified-singapore = ignore ,
+babel-chinese-simplified-hongkongsarchina = ignore ,
+babel-chinese-hans-sg = ignore ,
+babel-chinese-hans = ignore ,
+babel-chinese-traditional-macausarchina = ignore ,
+babel-chinese = ignore ,
+babel-chinese-hant-mo = ignore ,
+babel-chinese-traditional = ignore ,
+babel-chinese-simplified-macausarchina = ignore ,
+babel-chinese-traditional-hongkongsarchina = ignore ,
+babel-ukrainian = ignore ,
+babel-serbian-latn-me = ignore ,
+babel-serbian-latin-kosovo = ignore ,
+babel-serbian-latn = ignore ,
+babel-serbian-cyrl-me = ignore ,
+babel-serbian-cyrillic-montenegro = ignore ,
+babel-serbian-cyrillic = ignore ,
+babel-serbian-cyrl-ba = ignore ,
+babel-serbian-cyrl = ignore ,
+babel-serbian = ignore ,
+babel-serbian-latin-bosniaherzegovina = ignore ,
+babel-serbian-latin = ignore ,
+babel-serbian-cyrl-xk = ignore ,
+babel-serbian-latn-ba = ignore ,
+babel-serbian-latin-montenegro = ignore ,
+babel-serbian-latn-xk = ignore ,
+babel-serbian-cyrillic-kosovo = ignore ,
+babel-serbian-cyrillic-bosniaherzegovina = ignore ,
+babel-bodo = ignore ,
+babel-sango = ignore ,
+babel-punjabi-gurmukhi = ignore ,
+babel-punjabi-arabic = ignore ,
+babel-punjabi-guru = ignore ,
+babel-punjabi = ignore ,
+babel-punjabi-arab = ignore ,
+babel-shona = ignore ,
+babel-sinhala = ignore ,
+babel-malayalam = ignore ,
+babel-tibetan = ignore ,
+babel-macedonian = ignore ,
+babel-northndebele = ignore ,
+babel-tachelhit-tifinagh = ignore ,
+babel-tachelhit = ignore ,
+babel-tachelhit-tfng = ignore ,
+babel-tachelhit-latn = ignore ,
+babel-tachelhit-latin = ignore ,
+babel-hausa = ignore ,
+babel-hausa-niger = ignore ,
+babel-hausa-gh = ignore ,
+babel-hausa-ghana = ignore ,
+babel-hausa-ne = ignore ,
+babel-kannada = ignore ,
+babel-bosnian = ignore ,
+babel-bosnian-cyrillic = ignore ,
+babel-bosnian-cyrl = ignore ,
+babel-bosnian-latn = ignore ,
+babel-bosnian-latin = ignore ,
+babel-kikuyu = ignore ,
+babel-burmese = ignore ,
+babel-arabic-lb = ignore ,
+babel-arabic-jordan = ignore ,
+babel-arabic-palestinianterritories = ignore ,
+babel-arabic-iraq = ignore ,
+babel-arabic-ma = ignore ,
+babel-arabic-egypt = ignore ,
+babel-arabic-lebanon = ignore ,
+babel-arabic-dz = ignore ,
+babel-arabic-morocco = ignore ,
+babel-arabic-eg = ignore ,
+babel-arabic-ps = ignore ,
+babel-arabic-iq = ignore ,
+babel-arabic-tunisia = ignore ,
+babel-arabic-jo = ignore ,
+babel-arabic-algeria = ignore ,
+babel-arabic-sy = ignore ,
+babel-arabic-syria = ignore ,
+babel-arabic-tn = ignore ,
+babel-arabic = ignore ,
+babel-sakha = ignore ,
+babel-rwa = ignore ,
+babel-galician = ignore ,
+babel-manx = ignore ,
+babel-croatian = ignore ,
+babel-hungarian = ignore ,
+babel-magyar = ignore ,
+babel-dutch = ignore ,
+babel-bulgarian = ignore ,
+babel-kashmiri = ignore ,
+babel-bengali = ignore ,
+babel-nepali = ignore ,
+babel-gusii = ignore ,
+babel-asturian = ignore ,
+babel-filipino = ignore ,
+babel-afrikaans = ignore ,
+babel-bena = ignore ,
+babel-norwegianbokmal = ignore ,
+babel-colognian = ignore ,
+babel-hindi = ignore ,
+babel-mundang = ignore ,
+babel-georgian = ignore ,
+babel-asu = ignore ,
+babel-austrian = ignore ,
+babel-german-switzerland = ignore ,
+babel-german-austria = ignore ,
+babel-german-switzerland-traditional = ignore ,
+babel-german-ch = ignore ,
+babel-german-at = ignore ,
+babel-german-traditional = ignore ,
+babel-nswissgerman = ignore ,
+babel-swissgerman = ignore ,
+babel-ngerman = ignore ,
+babel-naustrian = ignore ,
+babel-german-austria-traditional = ignore ,
+babel-german = ignore ,
+babel-assamese = ignore ,
+babel-azerbaijani-latin = ignore ,
+babel-azerbaijani-cyrl = ignore ,
+babel-azerbaijani = ignore ,
+babel-azerbaijani-cyrillic = ignore ,
+babel-azerbaijani-latn = ignore ,
+babel-bafia = ignore ,
+babel-scottishgaelic = ignore ,
+babel-breton = ignore ,
+babel-korean-han = ignore ,
+babel-korean = ignore ,
+babel-korean-hani = ignore ,
+babel-finnish = ignore ,
+babel-ossetic = ignore ,
+babel-lubakatanga = ignore ,
+babel-langi = ignore ,
+babel-esperanto = ignore ,
+babel-basaa = ignore ,
+babel-indonesian = ignore ,
+babel-french-swissfrench = ignore ,
+babel-french-canadianfrench = ignore ,
+babel-french-be = ignore ,
+babel-french-ca = ignore ,
+babel-french-belgium = ignore ,
+babel-french-ch = ignore ,
+babel-french = ignore ,
+babel-french-canada = ignore ,
+babel-french-lu = ignore ,
+babel-french-switzerland = ignore ,
+babel-french-luxembourg = ignore ,
+babel-ganda = ignore ,
+babel-taita = ignore ,
+babel-nama = ignore ,
+babel-lingala = ignore ,
+babel-spanish-mx = ignore ,
+babel-spanish = ignore ,
+babel-spanish-mexico = ignore ,
+babel-mexican = ignore ,
+babel-estonian = ignore ,
+babel-vunjo = ignore ,
+babel-kwasio = ignore ,
+babel-koyraborosenni = ignore ,
+babel-usenglish = ignore ,
+babel-english-newzealand = ignore ,
+babel-english = ignore ,
+babel-english-ca = ignore ,
+babel-australian = ignore ,
+babel-english-australia = ignore ,
+babel-english-canada = ignore ,
+babel-british = ignore ,
+babel-american = ignore ,
+babel-americanenglish = ignore ,
+babel-canadianenglish = ignore ,
+babel-australianenglish = ignore ,
+babel-english-gb = ignore ,
+babel-english-unitedkingdom = ignore ,
+babel-canadian = ignore ,
+babel-ukenglish = ignore ,
+babel-newzealand = ignore ,
+babel-english-au = ignore ,
+babel-english-unitedstates = ignore ,
+babel-english-nz = ignore ,
+babel-britishenglish = ignore ,
+babel-english-us = ignore ,
+babel-ngiemboon = ignore ,
+babel-persian = ignore ,
+babel-lithuanian = ignore ,
+babel-fulah = ignore ,
+babel-ngomba = ignore ,
+babel-lakota = ignore ,
+babel-faroese = ignore ,
+babel-ewondo = ignore ,
+babel-oriya = ignore ,
+babel-welsh = ignore ,
+babel-sena = ignore ,
+babel-basque = ignore ,
+babel-lao = ignore ,
+babel-medievallatin = ignore ,
+babel-classiclatin = ignore ,
+babel-ecclesiasticlatin = ignore ,
+babel-latin = ignore ,
+babel-chechen = ignore ,
+babel-romansh = ignore ,
+babel-lsorbian = ignore ,
+babel-lowersorbian = ignore ,
+babel-tamil = ignore ,
+babel-thai = ignore ,
+babel-tongan = ignore ,
+babel-kabuverdianu = ignore ,
+babel-turkish = ignore ,
+babel-coptic = ignore ,
+babel-duala = ignore ,
+babel-kinyarwanda = ignore ,
+babel-morisyen = ignore ,
+babel-tigrinya = ignore ,
+babel-kalenjin = ignore ,
+babel-luyia = ignore ,
+babel-nuer = ignore ,
%--------------------------------- babel (part supported by us)
UKenglish.sty = us ,
USenglish.sty = us ,
@@ -852,6 +1609,7 @@ pdfmanagement-testphase.ltx = ignore ,
hluatex.def = ignore ,
hpdftex.def = ignore ,
hxetex.def = ignore ,
+hypdoc.sty = us ,
hyperref.cfg = ignore ,
hyperref.sty = us*
\Contact https://github.com/latex3/hyperref/issues ,
diff --git a/macros/latex/required/latexbug/latexbug.pdf b/macros/latex/required/latexbug/latexbug.pdf
index 460660a9f0..01224d0b3f 100644
--- a/macros/latex/required/latexbug/latexbug.pdf
+++ b/macros/latex/required/latexbug/latexbug.pdf
Binary files differ
diff --git a/support/texlab/CHANGELOG.md b/support/texlab/CHANGELOG.md
index 7b57cddb4f..5400a1b538 100644
--- a/support/texlab/CHANGELOG.md
+++ b/support/texlab/CHANGELOG.md
@@ -5,6 +5,22 @@ 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).
+## [4.1.0] - 12.06.2022
+
+### Added
+
+- Add server commands to clean build directory ([#607](https://github.com/latex-lsp/texlab/issues/607))
+
+### Changed
+
+- Improve output when hovering over BibTeX strings
+- Improve the heuristic for finding build artifacts ([#635](https://github.com/latex-lsp/texlab/issues/635))
+
+### Fixed
+
+- Allow brackets in included file paths ([#639](https://github.com/latex-lsp/texlab/issues/639))
+- Allow commands in included file paths ([#641](https://github.com/latex-lsp/texlab/issues/641))
+
## [4.0.0] - 25.05.2022
### Added
diff --git a/support/texlab/Cargo.lock b/support/texlab/Cargo.lock
index 58549a6f3a..8b5e64f3d7 100644
--- a/support/texlab/Cargo.lock
+++ b/support/texlab/Cargo.lock
@@ -18,12 +18,30 @@ dependencies = [
]
[[package]]
+name = "ansi_term"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
name = "anyhow"
version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
[[package]]
+name = "assert_unordered"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74323b7881323eb351134e08ee5331594826789557afef8e309baf481b2264"
+dependencies = [
+ "ansi_term",
+]
+
+[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -53,6 +71,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
+name = "block-buffer"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
+dependencies = [
+ "block-padding",
+ "byte-tools",
+ "byteorder",
+ "generic-array",
+]
+
+[[package]]
+name = "block-padding"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
+dependencies = [
+ "byte-tools",
+]
+
+[[package]]
name = "bstr"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -71,6 +110,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
[[package]]
+name = "byte-tools"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
+
+[[package]]
name = "byteorder"
version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -310,6 +355,15 @@ dependencies = [
]
[[package]]
+name = "digest"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
name = "either"
version = "1.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -340,6 +394,12 @@ dependencies = [
]
[[package]]
+name = "fake-simd"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+
+[[package]]
name = "fastrand"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -365,13 +425,11 @@ checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e"
[[package]]
name = "flate2"
-version = "1.0.23"
+version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af"
+checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
dependencies = [
- "cfg-if",
"crc32fast",
- "libc",
"miniz_oxide",
]
@@ -401,6 +459,15 @@ dependencies = [
]
[[package]]
+name = "generic-array"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
+dependencies = [
+ "typenum",
+]
+
+[[package]]
name = "getrandom"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -484,19 +551,15 @@ dependencies = [
]
[[package]]
-name = "indoc"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05a0bd019339e5d968b37855180087b7b9d512c5046fbd244cf8c95687927d6e"
-
-[[package]]
name = "insta"
-version = "1.14.0"
+version = "1.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "689960f187c43c01650c805fb6bc6f55ab944499d86d4ffe9474ad78991d8e94"
+checksum = "bcc3e639bcba360d9237acabd22014c16f3df772db463b7446cd81b070714767"
dependencies = [
"console",
"once_cell",
+ "pest",
+ "pest_derive",
"serde",
"serde_json",
"serde_yaml",
@@ -544,6 +607,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
[[package]]
+name = "jod-thread"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae"
+
+[[package]]
name = "js-sys"
version = "0.3.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -591,18 +660,18 @@ dependencies = [
[[package]]
name = "logos"
-version = "0.12.0"
+version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427e2abca5be13136da9afdbf874e6b34ad9001dd70f2b103b083a85daa7b345"
+checksum = "bf8b031682c67a8e3d5446840f9573eb7fe26efe7ec8d195c9ac4c0647c502f1"
dependencies = [
"logos-derive",
]
[[package]]
name = "logos-derive"
-version = "0.12.0"
+version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56a7d287fd2ac3f75b11f19a1c8a874a7d55744bd91f7a1b3e7cf87d4343c36d"
+checksum = "a1d849148dbaf9661a6151d1ca82b13bb4c4c128146a88d05253b38d4e2f496c"
dependencies = [
"beef",
"fnv",
@@ -610,7 +679,6 @@ dependencies = [
"quote",
"regex-syntax",
"syn",
- "utf8-ranges",
]
[[package]]
@@ -639,6 +707,12 @@ dependencies = [
]
[[package]]
+name = "maplit"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+
+[[package]]
name = "matches"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -719,6 +793,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
[[package]]
+name = "opaque-debug"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
+
+[[package]]
name = "os_str_bytes"
version = "6.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -754,10 +834,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
[[package]]
+name = "pest"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53"
+dependencies = [
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d"
+dependencies = [
+ "maplit",
+ "pest",
+ "sha-1",
+]
+
+[[package]]
name = "petgraph"
-version = "0.6.1"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b305cc4569dd4e8765bab46261f67ef5d4d11a4b6e745100ee5dad8948b46c"
+checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
dependencies = [
"fixedbitset",
"indexmap",
@@ -986,9 +1109,9 @@ dependencies = [
[[package]]
name = "rowan"
-version = "0.15.4"
+version = "0.15.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c1112d7b23c800be3a0dae244886b71d96b1461b57b31b56e4c679acbe614f"
+checksum = "ce1f383129e417a6265b16ed78e6e9307748f0863b2ba75f78ff14717db5b017"
dependencies = [
"countme",
"hashbrown 0.12.1",
@@ -1110,6 +1233,18 @@ dependencies = [
]
[[package]]
+name = "sha-1"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df"
+dependencies = [
+ "block-buffer",
+ "digest",
+ "fake-simd",
+ "opaque-debug",
+]
+
+[[package]]
name = "similar"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1204,9 +1339,10 @@ dependencies = [
[[package]]
name = "texlab"
-version = "4.0.0"
+version = "4.1.0"
dependencies = [
"anyhow",
+ "assert_unordered",
"byteorder",
"chrono",
"clap 3.1.18",
@@ -1220,10 +1356,10 @@ dependencies = [
"flate2",
"fuzzy-matcher",
"human_name",
- "indoc",
"insta",
"isocountry",
"itertools",
+ "jod-thread",
"log",
"logos",
"lsp-server",
@@ -1242,9 +1378,7 @@ dependencies = [
"tempfile",
"threadpool",
"titlecase",
- "typed-builder",
"unicode-normalization",
- "unindent",
"url",
"uuid",
]
@@ -1344,15 +1478,16 @@ dependencies = [
]
[[package]]
-name = "typed-builder"
-version = "0.10.0"
+name = "typenum"
+version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
+checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
[[package]]
name = "unicode-bidi"
@@ -1394,12 +1529,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "402bb19d8e03f1d1a7450e2bd613980869438e0666331be3e073089124aa1adc"
[[package]]
-name = "unindent"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52fee519a3e570f7df377a06a1a7775cdbfb7aa460be7e08de2b1f0e69973a44"
-
-[[package]]
name = "url"
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1413,16 +1542,10 @@ dependencies = [
]
[[package]]
-name = "utf8-ranges"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcfc827f90e53a02eaef5e535ee14266c1d569214c6aa70133a624d8a3164ba"
-
-[[package]]
name = "uuid"
-version = "1.1.0"
+version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93bbc61e655a4833cf400d0d15bf3649313422fa7572886ad6dab16d79886365"
+checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f"
dependencies = [
"getrandom",
]
diff --git a/support/texlab/Cargo.toml b/support/texlab/Cargo.toml
index df04cfba31..f85c0f31ed 100644
--- a/support/texlab/Cargo.toml
+++ b/support/texlab/Cargo.toml
@@ -1,7 +1,7 @@
[package]
name = "texlab"
description = "LaTeX Language Server"
-version = "4.0.0"
+version = "4.1.0"
license = "GPL-3.0"
readme = "README.md"
authors = [
@@ -26,6 +26,10 @@ exclude = [
"texlab.tex",
]
+[[bin]]
+name = "texlab"
+test = false
+
[lib]
doctest = false
@@ -47,20 +51,20 @@ derive_more = "0.99.17"
encoding_rs = "0.8.31"
encoding_rs_io = "0.1.7"
fern = "0.6"
-flate2 = "1.0.23"
+flate2 = "1.0.24"
fuzzy-matcher = { version = "0.3.7", optional = true }
human_name = { version = "1.0.3", default-features = false }
isocountry = "0.3.2"
itertools = "0.10.1"
log = "0.4.17"
-logos = "0.12.0"
+logos = "0.12.1"
lsp-server = "0.6.0"
lsp-types = "0.93.0"
multimap = "0.8.3"
once_cell = "1.10.0"
-petgraph = "0.6.0"
+petgraph = "0.6.2"
regex = "1.5.5"
-rowan = "0.15.4"
+rowan = "0.15.5"
rustc-hash = "1.1.0"
serde = "1.0.137"
serde_json = "1.0.81"
@@ -72,17 +76,17 @@ threadpool = "1.8.1"
titlecase = "1.1.0"
unicode-normalization = "0.1.19"
url = { version = "2.2.2", features = ["serde"] }
-uuid = { version = "1.0.0", features = ["v4"] }
+uuid = { version = "1.1.2", features = ["v4"] }
[dev-dependencies]
+assert_unordered = "0.3.5"
criterion = { version = "0.3.5" }
-indoc = "1.0.6"
-insta = { version = "1.14.0", features = ["backtrace"] }
-typed-builder = "0.10.0"
-unindent = "0.1.9"
+insta = { version = "1.14.1", features = ["backtrace", "redactions"] }
+jod-thread = "0.1.2"
[profile.release]
-lto = "fat"
+lto = "thin"
+incremental = true
[profile.bench]
lto = "thin"
diff --git a/support/texlab/README.md b/support/texlab/README.md
index 1b4bd527ec..e43082f20f 100644
--- a/support/texlab/README.md
+++ b/support/texlab/README.md
@@ -3,14 +3,8 @@
[![Rust](https://img.shields.io/badge/rustc-1.58.1%2B-blue)](https://blog.rust-lang.org/2022/01/20/Rust-1.58.1.html)
[![GitHub release](https://img.shields.io/github/release/latex-lsp/texlab?label=github)](https://github.com/latex-lsp/texlab/releases)
+[![crates.io](https://img.shields.io/crates/v/texlab)](https://crates.io/crates/texlab)
[![CTAN](https://img.shields.io/ctan/v/texlab)](https://ctan.org/pkg/texlab)
-[![Arch Linux](https://repology.org/badge/version-for-repo/arch/texlab.svg?header=arch%20linux)](https://www.archlinux.org/packages/community/x86_64/texlab/)
-[![NixOS Stable](https://repology.org/badge/version-for-repo/nix_stable/texlab.svg?header=nixos%20stable)](https://nixos.org/nixos/packages.html?channel=nixos-20.03&query=texlab)
-[![NixOS Unstable](https://repology.org/badge/version-for-repo/nix_unstable/texlab.svg?header=nixos%20unstable)](https://nixos.org/nixos/packages.html?channel=nixpkgs-unstable&query=texlab)
-[![Homebrew](https://repology.org/badge/version-for-repo/homebrew/texlab.svg?header=homebrew)](https://formulae.brew.sh/formula/texlab)
-[![Scoop](https://repology.org/badge/version-for-repo/scoop/texlab.svg?header=scoop)](https://scoop.sh/)
-[![FreeBSD](https://repology.org/badge/version-for-repo/freebsd/texlab.svg?header=freebsd)](https://www.freshports.org/devel/texlab)
-[![NetBSD](https://repology.org/badge/version-for-repo/pkgsrc_current/texlab.svg?header=netbsd)](https://pkgsrc.se/print/texlab)
# TexLab
@@ -27,7 +21,9 @@ you will need to install it manually.
We provide [precompiled binaries](https://github.com/latex-lsp/texlab/releases)
for Windows, Linux and macOS.
Alternatively, you can build TexLab from source or install it using your package manager.
-For a list of supported package managers, you can take a look at [Repology](https://repology.org/project/texlab/versions).
+For a list of supported package managers, you can take a look at [Repology](https://repology.org/project/texlab/versions):
+
+[![Packaging status](https://repology.org/badge/vertical-allrepos/texlab.svg)](https://repology.org/project/texlab/versions)
### Requirements
@@ -50,11 +46,10 @@ Then run the following command in the project folder:
cargo build --release
```
-Alternatively, you can run the following command
-without having to clone this repository and make TexLab available in your PATH:
+Alternatively, you can install `texlab` from [crates.io](https://crates.io/crates/texlab) and run
```shell
-cargo install --git https://github.com/latex-lsp/texlab.git --locked
+cargo install texlab
```
## Usage
diff --git a/support/texlab/docs/custom_commands.md b/support/texlab/docs/custom_commands.md
new file mode 100644
index 0000000000..2b85787f35
--- /dev/null
+++ b/support/texlab/docs/custom_commands.md
@@ -0,0 +1,21 @@
+# Custom Commands
+
+The server provides the following commands through the `workspace/executeCommand` request:
+
+## texlab.cleanAuxiliary
+
+Removes the auxiliary files produced by compiling the specified LaTeX document.
+At the moment, this command simply calls `latexmk -c` with the currently configured output directory.
+
+Parameters:
+
+- `document`: `TextDocumentIdentifier` (_Required_)
+
+## texlab.cleanArtifacts
+
+Removes the auxiliary files and the artifacts produced by compiling the specified LaTeX document.
+At the moment, this command simply calls `latexmk -C` with the currently configured output directory.
+
+Parameters:
+
+- `document`: `TextDocumentIdentifier` (_Required_)
diff --git a/support/texlab/src/citation.rs b/support/texlab/src/citation.rs
index e1d6f49268..cb6c5c3623 100644
--- a/support/texlab/src/citation.rs
+++ b/support/texlab/src/citation.rs
@@ -1,6 +1,6 @@
mod driver;
mod entry;
-mod field;
+pub(crate) mod field;
mod output;
use unicode_normalization::UnicodeNormalization;
@@ -9,6 +9,7 @@ use crate::syntax::bibtex;
use self::{driver::Driver, output::Inline};
+#[must_use]
pub fn render(entry: &bibtex::Entry) -> Option<String> {
let mut output = String::new();
let mut driver = Driver::default();
diff --git a/support/texlab/src/citation/driver.rs b/support/texlab/src/citation/driver.rs
index eaf98304c4..815474a107 100644
--- a/support/texlab/src/citation/driver.rs
+++ b/support/texlab/src/citation/driver.rs
@@ -22,8 +22,8 @@ pub struct Driver {
}
impl Driver {
- pub fn process(&mut self, entry: &bibtex::Entry) -> Option<()> {
- let entry = EntryData::parse(entry)?;
+ pub fn process(&mut self, entry: &bibtex::Entry) {
+ let entry = EntryData::from(entry);
match entry.kind {
EntryKind::Article
| EntryKind::DataSet
@@ -60,10 +60,10 @@ impl Driver {
| EntryKind::Report
| EntryKind::TechReport => self.book_like(entry),
EntryKind::Patent => self.patent(entry),
- }
+ };
}
- fn article_like(&mut self, mut entry: EntryData) -> Option<()> {
+ fn article_like(&mut self, mut entry: EntryData) {
self.author(&mut entry);
self.title(&mut entry);
self.translator(&mut entry);
@@ -99,10 +99,9 @@ impl Driver {
self.url(&mut entry);
self.addendum(&mut entry);
self.pubstate(&mut entry);
- Some(())
}
- fn book_like(&mut self, mut entry: EntryData) -> Option<()> {
+ fn book_like(&mut self, mut entry: EntryData) {
self.author(&mut entry);
self.title(&mut entry);
self.inbook_title(&mut entry);
@@ -133,10 +132,9 @@ impl Driver {
self.url(&mut entry);
self.addendum(&mut entry);
self.pubstate(&mut entry);
- Some(())
}
- fn patent(&mut self, mut entry: EntryData) -> Option<()> {
+ fn patent(&mut self, mut entry: EntryData) {
self.author(&mut entry);
self.title(&mut entry);
self.patent_number(&mut entry);
@@ -147,7 +145,6 @@ impl Driver {
self.url(&mut entry);
self.addendum(&mut entry);
self.pubstate(&mut entry);
- Some(())
}
fn author(&mut self, entry: &mut EntryData) -> Option<()> {
@@ -211,8 +208,7 @@ impl Driver {
let editor_type = entry
.text
.remove(&type_field)
- .map(|data| data.text)
- .unwrap_or_else(|| "Ed. by".to_string());
+ .map_or_else(|| "Ed. by".to_string(), |data| data.text);
self.builder.push(
Inline::Regular(format!("{editor_type} {editor}")),
diff --git a/support/texlab/src/citation/entry.rs b/support/texlab/src/citation/entry.rs
index c8b3f98753..1fee032488 100644
--- a/support/texlab/src/citation/entry.rs
+++ b/support/texlab/src/citation/entry.rs
@@ -3,7 +3,7 @@ use std::str::FromStr;
use rustc_hash::FxHashMap;
use strum::EnumString;
-use crate::syntax::bibtex::{Entry, Field, HasName, HasType};
+use crate::syntax::bibtex::{Entry, Field, HasName, HasType, HasValue, Value};
use super::field::{
author::{AuthorField, AuthorFieldData},
@@ -67,8 +67,8 @@ pub struct EntryData {
pub number: FxHashMap<NumberField, NumberFieldData>,
}
-impl EntryData {
- pub fn parse(entry: &Entry) -> Option<Self> {
+impl From<&Entry> for EntryData {
+ fn from(entry: &Entry) -> Self {
let mut data = EntryData {
kind: entry
.type_token()
@@ -81,42 +81,45 @@ impl EntryData {
let _ = data.parse_field(&field);
}
- Some(data)
+ data
}
+}
+impl EntryData {
fn parse_field(&mut self, field: &Field) -> Option<()> {
let name = field.name_token()?;
let name = name.text();
- self.parse_author_field(field, name)
- .or_else(|| self.parse_date_field(field, name))
- .or_else(|| self.parse_number_field(field, name))
- .or_else(|| self.parse_text_field(field, name))
+ let value = field.value()?;
+ self.parse_author_field(name, &value)
+ .or_else(|| self.parse_date_field(name, &value))
+ .or_else(|| self.parse_number_field(name, &value))
+ .or_else(|| self.parse_text_field(name, &value))
}
- fn parse_author_field(&mut self, field: &Field, name: &str) -> Option<()> {
+ fn parse_author_field(&mut self, name: &str, value: &Value) -> Option<()> {
let name = AuthorField::parse(name)?;
- let data = AuthorFieldData::parse(field)?;
+ let data = AuthorFieldData::parse(value)?;
self.author.insert(name, data);
Some(())
}
- fn parse_date_field(&mut self, field: &Field, name: &str) -> Option<()> {
+ fn parse_date_field(&mut self, name: &str, value: &Value) -> Option<()> {
let name = DateField::parse(name)?;
- let data = DateFieldData::parse(field)?;
+ let data = DateFieldData::parse(value)?;
self.date.insert(name, data);
Some(())
}
- fn parse_number_field(&mut self, field: &Field, name: &str) -> Option<()> {
+ fn parse_number_field(&mut self, name: &str, value: &Value) -> Option<()> {
let name = NumberField::parse(name)?;
- let data = NumberFieldData::parse(field)?;
+ let data = NumberFieldData::parse(value)?;
self.number.insert(name, data);
Some(())
}
- fn parse_text_field(&mut self, field: &Field, name: &str) -> Option<()> {
+ fn parse_text_field(&mut self, name: &str, value: &Value) -> Option<()> {
let name = TextField::parse(name).unwrap_or(TextField::Unknown);
- let data = TextFieldData::parse(field)?;
+ let data = TextFieldData::parse(value)?;
self.text.insert(name, data);
Some(())
}
diff --git a/support/texlab/src/citation/field/author.rs b/support/texlab/src/citation/field/author.rs
index a5e4368320..a0e4120559 100644
--- a/support/texlab/src/citation/field/author.rs
+++ b/support/texlab/src/citation/field/author.rs
@@ -4,7 +4,7 @@ use human_name::Name;
use itertools::Itertools;
use strum::EnumString;
-use crate::syntax::bibtex::Field;
+use crate::syntax::bibtex::Value;
use super::text::TextFieldData;
@@ -37,10 +37,7 @@ pub struct AuthorFieldData {
impl fmt::Display for AuthorFieldData {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- let names = self
- .authors
- .iter()
- .map(|author| author.display_initial_surname());
+ let names = self.authors.iter().map(Name::display_initial_surname);
for part in Itertools::intersperse(names, Cow::Borrowed(", ")) {
write!(f, "{}", part)?;
@@ -51,8 +48,8 @@ impl fmt::Display for AuthorFieldData {
}
impl AuthorFieldData {
- pub fn parse(field: &Field) -> Option<Self> {
- let TextFieldData { text } = TextFieldData::parse(field)?;
+ pub fn parse(value: &Value) -> Option<Self> {
+ let TextFieldData { text } = TextFieldData::parse(value)?;
let mut authors = Vec::new();
let mut words = Vec::new();
for word in text.split_whitespace() {
diff --git a/support/texlab/src/citation/field/date.rs b/support/texlab/src/citation/field/date.rs
index b9b3dbb438..b67972e691 100644
--- a/support/texlab/src/citation/field/date.rs
+++ b/support/texlab/src/citation/field/date.rs
@@ -3,7 +3,7 @@ use std::{fmt, ops::Add, str::FromStr};
use chrono::{Datelike, Month, NaiveDate};
use strum::EnumString;
-use crate::syntax::bibtex::Field;
+use crate::syntax::bibtex::Value;
use super::text::TextFieldData;
@@ -69,8 +69,8 @@ impl fmt::Display for DateFieldData {
}
impl DateFieldData {
- pub fn parse(field: &Field) -> Option<Self> {
- let TextFieldData { text } = TextFieldData::parse(field)?;
+ pub fn parse(value: &Value) -> Option<Self> {
+ let TextFieldData { text } = TextFieldData::parse(value)?;
NaiveDate::from_str(&text)
.ok()
.map(Self::Date)
diff --git a/support/texlab/src/citation/field/number.rs b/support/texlab/src/citation/field/number.rs
index 9f51ccef90..ad892c879f 100644
--- a/support/texlab/src/citation/field/number.rs
+++ b/support/texlab/src/citation/field/number.rs
@@ -2,7 +2,7 @@ use std::{fmt, str::FromStr};
use strum::EnumString;
-use crate::syntax::bibtex::Field;
+use crate::syntax::bibtex::Value;
use super::text::TextFieldData;
@@ -42,8 +42,8 @@ impl fmt::Display for NumberFieldData {
}
impl NumberFieldData {
- pub fn parse(field: &Field) -> Option<Self> {
- let TextFieldData { text } = TextFieldData::parse(field)?;
+ pub fn parse(value: &Value) -> Option<Self> {
+ let TextFieldData { text } = TextFieldData::parse(value)?;
text.split_once("--")
.or_else(|| text.split_once('-'))
.and_then(|(a, b)| Some((a.parse().ok()?, b.parse().ok()?)))
diff --git a/support/texlab/src/citation/field/text.rs b/support/texlab/src/citation/field/text.rs
index 87119bd47c..9b3a0b02b2 100644
--- a/support/texlab/src/citation/field/text.rs
+++ b/support/texlab/src/citation/field/text.rs
@@ -5,8 +5,8 @@ use rustc_hash::FxHashSet;
use strum::EnumString;
use crate::syntax::bibtex::{
- Accent, Command, CurlyGroup, Field, HasAccentName, HasCommandName, HasName, HasValue, HasWord,
- Join, Literal, QuoteGroup, Root, SyntaxKind::*, SyntaxToken, Value,
+ Accent, Command, CurlyGroup, HasAccentName, HasCommandName, HasName, HasValue, HasWord, Join,
+ Literal, QuoteGroup, Root, SyntaxKind::*, SyntaxToken, Value,
};
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash, EnumString)]
@@ -73,9 +73,9 @@ pub struct TextFieldData {
}
impl TextFieldData {
- pub fn parse(field: &Field) -> Option<Self> {
+ pub fn parse(value: &Value) -> Option<Self> {
let mut builder = TextFieldDataBuilder::default();
- builder.visit_value(&field.value()?)?;
+ builder.visit_value(value)?;
Some(builder.data)
}
}
@@ -90,7 +90,7 @@ impl TextFieldDataBuilder {
fn visit_value(&mut self, value: &Value) -> Option<()> {
match value {
Value::Literal(lit) => {
- self.visit_literal(lit)?;
+ self.visit_literal(lit);
}
Value::CurlyGroup(group) => {
self.visit_curly_group(group)?;
@@ -112,7 +112,7 @@ impl TextFieldDataBuilder {
Some(())
}
- fn visit_literal(&mut self, lit: &Literal) -> Option<()> {
+ fn visit_literal(&mut self, lit: &Literal) {
if lit
.name_token()
.and_then(|name| self.visit_string_reference(&name))
@@ -122,12 +122,10 @@ impl TextFieldDataBuilder {
.text()
.for_each_chunk(|text| self.data.text.push_str(text));
}
-
- Some(())
}
fn visit_string_reference(&mut self, name: &SyntaxToken) -> Option<()> {
- let root = Root::cast(name.ancestors().last()?)?;
+ let root = Root::cast(name.parent_ancestors().last()?)?;
let name = name.text();
let value = root
diff --git a/support/texlab/src/citation/output.rs b/support/texlab/src/citation/output.rs
index 555ec138db..2fc8a02361 100644
--- a/support/texlab/src/citation/output.rs
+++ b/support/texlab/src/citation/output.rs
@@ -26,31 +26,12 @@ impl Add for Punct {
fn add(self, rhs: Self) -> Self::Output {
match (self, rhs) {
- (Self::Nothing, Self::Nothing) => Self::Nothing,
- (Self::Nothing, Self::Space)
- | (Self::Space, Self::Nothing)
- | (Self::Space, Self::Space) => Self::Space,
- (Self::Nothing, Self::Comma)
- | (Self::Space, Self::Comma)
- | (Self::Comma, Self::Nothing)
- | (Self::Comma, Self::Space)
- | (Self::Comma, Self::Comma)
- | (Self::Comma, Self::Dot)
- | (Self::Dot, Self::Comma) => Self::Comma,
- (Self::Nothing, Self::Dot)
- | (Self::Space, Self::Dot)
- | (Self::Dot, Self::Nothing)
- | (Self::Dot, Self::Space)
- | (Self::Dot, Self::Dot) => Self::Dot,
- (Self::Nothing, Self::Colon)
- | (Self::Space, Self::Colon)
- | (Self::Comma, Self::Colon)
- | (Self::Dot, Self::Colon)
- | (Self::Colon, Self::Nothing)
- | (Self::Colon, Self::Space)
- | (Self::Colon, Self::Comma)
- | (Self::Colon, Self::Dot)
- | (Self::Colon, Self::Colon) => Self::Colon,
+ (Self::Nothing, punct) | (punct, Self::Nothing) => punct,
+ (_, Self::Colon) | (Self::Colon, _) => Self::Colon,
+ (Self::Space, Self::Space) => Self::Space,
+ (Self::Space | Self::Comma | Self::Dot, Self::Comma)
+ | (Self::Comma, Self::Space | Self::Dot) => Self::Comma,
+ (Self::Space | Self::Dot, Self::Dot) | (Self::Dot, Self::Space) => Self::Dot,
}
}
}
diff --git a/support/texlab/src/component_db.rs b/support/texlab/src/component_db.rs
index 68788df879..8dc547369f 100644
--- a/support/texlab/src/component_db.rs
+++ b/support/texlab/src/component_db.rs
@@ -7,7 +7,7 @@ use once_cell::sync::Lazy;
use serde::{Deserialize, Serialize};
use smol_str::SmolStr;
-use crate::Workspace;
+use crate::{syntax::latex::ExplicitLink, Workspace};
#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
@@ -17,6 +17,7 @@ pub struct ComponentDatabase {
}
impl ComponentDatabase {
+ #[must_use]
pub fn find(&self, name: &str) -> Option<&Component> {
self.components.iter().find(|component| {
component
@@ -26,6 +27,7 @@ impl ComponentDatabase {
})
}
+ #[must_use]
pub fn find_no_ext(&self, name: &str) -> Option<&Component> {
self.components.iter().find(|component| {
component
@@ -35,6 +37,7 @@ impl ComponentDatabase {
})
}
+ #[must_use]
pub fn linked_components(&self, workspace: &Workspace) -> Vec<&Component> {
let mut start_components = vec![self.kernel()];
for document in workspace.documents_by_uri.values() {
@@ -42,7 +45,7 @@ impl ComponentDatabase {
data.extras
.explicit_links
.iter()
- .filter_map(|link| link.as_component_name())
+ .filter_map(ExplicitLink::as_component_name)
.filter_map(|name| self.find(&name))
.for_each(|component| start_components.push(component));
}
@@ -54,8 +57,8 @@ impl ComponentDatabase {
component
.references
.iter()
- .flat_map(|file| self.find(file))
- .for_each(|component| all_components.push(component))
+ .filter_map(|file| self.find(file))
+ .for_each(|component| all_components.push(component));
}
all_components
@@ -64,12 +67,14 @@ impl ComponentDatabase {
.collect()
}
+ #[must_use]
pub fn contains(&self, short_name: &str) -> bool {
let sty = format!("{}.sty", short_name);
let cls = format!("{}.cls", short_name);
self.find(&sty).is_some() || self.find(&cls).is_some()
}
+ #[must_use]
pub fn kernel(&self) -> &Component {
self.components
.iter()
@@ -77,12 +82,14 @@ impl ComponentDatabase {
.unwrap()
}
+ #[must_use]
pub fn exists(&self, file_name: &str) -> bool {
self.components
.iter()
.any(|component| component.file_names.iter().any(|f| f == file_name))
}
+ #[must_use]
pub fn documentation(&self, name: &str) -> Option<MarkupContent> {
let metadata = self
.metadata
diff --git a/support/texlab/src/diagnostics.rs b/support/texlab/src/diagnostics.rs
index 46e12d9cfc..5ce177b015 100644
--- a/support/texlab/src/diagnostics.rs
+++ b/support/texlab/src/diagnostics.rs
@@ -34,19 +34,20 @@ impl DiagnosticsManager {
self.static_diagnostics.insert(uri, diagnostics_by_uri);
}
- pub fn update_chktex(&mut self, workspace: &Workspace, uri: Arc<Url>, options: &Options) {
- analyze_latex_chktex(workspace, &mut self.chktex_diagnostics, &uri, options);
+ pub fn update_chktex(&mut self, workspace: &Workspace, uri: &Url, options: &Options) {
+ analyze_latex_chktex(workspace, &mut self.chktex_diagnostics, uri, options);
}
- pub fn publish(&self, uri: Arc<Url>) -> Vec<Diagnostic> {
+ #[must_use]
+ pub fn publish(&self, uri: &Url) -> Vec<Diagnostic> {
let mut all_diagnostics = Vec::new();
for diagnostics_by_uri in self.static_diagnostics.values() {
- if let Some(diagnostics) = diagnostics_by_uri.get_vec(&uri) {
+ if let Some(diagnostics) = diagnostics_by_uri.get_vec(uri) {
all_diagnostics.append(&mut diagnostics.clone());
}
}
- if let Some(diagnostics) = self.chktex_diagnostics.get_vec(&uri) {
+ if let Some(diagnostics) = self.chktex_diagnostics.get_vec(uri) {
all_diagnostics.append(&mut diagnostics.clone());
}
diff --git a/support/texlab/src/diagnostics/build_log.rs b/support/texlab/src/diagnostics/build_log.rs
index 8bd83f695a..e280d862bc 100644
--- a/support/texlab/src/diagnostics/build_log.rs
+++ b/support/texlab/src/diagnostics/build_log.rs
@@ -55,8 +55,7 @@ pub fn analyze_build_log_static(
.relative_path
.to_str()
.and_then(|path| root_document.uri.join(path).map(Into::into).ok())
- .map(Arc::new)
- .unwrap_or_else(|| Arc::clone(&root_document.uri))
+ .map_or_else(|| Arc::clone(&root_document.uri), Arc::new)
} else {
Arc::clone(&root_document.uri)
};
diff --git a/support/texlab/src/diagnostics/chktex.rs b/support/texlab/src/diagnostics/chktex.rs
index 6e7422d8b0..6b6405d975 100644
--- a/support/texlab/src/diagnostics/chktex.rs
+++ b/support/texlab/src/diagnostics/chktex.rs
@@ -54,10 +54,10 @@ pub static LINE_REGEX: Lazy<Regex> =
fn lint(text: &str, current_dir: &Path) -> io::Result<Vec<Diagnostic>> {
let directory = tempdir()?;
fs::write(directory.path().join("file.tex"), text)?;
- let _ = fs::copy(
+ drop(fs::copy(
current_dir.join("chktexrc"),
directory.path().join("chktexrc"),
- );
+ ));
let output = Command::new("chktex")
.args(&["-I0", "-f%l:%c:%d:%k:%n:%m\n", "file.tex"])
diff --git a/support/texlab/src/diagnostics/debouncer.rs b/support/texlab/src/diagnostics/debouncer.rs
index 5117cf2fe0..4c83636856 100644
--- a/support/texlab/src/diagnostics/debouncer.rs
+++ b/support/texlab/src/diagnostics/debouncer.rs
@@ -45,7 +45,7 @@ impl DiagnosticsDebouncer {
.unwrap_or(300);
if let Some(time) = last_task_time_by_uri.get(&document.uri) {
- if time.elapsed().as_millis() < delay as u128 {
+ if time.elapsed().as_millis() < u128::from(delay) {
continue;
}
}
diff --git a/support/texlab/src/diagnostics/latex.rs b/support/texlab/src/diagnostics/latex.rs
index 34d5e9fa29..2c271ad54a 100644
--- a/support/texlab/src/diagnostics/latex.rs
+++ b/support/texlab/src/diagnostics/latex.rs
@@ -2,7 +2,7 @@ use std::sync::Arc;
use lsp_types::{Diagnostic, DiagnosticSeverity, NumberOrString, Url};
use multimap::MultiMap;
-use rowan::{ast::AstNode, TextRange};
+use rowan::{ast::AstNode, NodeOrToken, TextRange};
use crate::{syntax::latex, Document, LineIndexExt, Workspace};
@@ -20,7 +20,7 @@ pub fn analyze_latex_static(
for node in latex::SyntaxNode::new_root(data.green.clone()).descendants() {
analyze_environment(document, diagnostics_by_uri, node.clone())
- .or_else(|| analyze_curly_group(document, diagnostics_by_uri, node.clone()))
+ .or_else(|| analyze_curly_group(document, diagnostics_by_uri, &node))
.or_else(|| {
if node.kind() == latex::ERROR && node.first_token()?.text() == "}" {
diagnostics_by_uri.insert(
@@ -79,7 +79,7 @@ fn analyze_environment(
fn analyze_curly_group(
document: &Document,
diagnostics_by_uri: &mut MultiMap<Arc<Url>, Diagnostic>,
- node: latex::SyntaxNode,
+ node: &latex::SyntaxNode,
) -> Option<()> {
if !matches!(
node.kind(),
@@ -105,7 +105,7 @@ fn analyze_curly_group(
if !is_inside_verbatim_environment
&& !node
.children_with_tokens()
- .filter_map(|element| element.into_token())
+ .filter_map(NodeOrToken::into_token)
.any(|token| token.kind() == latex::R_CURLY)
{
diagnostics_by_uri.insert(
diff --git a/support/texlab/src/distro.rs b/support/texlab/src/distro.rs
index 1e67a14285..f869392366 100644
--- a/support/texlab/src/distro.rs
+++ b/support/texlab/src/distro.rs
@@ -29,6 +29,7 @@ pub struct Distribution {
}
impl Distribution {
+ #[must_use]
pub fn detect() -> Self {
let kind = match Command::new("latex").arg("--version").output() {
Ok(output) => {
diff --git a/support/texlab/src/distro/kpsewhich.rs b/support/texlab/src/distro/kpsewhich.rs
index ad2ac9eaf2..b14e64bf56 100644
--- a/support/texlab/src/distro/kpsewhich.rs
+++ b/support/texlab/src/distro/kpsewhich.rs
@@ -18,6 +18,7 @@ pub struct Resolver {
}
impl Resolver {
+ #[must_use]
pub fn new(files_by_name: FxHashMap<SmolStr, PathBuf>) -> Self {
Self { files_by_name }
}
diff --git a/support/texlab/src/distro/miktex.rs b/support/texlab/src/distro/miktex.rs
index 563c8445e3..c7a92d572e 100644
--- a/support/texlab/src/distro/miktex.rs
+++ b/support/texlab/src/distro/miktex.rs
@@ -18,10 +18,10 @@ pub fn load_resolver() -> Result<Resolver> {
const DATABASE_PATH: &str = "miktex/data/le";
const FNDB_SIGNATURE: u32 = 0x42_44_4e_46;
-const FNDB_WORD_SIZE: usize = 4;
-const FNDB_TABLE_POINTER_OFFSET: usize = 4 * FNDB_WORD_SIZE;
-const FNDB_TABLE_SIZE_OFFSET: usize = 6 * FNDB_WORD_SIZE;
-const FNDB_ENTRY_SIZE: usize = 4 * FNDB_WORD_SIZE;
+const FNDB_WORD_SIZE: u32 = 4;
+const FNDB_TABLE_POINTER_OFFSET: u32 = 4 * FNDB_WORD_SIZE;
+const FNDB_TABLE_SIZE_OFFSET: u32 = 6 * FNDB_WORD_SIZE;
+const FNDB_ENTRY_SIZE: u32 = 4 * FNDB_WORD_SIZE;
fn read_database(directory: &Path) -> Result<Vec<PathBuf>> {
let database_directory = directory.join(DATABASE_PATH);
@@ -45,16 +45,16 @@ fn parse_database(bytes: &[u8]) -> io::Result<Vec<PathBuf>> {
return Err(io::ErrorKind::InvalidData.into());
}
- reader.set_position(FNDB_TABLE_POINTER_OFFSET as u64);
+ reader.set_position(u64::from(FNDB_TABLE_POINTER_OFFSET));
let table_address = reader.read_u32::<LittleEndian>()?;
- reader.set_position(FNDB_TABLE_SIZE_OFFSET as u64);
+ reader.set_position(u64::from(FNDB_TABLE_SIZE_OFFSET));
let table_size = reader.read_u32::<LittleEndian>()?;
let mut files = Vec::new();
for i in 0..table_size {
let offset = table_address + i * FNDB_ENTRY_SIZE as u32;
- reader.set_position(offset as u64);
+ reader.set_position(u64::from(offset));
let file_name_offset = reader.read_u32::<LittleEndian>()? as usize;
let directory_offset = reader.read_u32::<LittleEndian>()? as usize;
let file_name = read_string(bytes, file_name_offset)?;
diff --git a/support/texlab/src/distro/texlive.rs b/support/texlab/src/distro/texlive.rs
index 27f55569a7..47159b2efc 100644
--- a/support/texlab/src/distro/texlive.rs
+++ b/support/texlab/src/distro/texlive.rs
@@ -1,5 +1,5 @@
use std::{
- fs, io,
+ fs,
path::{Path, PathBuf},
str::Lines,
};
@@ -23,11 +23,11 @@ fn read_database(directory: &Path) -> Result<Vec<PathBuf>> {
}
let text = fs::read_to_string(file)?;
- let files = parse_database(text.lines())?;
+ let files = parse_database(text.lines());
Ok(files)
}
-fn parse_database(lines: Lines) -> io::Result<Vec<PathBuf>> {
+fn parse_database(lines: Lines) -> Vec<PathBuf> {
let mut paths = Vec::new();
let mut directory = "";
@@ -39,5 +39,6 @@ fn parse_database(lines: Lines) -> io::Result<Vec<PathBuf>> {
paths.push(path);
}
}
- Ok(paths)
+
+ paths
}
diff --git a/support/texlab/src/document.rs b/support/texlab/src/document.rs
index adb6bad5ac..60e295b2e4 100644
--- a/support/texlab/src/document.rs
+++ b/support/texlab/src/document.rs
@@ -31,6 +31,7 @@ pub enum DocumentData {
}
impl DocumentData {
+ #[must_use]
pub fn language(&self) -> DocumentLanguage {
match self {
Self::Latex(_) => DocumentLanguage::Latex,
@@ -39,6 +40,7 @@ impl DocumentData {
}
}
+ #[must_use]
pub fn as_latex(&self) -> Option<&LatexDocumentData> {
if let Self::Latex(data) = self {
Some(data)
@@ -47,6 +49,7 @@ impl DocumentData {
}
}
+ #[must_use]
pub fn as_bibtex(&self) -> Option<&BibtexDocumentData> {
if let Self::Bibtex(data) = self {
Some(data)
@@ -55,6 +58,7 @@ impl DocumentData {
}
}
+ #[must_use]
pub fn as_build_log(&self) -> Option<&build_log::Parse> {
if let Self::BuildLog(v) = self {
Some(v)
@@ -79,6 +83,7 @@ impl fmt::Debug for Document {
}
impl Document {
+ #[must_use]
pub fn parse(
environment: &Environment,
uri: Arc<Url>,
@@ -95,8 +100,7 @@ impl Document {
Some(root_dir) => {
let root_dir = environment.current_directory.join(&root_dir);
Url::from_directory_path(root_dir)
- .map(Arc::new)
- .unwrap_or_else(|()| Arc::clone(&uri))
+ .map_or_else(|()| Arc::clone(&uri), Arc::new)
}
None => Arc::clone(&uri),
};
diff --git a/support/texlab/src/environment.rs b/support/texlab/src/environment.rs
index 5ba80617d5..54b6279f30 100644
--- a/support/texlab/src/environment.rs
+++ b/support/texlab/src/environment.rs
@@ -14,6 +14,7 @@ pub struct Environment {
}
impl Environment {
+ #[must_use]
pub fn new(current_directory: Arc<PathBuf>) -> Self {
Self {
current_directory,
diff --git a/support/texlab/src/features.rs b/support/texlab/src/features.rs
index ed936f569f..9576f266a9 100644
--- a/support/texlab/src/features.rs
+++ b/support/texlab/src/features.rs
@@ -3,6 +3,7 @@ mod build;
mod completion;
mod cursor;
mod definition;
+mod execute_command;
mod folding;
mod formatting;
mod forward_search;
@@ -25,6 +26,7 @@ pub use self::completion::{complete, CompletionItemData, COMPLETION_LIMIT};
pub use self::{
build::{BuildEngine, BuildParams, BuildResult, BuildStatus},
definition::goto_definition,
+ execute_command::execute_command,
folding::find_foldings,
formatting::format_source_code,
forward_search::{execute_forward_search, ForwardSearchResult, ForwardSearchStatus},
@@ -48,214 +50,3 @@ impl<P> FeatureRequest<P> {
&self.workspace.documents_by_uri[&self.uri]
}
}
-
-#[cfg(test)]
-mod testing {
- use std::{path::PathBuf, sync::Arc};
-
- use lsp_types::{
- ClientCapabilities, ClientInfo, CompletionParams, DocumentFormattingParams,
- DocumentHighlightParams, DocumentLinkParams, FoldingRangeParams, FormattingOptions,
- GotoDefinitionParams, HoverParams, PartialResultParams, Position, ReferenceContext,
- ReferenceParams, RenameParams, TextDocumentIdentifier, TextDocumentPositionParams,
- WorkDoneProgressParams,
- };
- use typed_builder::TypedBuilder;
-
- use crate::{distro::Resolver, DocumentLanguage, Environment, Options, Workspace};
-
- use super::*;
-
- #[derive(Debug, Clone, TypedBuilder)]
- pub struct FeatureTester<'a> {
- main: &'a str,
-
- files: Vec<(&'a str, &'a str)>,
-
- #[builder(default)]
- line: u32,
-
- #[builder(default)]
- character: u32,
-
- #[builder(default)]
- new_name: &'a str,
-
- #[builder(default)]
- include_declaration: bool,
-
- #[builder(default)]
- client_capabilities: ClientCapabilities,
-
- #[builder(default)]
- client_info: Option<ClientInfo>,
-
- #[builder(default)]
- resolver: Resolver,
-
- #[builder(default=std::env::temp_dir())]
- current_directory: PathBuf,
-
- #[builder(default, setter(strip_option))]
- root_directory: Option<PathBuf>,
-
- #[builder(default, setter(strip_option))]
- aux_directory: Option<PathBuf>,
- }
-
- impl<'a> FeatureTester<'a> {
- pub fn uri(&self, name: &str) -> Arc<Url> {
- let path = self.current_directory.join(name);
- Arc::new(Url::from_file_path(path).unwrap())
- }
-
- fn options(&self) -> Options {
- Options {
- aux_directory: self.aux_directory.clone(),
- root_directory: self.root_directory.clone(),
- ..Options::default()
- }
- }
-
- fn identifier(&self) -> TextDocumentIdentifier {
- let uri = self.uri(self.main);
- TextDocumentIdentifier::new(uri.as_ref().clone())
- }
-
- fn workspace(&self) -> Workspace {
- let mut workspace = Workspace::new(Environment {
- client_capabilities: Arc::new(self.client_capabilities.clone()),
- client_info: self.client_info.clone().map(Arc::new),
- options: Arc::new(self.options()),
- resolver: Arc::new(self.resolver.clone()),
- ..Environment::default()
- });
-
- for (name, source_code) in &self.files {
- let uri = self.uri(name);
- let path = uri.to_file_path().unwrap();
- let text = Arc::new(source_code.trim().to_string());
- let language = DocumentLanguage::by_path(&path).expect("unknown document language");
- let document = workspace.open(uri, text, language).unwrap();
- workspace.viewport.insert(document.uri);
- }
-
- workspace
- }
-
- fn request<P>(&self, params: P) -> FeatureRequest<P> {
- let workspace = self.workspace();
- let uri = self.uri(self.main);
- FeatureRequest {
- params,
- workspace: workspace.slice(&uri),
- uri,
- }
- }
-
- pub fn link(self) -> FeatureRequest<DocumentLinkParams> {
- let text_document = self.identifier();
- let params = DocumentLinkParams {
- text_document,
- work_done_progress_params: WorkDoneProgressParams::default(),
- partial_result_params: PartialResultParams::default(),
- };
- self.request(params)
- }
-
- pub fn folding(self) -> FeatureRequest<FoldingRangeParams> {
- let text_document = self.identifier();
- let params = FoldingRangeParams {
- text_document,
- work_done_progress_params: WorkDoneProgressParams::default(),
- partial_result_params: PartialResultParams::default(),
- };
- self.request(params)
- }
-
- pub fn reference(self) -> FeatureRequest<ReferenceParams> {
- let params = ReferenceParams {
- text_document_position: TextDocumentPositionParams::new(
- self.identifier(),
- Position::new(self.line, self.character),
- ),
- context: ReferenceContext {
- include_declaration: self.include_declaration,
- },
- work_done_progress_params: WorkDoneProgressParams::default(),
- partial_result_params: PartialResultParams::default(),
- };
- self.request(params)
- }
-
- pub fn hover(self) -> FeatureRequest<HoverParams> {
- let params = HoverParams {
- text_document_position_params: TextDocumentPositionParams::new(
- self.identifier(),
- Position::new(self.line, self.character),
- ),
- work_done_progress_params: WorkDoneProgressParams::default(),
- };
- self.request(params)
- }
-
- pub fn completion(self) -> FeatureRequest<CompletionParams> {
- let params = CompletionParams {
- text_document_position: TextDocumentPositionParams::new(
- self.identifier(),
- Position::new(self.line, self.character),
- ),
- work_done_progress_params: WorkDoneProgressParams::default(),
- partial_result_params: PartialResultParams::default(),
- context: None,
- };
-
- self.request(params)
- }
-
- pub fn definition(self) -> FeatureRequest<GotoDefinitionParams> {
- let params = GotoDefinitionParams {
- text_document_position_params: TextDocumentPositionParams::new(
- self.identifier(),
- Position::new(self.line, self.character),
- ),
- work_done_progress_params: WorkDoneProgressParams::default(),
- partial_result_params: PartialResultParams::default(),
- };
- self.request(params)
- }
-
- pub fn rename(self) -> FeatureRequest<RenameParams> {
- let params = RenameParams {
- text_document_position: TextDocumentPositionParams::new(
- self.identifier(),
- Position::new(self.line, self.character),
- ),
- new_name: self.new_name.to_string(),
- work_done_progress_params: WorkDoneProgressParams::default(),
- };
- self.request(params)
- }
-
- pub fn formatting(self) -> FeatureRequest<DocumentFormattingParams> {
- let params = DocumentFormattingParams {
- text_document: self.identifier(),
- work_done_progress_params: WorkDoneProgressParams::default(),
- options: FormattingOptions::default(),
- };
- self.request(params)
- }
-
- pub fn highlight(self) -> FeatureRequest<DocumentHighlightParams> {
- let params = DocumentHighlightParams {
- text_document_position_params: TextDocumentPositionParams::new(
- self.identifier(),
- Position::new(self.line, self.character),
- ),
- work_done_progress_params: WorkDoneProgressParams::default(),
- partial_result_params: PartialResultParams::default(),
- };
- self.request(params)
- }
- }
-}
diff --git a/support/texlab/src/features/build.rs b/support/texlab/src/features/build.rs
index 7821fac43d..ae465590fc 100644
--- a/support/texlab/src/features/build.rs
+++ b/support/texlab/src/features/build.rs
@@ -84,7 +84,7 @@ impl<'a> ProgressReporter<'a> {
impl<'a> Drop for ProgressReporter<'a> {
fn drop(&mut self) {
if self.supports_progress {
- let _ = client::send_notification::<Progress>(
+ drop(client::send_notification::<Progress>(
&self.lsp_sender,
ProgressParams {
token: NumberOrString::String(self.token.to_string()),
@@ -92,7 +92,7 @@ impl<'a> Drop for ProgressReporter<'a> {
WorkDoneProgressEnd { message: None },
)),
},
- );
+ ));
}
}
}
diff --git a/support/texlab/src/features/completion.rs b/support/texlab/src/features/completion.rs
index 3b5187f8eb..3009b437e7 100644
--- a/support/texlab/src/features/completion.rs
+++ b/support/texlab/src/features/completion.rs
@@ -71,6 +71,7 @@ use super::{
pub const COMPLETION_LIMIT: usize = 50;
+#[must_use]
pub fn complete(request: FeatureRequest<CompletionParams>) -> Option<CompletionList> {
let mut items = Vec::new();
let context = CursorContext::new(request);
@@ -172,7 +173,6 @@ fn score(context: &CursorContext<CompletionParams>, items: &mut Vec<InternalComp
token.text().into()
}
}
- Cursor::Latex(_) => "".into(),
Cursor::Bibtex(token)
if matches!(
token.kind(),
@@ -185,8 +185,7 @@ fn score(context: &CursorContext<CompletionParams>, items: &mut Vec<InternalComp
{
token.text().into()
}
- Cursor::Bibtex(_) => "".into(),
- Cursor::Nothing => "".into(),
+ Cursor::Latex(_) | Cursor::Bibtex(_) | Cursor::Nothing => "".into(),
};
let file_pattern = pattern.split('/').last().unwrap();
diff --git a/support/texlab/src/features/completion/acronym_ref.rs b/support/texlab/src/features/completion/acronym_ref.rs
index 2bb931fde4..84cbd8bc23 100644
--- a/support/texlab/src/features/completion/acronym_ref.rs
+++ b/support/texlab/src/features/completion/acronym_ref.rs
@@ -30,123 +30,3 @@ pub fn complete_acronyms<'a>(
}
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_acronyms(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_acronyms(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n\\acrshort{f}")])
- .main("main.tex")
- .line(1)
- .character(11)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_acronyms(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(87.into(), 88.into()));
- }
- }
-
- #[test]
- fn test_empty() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n\\acrshort{}")])
- .main("main.tex")
- .line(1)
- .character(10)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_acronyms(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(87.into(), 87.into()));
- }
- }
-
- #[test]
- fn test_after_group() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n\\acrshort{}")])
- .main("main.tex")
- .line(1)
- .character(11)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_acronyms(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_open_brace() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n\\acrshort{f")])
- .main("main.tex")
- .line(1)
- .character(11)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_acronyms(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(87.into(), 88.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/argument.rs b/support/texlab/src/features/completion/argument.rs
index ded16b359e..3ba28f9dea 100644
--- a/support/texlab/src/features/completion/argument.rs
+++ b/support/texlab/src/features/completion/argument.rs
@@ -65,123 +65,3 @@ pub fn complete_arguments<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_arguments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_arguments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", r#"\mathbb{}\usepackage{amsfonts}"#)])
- .main("main.tex")
- .line(0)
- .character(8)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_arguments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(8.into(), 8.into()));
- }
- }
-
- #[test]
- fn test_latex_word() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", r#"\mathbb{foo}\usepackage{amsfonts}"#)])
- .main("main.tex")
- .line(0)
- .character(8)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_arguments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(8.into(), 11.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\mathbb{ \\usepackage{amsfonts}")])
- .main("main.tex")
- .line(0)
- .character(8)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_arguments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(8.into(), 8.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace_second() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\mathbb{}{\\usepackage{amsfonts}")])
- .main("main.tex")
- .line(0)
- .character(10)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_arguments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-}
diff --git a/support/texlab/src/features/completion/begin_command.rs b/support/texlab/src/features/completion/begin_command.rs
index b9b4f06117..699b06c067 100644
--- a/support/texlab/src/features/completion/begin_command.rs
+++ b/support/texlab/src/features/completion/begin_command.rs
@@ -16,66 +16,3 @@ pub fn complete_begin_command(
));
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_begin_command(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_begin_command(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\")])
- .main("main.tex")
- .line(0)
- .character(1)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_begin_command(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 1.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/citation.rs b/support/texlab/src/features/completion/citation.rs
index 92b21f0ffc..e6436689d7 100644
--- a/support/texlab/src/features/completion/citation.rs
+++ b/support/texlab/src/features/completion/citation.rs
@@ -42,7 +42,7 @@ pub fn complete_citations<'a>(
.children()
.filter_map(bibtex::Entry::cast)
{
- if let Some(item) = make_item(document, entry, range) {
+ if let Some(item) = make_item(document, &entry, range) {
items.push(item);
}
}
@@ -61,7 +61,9 @@ fn check_citation(context: &CursorContext<CompletionParams>) -> Option<()> {
fn check_acronym(context: &CursorContext<CompletionParams>) -> Option<()> {
let token = context.cursor.as_latex()?;
- let pair = token.ancestors().find_map(latex::KeyValuePair::cast)?;
+ let pair = token
+ .parent_ancestors()
+ .find_map(latex::KeyValuePair::cast)?;
if pair.key()?.to_string() != "cite" {
return None;
}
@@ -70,16 +72,18 @@ fn check_acronym(context: &CursorContext<CompletionParams>) -> Option<()> {
Some(())
}
-fn make_item(
- document: &Document,
- entry: bibtex::Entry,
+fn make_item<'a>(
+ document: &'a Document,
+ entry: &bibtex::Entry,
range: TextRange,
-) -> Option<InternalCompletionItem> {
+) -> Option<InternalCompletionItem<'a>> {
let key = entry.name_token()?.to_string();
let ty = LANGUAGE_DATA
.find_entry_type(&entry.type_token()?.text()[1..])
- .map(|ty| Structure::Entry(ty.category))
- .unwrap_or_else(|| Structure::Entry(BibtexEntryTypeCategory::Misc));
+ .map_or_else(
+ || Structure::Entry(BibtexEntryTypeCategory::Misc),
+ |ty| Structure::Entry(ty.category),
+ );
let entry_code = entry.syntax().text().to_string();
let text = format!(
@@ -88,8 +92,8 @@ fn make_item(
WHITESPACE_REGEX
.replace_all(
&entry_code
- .replace('{', "")
- .replace('}', "")
+ .replace('{', " ")
+ .replace('}', " ")
.replace(',', " ")
.replace('=', " "),
" "
@@ -109,188 +113,3 @@ fn make_item(
}
static WHITESPACE_REGEX: Lazy<Regex> = Lazy::new(|| Regex::new("\\s+").unwrap());
-
-#[cfg(test)]
-mod tests {
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_citations(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_citations(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple() {
- let request = FeatureTester::builder()
- .files(vec![
- ("main.tex", "\\addbibresource{main.bib}\n\\cite{}"),
- ("main.bib", "@article{foo,}"),
- ])
- .main("main.tex")
- .line(1)
- .character(6)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_citations(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(32.into(), 32.into()));
- }
- }
-
- #[test]
- fn test_latex_two_words() {
- let request = FeatureTester::builder()
- .files(vec![
- ("main.tex", "\\addbibresource{main.bib}\n\\cite{foo}"),
- ("main.bib", "@article{foo bar,}"),
- ])
- .main("main.tex")
- .line(1)
- .character(6)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_citations(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(32.into(), 35.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace() {
- let request = FeatureTester::builder()
- .files(vec![
- ("main.tex", "\\addbibresource{main.bib}\n\\cite{"),
- ("main.bib", "@article{foo,}"),
- ])
- .main("main.tex")
- .line(1)
- .character(6)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_citations(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(32.into(), 32.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace_second() {
- let request = FeatureTester::builder()
- .files(vec![
- ("main.tex", "\\addbibresource{main.bib}\n\\cite{foo,a"),
- ("main.bib", "@article{foo,}"),
- ])
- .main("main.tex")
- .line(1)
- .character(10)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_citations(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(36.into(), 37.into()));
- }
- }
-
- #[test]
- fn test_latex_acronym() {
- let request = FeatureTester::builder()
- .files(vec![
- (
- "main.tex",
- "\\addbibresource{main.bib}\n\\DeclareAcronym{foo}{cite={\n}}",
- ),
- ("main.bib", "@article{foo,}"),
- ])
- .main("main.tex")
- .line(2)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_citations(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(54.into(), 54.into()));
- }
- }
-
- #[test]
- fn test_latex_acronym_two_words() {
- let request = FeatureTester::builder()
- .files(vec![
- (
- "main.tex",
- "\\addbibresource{main.bib}\n\\DeclareAcronym{foo}{cite={\na b}}",
- ),
- ("main.bib", "@article{foo,}"),
- ])
- .main("main.tex")
- .line(2)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_citations(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(54.into(), 57.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/color.rs b/support/texlab/src/features/completion/color.rs
index 1d241d2c94..a9a385c3c9 100644
--- a/support/texlab/src/features/completion/color.rs
+++ b/support/texlab/src/features/completion/color.rs
@@ -21,86 +21,3 @@ pub fn complete_colors<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_colors(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_colors(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\color{}")])
- .main("main.tex")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_colors(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(7.into(), 7.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\color{")])
- .main("main.tex")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_colors(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(7.into(), 7.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/color_model.rs b/support/texlab/src/features/completion/color_model.rs
index 2190b690ad..cd582d0031 100644
--- a/support/texlab/src/features/completion/color_model.rs
+++ b/support/texlab/src/features/completion/color_model.rs
@@ -41,126 +41,3 @@ fn check_color_definition_set(context: &CursorContext<CompletionParams>) -> Opti
.filter(|model| model.syntax().text_range() == group.syntax().text_range())?;
Some(range)
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_color_models(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_color_models(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_definition_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\definecolor{foo}{}")])
- .main("main.tex")
- .line(0)
- .character(18)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_color_models(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(18.into(), 18.into()));
- }
- }
-
- #[test]
- fn test_definition_open_brace() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\definecolor{foo}{")])
- .main("main.tex")
- .line(0)
- .character(18)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_color_models(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(18.into(), 18.into()));
- }
- }
-
- #[test]
- fn test_definition_set_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\definecolorset{}")])
- .main("main.tex")
- .line(0)
- .character(16)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_color_models(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(16.into(), 16.into()));
- }
- }
-
- #[test]
- fn test_definition_set_open_brace() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\definecolorset{")])
- .main("main.tex")
- .line(0)
- .character(16)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_color_models(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(16.into(), 16.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/component_command.rs b/support/texlab/src/features/completion/component_command.rs
index b93a782512..097b28633f 100644
--- a/support/texlab/src/features/completion/component_command.rs
+++ b/support/texlab/src/features/completion/component_command.rs
@@ -26,147 +26,3 @@ pub fn complete_component_commands<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_commands(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_commands(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\")])
- .main("main.tex")
- .line(0)
- .character(1)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_commands(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 1.into()));
- }
- }
-
- #[test]
- fn test_latex_simple_before() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_commands(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple_package() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\\n\\usepackage{lipsum}")])
- .main("main.tex")
- .line(0)
- .character(1)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_commands(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in &actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 1.into()));
- }
-
- assert!(actual_items
- .iter()
- .any(|item| item.data.label() == "lipsum"));
- }
-
- #[test]
- fn test_latex_simple_existing() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\foo")])
- .main("main.tex")
- .line(0)
- .character(2)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_commands(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 4.into()));
- }
- }
-
- #[test]
- fn test_bibtex_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@a{b,c={\\ }}")])
- .main("main.bib")
- .line(0)
- .character(9)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_commands(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(9.into(), 10.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/component_environment.rs b/support/texlab/src/features/completion/component_environment.rs
index 057e98e491..a9478694bb 100644
--- a/support/texlab/src/features/completion/component_environment.rs
+++ b/support/texlab/src/features/completion/component_environment.rs
@@ -24,150 +24,3 @@ pub fn complete_component_environments<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_environments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_environments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\begin{")])
- .main("main.tex")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_environments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(7.into(), 7.into()));
- }
- }
-
- #[test]
- fn test_simple_end() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\begin{a}\n\\end{")])
- .main("main.tex")
- .line(1)
- .character(5)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_environments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(15.into(), 15.into()));
- }
- }
-
- #[test]
- fn test_simple_class() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\begin{}\n\\documentclass{article}")])
- .main("main.tex")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_environments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in &actual_items {
- assert_eq!(item.range, TextRange::new(7.into(), 7.into()));
- }
-
- assert!(actual_items
- .iter()
- .any(|item| item.data.label() == "theindex"));
- }
-
- #[test]
- fn test_simple_existing() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\begin{d}")])
- .main("main.tex")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_environments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(7.into(), 8.into()));
- }
- }
-
- #[test]
- fn test_command_definition() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\newcommand{\\foo}{\\begin{\nd}")])
- .main("main.tex")
- .line(1)
- .character(1)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_component_environments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(26.into(), 27.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/entry_type.rs b/support/texlab/src/features/completion/entry_type.rs
index 06180dd8cc..519737ed08 100644
--- a/support/texlab/src/features/completion/entry_type.rs
+++ b/support/texlab/src/features/completion/entry_type.rs
@@ -13,7 +13,7 @@ pub fn complete_entry_types<'a>(
.cursor
.as_bibtex()
.filter(|token| token.kind() == bibtex::TYPE)
- .map(|token| token.text_range())
+ .map(bibtex::SyntaxToken::text_range)
.filter(|range| range.start() != context.offset)
.map(|range| TextRange::new(range.start() + TextSize::from(1), range.end()))?;
@@ -25,201 +25,3 @@ pub fn complete_entry_types<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_at_empty() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@")])
- .main("main.bib")
- .line(0)
- .character(1)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 1.into()));
- }
- }
-
- #[test]
- fn test_before_preamble() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@preamble")])
- .main("main.bib")
- .line(0)
- .character(1)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 9.into()));
- }
- }
-
- #[test]
- fn test_before_string() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@string")])
- .main("main.bib")
- .line(0)
- .character(1)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 7.into()));
- }
- }
-
- #[test]
- fn test_before_article() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article")])
- .main("main.bib")
- .line(0)
- .character(1)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 8.into()));
- }
- }
-
- #[test]
- fn test_after_preamble() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@preamble{")])
- .main("main.bib")
- .line(0)
- .character(9)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 9.into()));
- }
- }
-
- #[test]
- fn test_after_string() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@string{")])
- .main("main.bib")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 7.into()));
- }
- }
-
- #[test]
- fn test_complete_entry() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, author = {foo}}")])
- .main("main.bib")
- .line(0)
- .character(3)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 8.into()));
- }
- }
-
- #[test]
- fn test_complete_entry_field() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, author = {foo}}")])
- .main("main.bib")
- .line(0)
- .character(17)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_entry_types(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-}
diff --git a/support/texlab/src/features/completion/field.rs b/support/texlab/src/features/completion/field.rs
index 051b8d69b5..4f386ed1b1 100644
--- a/support/texlab/src/features/completion/field.rs
+++ b/support/texlab/src/features/completion/field.rs
@@ -37,161 +37,3 @@ pub fn complete_fields<'a>(
}
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_fields(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_fields(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_entry_open() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo,")])
- .main("main.bib")
- .line(0)
- .character(13)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_fields(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(13.into(), 13.into()));
- }
- }
-
- #[test]
- fn test_empty_entry_closed() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo,}")])
- .main("main.bib")
- .line(0)
- .character(13)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_fields(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(13.into(), 13.into()));
- }
- }
-
- #[test]
- fn test_entry_field_name() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, a")])
- .main("main.bib")
- .line(0)
- .character(15)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_fields(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(14.into(), 15.into()));
- }
- }
-
- #[test]
- fn test_entry_field_value() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, author = bar}")])
- .main("main.bib")
- .line(0)
- .character(24)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_fields(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_entry_two_fields_name_closed() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, author = bar, baz}")])
- .main("main.bib")
- .line(0)
- .character(29)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_fields(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(28.into(), 31.into()));
- }
- }
-
- #[test]
- fn test_entry_two_fields_name_open() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, author = bar, baz")])
- .main("main.bib")
- .line(0)
- .character(29)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_fields(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(28.into(), 31.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/glossary_ref.rs b/support/texlab/src/features/completion/glossary_ref.rs
index 6805108f16..6223079fdf 100644
--- a/support/texlab/src/features/completion/glossary_ref.rs
+++ b/support/texlab/src/features/completion/glossary_ref.rs
@@ -40,86 +40,3 @@ pub fn complete_glossary_entries<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_glossary_entries(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_glossary_entries(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n\\gls{f}")])
- .main("main.tex")
- .line(1)
- .character(6)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_glossary_entries(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(82.into(), 83.into()));
- }
- }
-
- #[test]
- fn test_open_brace() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n\\gls{f")])
- .main("main.tex")
- .line(1)
- .character(6)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_glossary_entries(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(82.into(), 83.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/import.rs b/support/texlab/src/features/completion/import.rs
index 6e3a8deeaa..9cb35b68a7 100644
--- a/support/texlab/src/features/completion/import.rs
+++ b/support/texlab/src/features/completion/import.rs
@@ -38,8 +38,7 @@ pub fn complete_imports<'a>(
file_names.insert(file_name);
let stem = &file_name[0..file_name.len() - 4];
let data = factory(stem.into());
- let item = InternalCompletionItem::new(range, data);
- items.push(item);
+ items.push(InternalCompletionItem::new(range, data));
}
let resolver = &context.request.workspace.environment.resolver;
@@ -50,132 +49,8 @@ pub fn complete_imports<'a>(
{
let stem = &file_name[0..file_name.len() - 4];
let data = factory(stem.into());
- let item = InternalCompletionItem::new(range, data);
- items.push(item);
+ items.push(InternalCompletionItem::new(range, data));
}
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_imports(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_imports(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple_package() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\usepackage{}")])
- .main("main.tex")
- .line(0)
- .character(12)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_imports(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(12.into(), 12.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace_package() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\usepackage{ \\foo")])
- .main("main.tex")
- .line(0)
- .character(12)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_imports(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(12.into(), 12.into()));
- }
- }
-
- #[test]
- fn test_latex_simple_class() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\documentclass{}")])
- .main("main.tex")
- .line(0)
- .character(15)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_imports(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(15.into(), 15.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace_class() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\documentclass{ \\foo")])
- .main("main.tex")
- .line(0)
- .character(15)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_imports(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(15.into(), 15.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/include.rs b/support/texlab/src/features/completion/include.rs
index 7f6767b89f..d851aca820 100644
--- a/support/texlab/src/features/completion/include.rs
+++ b/support/texlab/src/features/completion/include.rs
@@ -101,19 +101,21 @@ fn current_dir(
.options
.root_directory
.as_ref()
- .map(|root_directory| {
- context
- .request
- .workspace
- .environment
- .current_directory
- .join(root_directory)
- })
- .unwrap_or_else(|| {
- let mut path = context.request.main_document().uri.to_file_path().unwrap();
- path.pop();
- path
- });
+ .map_or_else(
+ || {
+ let mut path = context.request.main_document().uri.to_file_path().unwrap();
+ path.pop();
+ path
+ },
+ |root_directory| {
+ context
+ .request
+ .workspace
+ .environment
+ .current_directory
+ .join(root_directory)
+ },
+ );
path = PathBuf::from(path.to_str()?.replace('\\', "/"));
if !path_text.is_empty() {
@@ -133,8 +135,8 @@ fn is_included(file: &Path, allowed_extensions: &[&str]) -> bool {
allowed_extensions.is_empty()
|| file
.extension()
- .and_then(|ext| ext.to_str())
- .map(|ext| ext.to_lowercase())
+ .and_then(std::ffi::OsStr::to_str)
+ .map(str::to_lowercase)
.map(|ext| allowed_extensions.contains(&ext.as_str()))
.unwrap_or_default()
}
@@ -142,51 +144,10 @@ fn is_included(file: &Path, allowed_extensions: &[&str]) -> bool {
fn remove_extension(path: &mut PathBuf) {
if let Some(stem) = path
.file_stem()
- .and_then(|stem| stem.to_str())
+ .and_then(std::ffi::OsStr::to_str)
.map(ToOwned::to_owned)
{
path.pop();
path.push(stem);
}
}
-
-#[cfg(test)]
-mod tests {
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_includes(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_includes(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-}
diff --git a/support/texlab/src/features/completion/label.rs b/support/texlab/src/features/completion/label.rs
index e6c02db565..b662f98c8a 100644
--- a/support/texlab/src/features/completion/label.rs
+++ b/support/texlab/src/features/completion/label.rs
@@ -99,106 +99,3 @@ fn find_reference_range(context: &CursorContext<CompletionParams>) -> Option<(Te
latex::LabelReferenceRange::cast(group.syntax().parent()?)?;
Some((range, false))
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_labels(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_labels(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\ref{}\\label{foo}")])
- .main("main.tex")
- .line(0)
- .character(5)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_labels(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(5.into(), 5.into()));
- }
- }
-
- #[test]
- fn test_simple_range() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\crefrange{\n\\label{foo}")])
- .main("main.tex")
- .line(0)
- .character(11)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_labels(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(11.into(), 11.into()));
- }
- }
-
- #[test]
- fn test_multi_word() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\ref{foo}\\label{foo bar}")])
- .main("main.tex")
- .line(0)
- .character(8)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_labels(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(5.into(), 8.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/theorem.rs b/support/texlab/src/features/completion/theorem.rs
index 0945d1df51..65b511f7ad 100644
--- a/support/texlab/src/features/completion/theorem.rs
+++ b/support/texlab/src/features/completion/theorem.rs
@@ -25,109 +25,3 @@ pub fn complete_theorem_environments<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_theorem_environments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_theorem_environments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\begin{ \\newtheorem{lemma}{Lemma}")])
- .main("main.tex")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_theorem_environments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(7.into(), 7.into()));
- }
- }
-
- #[test]
- fn test_simple_end() {
- let request = FeatureTester::builder()
- .files(vec![(
- "main.tex",
- "\\newtheorem{lemma}{Lemma}\\begin{a}\n\\end{",
- )])
- .main("main.tex")
- .line(1)
- .character(5)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_theorem_environments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(40.into(), 40.into()));
- }
- }
-
- #[test]
- fn test_simple_existing() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\begin{d}\\newtheorem{lemma}{Lemma}")])
- .main("main.tex")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_theorem_environments(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(7.into(), 8.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/tikz_library.rs b/support/texlab/src/features/completion/tikz_library.rs
index 62d66782a3..bf15695722 100644
--- a/support/texlab/src/features/completion/tikz_library.rs
+++ b/support/texlab/src/features/completion/tikz_library.rs
@@ -31,126 +31,3 @@ pub fn complete_tikz_libraries<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_tikz_libraries(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_tikz_libraries(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple_pgf() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\usepgflibrary{}")])
- .main("main.tex")
- .line(0)
- .character(15)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_tikz_libraries(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(15.into(), 15.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace_pgf() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\usepgflibrary{")])
- .main("main.tex")
- .line(0)
- .character(15)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_tikz_libraries(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(15.into(), 15.into()));
- }
- }
-
- #[test]
- fn test_latex_simple_tikz() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\usetikzlibrary{}")])
- .main("main.tex")
- .line(0)
- .character(16)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_tikz_libraries(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(16.into(), 16.into()));
- }
- }
-
- #[test]
- fn test_latex_open_brace_tikz() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\usetikzlibrary{")])
- .main("main.tex")
- .line(0)
- .character(16)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_tikz_libraries(&context, &mut actual_items);
-
- assert!(!actual_items.is_empty());
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(16.into(), 16.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/user_command.rs b/support/texlab/src/features/completion/user_command.rs
index 8355025098..8c4d593bee 100644
--- a/support/texlab/src/features/completion/user_command.rs
+++ b/support/texlab/src/features/completion/user_command.rs
@@ -30,66 +30,3 @@ pub fn complete_user_commands<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_user_commands(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_user_commands(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "\\foo\\bar")])
- .main("main.tex")
- .line(0)
- .character(4)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_user_commands(&context, &mut actual_items);
-
- assert_eq!(actual_items.len(), 1);
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(1.into(), 4.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/completion/user_environment.rs b/support/texlab/src/features/completion/user_environment.rs
index 3db135865e..91dd5a9ea2 100644
--- a/support/texlab/src/features/completion/user_environment.rs
+++ b/support/texlab/src/features/completion/user_environment.rs
@@ -29,69 +29,3 @@ pub fn complete_user_environments<'a>(
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use rowan::TextRange;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_user_environments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_user_environments(&context, &mut actual_items);
-
- assert!(actual_items.is_empty());
- }
-
- #[test]
- fn test_latex_simple() {
- let request = FeatureTester::builder()
- .files(vec![(
- "main.tex",
- "\\begin{foo}\\end{foo} \\begin{bar}\\end{bar}",
- )])
- .main("main.tex")
- .line(0)
- .character(7)
- .build()
- .completion();
-
- let context = CursorContext::new(request);
- let mut actual_items = Vec::new();
- complete_user_environments(&context, &mut actual_items);
-
- assert_eq!(actual_items.len(), 1);
- for item in actual_items {
- assert_eq!(item.range, TextRange::new(7.into(), 10.into()));
- }
- }
-}
diff --git a/support/texlab/src/features/definition.rs b/support/texlab/src/features/definition.rs
index b54a2be9f0..20da72a142 100644
--- a/support/texlab/src/features/definition.rs
+++ b/support/texlab/src/features/definition.rs
@@ -4,7 +4,12 @@ mod entry;
mod label;
mod string;
-use lsp_types::{GotoDefinitionParams, GotoDefinitionResponse};
+use std::sync::Arc;
+
+use lsp_types::{GotoDefinitionParams, GotoDefinitionResponse, LocationLink, Url};
+use rowan::TextRange;
+
+use crate::LineIndexExt;
use self::{
command::goto_command_definition, document::goto_document_definition,
@@ -18,10 +23,46 @@ pub fn goto_definition(
) -> Option<GotoDefinitionResponse> {
let context = CursorContext::new(request);
log::debug!("[Definition] Cursor: {:?}", context.cursor);
- let links = goto_command_definition(&context)
+
+ let origin_document = context.request.main_document();
+ let links: Vec<_> = goto_command_definition(&context)
.or_else(|| goto_document_definition(&context))
.or_else(|| goto_entry_definition(&context))
.or_else(|| goto_label_definition(&context))
- .or_else(|| goto_string_definition(&context))?;
+ .or_else(|| goto_string_definition(&context))?
+ .into_iter()
+ .map(|result| {
+ let origin_selection_range = Some(
+ origin_document
+ .line_index
+ .line_col_lsp_range(result.origin_selection_range),
+ );
+
+ let target_document = &context.request.workspace.documents_by_uri[&result.target_uri];
+ let target_uri = result.target_uri.as_ref().clone();
+ let target_range = target_document
+ .line_index
+ .line_col_lsp_range(result.target_range);
+ let target_selection_range = target_document
+ .line_index
+ .line_col_lsp_range(result.target_selection_range);
+
+ LocationLink {
+ origin_selection_range,
+ target_uri,
+ target_range,
+ target_selection_range,
+ }
+ })
+ .collect();
+
Some(GotoDefinitionResponse::Link(links))
}
+
+#[derive(Debug, Clone)]
+struct DefinitionResult {
+ origin_selection_range: TextRange,
+ target_uri: Arc<Url>,
+ target_range: TextRange,
+ target_selection_range: TextRange,
+}
diff --git a/support/texlab/src/features/definition/command.rs b/support/texlab/src/features/definition/command.rs
index 72cd4b5909..599c792dfd 100644
--- a/support/texlab/src/features/definition/command.rs
+++ b/support/texlab/src/features/definition/command.rs
@@ -1,123 +1,47 @@
-use lsp_types::{GotoDefinitionParams, LocationLink};
+use std::sync::Arc;
+
+use lsp_types::GotoDefinitionParams;
use rowan::ast::AstNode;
-use crate::{features::cursor::CursorContext, syntax::latex, LineIndexExt};
+use crate::{features::cursor::CursorContext, syntax::latex};
-pub fn goto_command_definition(
- context: &CursorContext<GotoDefinitionParams>,
-) -> Option<Vec<LocationLink>> {
- let main_document = context.request.main_document();
+use super::DefinitionResult;
+pub(super) fn goto_command_definition(
+ context: &CursorContext<GotoDefinitionParams>,
+) -> Option<Vec<DefinitionResult>> {
let name = context
.cursor
.as_latex()
.filter(|token| token.kind().is_command_name())?;
- let origin_selection_range = main_document
- .line_index
- .line_col_lsp_range(name.text_range());
+ let origin_selection_range = name.text_range();
for document in context.request.workspace.documents_by_uri.values() {
if let Some(data) = document.data.as_latex() {
- for node in latex::SyntaxNode::new_root(data.green.clone()).descendants() {
- if let Some(defintion) = latex::CommandDefinition::cast(node).filter(|def| {
+ let root = latex::SyntaxNode::new_root(data.green.clone());
+
+ if let Some(result) = root
+ .descendants()
+ .filter_map(latex::CommandDefinition::cast)
+ .filter(|def| {
def.name()
.and_then(|name| name.command())
.map_or(false, |node| node.text() == name.text())
- }) {
- let target_selection_range = document
- .line_index
- .line_col_lsp_range(defintion.name()?.command()?.text_range());
-
- let target_range = document
- .line_index
- .line_col_lsp_range(latex::small_range(&defintion));
-
- return Some(vec![LocationLink {
- origin_selection_range: Some(origin_selection_range),
- target_uri: document.uri.as_ref().clone(),
- target_range,
- target_selection_range,
- }]);
- }
+ })
+ .find_map(|def| {
+ Some(DefinitionResult {
+ origin_selection_range,
+ target_uri: Arc::clone(&document.uri),
+ target_range: latex::small_range(&def),
+ target_selection_range: def.name()?.command()?.text_range(),
+ })
+ })
+ {
+ return Some(vec![result]);
}
}
}
None
}
-
-#[cfg(test)]
-mod tests {
- use indoc::indoc;
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
-
- let actual_links = goto_command_definition(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_command_definition(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_command_definition() {
- let tester = FeatureTester::builder()
- .files(vec![(
- "main.tex",
- indoc! {
- r#"
- \DeclareMathOperator{\foo}{foo}
- \foo
- "#
- },
- )])
- .main("main.tex")
- .line(1)
- .character(2)
- .build();
- let target_uri = tester.uri("main.tex").as_ref().clone();
-
- let request = tester.definition();
- let context = CursorContext::new(request);
- let actual_links = goto_command_definition(&context).unwrap();
-
- let expected_links = vec![LocationLink {
- origin_selection_range: Some(Range::new_simple(1, 0, 1, 4)),
- target_uri,
- target_range: Range::new_simple(0, 0, 0, 31),
- target_selection_range: Range::new_simple(0, 21, 0, 25),
- }];
-
- assert_eq!(actual_links, expected_links);
- }
-}
diff --git a/support/texlab/src/features/definition/document.rs b/support/texlab/src/features/definition/document.rs
index 2a93232cd7..1c09bbc88d 100644
--- a/support/texlab/src/features/definition/document.rs
+++ b/support/texlab/src/features/definition/document.rs
@@ -1,108 +1,40 @@
-use lsp_types::{GotoDefinitionParams, LocationLink, Range};
+use std::sync::Arc;
-use crate::{features::cursor::CursorContext, LineIndexExt, RangeExt};
+use lsp_types::GotoDefinitionParams;
+use rowan::TextRange;
-pub fn goto_document_definition(
+use crate::features::cursor::CursorContext;
+
+use super::DefinitionResult;
+
+pub(super) fn goto_document_definition(
context: &CursorContext<GotoDefinitionParams>,
-) -> Option<Vec<LocationLink>> {
- let main_document = context.request.main_document();
- if let Some(data) = main_document.data.as_latex() {
- for include in data
- .extras
- .explicit_links
- .iter()
- .filter(|link| link.stem_range.contains_inclusive(context.offset))
- {
- for target in &include.targets {
- if context
- .request
- .workspace
- .documents_by_uri
- .values()
- .any(|document| document.uri.as_ref() == target.as_ref())
- {
- return Some(vec![LocationLink {
- origin_selection_range: Some(
- main_document
- .line_index
- .line_col_lsp_range(include.stem_range),
- ),
- target_uri: target.as_ref().clone(),
- target_range: Range::new_simple(0, 0, 0, 0),
- target_selection_range: Range::new_simple(0, 0, 0, 0),
- }]);
- }
+) -> Option<Vec<DefinitionResult>> {
+ let data = context.request.main_document().data.as_latex()?;
+
+ for include in data
+ .extras
+ .explicit_links
+ .iter()
+ .filter(|link| link.stem_range.contains_inclusive(context.offset))
+ {
+ for target in &include.targets {
+ if context
+ .request
+ .workspace
+ .documents_by_uri
+ .values()
+ .any(|document| document.uri.as_ref() == target.as_ref())
+ {
+ return Some(vec![DefinitionResult {
+ origin_selection_range: include.stem_range,
+ target_uri: Arc::clone(target),
+ target_range: TextRange::default(),
+ target_selection_range: TextRange::default(),
+ }]);
}
}
}
- None
-}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_document_definition(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_document_definition(&context);
-
- assert!(actual_links.is_none());
- }
- #[test]
- fn test_simple() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.tex", r#"\addbibresource{baz.bib}"#),
- ("bar.bib", r#"@article{foo, bar = {baz}}"#),
- ("baz.bib", r#"@article{foo, bar = {baz}}"#),
- ])
- .main("foo.tex")
- .line(0)
- .character(18)
- .build();
- let target_uri = tester.uri("baz.bib").as_ref().clone();
-
- let request = tester.definition();
- let context = CursorContext::new(request);
- let actual_links = goto_document_definition(&context).unwrap();
-
- let expected_links = vec![LocationLink {
- origin_selection_range: Some(Range::new_simple(0, 16, 0, 23)),
- target_uri,
- target_range: Range::new_simple(0, 0, 0, 0),
- target_selection_range: Range::new_simple(0, 0, 0, 0),
- }];
-
- assert_eq!(actual_links, expected_links);
- }
+ None
}
diff --git a/support/texlab/src/features/definition/entry.rs b/support/texlab/src/features/definition/entry.rs
index a1ae28705d..1dcd983af1 100644
--- a/support/texlab/src/features/definition/entry.rs
+++ b/support/texlab/src/features/definition/entry.rs
@@ -1,4 +1,6 @@
-use lsp_types::{GotoDefinitionParams, LocationLink};
+use std::sync::Arc;
+
+use lsp_types::GotoDefinitionParams;
use rowan::ast::AstNode;
use crate::{
@@ -7,14 +9,13 @@ use crate::{
bibtex::{self, HasName},
latex,
},
- LineIndexExt,
};
-pub fn goto_entry_definition(
- context: &CursorContext<GotoDefinitionParams>,
-) -> Option<Vec<LocationLink>> {
- let main_document = context.request.main_document();
+use super::DefinitionResult;
+pub(super) fn goto_entry_definition(
+ context: &CursorContext<GotoDefinitionParams>,
+) -> Option<Vec<DefinitionResult>> {
let word = context
.cursor
.as_latex()
@@ -24,9 +25,7 @@ pub fn goto_entry_definition(
latex::Citation::cast(key.syntax().parent()?.parent()?)?;
- let origin_selection_range = main_document
- .line_index
- .line_col_lsp_range(latex::small_range(&key));
+ let origin_selection_range = latex::small_range(&key);
for document in context.request.workspace.documents_by_uri.values() {
if let Some(data) = document.data.as_bibtex() {
@@ -35,15 +34,11 @@ pub fn goto_entry_definition(
.filter_map(bibtex::Entry::cast)
{
if let Some(key) = entry.name_token().filter(|k| k.text() == word.text()) {
- return Some(vec![LocationLink {
- origin_selection_range: Some(origin_selection_range),
- target_uri: document.uri.as_ref().clone(),
- target_selection_range: document
- .line_index
- .line_col_lsp_range(key.text_range()),
- target_range: document
- .line_index
- .line_col_lsp_range(entry.syntax().text_range()),
+ return Some(vec![DefinitionResult {
+ origin_selection_range,
+ target_uri: Arc::clone(&document.uri),
+ target_selection_range: key.text_range(),
+ target_range: entry.syntax().text_range(),
}]);
}
}
@@ -52,81 +47,3 @@ pub fn goto_entry_definition(
None
}
-
-#[cfg(test)]
-mod tests {
- use indoc::indoc;
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_entry_definition(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_entry_definition(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_simple() {
- let tester = FeatureTester::builder()
- .files(vec![
- (
- "foo.tex",
- indoc!(
- r#"
- \addbibresource{baz.bib}
- \cite{foo}
- "#
- ),
- ),
- ("bar.bib", r#"@article{foo, bar = {baz}}"#),
- ("baz.bib", r#"@article{foo, bar = {baz}}"#),
- ])
- .main("foo.tex")
- .line(1)
- .character(6)
- .build();
- let target_uri = tester.uri("baz.bib").as_ref().clone();
-
- let request = tester.definition();
- let context = CursorContext::new(request);
- let actual_links = goto_entry_definition(&context).unwrap();
-
- let expected_links = vec![LocationLink {
- origin_selection_range: Some(Range::new_simple(1, 6, 1, 9)),
- target_uri,
- target_range: Range::new_simple(0, 0, 0, 26),
- target_selection_range: Range::new_simple(0, 9, 0, 12),
- }];
-
- assert_eq!(actual_links, expected_links);
- }
-}
diff --git a/support/texlab/src/features/definition/label.rs b/support/texlab/src/features/definition/label.rs
index e5ccd49937..867e8a1076 100644
--- a/support/texlab/src/features/definition/label.rs
+++ b/support/texlab/src/features/definition/label.rs
@@ -1,39 +1,33 @@
-use lsp_types::{GotoDefinitionParams, LocationLink};
+use std::sync::Arc;
-use crate::{
- features::cursor::CursorContext, find_label_definition, render_label, syntax::latex,
- LineIndexExt,
-};
+use lsp_types::GotoDefinitionParams;
-pub fn goto_label_definition(
- context: &CursorContext<GotoDefinitionParams>,
-) -> Option<Vec<LocationLink>> {
- let main_document = context.request.main_document();
+use crate::{features::cursor::CursorContext, find_label_definition, render_label, syntax::latex};
+
+use super::DefinitionResult;
- let (name_text, name_range) = context
+pub(super) fn goto_label_definition(
+ context: &CursorContext<GotoDefinitionParams>,
+) -> Option<Vec<DefinitionResult>> {
+ let (name_text, origin_selection_range) = context
.find_label_name_key()
.or_else(|| context.find_label_name_command())?;
- let origin_selection_range = main_document.line_index.line_col_lsp_range(name_range);
-
for document in context.request.workspace.documents_by_uri.values() {
if let Some(data) = document.data.as_latex() {
- if let Some(definition) =
- find_label_definition(&latex::SyntaxNode::new_root(data.green.clone()), &name_text)
- {
+ let root = latex::SyntaxNode::new_root(data.green.clone());
+ if let Some(definition) = find_label_definition(&root, &name_text) {
let target_selection_range = latex::small_range(&definition.name()?.key()?);
let target_range =
render_label(&context.request.workspace, &name_text, Some(definition))
.map(|label| label.range)
.unwrap_or(target_selection_range);
- return Some(vec![LocationLink {
- origin_selection_range: Some(origin_selection_range),
- target_uri: document.uri.as_ref().clone(),
- target_range: document.line_index.line_col_lsp_range(target_range),
- target_selection_range: document
- .line_index
- .line_col_lsp_range(target_selection_range),
+ return Some(vec![DefinitionResult {
+ origin_selection_range,
+ target_uri: Arc::clone(&document.uri),
+ target_range,
+ target_selection_range,
}]);
}
}
@@ -41,42 +35,3 @@ pub fn goto_label_definition(
None
}
-
-#[cfg(test)]
-mod tests {
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_label_definition(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_label_definition(&context);
-
- assert!(actual_links.is_none());
- }
-}
diff --git a/support/texlab/src/features/definition/string.rs b/support/texlab/src/features/definition/string.rs
index 09e00fdf92..c774e24e1d 100644
--- a/support/texlab/src/features/definition/string.rs
+++ b/support/texlab/src/features/definition/string.rs
@@ -1,15 +1,18 @@
-use lsp_types::{GotoDefinitionParams, LocationLink};
+use std::sync::Arc;
+
+use lsp_types::GotoDefinitionParams;
use rowan::ast::AstNode;
use crate::{
features::cursor::CursorContext,
syntax::bibtex::{self, HasName},
- LineIndexExt,
};
-pub fn goto_string_definition(
+use super::DefinitionResult;
+
+pub(super) fn goto_string_definition(
context: &CursorContext<GotoDefinitionParams>,
-) -> Option<Vec<LocationLink>> {
+) -> Option<Vec<DefinitionResult>> {
let main_document = context.request.main_document();
let data = main_document.data.as_bibtex()?;
@@ -20,157 +23,21 @@ pub fn goto_string_definition(
bibtex::Value::cast(key.parent()?)?;
- let origin_selection_range = main_document
- .line_index
- .line_col_lsp_range(key.text_range());
+ let origin_selection_range = key.text_range();
for string in bibtex::SyntaxNode::new_root(data.green.clone())
.children()
.filter_map(bibtex::StringDef::cast)
{
if let Some(string_name) = string.name_token().filter(|k| k.text() == key.text()) {
- return Some(vec![LocationLink {
- origin_selection_range: Some(origin_selection_range),
- target_uri: main_document.uri.as_ref().clone(),
- target_selection_range: main_document
- .line_index
- .line_col_lsp_range(string_name.text_range()),
- target_range: main_document
- .line_index
- .line_col_lsp_range(string.syntax().text_range()),
+ return Some(vec![DefinitionResult {
+ origin_selection_range,
+ target_uri: Arc::clone(&main_document.uri),
+ target_selection_range: string_name.text_range(),
+ target_range: string.syntax().text_range(),
}]);
}
}
None
}
-
-#[cfg(test)]
-mod tests {
- use indoc::indoc;
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_string_definition(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .definition();
-
- let context = CursorContext::new(request);
- let actual_links = goto_string_definition(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_simple() {
- let tester = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! {
- r#"
- @string{foo = {bar}}
- @article{bar, author = foo}
- "#
- },
- )])
- .main("main.bib")
- .line(1)
- .character(24)
- .build();
- let target_uri = tester.uri("main.bib").as_ref().clone();
-
- let request = tester.definition();
- let context = CursorContext::new(request);
- let actual_links = goto_string_definition(&context).unwrap();
-
- let expected_links = vec![LocationLink {
- origin_selection_range: Some(Range::new_simple(1, 23, 1, 26)),
- target_uri,
- target_range: Range::new_simple(0, 0, 0, 20),
- target_selection_range: Range::new_simple(0, 8, 0, 11),
- }];
-
- assert_eq!(actual_links, expected_links);
- }
-
- #[test]
- fn test_concat() {
- let tester = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! {
- r#"
- @string{foo = {bar}}
- @article{bar, author = foo # "bar"}
- "#
- },
- )])
- .main("main.bib")
- .line(1)
- .character(24)
- .build();
- let target_uri = tester.uri("main.bib").as_ref().clone();
-
- let request = tester.definition();
- let context = CursorContext::new(request);
- let actual_links = goto_string_definition(&context).unwrap();
-
- let expected_links = vec![LocationLink {
- origin_selection_range: Some(Range::new_simple(1, 23, 1, 26)),
- target_uri,
- target_range: Range::new_simple(0, 0, 0, 20),
- target_selection_range: Range::new_simple(0, 8, 0, 11),
- }];
-
- assert_eq!(actual_links, expected_links);
- }
-
- #[test]
- fn test_field() {
- let tester = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! {
- r#"
- @string{foo = {bar}}
- @article{bar, author = foo}
- "#
- },
- )])
- .main("main.bib")
- .line(1)
- .character(18)
- .build();
-
- let request = tester.definition();
- let context = CursorContext::new(request);
- let actual_links = goto_string_definition(&context);
-
- assert!(actual_links.is_none());
- }
-}
diff --git a/support/texlab/src/features/execute_command.rs b/support/texlab/src/features/execute_command.rs
new file mode 100644
index 0000000000..b1b89d4f50
--- /dev/null
+++ b/support/texlab/src/features/execute_command.rs
@@ -0,0 +1,103 @@
+use std::{path::PathBuf, process::Stdio, sync::Arc};
+
+use anyhow::Result;
+use lsp_types::{TextDocumentIdentifier, Url};
+
+use crate::Workspace;
+
+pub fn execute_command(
+ workspace: &Workspace,
+ name: &str,
+ args: Vec<serde_json::Value>,
+) -> Result<()> {
+ match name {
+ "texlab.cleanAuxiliary" => {
+ let params = args
+ .into_iter()
+ .next()
+ .ok_or_else(|| anyhow::anyhow!("texlab.cleanAuxiliary requires one argument"))?;
+
+ clean_output_files(workspace, CleanOptions::Auxiliary, params)?;
+ }
+ "texlab.cleanArtifacts" => {
+ let params = args
+ .into_iter()
+ .next()
+ .ok_or_else(|| anyhow::anyhow!("texlab.cleanArtifacts requires one argument"))?;
+
+ clean_output_files(workspace, CleanOptions::Artifacts, params)?;
+ }
+ _ => anyhow::bail!("Unknown command: {}", name),
+ }
+
+ Ok(())
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)]
+enum CleanOptions {
+ Auxiliary,
+ Artifacts,
+}
+
+fn clean_output_files(
+ workspace: &Workspace,
+ options: CleanOptions,
+ params: serde_json::Value,
+) -> Result<()> {
+ let params: TextDocumentIdentifier = serde_json::from_value(params)?;
+
+ let uri = workspace
+ .find_parent(&params.uri)
+ .map(|document| document.uri)
+ .unwrap_or_else(|| Arc::new(params.uri));
+
+ if let Some(cx) = BuildContext::find(workspace, &uri) {
+ let flag = match options {
+ CleanOptions::Auxiliary => "-c",
+ CleanOptions::Artifacts => "-C",
+ };
+
+ std::process::Command::new("latexmk")
+ .arg(format!("-outdir={}", cx.output_dir.to_string_lossy()))
+ .arg(flag)
+ .arg(cx.input_file)
+ .stdin(Stdio::null())
+ .stdout(Stdio::null())
+ .stderr(Stdio::null())
+ .status()?;
+ }
+
+ Ok(())
+}
+
+struct BuildContext {
+ input_file: PathBuf,
+ output_dir: PathBuf,
+}
+
+impl BuildContext {
+ pub fn find(workspace: &Workspace, uri: &Url) -> Option<Self> {
+ if uri.scheme() != "file" {
+ return None;
+ }
+
+ let input_file = uri.to_file_path().ok()?;
+ let options = &workspace.environment.options;
+ let current_dir = &workspace.environment.current_directory;
+ let output_dir = match (
+ options.root_directory.as_ref(),
+ options.aux_directory.as_ref(),
+ ) {
+ (_, Some(aux_dir)) => current_dir.join(aux_dir),
+ (Some(root_dir), None) => current_dir.join(root_dir),
+ (None, None) => input_file.parent()?.to_path_buf(),
+ };
+
+ log::info!("Output = {:#?}", output_dir);
+
+ Some(Self {
+ input_file,
+ output_dir,
+ })
+ }
+}
diff --git a/support/texlab/src/features/folding.rs b/support/texlab/src/features/folding.rs
index cd1a48f1a8..71fb0bee6f 100644
--- a/support/texlab/src/features/folding.rs
+++ b/support/texlab/src/features/folding.rs
@@ -55,175 +55,3 @@ fn create_range(range: Range) -> FoldingRange {
kind: Some(FoldingRangeKind::Region),
}
}
-
-#[cfg(test)]
-mod tests {
- use indoc::indoc;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .build()
- .folding();
-
- let actual_foldings = find_foldings(request);
- assert!(actual_foldings.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .build()
- .folding();
-
- let actual_foldings = find_foldings(request);
- assert!(actual_foldings.is_empty());
- }
-
- #[test]
- fn test_latex() {
- let req = FeatureTester::builder()
- .files(vec![(
- "main.tex",
- indoc! {r#"
- \begin{document}
- \section{Foo}
- foo
- \subsection{Bar}
- bar
- \section{Baz}
- baz
- \section{Qux}
- \end{document}"# },
- )])
- .main("main.tex")
- .build()
- .folding();
-
- let mut actual_foldings = find_foldings(req);
- actual_foldings.sort_by_key(|folding| (folding.start_line, folding.start_character));
-
- assert_eq!(actual_foldings.len(), 5);
- assert_eq!(
- actual_foldings[0],
- FoldingRange {
- start_line: 0,
- start_character: Some(0),
- end_line: 8,
- end_character: Some(14),
- kind: Some(FoldingRangeKind::Region)
- }
- );
- assert_eq!(
- actual_foldings[1],
- FoldingRange {
- start_line: 1,
- start_character: Some(4),
- end_line: 4,
- end_character: Some(7),
- kind: Some(FoldingRangeKind::Region)
- }
- );
- assert_eq!(
- actual_foldings[2],
- FoldingRange {
- start_line: 3,
- start_character: Some(4),
- end_line: 4,
- end_character: Some(7),
- kind: Some(FoldingRangeKind::Region)
- }
- );
- assert_eq!(
- actual_foldings[3],
- FoldingRange {
- start_line: 5,
- start_character: Some(4),
- end_line: 6,
- end_character: Some(7),
- kind: Some(FoldingRangeKind::Region)
- }
- );
- assert_eq!(
- actual_foldings[4],
- FoldingRange {
- start_line: 7,
- start_character: Some(4),
- end_line: 7,
- end_character: Some(17),
- kind: Some(FoldingRangeKind::Region)
- }
- );
- }
-
- #[test]
- fn test_bibtex() {
- let request = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! {r#"
- some junk
- here
-
- @article{foo,
- author = {bar},
- title = {baz}
- }
-
- @string{foo = "bar"}
-
- @comment{foo,
- author = {bar},
- title = {baz}
- }
-
- @preamble{"foo"}"# },
- )])
- .main("main.bib")
- .build()
- .folding();
-
- let mut actual_foldings = find_foldings(request);
- actual_foldings.sort_by_key(|folding| (folding.start_line, folding.start_character));
-
- assert_eq!(actual_foldings.len(), 3);
- assert_eq!(
- actual_foldings[0],
- FoldingRange {
- start_line: 3,
- start_character: Some(0),
- end_line: 6,
- end_character: Some(1),
- kind: Some(FoldingRangeKind::Region)
- }
- );
- assert_eq!(
- actual_foldings[1],
- FoldingRange {
- start_line: 8,
- start_character: Some(0),
- end_line: 8,
- end_character: Some(20),
- kind: Some(FoldingRangeKind::Region)
- }
- );
- assert_eq!(
- actual_foldings[2],
- FoldingRange {
- start_line: 15,
- start_character: Some(0),
- end_line: 15,
- end_character: Some(16),
- kind: Some(FoldingRangeKind::Region)
- }
- );
- }
-}
diff --git a/support/texlab/src/features/formatting/bibtex_internal.rs b/support/texlab/src/features/formatting/bibtex_internal.rs
index 58aaf0635d..2dcc507be9 100644
--- a/support/texlab/src/features/formatting/bibtex_internal.rs
+++ b/support/texlab/src/features/formatting/bibtex_internal.rs
@@ -213,137 +213,3 @@ impl<'a> Formatter<'a> {
}
}
}
-
-#[cfg(test)]
-mod tests {
- use insta::{assert_debug_snapshot, assert_display_snapshot};
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_wrap_long_lines() {
- let request = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- "@article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}",
- )])
- .main("main.bib")
- .build()
- .formatting();
-
- let edit = format_bibtex_internal(&request).unwrap().pop().unwrap();
-
- assert_display_snapshot!(edit.new_text);
- }
-
- #[test]
- fn test_multiple_entries() {
- let request = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- "@article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}\n\n@article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}",
- )])
- .main("main.bib")
- .build()
- .formatting();
-
- let mut edits = format_bibtex_internal(&request).unwrap();
- let edit2 = edits.pop().unwrap();
- let edit1 = edits.pop().unwrap();
-
- assert_debug_snapshot!((edit1.new_text, edit2.new_text));
- }
-
- #[test]
- fn test_trailing_comma() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, bar = baz}")])
- .main("main.bib")
- .build()
- .formatting();
-
- let edit = format_bibtex_internal(&request).unwrap().pop().unwrap();
-
- assert_display_snapshot!(edit.new_text);
- }
-
- #[test]
- fn test_insert_braces() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, bar = baz,")])
- .main("main.bib")
- .build()
- .formatting();
-
- let edit = format_bibtex_internal(&request).unwrap().pop().unwrap();
-
- assert_display_snapshot!(edit.new_text);
- }
-
- #[test]
- fn test_command() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, bar = \"\\baz\",}")])
- .main("main.bib")
- .build()
- .formatting();
-
- let edit = format_bibtex_internal(&request).unwrap().pop().unwrap();
-
- assert_display_snapshot!(edit.new_text);
- }
-
- #[test]
- fn test_concatenation() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article{foo, bar = \"baz\" # \"qux\"}")])
- .main("main.bib")
- .build()
- .formatting();
-
- let edit = format_bibtex_internal(&request).unwrap().pop().unwrap();
-
- assert_display_snapshot!(edit.new_text);
- }
-
- #[test]
- fn test_parens() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@article(foo,)")])
- .main("main.bib")
- .build()
- .formatting();
-
- let edit = format_bibtex_internal(&request).unwrap().pop().unwrap();
-
- assert_display_snapshot!(edit.new_text);
- }
-
- #[test]
- fn test_string() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@string{foo=\"bar\"}")])
- .main("main.bib")
- .build()
- .formatting();
-
- let edit = format_bibtex_internal(&request).unwrap().pop().unwrap();
-
- assert_display_snapshot!(edit.new_text);
- }
-
- #[test]
- fn test_preamble() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "@preamble{\n\"foo bar baz\"}")])
- .main("main.bib")
- .build()
- .formatting();
-
- let edit = format_bibtex_internal(&request).unwrap().pop().unwrap();
-
- assert_display_snapshot!(edit.new_text);
- }
-}
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__command.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__command.snap
deleted file mode 100644
index 792e7be277..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__command.snap
+++ /dev/null
@@ -1,8 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: edit.new_text
-
----
-@article{foo,
- bar = "\baz",
-}
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__concatenation.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__concatenation.snap
deleted file mode 100644
index 8cd51dfa92..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__concatenation.snap
+++ /dev/null
@@ -1,8 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: edit.new_text
-
----
-@article{foo,
- bar = "baz" # "qux",
-}
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__insert_braces.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__insert_braces.snap
deleted file mode 100644
index 3be9b15e9d..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__insert_braces.snap
+++ /dev/null
@@ -1,8 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: edit.new_text
-
----
-@article{foo,
- bar = baz,
-}
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__multiple_entries.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__multiple_entries.snap
deleted file mode 100644
index 636b4b665c..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__multiple_entries.snap
+++ /dev/null
@@ -1,9 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: "(edit1.new_text, edit2.new_text)"
-
----
-(
- "@article{foo,\n\tbar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum\n\t dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet,\n\t consectetur adipiscing elit.},\n}",
- "@article{foo,\n\tbar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum\n\t dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet,\n\t consectetur adipiscing elit.},\n}",
-)
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__parens.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__parens.snap
deleted file mode 100644
index 5aff28cb5f..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__parens.snap
+++ /dev/null
@@ -1,7 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: edit.new_text
-
----
-@article{foo,
-}
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__preamble.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__preamble.snap
deleted file mode 100644
index 663569eb5b..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__preamble.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: edit.new_text
-
----
-@preamble{"foo bar baz"}
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__string.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__string.snap
deleted file mode 100644
index 6d37a69e8e..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__string.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: edit.new_text
-
----
-@string{foo = "bar"}
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__trailing_comma.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__trailing_comma.snap
deleted file mode 100644
index 3be9b15e9d..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__trailing_comma.snap
+++ /dev/null
@@ -1,8 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: edit.new_text
-
----
-@article{foo,
- bar = baz,
-}
diff --git a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__wrap_long_lines.snap b/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__wrap_long_lines.snap
deleted file mode 100644
index 6c0ec724b5..0000000000
--- a/support/texlab/src/features/formatting/snapshots/texlab__features__formatting__bibtex_internal__tests__wrap_long_lines.snap
+++ /dev/null
@@ -1,10 +0,0 @@
----
-source: src/features/formatting/bibtex_internal.rs
-expression: edit.new_text
-
----
-@article{foo,
- bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum
- dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet,
- consectetur adipiscing elit.},
-}
diff --git a/support/texlab/src/features/highlight/label.rs b/support/texlab/src/features/highlight/label.rs
index 3e8b95eac8..cb51abdd68 100644
--- a/support/texlab/src/features/highlight/label.rs
+++ b/support/texlab/src/features/highlight/label.rs
@@ -77,71 +77,3 @@ pub fn find_label_highlights(
Some(highlights)
}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .highlight();
- let context = CursorContext::new(request);
-
- let actual_links = find_label_highlights(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .highlight();
- let context = CursorContext::new(request);
-
- let actual_links = find_label_highlights(&context);
-
- assert!(actual_links.is_none());
- }
-
- #[test]
- fn test_label() {
- let tester = FeatureTester::builder()
- .files(vec![("main.tex", "\\label{foo}\n\\ref{foo}\\label{bar}")])
- .main("main.tex")
- .line(0)
- .character(7)
- .build();
- let request = tester.highlight();
- let context = CursorContext::new(request);
-
- let actual_highlights = find_label_highlights(&context).unwrap();
-
- let expected_highlights = vec![
- DocumentHighlight {
- range: Range::new_simple(0, 7, 0, 10),
- kind: Some(DocumentHighlightKind::WRITE),
- },
- DocumentHighlight {
- range: Range::new_simple(1, 5, 1, 8),
- kind: Some(DocumentHighlightKind::READ),
- },
- ];
-
- assert_eq!(actual_highlights, expected_highlights);
- }
-}
diff --git a/support/texlab/src/features/hover.rs b/support/texlab/src/features/hover.rs
index 7d349de0a3..8663f6256d 100644
--- a/support/texlab/src/features/hover.rs
+++ b/support/texlab/src/features/hover.rs
@@ -5,9 +5,13 @@ mod field;
mod label;
mod string_ref;
-use lsp_types::{Hover, HoverParams};
+use lsp_types::{Hover, HoverContents, HoverParams, MarkupContent, MarkupKind};
+use rowan::TextRange;
-use crate::features::{cursor::CursorContext, hover::citation::find_citation_hover};
+use crate::{
+ features::{cursor::CursorContext, hover::citation::find_citation_hover},
+ LineIndexExt,
+};
use self::{
component::find_component_hover, entry_type::find_entry_type_hover, field::find_field_hover,
@@ -19,10 +23,31 @@ use super::FeatureRequest;
pub fn find_hover(request: FeatureRequest<HoverParams>) -> Option<Hover> {
let context = CursorContext::new(request);
log::debug!("[Hover] Cursor: {:?}", context.cursor);
- find_label_hover(&context)
+ let result = find_label_hover(&context)
.or_else(|| find_citation_hover(&context))
.or_else(|| find_component_hover(&context))
.or_else(|| find_string_reference_hover(&context))
.or_else(|| find_field_hover(&context))
- .or_else(|| find_entry_type_hover(&context))
+ .or_else(|| find_entry_type_hover(&context))?;
+
+ Some(Hover {
+ contents: HoverContents::Markup(MarkupContent {
+ kind: result.value_kind,
+ value: result.value,
+ }),
+ range: Some(
+ context
+ .request
+ .main_document()
+ .line_index
+ .line_col_lsp_range(result.range),
+ ),
+ })
+}
+
+#[derive(Debug, Clone)]
+struct HoverResult {
+ range: TextRange,
+ value: String,
+ value_kind: MarkupKind,
}
diff --git a/support/texlab/src/features/hover/citation.rs b/support/texlab/src/features/hover/citation.rs
index 4a0e3d2313..5e86019eee 100644
--- a/support/texlab/src/features/hover/citation.rs
+++ b/support/texlab/src/features/hover/citation.rs
@@ -1,121 +1,32 @@
-use lsp_types::{Hover, HoverContents, HoverParams, MarkupContent, MarkupKind};
+use lsp_types::{HoverParams, MarkupKind};
use rowan::ast::AstNode;
-use crate::{citation, features::cursor::CursorContext, syntax::bibtex, LineIndexExt};
+use crate::{citation, features::cursor::CursorContext, syntax::bibtex};
-pub fn find_citation_hover(context: &CursorContext<HoverParams>) -> Option<Hover> {
- let main_document = context.request.main_document();
+use super::HoverResult;
- let (key_text, key_range) = context
+pub(super) fn find_citation_hover(context: &CursorContext<HoverParams>) -> Option<HoverResult> {
+ let (key, range) = context
.find_citation_key_word()
.or_else(|| context.find_citation_key_command())
.or_else(|| context.find_entry_key())?;
- let contents = context
+ let value = context
.request
.workspace
.documents_by_uri
.values()
.find_map(|document| {
- document.data.as_bibtex().and_then(|data| {
- let root = bibtex::SyntaxNode::new_root(data.green.clone());
- let root = bibtex::Root::cast(root)?;
- let entry = root.find_entry(&key_text)?;
-
- citation::render(&entry).map(|value| MarkupContent {
- kind: MarkupKind::Markdown,
- value,
- })
- })
+ let data = document.data.as_bibtex()?;
+ let root = bibtex::SyntaxNode::new_root(data.green.clone());
+ let root = bibtex::Root::cast(root)?;
+ let entry = root.find_entry(&key)?;
+ citation::render(&entry)
})?;
- Some(Hover {
- range: Some(main_document.line_index.line_col_lsp_range(key_range)),
- contents: HoverContents::Markup(contents),
+ Some(HoverResult {
+ range,
+ value,
+ value_kind: MarkupKind::Markdown,
})
}
-
-#[cfg(test)]
-mod tests {
- use insta::assert_debug_snapshot;
-
- use crate::features::testing::FeatureTester;
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_citation_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_citation_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_inside_cite() {
- let request = FeatureTester::builder()
- .files(vec![
- (
- "main.bib",
- "@article{foo, author = {Foo Bar}, title = {Baz Qux}, year = 1337}",
- ),
- ("main.tex", "\\addbibresource{main.bib}\n\\cite{foo}"),
- ])
- .main("main.tex")
- .line(1)
- .character(7)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_citation_hover(&context).unwrap();
-
- assert_debug_snapshot!(actual_hover);
- }
-
- #[test]
- fn test_inside_entry() {
- let request = FeatureTester::builder()
- .files(vec![
- (
- "main.bib",
- "@article{foo, author = {Foo Bar}, title = {Baz Qux}, year = 1337}",
- ),
- ("main.tex", "\\addbibresource{main.bib}\n\\cite{foo}"),
- ])
- .main("main.bib")
- .line(0)
- .character(11)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_citation_hover(&context).unwrap();
-
- assert_debug_snapshot!(actual_hover);
- }
-}
diff --git a/support/texlab/src/features/hover/component.rs b/support/texlab/src/features/hover/component.rs
index 7b7e6c6e02..737a99d3ea 100644
--- a/support/texlab/src/features/hover/component.rs
+++ b/support/texlab/src/features/hover/component.rs
@@ -1,97 +1,25 @@
-use lsp_types::{Hover, HoverContents, HoverParams};
+use lsp_types::{HoverParams, MarkupKind};
-use crate::{
- component_db::COMPONENT_DATABASE, features::cursor::CursorContext, syntax::latex, LineIndexExt,
-};
+use crate::{component_db::COMPONENT_DATABASE, features::cursor::CursorContext, syntax::latex};
-pub fn find_component_hover(context: &CursorContext<HoverParams>) -> Option<Hover> {
- let main_document = context.request.main_document();
- let data = main_document.data.as_latex()?;
+use super::HoverResult;
+
+pub(super) fn find_component_hover(context: &CursorContext<HoverParams>) -> Option<HoverResult> {
+ let data = context.request.main_document().data.as_latex()?;
for link in &data.extras.explicit_links {
if matches!(
link.kind,
latex::ExplicitLinkKind::Package | latex::ExplicitLinkKind::Class
) && link.stem_range.contains_inclusive(context.offset)
{
- let docs = COMPONENT_DATABASE.documentation(&link.stem)?;
- return Some(Hover {
- contents: HoverContents::Markup(docs),
- range: Some(main_document.line_index.line_col_lsp_range(link.stem_range)),
+ let value = COMPONENT_DATABASE.documentation(&link.stem)?.value;
+ return Some(HoverResult {
+ value,
+ value_kind: MarkupKind::PlainText,
+ range: link.stem_range,
});
}
}
- None
-}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_component_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_component_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
- #[test]
- fn test_known_package() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", r#"\usepackage{amsmath}"#)])
- .main("main.tex")
- .line(0)
- .character(15)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_component_hover(&context).unwrap();
-
- assert_eq!(actual_hover.range.unwrap(), Range::new_simple(0, 12, 0, 19));
- }
-
- #[test]
- fn test_unknown_class() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", r#"\documentclass{abcdefghijklmnop}"#)])
- .main("main.tex")
- .line(0)
- .character(20)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_component_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
+ None
}
diff --git a/support/texlab/src/features/hover/entry_type.rs b/support/texlab/src/features/hover/entry_type.rs
index ab36177ae8..41a561395c 100644
--- a/support/texlab/src/features/hover/entry_type.rs
+++ b/support/texlab/src/features/hover/entry_type.rs
@@ -1,124 +1,19 @@
-use lsp_types::{Hover, HoverContents, HoverParams, MarkupContent};
+use lsp_types::{HoverParams, MarkupKind};
-use crate::{features::cursor::CursorContext, syntax::bibtex, LineIndexExt, LANGUAGE_DATA};
+use crate::{features::cursor::CursorContext, syntax::bibtex, LANGUAGE_DATA};
-pub fn find_entry_type_hover(context: &CursorContext<HoverParams>) -> Option<Hover> {
+use super::HoverResult;
+
+pub(super) fn find_entry_type_hover(context: &CursorContext<HoverParams>) -> Option<HoverResult> {
let name = context
.cursor
.as_bibtex()
.filter(|token| token.kind() == bibtex::TYPE)?;
let docs = LANGUAGE_DATA.entry_type_documentation(&name.text()[1..])?;
- Some(Hover {
- contents: HoverContents::Markup(MarkupContent {
- kind: lsp_types::MarkupKind::Markdown,
- value: docs.to_string(),
- }),
- range: Some(
- context
- .request
- .main_document()
- .line_index
- .line_col_lsp_range(name.text_range()),
- ),
+ Some(HoverResult {
+ range: name.text_range(),
+ value: docs.to_string(),
+ value_kind: MarkupKind::Markdown,
})
}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::{MarkupKind, Range};
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_entry_type_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_entry_type_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_known_entry_type() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", r#"@article{foo,}"#)])
- .main("main.bib")
- .line(0)
- .character(3)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_entry_type_hover(&context).unwrap();
-
- let expected_hover = Hover {
- contents: HoverContents::Markup(MarkupContent {
- kind: MarkupKind::Markdown,
- value: LANGUAGE_DATA
- .entry_type_documentation("article")
- .unwrap()
- .into(),
- }),
- range: Some(Range::new_simple(0, 0, 0, 8)),
- };
- assert_eq!(actual_hover, expected_hover);
- }
-
- #[test]
- fn test_unknown_field() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", r#"@foo{bar,}"#)])
- .main("main.bib")
- .line(0)
- .character(3)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_entry_type_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_entry_key() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", r#"@article{foo,}"#)])
- .main("main.bib")
- .line(0)
- .character(11)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_entry_type_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-}
diff --git a/support/texlab/src/features/hover/field.rs b/support/texlab/src/features/hover/field.rs
index daa0c301cd..6102bd6b68 100644
--- a/support/texlab/src/features/hover/field.rs
+++ b/support/texlab/src/features/hover/field.rs
@@ -1,11 +1,11 @@
-use lsp_types::{Hover, HoverContents, HoverParams, MarkupContent};
+use lsp_types::{HoverParams, MarkupKind};
use rowan::ast::AstNode;
-use crate::{features::cursor::CursorContext, syntax::bibtex, LineIndexExt, LANGUAGE_DATA};
+use crate::{features::cursor::CursorContext, syntax::bibtex, LANGUAGE_DATA};
-pub fn find_field_hover(context: &CursorContext<HoverParams>) -> Option<Hover> {
- let main_document = context.request.main_document();
+use super::HoverResult;
+pub(super) fn find_field_hover(context: &CursorContext<HoverParams>) -> Option<HoverResult> {
let name = context
.cursor
.as_bibtex()
@@ -14,108 +14,9 @@ pub fn find_field_hover(context: &CursorContext<HoverParams>) -> Option<Hover> {
bibtex::Field::cast(name.parent()?)?;
let docs = LANGUAGE_DATA.field_documentation(name.text())?;
- Some(Hover {
- contents: HoverContents::Markup(MarkupContent {
- kind: lsp_types::MarkupKind::Markdown,
- value: docs.to_string(),
- }),
- range: Some(
- main_document
- .line_index
- .line_col_lsp_range(name.text_range()),
- ),
+ Some(HoverResult {
+ range: name.text_range(),
+ value: docs.to_string(),
+ value_kind: MarkupKind::Markdown,
})
}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::{MarkupKind, Range};
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_field_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_field_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_known_field() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", r#"@article{foo, author = bar}"#)])
- .main("main.bib")
- .line(0)
- .character(15)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_field_hover(&context).unwrap();
- let expected_hover = Hover {
- contents: HoverContents::Markup(MarkupContent {
- kind: MarkupKind::Markdown,
- value: LANGUAGE_DATA.field_documentation("author").unwrap().into(),
- }),
- range: Some(Range::new_simple(0, 14, 0, 20)),
- };
- assert_eq!(actual_hover, expected_hover);
- }
-
- #[test]
- fn test_unknown_field() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", r#"@article{foo, bar = baz}"#)])
- .main("main.bib")
- .line(0)
- .character(15)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_field_hover(&context);
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_entry_key() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", r#"@article{foo, author = bar}"#)])
- .main("main.bib")
- .line(0)
- .character(11)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_field_hover(&context);
- assert_eq!(actual_hover, None);
- }
-}
diff --git a/support/texlab/src/features/hover/label.rs b/support/texlab/src/features/hover/label.rs
index 1018c187c5..2f8489d769 100644
--- a/support/texlab/src/features/hover/label.rs
+++ b/support/texlab/src/features/hover/label.rs
@@ -1,75 +1,19 @@
-use lsp_types::{Hover, HoverContents, HoverParams};
+use lsp_types::{HoverParams, MarkupKind};
-use crate::{features::cursor::CursorContext, render_label, LineIndexExt};
+use crate::{features::cursor::CursorContext, render_label};
-pub fn find_label_hover(context: &CursorContext<HoverParams>) -> Option<Hover> {
- let main_document = context.request.main_document();
+use super::HoverResult;
- let (name_text, name_range) = context
+pub(super) fn find_label_hover(context: &CursorContext<HoverParams>) -> Option<HoverResult> {
+ let (name_text, range) = context
.find_label_name_key()
.or_else(|| context.find_label_name_command())?;
let label = render_label(&context.request.workspace, &name_text, None)?;
- Some(Hover {
- range: Some(main_document.line_index.line_col_lsp_range(name_range)),
- contents: HoverContents::Markup(label.documentation()),
+ Some(HoverResult {
+ range,
+ value: label.reference(),
+ value_kind: MarkupKind::PlainText,
})
}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_label_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_label_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_section() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", r#"\section{Foo}\label{sec:foo}"#)])
- .main("main.tex")
- .line(0)
- .character(23)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_label_hover(&context).unwrap();
-
- assert_eq!(actual_hover.range.unwrap(), Range::new_simple(0, 20, 0, 27));
- }
-}
diff --git a/support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_cite.snap b/support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_cite.snap
deleted file mode 100644
index 2bca88bbff..0000000000
--- a/support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_cite.snap
+++ /dev/null
@@ -1,25 +0,0 @@
----
-source: src/features/hover/citation.rs
-assertion_line: 97
-expression: actual_hover
----
-Hover {
- contents: Markup(
- MarkupContent {
- kind: Markdown,
- value: "F. Bar: \"Baz Qux\". (1337).",
- },
- ),
- range: Some(
- Range {
- start: Position {
- line: 1,
- character: 6,
- },
- end: Position {
- line: 1,
- character: 9,
- },
- },
- ),
-}
diff --git a/support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_entry.snap b/support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_entry.snap
deleted file mode 100644
index 73ac4b7b69..0000000000
--- a/support/texlab/src/features/hover/snapshots/texlab__features__hover__citation__tests__inside_entry.snap
+++ /dev/null
@@ -1,25 +0,0 @@
----
-source: src/features/hover/citation.rs
-assertion_line: 119
-expression: actual_hover
----
-Hover {
- contents: Markup(
- MarkupContent {
- kind: Markdown,
- value: "F. Bar: \"Baz Qux\". (1337).",
- },
- ),
- range: Some(
- Range {
- start: Position {
- line: 0,
- character: 9,
- },
- end: Position {
- line: 0,
- character: 12,
- },
- },
- ),
-}
diff --git a/support/texlab/src/features/hover/string_ref.rs b/support/texlab/src/features/hover/string_ref.rs
index f1df08e8ab..adccdd556c 100644
--- a/support/texlab/src/features/hover/string_ref.rs
+++ b/support/texlab/src/features/hover/string_ref.rs
@@ -1,21 +1,27 @@
-use lsp_types::{Hover, HoverContents, HoverParams, MarkupContent, MarkupKind};
+use lsp_types::{HoverParams, MarkupKind};
use rowan::ast::AstNode;
use crate::{
+ citation::field::text::TextFieldData,
features::cursor::CursorContext,
syntax::bibtex::{self, HasName, HasValue},
- LineIndexExt,
};
-pub fn find_string_reference_hover(context: &CursorContext<HoverParams>) -> Option<Hover> {
- let main_document = context.request.main_document();
- let data = main_document.data.as_bibtex()?;
+use super::HoverResult;
- let key = context.cursor.as_bibtex().filter(|token| {
- let parent = token.parent().unwrap();
- (token.kind() == bibtex::NAME && bibtex::Value::can_cast(parent.kind()))
- || (token.kind() == bibtex::NAME && bibtex::StringDef::can_cast(parent.kind()))
- })?;
+pub(super) fn find_string_reference_hover(
+ context: &CursorContext<HoverParams>,
+) -> Option<HoverResult> {
+ let data = context.request.main_document().data.as_bibtex()?;
+
+ let name = context
+ .cursor
+ .as_bibtex()
+ .filter(|token| token.kind() == bibtex::NAME)
+ .filter(|token| {
+ let parent = token.parent().unwrap();
+ bibtex::Value::can_cast(parent.kind()) || bibtex::StringDef::can_cast(parent.kind())
+ })?;
for string in bibtex::SyntaxNode::new_root(data.green.clone())
.children()
@@ -23,118 +29,16 @@ pub fn find_string_reference_hover(context: &CursorContext<HoverParams>) -> Opti
{
if string
.name_token()
- .filter(|k| k.text() == key.text())
- .is_some()
+ .map_or(false, |token| token.text() == name.text())
{
- let value = string.value()?.syntax().text().to_string();
- return Some(Hover {
- range: Some(
- main_document
- .line_index
- .line_col_lsp_range(key.text_range()),
- ),
- contents: HoverContents::Markup(MarkupContent {
- kind: MarkupKind::PlainText,
- value,
- }),
+ let value = TextFieldData::parse(&string.value()?)?.text;
+ return Some(HoverResult {
+ range: name.text_range(),
+ value,
+ value_kind: MarkupKind::PlainText,
});
}
}
None
}
-
-#[cfg(test)]
-mod tests {
- use indoc::indoc;
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_string_reference_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_string_reference_hover(&context);
-
- assert_eq!(actual_hover, None);
- }
-
- #[test]
- fn test_inside_reference() {
- let request = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! { r#"
- @string{foo = "Foo"}
- @string{bar = "Bar"}
- @article{baz, author = bar}
- "# },
- )])
- .main("main.bib")
- .line(2)
- .character(24)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_string_reference_hover(&context).unwrap();
-
- let expected_hover = Hover {
- contents: HoverContents::Markup(MarkupContent {
- kind: MarkupKind::PlainText,
- value: "\"Bar\"".into(),
- }),
- range: Some(Range::new_simple(2, 23, 2, 26)),
- };
-
- assert_eq!(actual_hover, expected_hover);
- }
-
- #[test]
- fn test_inside_field() {
- let request = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! { r#"
- @string{foo = "Foo"}
- @string{bar = "Bar"}
- @article{baz, author = bar}
- "# },
- )])
- .main("main.bib")
- .line(2)
- .character(20)
- .build()
- .hover();
-
- let context = CursorContext::new(request);
- let actual_hover = find_string_reference_hover(&context);
- assert_eq!(actual_hover, None);
- }
-}
diff --git a/support/texlab/src/features/link.rs b/support/texlab/src/features/link.rs
index 0a02f7819e..c4ce4413f5 100644
--- a/support/texlab/src/features/link.rs
+++ b/support/texlab/src/features/link.rs
@@ -1,107 +1,33 @@
-use lsp_types::{DocumentLink, DocumentLinkParams};
+mod include;
-use crate::LineIndexExt;
-
-use super::FeatureRequest;
-
-pub fn find_document_links(request: FeatureRequest<DocumentLinkParams>) -> Vec<DocumentLink> {
- let mut links = Vec::new();
- let main_document = request.main_document();
- if let Some(data) = main_document.data.as_latex() {
- for include in &data.extras.explicit_links {
- for target in &include.targets {
- if request
- .workspace
- .documents_by_uri
- .values()
- .any(|document| document.uri.as_ref() == target.as_ref())
- {
- links.push(DocumentLink {
- range: main_document
- .line_index
- .line_col_lsp_range(include.stem_range),
- target: Some(target.as_ref().clone()),
- tooltip: None,
- data: None,
- });
- break;
- }
- }
- }
- }
- links
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .build()
- .link();
+use std::sync::Arc;
- let items = find_document_links(request);
- assert!(items.is_empty());
- }
+use lsp_types::{DocumentLink, DocumentLinkParams, Url};
+use rowan::TextRange;
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .build()
- .link();
-
- let items = find_document_links(request);
- assert!(items.is_empty());
- }
+use crate::LineIndexExt;
- #[test]
- fn test_includes() {
- let tester = FeatureTester::builder()
- .files(vec![("foo.tex", r#"\input{bar.tex}"#), ("bar.tex", r#""#)])
- .main("foo.tex")
- .build();
- let target = tester.uri("bar.tex");
+use self::include::find_include_links;
- let actual_items = find_document_links(tester.link());
+use super::FeatureRequest;
- let expected_items = vec![DocumentLink {
- range: Range::new_simple(0, 7, 0, 14),
- target: Some(target.as_ref().clone()),
+pub fn find_document_links(request: FeatureRequest<DocumentLinkParams>) -> Vec<DocumentLink> {
+ let document = request.main_document();
+ let mut results = Vec::new();
+ find_include_links(&request, &mut results);
+ results
+ .into_iter()
+ .map(|result| DocumentLink {
+ range: document.line_index.line_col_lsp_range(result.range),
+ target: Some(result.target.as_ref().clone()),
tooltip: None,
data: None,
- }];
- assert_eq!(actual_items, expected_items);
- }
-
- #[test]
- fn test_imports() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.tex", r#"\import{bar/}{baz}"#),
- ("bar/baz.tex", r#""#),
- ])
- .main("foo.tex")
- .build();
- let target = tester.uri("bar/baz.tex");
-
- let actual_items = find_document_links(tester.link());
+ })
+ .collect()
+}
- let expected_items = vec![DocumentLink {
- range: Range::new_simple(0, 14, 0, 17),
- target: Some(target.as_ref().clone()),
- tooltip: None,
- data: None,
- }];
- assert_eq!(actual_items, expected_items);
- }
+#[derive(Debug, Clone)]
+struct LinkResult {
+ range: TextRange,
+ target: Arc<Url>,
}
diff --git a/support/texlab/src/features/link/include.rs b/support/texlab/src/features/link/include.rs
new file mode 100644
index 0000000000..b4d1804cce
--- /dev/null
+++ b/support/texlab/src/features/link/include.rs
@@ -0,0 +1,33 @@
+use std::sync::Arc;
+
+use lsp_types::DocumentLinkParams;
+
+use crate::features::FeatureRequest;
+
+use super::LinkResult;
+
+pub(super) fn find_include_links(
+ request: &FeatureRequest<DocumentLinkParams>,
+ results: &mut Vec<LinkResult>,
+) -> Option<()> {
+ let data = request.main_document().data.as_latex()?;
+
+ for include in &data.extras.explicit_links {
+ for target in &include.targets {
+ if request
+ .workspace
+ .documents_by_uri
+ .values()
+ .any(|document| document.uri.as_ref() == target.as_ref())
+ {
+ results.push(LinkResult {
+ range: include.stem_range,
+ target: Arc::clone(target),
+ });
+ break;
+ }
+ }
+ }
+
+ Some(())
+}
diff --git a/support/texlab/src/features/reference.rs b/support/texlab/src/features/reference.rs
index db48453b4e..f84a3f67d5 100644
--- a/support/texlab/src/features/reference.rs
+++ b/support/texlab/src/features/reference.rs
@@ -2,7 +2,12 @@ mod entry;
mod label;
mod string;
-use lsp_types::{Location, ReferenceParams};
+use std::sync::Arc;
+
+use lsp_types::{Location, ReferenceParams, Url};
+use rowan::TextRange;
+
+use crate::LineIndexExt;
use self::{
entry::find_entry_references, label::find_label_references, string::find_string_references,
@@ -10,12 +15,27 @@ use self::{
use super::{cursor::CursorContext, FeatureRequest};
-pub fn find_all_references(request: FeatureRequest<ReferenceParams>) -> Option<Vec<Location>> {
- let mut references = Vec::new();
+pub fn find_all_references(request: FeatureRequest<ReferenceParams>) -> Vec<Location> {
+ let mut results = Vec::new();
let context = CursorContext::new(request);
log::debug!("[References] Cursor: {:?}", context.cursor);
- find_label_references(&context, &mut references);
- find_entry_references(&context, &mut references);
- find_string_references(&context, &mut references);
- Some(references)
+ find_label_references(&context, &mut results);
+ find_entry_references(&context, &mut results);
+ find_string_references(&context, &mut results);
+
+ results
+ .into_iter()
+ .map(|result| Location {
+ uri: result.uri.as_ref().clone(),
+ range: context.request.workspace.documents_by_uri[&result.uri]
+ .line_index
+ .line_col_lsp_range(result.range),
+ })
+ .collect()
+}
+
+#[derive(Debug, Clone)]
+struct ReferenceResult {
+ uri: Arc<Url>,
+ range: TextRange,
}
diff --git a/support/texlab/src/features/reference/entry.rs b/support/texlab/src/features/reference/entry.rs
index f245b6eb8d..0144d2d074 100644
--- a/support/texlab/src/features/reference/entry.rs
+++ b/support/texlab/src/features/reference/entry.rs
@@ -1,4 +1,6 @@
-use lsp_types::{Location, ReferenceParams};
+use std::sync::Arc;
+
+use lsp_types::ReferenceParams;
use rowan::ast::AstNode;
use crate::{
@@ -7,12 +9,14 @@ use crate::{
bibtex::{self, HasName},
latex,
},
- DocumentData, LineIndexExt,
+ DocumentData,
};
-pub fn find_entry_references(
+use super::ReferenceResult;
+
+pub(super) fn find_entry_references(
context: &CursorContext<ReferenceParams>,
- references: &mut Vec<Location>,
+ results: &mut Vec<ReferenceResult>,
) -> Option<()> {
let (key_text, _) = context
.find_citation_key_word()
@@ -28,13 +32,10 @@ pub fn find_entry_references(
.filter_map(|citation| citation.key_list())
.flat_map(|keys| keys.keys())
.filter(|key| key.to_string() == key_text)
- .map(|key| {
- document
- .line_index
- .line_col_lsp_range(latex::small_range(&key))
- })
+ .map(|key| latex::small_range(&key))
.for_each(|range| {
- references.push(Location::new(document.uri.as_ref().clone(), range));
+ let uri = Arc::clone(&document.uri);
+ results.push(ReferenceResult { uri, range });
});
}
DocumentData::Bibtex(data) if context.request.params.context.include_declaration => {
@@ -43,172 +44,15 @@ pub fn find_entry_references(
.filter_map(bibtex::Entry::cast)
.filter_map(|entry| entry.name_token())
.filter(|key| key.text() == key_text)
- .map(|key| document.line_index.line_col_lsp_range(key.text_range()))
+ .map(|key| key.text_range())
.for_each(|range| {
- references.push(Location::new(document.uri.as_ref().clone(), range));
+ let uri = Arc::clone(&document.uri);
+ results.push(ReferenceResult { uri, range });
});
}
DocumentData::Bibtex(_) | DocumentData::BuildLog(_) => {}
}
}
- Some(())
-}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- fn sort_references(actual_references: &mut [Location]) {
- actual_references.sort_by(|a, b| {
- a.uri
- .cmp(&b.uri)
- .then_with(|| a.range.start.cmp(&b.range.start))
- });
- }
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .reference();
-
- let mut actual_references = Vec::new();
- let context = CursorContext::new(request);
- find_entry_references(&context, &mut actual_references);
-
- assert!(actual_references.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .reference();
-
- let mut actual_references = Vec::new();
- let context = CursorContext::new(request);
- find_entry_references(&context, &mut actual_references);
-
- assert!(actual_references.is_empty());
- }
- #[test]
- fn test_definition() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.bib", r#"@article{foo,}"#),
- ("bar.tex", r#"\cite{foo}\addbibresource{foo.bib}"#),
- ])
- .main("foo.bib")
- .line(0)
- .character(11)
- .build();
- let uri = tester.uri("bar.tex");
- let mut actual_references = Vec::new();
-
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_entry_references(&context, &mut actual_references);
-
- sort_references(&mut actual_references);
- let expected_references = vec![Location::new(
- uri.as_ref().clone(),
- Range::new_simple(0, 6, 0, 9),
- )];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_definition_include_declaration() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.bib", r#"@article{foo,}"#),
- ("bar.tex", r#"\cite{foo}\addbibresource{foo.bib}"#),
- ])
- .main("foo.bib")
- .line(0)
- .character(11)
- .include_declaration(true)
- .build();
- let uri1 = tester.uri("bar.tex");
- let uri2 = tester.uri("foo.bib");
- let mut actual_references = Vec::new();
-
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_entry_references(&context, &mut actual_references);
-
- sort_references(&mut actual_references);
- let expected_references = vec![
- Location::new(uri1.as_ref().clone(), Range::new_simple(0, 6, 0, 9)),
- Location::new(uri2.as_ref().clone(), Range::new_simple(0, 9, 0, 12)),
- ];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_reference() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.bib", r#"@article{foo,}"#),
- ("bar.tex", r#"\cite{foo}\addbibresource{foo.bib}"#),
- ])
- .main("bar.tex")
- .line(0)
- .character(8)
- .build();
- let uri = tester.uri("bar.tex");
- let mut actual_references = Vec::new();
-
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_entry_references(&context, &mut actual_references);
-
- sort_references(&mut actual_references);
- let expected_references = vec![Location::new(
- uri.as_ref().clone(),
- Range::new_simple(0, 6, 0, 9),
- )];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_reference_include_declaration() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.bib", r#"@article{foo,}"#),
- ("bar.tex", r#"\cite{foo}\addbibresource{foo.bib}"#),
- ])
- .main("bar.tex")
- .line(0)
- .character(6)
- .include_declaration(true)
- .build();
- let uri1 = tester.uri("foo.bib");
- let uri2 = tester.uri("bar.tex");
- let mut actual_references = Vec::new();
-
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_entry_references(&context, &mut actual_references);
-
- sort_references(&mut actual_references);
- let expected_references = vec![
- Location::new(uri2.as_ref().clone(), Range::new_simple(0, 6, 0, 9)),
- Location::new(uri1.as_ref().clone(), Range::new_simple(0, 9, 0, 12)),
- ];
- assert_eq!(actual_references, expected_references);
- }
+ Some(())
}
diff --git a/support/texlab/src/features/reference/label.rs b/support/texlab/src/features/reference/label.rs
index 2fc3efc398..3dadada08b 100644
--- a/support/texlab/src/features/reference/label.rs
+++ b/support/texlab/src/features/reference/label.rs
@@ -1,10 +1,14 @@
-use lsp_types::{Location, ReferenceParams};
+use std::sync::Arc;
-use crate::{features::cursor::CursorContext, LineIndexExt};
+use lsp_types::ReferenceParams;
-pub fn find_label_references(
+use crate::features::cursor::CursorContext;
+
+use super::ReferenceResult;
+
+pub(super) fn find_label_references(
context: &CursorContext<ReferenceParams>,
- references: &mut Vec<Location>,
+ results: &mut Vec<ReferenceResult>,
) -> Option<()> {
let (name_text, _) = context
.find_label_name_key()
@@ -21,174 +25,13 @@ pub fn find_label_references(
!name.is_definition || context.request.params.context.include_declaration
})
{
- references.push(Location::new(
- document.uri.as_ref().clone(),
- document.line_index.line_col_lsp_range(name.range),
- ));
+ results.push(ReferenceResult {
+ uri: Arc::clone(&document.uri),
+ range: name.range,
+ });
}
}
}
Some(())
}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- fn sort_references(actual_references: &mut [Location]) {
- actual_references.sort_by(|a, b| {
- a.uri
- .cmp(&b.uri)
- .then_with(|| a.range.start.cmp(&b.range.start))
- });
- }
-
- #[test]
- fn test_definition() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.tex", r#"\label{foo}"#),
- ("bar.tex", r#"\ref{foo}\input{foo.tex}"#),
- ])
- .main("foo.tex")
- .line(0)
- .character(8)
- .build();
- let uri = tester.uri("bar.tex");
- let mut actual_references = Vec::new();
-
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_label_references(&context, &mut actual_references);
-
- sort_references(&mut actual_references);
- let expected_references = vec![Location::new(
- uri.as_ref().clone(),
- Range::new_simple(0, 5, 0, 8),
- )];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_definition_include_declaration() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.tex", r#"\label{foo}\input{bar.tex}"#),
- ("bar.tex", r#"\ref{foo}"#),
- ])
- .main("foo.tex")
- .line(0)
- .character(9)
- .include_declaration(true)
- .build();
- let uri1 = tester.uri("bar.tex");
- let uri2 = tester.uri("foo.tex");
- let mut actual_references = Vec::new();
-
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_label_references(&context, &mut actual_references);
-
- sort_references(&mut actual_references);
- let expected_references = vec![
- Location::new(uri1.as_ref().clone(), Range::new_simple(0, 5, 0, 8)),
- Location::new(uri2.as_ref().clone(), Range::new_simple(0, 7, 0, 10)),
- ];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_reference() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.tex", r#"\label{foo}\input{bar.tex}"#),
- ("bar.tex", r#"\ref{foo}"#),
- ("baz.tex", r#"\ref{foo}\input{bar.tex}"#),
- ])
- .main("bar.tex")
- .line(0)
- .character(7)
- .build();
- let uri1 = tester.uri("bar.tex");
- let uri2 = tester.uri("baz.tex");
- let mut actual_references = Vec::new();
-
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_label_references(&context, &mut actual_references);
-
- sort_references(&mut actual_references);
- let expected_references = vec![
- Location::new(uri1.as_ref().clone(), Range::new_simple(0, 5, 0, 8)),
- Location::new(uri2.as_ref().clone(), Range::new_simple(0, 5, 0, 8)),
- ];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_reference_include_declaration() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.tex", r#"\label{foo}"#),
- ("bar.tex", r#"\ref{foo}\input{foo.tex}"#),
- ])
- .main("bar.tex")
- .line(0)
- .character(7)
- .include_declaration(true)
- .build();
- let uri1 = tester.uri("bar.tex");
- let uri2 = tester.uri("foo.tex");
- let mut actual_references = Vec::new();
-
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_label_references(&context, &mut actual_references);
-
- sort_references(&mut actual_references);
- let expected_references = vec![
- Location::new(uri1.as_ref().clone(), Range::new_simple(0, 5, 0, 8)),
- Location::new(uri2.as_ref().clone(), Range::new_simple(0, 7, 0, 10)),
- ];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .reference();
- let mut actual_references = Vec::new();
-
- let context = CursorContext::new(request);
- find_label_references(&context, &mut actual_references);
-
- assert!(actual_references.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .reference();
- let mut actual_references = Vec::new();
-
- let context = CursorContext::new(request);
- find_label_references(&context, &mut actual_references);
-
- assert!(actual_references.is_empty());
- }
-}
diff --git a/support/texlab/src/features/reference/string.rs b/support/texlab/src/features/reference/string.rs
index c957244a53..c00cf93546 100644
--- a/support/texlab/src/features/reference/string.rs
+++ b/support/texlab/src/features/reference/string.rs
@@ -1,23 +1,26 @@
-use lsp_types::{Location, ReferenceParams};
+use std::sync::Arc;
+
+use lsp_types::ReferenceParams;
use rowan::ast::AstNode;
use crate::{
features::cursor::CursorContext,
syntax::bibtex::{self, HasName},
- LineIndexExt,
};
-pub fn find_string_references(
+use super::ReferenceResult;
+
+pub(super) fn find_string_references(
context: &CursorContext<ReferenceParams>,
- items: &mut Vec<Location>,
+ results: &mut Vec<ReferenceResult>,
) -> Option<()> {
let name_text = context
.cursor
.as_bibtex()
+ .filter(|token| token.kind() == bibtex::NAME)
.filter(|token| {
let parent = token.parent().unwrap();
- (token.kind() == bibtex::NAME && bibtex::Value::can_cast(parent.kind()))
- || (token.kind() == bibtex::NAME && bibtex::StringDef::can_cast(parent.kind()))
+ bibtex::Value::can_cast(parent.kind()) || bibtex::StringDef::can_cast(parent.kind())
})?
.text();
@@ -35,173 +38,12 @@ pub fn find_string_references(
.filter(|name| name.text() == name_text)
})
{
- items.push(Location::new(
- document.uri.as_ref().clone(),
- document.line_index.line_col_lsp_range(name.text_range()),
- ));
+ results.push(ReferenceResult {
+ uri: Arc::clone(&document.uri),
+ range: name.text_range(),
+ });
}
}
- Some(())
-}
-
-#[cfg(test)]
-mod tests {
- use indoc::indoc;
- use lsp_types::Range;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_definition() {
- let tester = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! { r#"
- @string{foo = {Foo}}
- @string{bar = {Bar}}
- @article{baz, author = foo}
- "# },
- )])
- .main("main.bib")
- .line(2)
- .character(24)
- .build();
- let uri = tester.uri("main.bib");
-
- let mut actual_references = Vec::new();
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_string_references(&context, &mut actual_references);
-
- let expected_references = vec![Location::new(
- uri.as_ref().clone(),
- Range::new_simple(2, 23, 2, 26),
- )];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_definition_include_declaration() {
- let tester = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! { r#"
- @string{foo = {Foo}}
- @string{bar = {Bar}}
- @article{baz, author = foo}
- "# },
- )])
- .main("main.bib")
- .line(2)
- .character(24)
- .include_declaration(true)
- .build();
- let uri = tester.uri("main.bib");
-
- let mut actual_references = Vec::new();
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_string_references(&context, &mut actual_references);
-
- let expected_references = vec![
- Location::new(uri.as_ref().clone(), Range::new_simple(0, 8, 0, 11)),
- Location::new(uri.as_ref().clone(), Range::new_simple(2, 23, 2, 26)),
- ];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_reference() {
- let tester = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! { r#"
- @string{foo = {Foo}}
- @string{bar = {Bar}}
- @article{baz, author = foo}
- "# },
- )])
- .main("main.bib")
- .line(0)
- .character(10)
- .build();
- let uri = tester.uri("main.bib");
- let mut actual_references = Vec::new();
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_string_references(&context, &mut actual_references);
-
- let expected_references = vec![Location::new(
- uri.as_ref().clone(),
- Range::new_simple(2, 23, 2, 26),
- )];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_reference_include_declaration() {
- let tester = FeatureTester::builder()
- .files(vec![(
- "main.bib",
- indoc! { r#"
- @string{foo = {Foo}}
- @string{bar = {Bar}}
- @article{baz, author = foo}
- "# },
- )])
- .main("main.bib")
- .line(0)
- .character(10)
- .include_declaration(true)
- .build();
- let uri = tester.uri("main.bib");
-
- let mut actual_references = Vec::new();
- let request = tester.reference();
- let context = CursorContext::new(request);
- find_string_references(&context, &mut actual_references);
-
- let expected_references = vec![
- Location::new(uri.as_ref().clone(), Range::new_simple(0, 8, 0, 11)),
- Location::new(uri.as_ref().clone(), Range::new_simple(2, 23, 2, 26)),
- ];
- assert_eq!(actual_references, expected_references);
- }
-
- #[test]
- fn test_empty_latex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.tex", "")])
- .main("main.tex")
- .line(0)
- .character(0)
- .build()
- .reference();
-
- let mut actual_references = Vec::new();
- let context = CursorContext::new(request);
- find_string_references(&context, &mut actual_references);
-
- assert!(actual_references.is_empty());
- }
-
- #[test]
- fn test_empty_bibtex_document() {
- let request = FeatureTester::builder()
- .files(vec![("main.bib", "")])
- .main("main.bib")
- .line(0)
- .character(0)
- .build()
- .reference();
-
- let mut actual_references = Vec::new();
- let context = CursorContext::new(request);
- find_string_references(&context, &mut actual_references);
-
- assert!(actual_references.is_empty());
- }
+ Some(())
}
diff --git a/support/texlab/src/features/rename.rs b/support/texlab/src/features/rename.rs
index a9a6732d04..c21faf262e 100644
--- a/support/texlab/src/features/rename.rs
+++ b/support/texlab/src/features/rename.rs
@@ -2,7 +2,13 @@ mod command;
mod entry;
mod label;
-use lsp_types::{Range, RenameParams, TextDocumentPositionParams, WorkspaceEdit};
+use std::sync::Arc;
+
+use lsp_types::{Range, RenameParams, TextDocumentPositionParams, TextEdit, Url, WorkspaceEdit};
+use rowan::TextRange;
+use rustc_hash::FxHashMap;
+
+use crate::LineIndexExt;
use self::{
command::{prepare_command_rename, rename_command},
@@ -14,14 +20,46 @@ use super::{cursor::CursorContext, FeatureRequest};
pub fn prepare_rename_all(request: FeatureRequest<TextDocumentPositionParams>) -> Option<Range> {
let context = CursorContext::new(request);
- prepare_entry_rename(&context)
+ let range = prepare_entry_rename(&context)
.or_else(|| prepare_label_rename(&context))
- .or_else(|| prepare_command_rename(&context))
+ .or_else(|| prepare_command_rename(&context))?;
+
+ let line_index = &context.request.main_document().line_index;
+ Some(line_index.line_col_lsp_range(range))
}
pub fn rename_all(request: FeatureRequest<RenameParams>) -> Option<WorkspaceEdit> {
let context = CursorContext::new(request);
- rename_entry(&context)
+ let result = rename_entry(&context)
.or_else(|| rename_label(&context))
- .or_else(|| rename_command(&context))
+ .or_else(|| rename_command(&context))?;
+
+ let changes = result
+ .changes
+ .into_iter()
+ .map(|(uri, old_edits)| {
+ let document = &context.request.workspace.documents_by_uri[&uri];
+ let new_edits = old_edits
+ .into_iter()
+ .map(|Indel { delete, insert }| {
+ TextEdit::new(document.line_index.line_col_lsp_range(delete), insert)
+ })
+ .collect();
+
+ (uri.as_ref().clone(), new_edits)
+ })
+ .collect();
+
+ Some(WorkspaceEdit::new(changes))
+}
+
+#[derive(Debug, PartialEq, Eq, Clone)]
+struct Indel {
+ delete: TextRange,
+ insert: String,
+}
+
+#[derive(Debug, PartialEq, Eq, Clone)]
+struct RenameResult {
+ changes: FxHashMap<Arc<Url>, Vec<Indel>>,
}
diff --git a/support/texlab/src/features/rename/command.rs b/support/texlab/src/features/rename/command.rs
index e0677f443e..aaa08f8cb4 100644
--- a/support/texlab/src/features/rename/command.rs
+++ b/support/texlab/src/features/rename/command.rs
@@ -1,88 +1,45 @@
-use std::collections::HashMap;
+use std::sync::Arc;
-use lsp_types::{Range, RenameParams, TextEdit, WorkspaceEdit};
+use lsp_types::RenameParams;
use rowan::{TextRange, TextSize};
+use rustc_hash::FxHashMap;
use crate::{
features::cursor::{CursorContext, HasPosition},
syntax::latex,
- LineIndexExt,
};
-pub fn prepare_command_rename<P: HasPosition>(context: &CursorContext<P>) -> Option<Range> {
- Some(
- context
- .request
- .main_document()
- .line_index
- .line_col_lsp_range(context.cursor.command_range(context.offset)?),
- )
+use super::{Indel, RenameResult};
+
+pub(super) fn prepare_command_rename<P: HasPosition>(
+ context: &CursorContext<P>,
+) -> Option<TextRange> {
+ context.cursor.command_range(context.offset)
}
-pub fn rename_command(context: &CursorContext<RenameParams>) -> Option<WorkspaceEdit> {
+pub(super) fn rename_command(context: &CursorContext<RenameParams>) -> Option<RenameResult> {
prepare_command_rename(context)?;
let name = context.cursor.as_latex()?.text();
- let mut changes = HashMap::new();
+ let mut changes = FxHashMap::default();
for document in context.request.workspace.documents_by_uri.values() {
if let Some(data) = document.data.as_latex() {
- let edits = latex::SyntaxNode::new_root(data.green.clone())
+ let root = latex::SyntaxNode::new_root(data.green.clone());
+ let edits = root
.descendants_with_tokens()
.filter_map(|element| element.into_token())
.filter(|token| token.kind().is_command_name() && token.text() == name)
.map(|token| {
let range = token.text_range();
- let range = document.line_index.line_col_lsp_range(TextRange::new(
- range.start() + TextSize::from(1),
- range.end(),
- ));
- TextEdit::new(range, context.request.params.new_name.clone())
+ Indel {
+ delete: TextRange::new(range.start() + TextSize::from(1), range.end()),
+ insert: context.request.params.new_name.clone(),
+ }
})
.collect();
- changes.insert(document.uri.as_ref().clone(), edits);
+ changes.insert(Arc::clone(&document.uri), edits);
}
}
- Some(WorkspaceEdit::new(changes))
-}
-
-#[cfg(test)]
-mod tests {
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_command() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.tex", r#"\baz\include{bar.tex}"#),
- ("bar.tex", r#"\baz"#),
- ])
- .main("foo.tex")
- .line(0)
- .character(2)
- .new_name("qux")
- .build();
-
- let uri1 = tester.uri("foo.tex");
- let uri2 = tester.uri("bar.tex");
- let req = tester.rename();
-
- let context = CursorContext::new(req);
- let actual_edit = rename_command(&context).unwrap();
-
- let mut expected_changes = HashMap::new();
- expected_changes.insert(
- uri1.as_ref().clone(),
- vec![TextEdit::new(Range::new_simple(0, 1, 0, 4), "qux".into())],
- );
- expected_changes.insert(
- uri2.as_ref().clone(),
- vec![TextEdit::new(Range::new_simple(0, 1, 0, 4), "qux".into())],
- );
- let expected_edit = WorkspaceEdit::new(expected_changes);
-
- assert_eq!(actual_edit, expected_edit);
- }
+ Some(RenameResult { changes })
}
diff --git a/support/texlab/src/features/rename/entry.rs b/support/texlab/src/features/rename/entry.rs
index 4861b63570..6eac79030b 100644
--- a/support/texlab/src/features/rename/entry.rs
+++ b/support/texlab/src/features/rename/entry.rs
@@ -1,7 +1,8 @@
-use std::collections::HashMap;
+use std::sync::Arc;
-use lsp_types::{Range, RenameParams, TextEdit, WorkspaceEdit};
-use rowan::ast::AstNode;
+use lsp_types::RenameParams;
+use rowan::{ast::AstNode, TextRange};
+use rustc_hash::FxHashMap;
use crate::{
features::cursor::{CursorContext, HasPosition},
@@ -9,139 +10,63 @@ use crate::{
bibtex::{self, HasName},
latex,
},
- DocumentData, LineIndexExt,
+ DocumentData,
};
-pub fn prepare_entry_rename<P: HasPosition>(context: &CursorContext<P>) -> Option<Range> {
+use super::{Indel, RenameResult};
+
+pub(super) fn prepare_entry_rename<P: HasPosition>(
+ context: &CursorContext<P>,
+) -> Option<TextRange> {
let (_, range) = context
.find_citation_key_word()
.or_else(|| context.find_entry_key())?;
- Some(
- context
- .request
- .main_document()
- .line_index
- .line_col_lsp_range(range),
- )
+ Some(range)
}
-pub fn rename_entry(context: &CursorContext<RenameParams>) -> Option<WorkspaceEdit> {
+pub(super) fn rename_entry(context: &CursorContext<RenameParams>) -> Option<RenameResult> {
prepare_entry_rename(context)?;
let (key_text, _) = context
.find_citation_key_word()
.or_else(|| context.find_entry_key())?;
- let mut changes = HashMap::new();
+ let mut changes = FxHashMap::default();
for document in context.request.workspace.documents_by_uri.values() {
+ let uri = Arc::clone(&document.uri);
match &document.data {
DocumentData::Latex(data) => {
- let edits: Vec<_> = latex::SyntaxNode::new_root(data.green.clone())
+ let root = latex::SyntaxNode::new_root(data.green.clone());
+ let edits: Vec<_> = root
.descendants()
.filter_map(latex::Citation::cast)
.filter_map(|citation| citation.key_list())
.flat_map(|keys| keys.keys())
.filter(|key| key.to_string() == key_text)
- .map(|key| {
- document
- .line_index
- .line_col_lsp_range(latex::small_range(&key))
+ .map(|key| Indel {
+ delete: latex::small_range(&key),
+ insert: context.request.params.new_name.clone(),
})
- .map(|range| TextEdit::new(range, context.request.params.new_name.clone()))
.collect();
- changes.insert(document.uri.as_ref().clone(), edits);
+ changes.insert(uri, edits);
}
DocumentData::Bibtex(data) => {
- let edits: Vec<_> = bibtex::SyntaxNode::new_root(data.green.clone())
+ let root = bibtex::SyntaxNode::new_root(data.green.clone());
+ let edits: Vec<_> = root
.descendants()
.filter_map(bibtex::Entry::cast)
.filter_map(|entry| entry.name_token())
.filter(|key| key.text() == key_text)
- .map(|key| document.line_index.line_col_lsp_range(key.text_range()))
- .map(|range| TextEdit::new(range, context.request.params.new_name.clone()))
+ .map(|key| Indel {
+ delete: key.text_range(),
+ insert: context.request.params.new_name.clone(),
+ })
.collect();
- changes.insert(document.uri.as_ref().clone(), edits);
+ changes.insert(uri, edits);
}
DocumentData::BuildLog(_) => {}
}
}
- Some(WorkspaceEdit::new(changes))
-}
-
-#[cfg(test)]
-mod tests {
- use lsp_types::TextEdit;
-
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_entry() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("main.bib", r#"@article{foo, bar = baz}"#),
- ("main.tex", "\\addbibresource{main.bib}\n\\cite{foo}"),
- ])
- .main("main.bib")
- .line(0)
- .character(9)
- .new_name("qux")
- .build();
-
- let uri1 = tester.uri("main.bib");
- let uri2 = tester.uri("main.tex");
- let request = tester.rename();
-
- let context = CursorContext::new(request);
- let actual_edit = rename_entry(&context).unwrap();
-
- let mut expected_changes = HashMap::new();
- expected_changes.insert(
- uri1.as_ref().clone(),
- vec![TextEdit::new(Range::new_simple(0, 9, 0, 12), "qux".into())],
- );
- expected_changes.insert(
- uri2.as_ref().clone(),
- vec![TextEdit::new(Range::new_simple(1, 6, 1, 9), "qux".into())],
- );
- let expected_edit = WorkspaceEdit::new(expected_changes);
-
- assert_eq!(actual_edit, expected_edit);
- }
-
- #[test]
- fn test_citation() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("main.bib", r#"@article{foo, bar = baz}"#),
- ("main.tex", "\\addbibresource{main.bib}\n\\cite{foo}"),
- ])
- .main("main.tex")
- .line(1)
- .character(6)
- .new_name("qux")
- .build();
-
- let uri1 = tester.uri("main.bib");
- let uri2 = tester.uri("main.tex");
- let request = tester.rename();
-
- let context = CursorContext::new(request);
- let actual_edit = rename_entry(&context).unwrap();
-
- let mut expected_changes = HashMap::new();
- expected_changes.insert(
- uri1.as_ref().clone(),
- vec![TextEdit::new(Range::new_simple(0, 9, 0, 12), "qux".into())],
- );
- expected_changes.insert(
- uri2.as_ref().clone(),
- vec![TextEdit::new(Range::new_simple(1, 6, 1, 9), "qux".into())],
- );
- let expected_edit = WorkspaceEdit::new(expected_changes);
-
- assert_eq!(actual_edit, expected_edit);
- }
+ Some(RenameResult { changes })
}
diff --git a/support/texlab/src/features/rename/label.rs b/support/texlab/src/features/rename/label.rs
index f24b86810b..30a99c3b36 100644
--- a/support/texlab/src/features/rename/label.rs
+++ b/support/texlab/src/features/rename/label.rs
@@ -1,31 +1,28 @@
-use std::collections::HashMap;
+use std::sync::Arc;
-use lsp_types::{Range, RenameParams, TextEdit, WorkspaceEdit};
-use rowan::ast::AstNode;
+use lsp_types::RenameParams;
+use rowan::{ast::AstNode, TextRange};
+use rustc_hash::FxHashMap;
use crate::{
features::cursor::{CursorContext, HasPosition},
syntax::latex,
- LineIndexExt,
};
-pub fn prepare_label_rename<P: HasPosition>(context: &CursorContext<P>) -> Option<Range> {
- let (_, range) = context.find_label_name_key()?;
+use super::{Indel, RenameResult};
- Some(
- context
- .request
- .main_document()
- .line_index
- .line_col_lsp_range(range),
- )
+pub(super) fn prepare_label_rename<P: HasPosition>(
+ context: &CursorContext<P>,
+) -> Option<TextRange> {
+ let (_, range) = context.find_label_name_key()?;
+ Some(range)
}
-pub fn rename_label(context: &CursorContext<RenameParams>) -> Option<WorkspaceEdit> {
+pub(super) fn rename_label(context: &CursorContext<RenameParams>) -> Option<RenameResult> {
prepare_label_rename(context)?;
let (name_text, _) = context.find_label_name_key()?;
- let mut changes = HashMap::new();
+ let mut changes = FxHashMap::default();
for document in context.request.workspace.documents_by_uri.values() {
if let Some(data) = document.data.as_latex() {
let mut edits = Vec::new();
@@ -34,16 +31,12 @@ pub fn rename_label(context: &CursorContext<RenameParams>) -> Option<WorkspaceEd
.and_then(|label| label.name())
.and_then(|name| name.key())
.filter(|name| name.to_string() == name_text)
- .map(|name| {
- document
- .line_index
- .line_col_lsp_range(latex::small_range(&name))
- })
+ .map(|name| latex::small_range(&name))
{
- edits.push(TextEdit::new(
- range,
- context.request.params.new_name.clone(),
- ));
+ edits.push(Indel {
+ delete: range,
+ insert: context.request.params.new_name.clone(),
+ });
}
latex::LabelReference::cast(node.clone())
@@ -51,16 +44,11 @@ pub fn rename_label(context: &CursorContext<RenameParams>) -> Option<WorkspaceEd
.into_iter()
.flat_map(|label| label.keys())
.filter(|name| name.to_string() == name_text)
- .map(|name| {
- document
- .line_index
- .line_col_lsp_range(latex::small_range(&name))
- })
- .for_each(|range| {
- edits.push(TextEdit::new(
- range,
- context.request.params.new_name.clone(),
- ));
+ .for_each(|name| {
+ edits.push(Indel {
+ delete: latex::small_range(&name),
+ insert: context.request.params.new_name.clone(),
+ });
});
if let Some(label) = latex::LabelReferenceRange::cast(node.clone()) {
@@ -69,12 +57,10 @@ pub fn rename_label(context: &CursorContext<RenameParams>) -> Option<WorkspaceEd
.and_then(|name| name.key())
.filter(|name| name.to_string() == name_text)
{
- edits.push(TextEdit::new(
- document
- .line_index
- .line_col_lsp_range(latex::small_range(&name1)),
- context.request.params.new_name.clone(),
- ));
+ edits.push(Indel {
+ delete: latex::small_range(&name1),
+ insert: context.request.params.new_name.clone(),
+ });
}
if let Some(name2) = label
@@ -82,61 +68,17 @@ pub fn rename_label(context: &CursorContext<RenameParams>) -> Option<WorkspaceEd
.and_then(|name| name.key())
.filter(|name| name.to_string() == name_text)
{
- edits.push(TextEdit::new(
- document
- .line_index
- .line_col_lsp_range(latex::small_range(&name2)),
- context.request.params.new_name.clone(),
- ));
+ edits.push(Indel {
+ delete: latex::small_range(&name2),
+ insert: context.request.params.new_name.clone(),
+ });
}
}
}
- changes.insert(document.uri.as_ref().clone(), edits);
+ changes.insert(Arc::clone(&document.uri), edits);
}
}
- Some(WorkspaceEdit::new(changes))
-}
-
-#[cfg(test)]
-mod tests {
- use crate::{features::testing::FeatureTester, RangeExt};
-
- use super::*;
-
- #[test]
- fn test_label() {
- let tester = FeatureTester::builder()
- .files(vec![
- ("foo.tex", r#"\label{foo}\include{bar}"#),
- ("bar.tex", r#"\ref{foo}"#),
- ("baz.tex", r#"\ref{foo}"#),
- ])
- .main("foo.tex")
- .line(0)
- .character(7)
- .new_name("bar")
- .build();
-
- let uri1 = tester.uri("foo.tex");
- let uri2 = tester.uri("bar.tex");
- let request = tester.rename();
-
- let context = CursorContext::new(request);
- let actual_edit = rename_label(&context).unwrap();
-
- let mut expected_changes = HashMap::new();
- expected_changes.insert(
- uri1.as_ref().clone(),
- vec![TextEdit::new(Range::new_simple(0, 7, 0, 10), "bar".into())],
- );
- expected_changes.insert(
- uri2.as_ref().clone(),
- vec![TextEdit::new(Range::new_simple(0, 5, 0, 8), "bar".into())],
- );
- let expected_edit = WorkspaceEdit::new(expected_changes);
-
- assert_eq!(actual_edit, expected_edit);
- }
+ Some(RenameResult { changes })
}
diff --git a/support/texlab/src/features/symbol.rs b/support/texlab/src/features/symbol.rs
index 42b9d03d3f..24d599c3e1 100644
--- a/support/texlab/src/features/symbol.rs
+++ b/support/texlab/src/features/symbol.rs
@@ -14,10 +14,12 @@ use crate::{ClientCapabilitiesExt, Workspace};
use self::{
bibtex::find_bibtex_symbols, latex::find_latex_symbols, project_order::ProjectOrdering,
+ types::InternalSymbol,
};
use super::FeatureRequest;
+#[must_use]
pub fn find_document_symbols(req: FeatureRequest<DocumentSymbolParams>) -> DocumentSymbolResponse {
let mut buf = Vec::new();
find_latex_symbols(&req, &mut buf);
@@ -30,7 +32,7 @@ pub fn find_document_symbols(req: FeatureRequest<DocumentSymbolParams>) -> Docum
{
DocumentSymbolResponse::Nested(
buf.into_iter()
- .map(|symbol| symbol.into_document_symbol())
+ .map(InternalSymbol::into_document_symbol)
.collect(),
)
} else {
@@ -53,6 +55,7 @@ struct WorkspaceSymbol {
search_text: String,
}
+#[must_use]
pub fn find_workspace_symbols(
workspace: &Workspace,
params: &WorkspaceSymbolParams,
diff --git a/support/texlab/src/label.rs b/support/texlab/src/label.rs
index 9212c49222..b66db836f2 100644
--- a/support/texlab/src/label.rs
+++ b/support/texlab/src/label.rs
@@ -69,6 +69,7 @@ pub struct RenderedLabel {
}
impl RenderedLabel {
+ #[must_use]
pub fn reference(&self) -> String {
match &self.number {
Some(number) => match &self.object {
@@ -102,6 +103,7 @@ impl RenderedLabel {
}
}
+ #[must_use]
pub fn detail(&self) -> Option<String> {
match &self.object {
Section { .. } | Theorem { .. } | Equation | EnumItem => Some(self.reference()),
@@ -115,6 +117,7 @@ impl RenderedLabel {
}
}
+ #[must_use]
pub fn documentation(&self) -> MarkupContent {
MarkupContent {
kind: MarkupKind::PlainText,
diff --git a/support/texlab/src/lang_data.rs b/support/texlab/src/lang_data.rs
index 9aa939c483..28e6a540e0 100644
--- a/support/texlab/src/lang_data.rs
+++ b/support/texlab/src/lang_data.rs
@@ -41,6 +41,7 @@ pub struct LanguageData {
}
impl LanguageData {
+ #[must_use]
pub fn find_entry_type(&self, name: &str) -> Option<&BibtexEntryTypeDoc> {
let name = name.to_lowercase();
self.entry_types
@@ -48,11 +49,13 @@ impl LanguageData {
.find(|ty| ty.name.to_lowercase() == name)
}
+ #[must_use]
pub fn entry_type_documentation(&self, name: &str) -> Option<&str> {
self.find_entry_type(name)
.and_then(|ty| ty.documentation.as_ref().map(AsRef::as_ref))
}
+ #[must_use]
pub fn field_documentation(&self, name: &str) -> Option<&str> {
self.fields
.iter()
diff --git a/support/texlab/src/main.rs b/support/texlab/src/main.rs
index c3616a3e96..71338f1bcd 100644
--- a/support/texlab/src/main.rs
+++ b/support/texlab/src/main.rs
@@ -32,7 +32,7 @@ fn main() -> Result<()> {
setup_logger(opts);
let (connection, threads) = Connection::stdio();
- Server::with_connection(connection, env::current_dir()?, true)?.run()?;
+ Server::with_connection(connection, env::current_dir()?, true).run()?;
threads.join()?;
Ok(())
diff --git a/support/texlab/src/options.rs b/support/texlab/src/options.rs
index 211b3468c4..fe0d81c639 100644
--- a/support/texlab/src/options.rs
+++ b/support/texlab/src/options.rs
@@ -85,22 +85,26 @@ pub struct BuildOptions {
}
impl BuildOptions {
+ #[must_use]
pub fn executable(&self) -> String {
self.executable
.as_ref()
- .map(Clone::clone)
- .unwrap_or_else(|| "latexmk".to_string())
+ .map_or_else(|| "latexmk".to_string(), Clone::clone)
}
+ #[must_use]
pub fn args(&self) -> Vec<String> {
- self.args.as_ref().map(Clone::clone).unwrap_or_else(|| {
- vec![
- "-pdf".to_string(),
- "-interaction=nonstopmode".to_string(),
- "-synctex=1".to_string(),
- "%f".to_string(),
- ]
- })
+ self.args.as_ref().map_or_else(
+ || {
+ vec![
+ "-pdf".to_string(),
+ "-interaction=nonstopmode".to_string(),
+ "-synctex=1".to_string(),
+ "%f".to_string(),
+ ]
+ },
+ Clone::clone,
+ )
}
}
diff --git a/support/texlab/src/server.rs b/support/texlab/src/server.rs
index 5f833b65bb..f3d2bf44f4 100644
--- a/support/texlab/src/server.rs
+++ b/support/texlab/src/server.rs
@@ -17,10 +17,11 @@ use crate::{
dispatch::{NotificationDispatcher, RequestDispatcher},
distro::Distribution,
features::{
- find_all_references, find_document_highlights, find_document_links, find_document_symbols,
- find_foldings, find_hover, find_workspace_symbols, format_source_code, goto_definition,
- prepare_rename_all, rename_all, BuildEngine, BuildParams, BuildResult, BuildStatus,
- FeatureRequest, ForwardSearchResult, ForwardSearchStatus,
+ execute_command, find_all_references, find_document_highlights, find_document_links,
+ find_document_symbols, find_foldings, find_hover, find_workspace_symbols,
+ format_source_code, goto_definition, prepare_rename_all, rename_all, BuildEngine,
+ BuildParams, BuildResult, BuildStatus, FeatureRequest, ForwardSearchResult,
+ ForwardSearchStatus,
},
req_queue::{IncomingData, ReqQueue},
ClientCapabilitiesExt, DocumentLanguage, Environment, LineIndex, LineIndexExt, Options,
@@ -52,7 +53,7 @@ impl Server {
connection: Connection,
current_dir: PathBuf,
load_resolver: bool,
- ) -> Result<Self> {
+ ) -> Self {
let req_queue = Arc::default();
let workspace = Workspace::new(Environment::new(Arc::new(current_dir)));
let diag_manager = Arc::new(Mutex::new(DiagnosticsManager::default()));
@@ -66,7 +67,7 @@ impl Server {
let (internal_tx, internal_rx) = crossbeam_channel::unbounded();
- Ok(Self {
+ Self {
connection: Arc::new(connection),
internal_tx,
internal_rx,
@@ -77,7 +78,7 @@ impl Server {
pool: Arc::new(Mutex::new(threadpool::Builder::new().build())),
load_resolver,
build_engine: Arc::default(),
- })
+ }
}
fn spawn(&self, job: impl FnOnce(Self) + Send + 'static) {
@@ -127,6 +128,13 @@ impl Server {
})),
document_highlight_provider: Some(OneOf::Left(true)),
document_formatting_provider: Some(OneOf::Left(true)),
+ execute_command_provider: Some(ExecuteCommandOptions {
+ commands: vec![
+ "texlab.cleanAuxiliary".into(),
+ "texlab.cleanArtifacts".into(),
+ ],
+ ..Default::default()
+ }),
..ServerCapabilities::default()
}
}
@@ -506,12 +514,19 @@ impl Server {
{
self.spawn(move |server| {
let request = server.feature_request(uri, params);
- let result = handler(request);
- server
- .connection
- .sender
- .send(lsp_server::Response::new_ok(id, result).into())
- .unwrap();
+ if request.workspace.documents_by_uri.is_empty() {
+ let code = lsp_server::ErrorCode::InvalidRequest as i32;
+ let message = "unknown document".to_string();
+ let response = lsp_server::Response::new_err(id, code, message);
+ server.connection.sender.send(response.into()).unwrap();
+ } else {
+ let result = handler(request);
+ server
+ .connection
+ .sender
+ .send(lsp_server::Response::new_ok(id, result).into())
+ .unwrap();
+ }
});
Ok(())
@@ -668,6 +683,24 @@ impl Server {
Ok(())
}
+ fn execute_command(&self, id: RequestId, params: ExecuteCommandParams) -> Result<()> {
+ self.spawn(move |server| {
+ let result = execute_command(&server.workspace, &params.command, params.arguments);
+ let response = match result {
+ Ok(()) => lsp_server::Response::new_ok(id, ()),
+ Err(why) => lsp_server::Response::new_err(
+ id,
+ lsp_server::ErrorCode::InternalError as i32,
+ why.to_string(),
+ ),
+ };
+
+ server.connection.sender.send(response.into()).unwrap();
+ });
+
+ Ok(())
+ }
+
fn semantic_tokens_range(
&self,
_id: RequestId,
@@ -765,6 +798,7 @@ impl Server {
.on::<ForwardSearchRequest, _>(|id, params| {
self.forward_search(id, params)
})?
+ .on::<ExecuteCommand,_>(|id, params| self.execute_command(id, params))?
.on::<SemanticTokensRangeRequest, _>(|id, params| {
self.semantic_tokens_range(id, params)
})?
@@ -847,11 +881,7 @@ fn create_chktex_debouncer(
let sender = conn.sender.clone();
DiagnosticsDebouncer::launch(move |workspace, document| {
let mut manager = manager.lock().unwrap();
- manager.update_chktex(
- &workspace,
- Arc::clone(&document.uri),
- &workspace.environment.options,
- );
+ manager.update_chktex(&workspace, &document.uri, &workspace.environment.options);
if let Err(why) = publish_diagnostics(&sender, &workspace, &manager) {
warn!("Failed to publish diagnostics: {}", why);
}
@@ -864,7 +894,7 @@ fn publish_diagnostics(
diag_manager: &DiagnosticsManager,
) -> Result<()> {
for document in workspace.documents_by_uri.values() {
- let diagnostics = diag_manager.publish(Arc::clone(&document.uri));
+ let diagnostics = diag_manager.publish(&document.uri);
send_notification::<PublishDiagnostics>(
sender,
PublishDiagnosticsParams {
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_001.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_001.snap
deleted file mode 100644
index 40b6a6ad00..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_001.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 133
-expression: "render_simple(r#\"\n@incollection{westfahl:space,\n author = {Westfahl, Gary},\n title = {The True Frontier},\n subtitle = {Confronting and Avoiding the Realities of Space in {American}\n Science Fiction Films},\n pages = {55-65},\n crossref = {westfahl:frontier},\n langid = {english},\n langidopts = {variant=american},\n indextitle = {True Frontier, The},\n annotation = {A cross-referenced article from a \\texttt{collection}. This is\n an \\texttt{incollection} entry with a \\texttt{crossref}\n field. Note the \\texttt{subtitle} and \\texttt{indextitle}\n fields},\n}\n\n% booktitle and booksubtitle are only needed for BibTeX's less sophisticated\n% inheritance set-up to make sure westfahl:space shows correctly.\n% With Biber they are not needed.\n@collection{westfahl:frontier,\n editor = {Westfahl, Gary},\n title = {Space and Beyond},\n date = 2000,\n subtitle = {The Frontier Theme in Science Fiction},\n publisher = {Greenwood},\n location = {Westport, Conn. and London},\n langid = {english},\n langidopts = {variant=american},\n booktitle = {Space and Beyond},\n booksubtitle = {The Frontier Theme in Science Fiction},\n annotation = {This is a \\texttt{collection} entry. Note the format of the\n \\texttt{location} field as well as the \\texttt{subtitle}\n field},\n}\"#)"
----
-Westfahl, Gary. (n.d.). *The True Frontier: Confronting and Avoiding the Realities of Space in American Science Fiction Films*.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_002.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_002.snap
deleted file mode 100644
index ed55dc0b88..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_002.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 174
-expression: "render_simple(r#\"\n@string{jomch = {J.~Organomet. Chem.}}\n\n@article{aksin,\n author = {Aks{\\i}n, {\\\"O}zge and T{\\\"u}rkmen, Hayati and Artok, Levent\n and {\\c{C}}etinkaya, Bekir and Ni, Chaoying and\n B{\\\"u}y{\\\"u}kg{\\\"u}ng{\\\"o}r, Orhan and {\\\"O}zkal, Erhan},\n title = {Effect of immobilization on catalytic characteristics of\n saturated {Pd-N}-heterocyclic carbenes in {Mizoroki-Heck}\n reactions},\n journaltitle = jomch,\n date = 2006,\n volume = 691,\n number = 13,\n pages = {3027-3036},\n indextitle = {Effect of immobilization on catalytic characteristics},\n}\"#)"
----
-Aksın, Özge, Türkmen, Hayati, Artok, Levent, \\cCetinkaya, Bekir, Ni, Chaoying, Büyükgüngör, Orhan, & Özkal, Erhan. (n.d.). Effect of immobilization on catalytic characteristics of saturated Pd-N-heterocyclic carbenes in Mizoroki-Heck reactions. *J. Organomet. Chem.*, *691*(13), 3027–3036.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_003.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_003.snap
deleted file mode 100644
index a6455425eb..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_003.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 197
-expression: "render_simple(r#\"\n@article{angenendt,\n author = {Angenendt, Arnold},\n title = {In Honore Salvatoris~-- Vom Sinn und Unsinn der\n Patrozinienkunde},\n journaltitle = {Revue d'Histoire Eccl{\\'e}siastique},\n date = 2002,\n volume = 97,\n pages = {431--456, 791--823},\n langid = {german},\n indextitle = {In Honore Salvatoris},\n shorttitle = {In Honore Salvatoris},\n annotation = {A German article in a French journal. Apart from that, a\n typical \\texttt{article} entry. Note the \\texttt{indextitle}\n field},\n}\"#)"
----
-Angenendt, Arnold. (n.d.). In Honore Salvatoris – Vom Sinn und Unsinn der Patrozinienkunde. *Revue d’Histoire Ecclésiastique*, *97*, 431–456,.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_004.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_004.snap
deleted file mode 100644
index acf616c4d4..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_004.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 219
-expression: "render_simple(r#\"\n@article{baez/article,\n author = {Baez, John C. and Lauda, Aaron D.},\n title = {Higher-Dimensional Algebra {V}: 2-Groups},\n journaltitle = {Theory and Applications of Categories},\n date = 2004,\n volume = 12,\n pages = {423-491},\n version = 3,\n eprint = {math/0307200v3},\n eprinttype = {arxiv},\n langid = {english},\n langidopts = {variant=american},\n annotation = {An \\texttt{article} with \\texttt{eprint} and\n \\texttt{eprinttype} fields. Note that the arXiv reference is\n transformed into a clickable link if \\texttt{hyperref} support\n has been enabled. Compare \\texttt{baez\\slash online}, which\n is the same item given as an \\texttt{online} entry},\n}\"#)"
----
-Baez, John C., & Lauda, Aaron D. (n.d.). Higher-Dimensional Algebra V: 2-Groups. *Theory and Applications of Categories*, *12*, 423–491. Retrieved from [http://arxiv.org/abs/math/0307200v3](http://arxiv.org/abs/math/0307200v3)
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_005.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_005.snap
deleted file mode 100644
index 0b6fc6a658..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_005.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 244
-expression: "render_simple(r#\"\n@string{jams = {J.~Amer. Math. Soc.}}\n\n@article{bertram,\n author = {Bertram, Aaron and Wentworth, Richard},\n title = {Gromov invariants for holomorphic maps on {Riemann} surfaces},\n journaltitle = jams,\n date = 1996,\n volume = 9,\n number = 2,\n pages = {529-571},\n langid = {english},\n langidopts = {variant=american},\n shorttitle = {Gromov invariants},\n annotation = {An \\texttt{article} entry with a \\texttt{volume} and a\n \\texttt{number} field},\n}\"#)"
----
-Bertram, Aaron, & Wentworth, Richard. (n.d.). Gromov invariants for holomorphic maps on Riemann surfaces. *J. Amer. Math. Soc.*, *9*(2), 529–571.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_006.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_006.snap
deleted file mode 100644
index cf38243313..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_006.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 267
-expression: "render_simple(r#\"\n@article{doody,\n author = {Doody, Terrence},\n title = {Hemingway's Style and {Jake's} Narration},\n year = 1974,\n volume = 4,\n number = 3,\n pages = {212-225},\n langid = {english},\n langidopts = {variant=american},\n related = {matuz:doody},\n relatedstring= {\\autocap{e}xcerpt in},\n journal = {The Journal of Narrative Technique},\n annotation = {An \\texttt{article} entry cited as an excerpt from a\n \\texttt{collection} entry. Note the format of the\n \\texttt{related} and \\texttt{relatedstring} fields},\n}\"#)"
----
-Doody, Terrence. (1974). Hemingway’s Style and Jake’s Narration. *The Journal of Narrative Technique*, *4*(3), 212–225.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_007.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_007.snap
deleted file mode 100644
index 7ad251527a..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_007.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 290
-expression: "render_simple(r#\"\n@article{gillies,\n author = {Gillies, Alexander},\n title = {Herder and the Preparation of {Goethe's} Idea of World\n Literature},\n journaltitle = {Publications of the English Goethe Society},\n date = 1933,\n series = {newseries},\n volume = 9,\n pages = {46-67},\n langid = {english},\n langidopts = {variant=british},\n annotation = {An \\texttt{article} entry with a \\texttt{series} and a\n \\texttt{volume} field. Note that format of the \\texttt{series}\n field in the database file},\n}\"#)"
----
-Gillies, Alexander. (n.d.). Herder and the Preparation of Goethe’s Idea of World Literature. *Publications of the English Goethe Society*, *9*, 46–67.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_008.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_008.snap
deleted file mode 100644
index 1d99cc8d85..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_008.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 312
-expression: "render_simple(r#\"\n@article{glashow,\n author = {Glashow, Sheldon},\n title = {Partial Symmetries of Weak Interactions},\n journaltitle = {Nucl.~Phys.},\n date = 1961,\n volume = 22,\n pages = {579-588},\n}\"#)"
----
-Glashow, Sheldon. (n.d.). Partial Symmetries of Weak Interactions. *Nucl. Phys.*, *22*, 579–588.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_009.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_009.snap
deleted file mode 100644
index 8bd943fafb..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_009.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 327
-expression: "render_simple(r#\"\n@string{anch-ie = {Angew.~Chem. Int.~Ed.}}\n\n@article{herrmann,\n author = {Herrmann, Wolfgang A. and {\\\"O}fele, Karl and Schneider,\n Sabine K. and Herdtweck, Eberhardt and Hoffmann, Stephan D.},\n title = {A carbocyclic carbene as an efficient catalyst ligand for {C--C}\n coupling reactions},\n journaltitle = anch-ie,\n date = 2006,\n volume = 45,\n number = 23,\n pages = {3859-3862},\n indextitle = {Carbocyclic carbene as an efficient catalyst, A},\n}\"#)"
----
-Herrmann, Wolfgang A., Öfele, Karl, Schneider, Sabine K., Herdtweck, Eberhardt, & Hoffmann, Stephan D. (n.d.). A carbocyclic carbene as an efficient catalyst ligand for C–C coupling reactions. *Angew. Chem. Int. Ed.*, *45*(23), 3859–3862.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_010.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_010.snap
deleted file mode 100644
index 09e341c790..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_010.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 348
-expression: "render_simple(r#\"\n@string{jchph = {J.~Chem. Phys.}}\n\n@article{kastenholz,\n author = {Kastenholz, M. A. and H{\\\"u}nenberger, Philippe H.},\n title = {Computation of methodology\\hyphen independent ionic solvation\n free energies from molecular simulations},\n journaltitle = jchph,\n date = 2006,\n subtitle = {{I}. {The} electrostatic potential in molecular liquids},\n volume = 124,\n eid = 124106,\n doi = {10.1063/1.2172593},\n langid = {english},\n langidopts = {variant=american},\n indextitle = {Computation of ionic solvation free energies},\n annotation = {An \\texttt{article} entry with an \\texttt{eid} and a\n \\texttt{doi} field. Note that the \\textsc{doi} is transformed\n into a clickable link if \\texttt{hyperref} support has been\n enabled},\n abstract = {The computation of ionic solvation free energies from\n atomistic simulations is a surprisingly difficult problem that\n has found no satisfactory solution for more than 15 years. The\n reason is that the charging free energies evaluated from such\n simulations are affected by very large errors. One of these is\n related to the choice of a specific convention for summing up\n the contributions of solvent charges to the electrostatic\n potential in the ionic cavity, namely, on the basis of point\n charges within entire solvent molecules (M scheme) or on the\n basis of individual point charges (P scheme). The use of an\n inappropriate convention may lead to a charge-independent\n offset in the calculated potential, which depends on the\n details of the summation scheme, on the quadrupole-moment\n trace of the solvent molecule, and on the approximate form\n used to represent electrostatic interactions in the\n system. However, whether the M or P scheme (if any) represents\n the appropriate convention is still a matter of on-going\n debate. The goal of the present article is to settle this\n long-standing controversy by carefully analyzing (both\n analytically and numerically) the properties of the\n electrostatic potential in molecular liquids (and inside\n cavities within them).}, \n}\"#)"
----
-Kastenholz, M. A., & Hünenberger, Philippe H. (n.d.). Computation of methodology\\hyphen independent ionic solvation free energies from molecular simulations: I. The electrostatic potential in molecular liquids. *J. Chem. Phys.*, *124*. [https://doi.org/10.1063/1.2172593](https://doi.org/10.1063/1.2172593)
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_011.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_011.snap
deleted file mode 100644
index cb07b2f730..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_011.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 397
-expression: "render_simple(r#\"\n@article{murray,\n author = {Hostetler, Michael J. and Wingate, Julia E. and Zhong,\n Chuan-Jian and Harris, Jay E. and Vachet, Richard W. and\n Clark, Michael R. and Londono, J. David and Green, Stephen\n J. and Stokes, Jennifer J. and Wignall, George D. and Glish,\n Gary L. and Porter, Marc D. and Evans, Neal D. and Murray,\n Royce W.},\n title = {Alkanethiolate gold cluster molecules with core diameters from\n 1.5 to 5.2~{nm}},\n journaltitle = {Langmuir},\n date = 1998,\n subtitle = {Core and monolayer properties as a function of core size},\n volume = 14,\n number = 1,\n pages = {17-30},\n langid = {english},\n langidopts = {variant=american},\n indextitle = {Alkanethiolate gold cluster molecules},\n shorttitle = {Alkanethiolate gold cluster molecules},\n annotation = {An \\texttt{article} entry with \\arabic{author} authors. By\n default, long author and editor lists are automatically\n truncated. This is configurable},\n}\"#)"
----
-Hostetler, Michael J., Wingate, Julia E., Zhong, Chuan-Jian, Harris, Jay E., Vachet, Richard W., Clark, Michael R., … Murray, Royce W. (n.d.). Alkanethiolate gold cluster molecules with core diameters from 1.5 to 5.2 nm: Core and monolayer properties as a function of core size. *Langmuir*, *14*(1), 17–30.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_012.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_012.snap
deleted file mode 100644
index a99fa01b9c..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_012.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 427
-expression: "render_simple(r#\"\n@article{reese,\n author = {Reese, Trevor R.},\n title = {Georgia in {Anglo-Spanish} Diplomacy, 1736--1739},\n journaltitle = {William and Mary Quarterly},\n date = 1958,\n series = 3,\n volume = 15,\n pages = {168-190},\n langid = {english},\n langidopts = {variant=american},\n annotation = {An \\texttt{article} entry with a \\texttt{series} and a\n \\texttt{volume} field. Note the format of the series. If the\n value of the \\texttt{series} field is an integer, this number\n is printed as an ordinal and the string \\enquote*{series} is\n appended automatically},\n}\"#)"
----
-Reese, Trevor R. (n.d.). Georgia in Anglo-Spanish Diplomacy, 1736–1739. *William and Mary Quarterly*, *15*, 168–190.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_013.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_013.snap
deleted file mode 100644
index cdca99c3b4..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_013.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 450
-expression: "render_simple(r#\"\n@article{sarfraz,\n author = {M. Sarfraz and M. F. A. Razzak},\n title = {Technical section: {An} algorithm for automatic capturing of\n the font outlines},\n year = 2002,\n volume = 26,\n number = 5,\n pages = {795-804},\n issn = {0097-8493},\n journal = {Computers and Graphics},\n annotation = {An \\texttt{article} entry with an \\texttt{issn} field},\n}\"#)"
----
-Sarfraz, M., & Razzak, M. F. A. (2002). Technical section: An algorithm for automatic capturing of the font outlines. *Computers and Graphics*, *26*(5), 795–804.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_014.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_014.snap
deleted file mode 100644
index 436d4fcbd9..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_014.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 469
-expression: "render_simple(r#\"\n@article{shore,\n author = {Shore, Bradd},\n title = {Twice-Born, Once Conceived},\n journaltitle = {American Anthropologist},\n date = {1991-03},\n subtitle = {Meaning Construction and Cultural Cognition},\n series = {newseries},\n volume = 93,\n number = 1,\n pages = {9-27},\n annotation = {An \\texttt{article} entry with \\texttt{series},\n \\texttt{volume}, and \\texttt{number} fields. Note the format\n of the \\texttt{series} which is a localization key},\n}\"#)"
----
-Shore, Bradd. (n.d.). Twice-Born, Once Conceived: Meaning Construction and Cultural Cognition. *American Anthropologist*, *93*(1), 9–27.
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_015.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_015.snap
deleted file mode 100644
index 4d787a627a..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_015.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 490
-expression: "render_simple(r#\"\n@article{sigfridsson,\n author = {Sigfridsson, Emma and Ryde, Ulf},\n title = {Comparison of methods for deriving atomic charges from the\n electrostatic potential and moments},\n journaltitle = {Journal of Computational Chemistry},\n date = 1998,\n volume = 19,\n number = 4,\n pages = {377-395},\n doi = {10.1002/(SICI)1096-987X(199803)19:4<377::AID-JCC1>3.0.CO;2-P},\n langid = {english},\n langidopts = {variant=american},\n indextitle = {Methods for deriving atomic charges},\n annotation = {An \\texttt{article} entry with \\texttt{volume},\n \\texttt{number}, and \\texttt{doi} fields. Note that the\n \\textsc{doi} is transformed into a clickable link if\n \\texttt{hyperref} support has been enabled},\n abstract = {Four methods for deriving partial atomic charges from the\n quantum chemical electrostatic potential (CHELP, CHELPG,\n Merz-Kollman, and RESP) have been compared and critically\n evaluated. It is shown that charges strongly depend on how and\n where the potential points are selected. Two alternative\n methods are suggested to avoid the arbitrariness in the\n point-selection schemes and van der Waals exclusion radii:\n CHELP-BOW, which also estimates the charges from the\n electrostatic potential, but with potential points that are\n Boltzmann-weighted after their occurrence in actual\n simulations using the energy function of the program in which\n the charges will be used, and CHELMO, which estimates the\n charges directly from the electrostatic multipole\n moments. Different criteria for the quality of the charges are\n discussed.},\n}\"#)"
----
-Sigfridsson, Emma, & Ryde, Ulf. (n.d.). Comparison of methods for deriving atomic charges from the electrostatic potential and moments. *Journal of Computational Chemistry*, *19*(4), 377–395. [https://doi.org/10.1002/(SICI)1096-987X(199803)19:4%3C377::AID-JCC1%3E3.0.CO;2-P](https://doi.org/10.1002/(SICI)1096-987X(199803)19:4%3C377::AID-JCC1%3E3.0.CO;2-P)
diff --git a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_016.snap b/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_016.snap
deleted file mode 100644
index 1d08417a11..0000000000
--- a/support/texlab/src/snapshots/texlab__citation__tests__biblatex_examples_016.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: src/citation.rs
-assertion_line: 530
-expression: "render_simple(r#\"\n@article{spiegelberg,\n author = {Spiegelberg, Herbert},\n title = {\\mkbibquote{Intention} und \\mkbibquote{Intentionalit{\\\"a}t} in\n der Scholastik, bei Brentano und Husserl},\n journaltitle = {Studia Philosophica},\n date = 1969,\n volume = 29,\n pages = {189-216},\n langid = {german},\n sorttitle = {Intention und Intentionalitat in der Scholastik, bei Brentano\n und Husserl},\n indexsorttitle= {Intention und Intentionalitat in der Scholastik, bei Brentano\n und Husserl},\n shorttitle = {Intention und Intentionalit{\\\"a}t},\n annotation = {An \\texttt{article} entry. Note the \\texttt{sorttitle} and\n \\texttt{indexsorttitle} fields and the markup of the quotes in\n the database file},\n}\"#)"
----
-Spiegelberg, Herbert. (n.d.). Intention und Intentionalität in der Scholastik, bei Brentano und Husserl. *Studia Philosophica*, *29*, 189–216.
diff --git a/support/texlab/src/syntax/build_log.rs b/support/texlab/src/syntax/build_log.rs
index a717bdb877..af03e51d11 100644
--- a/support/texlab/src/syntax/build_log.rs
+++ b/support/texlab/src/syntax/build_log.rs
@@ -182,97 +182,94 @@ impl PartialOrd for FileRange {
#[cfg(test)]
mod tests {
use super::*;
- use indoc::indoc;
use insta::assert_debug_snapshot;
#[test]
- fn test_parse_001() {
- let log = indoc! {
- r#"
- This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:50
- entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
- **./parent.tex
- (./parent.tex
- LaTeX2e <2017-04-15>
- Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
- (/TexLive/texmf-dist/tex/latex/base/article.cls
- Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
- (/TexLive/texmf-dist/tex/latex/base/size10.clo
- File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
- )
- \c@part=\count79
- \c@section=\count80
- \c@subsection=\count81
- \c@subsubsection=\count82
- \c@paragraph=\count83
- \c@subparagraph=\count84
- \c@figure=\count85
- \c@table=\count86
- \abovecaptionskip=\skip41
- \belowcaptionskip=\skip42
- \bibindent=\dimen102
- )
- (/TexLive/texmf-dist/tex/latex/multirow/bigstrut.sty
- Package: bigstrut 2016/11/25 v2.2 Provide larger struts in tabulars
- \bigstrutjot=\dimen103
- )
- (/TexLive/texmf-dist/tex/latex/multirow/multirow.sty
- Package: multirow 2016/11/25 v2.2 Span multiple rows of a table
- \multirow@colwidth=\skip43
- \multirow@cntb=\count87
- \multirow@dima=\skip44
- ) (./parent.aux)
- \openout1 = `parent.aux'.
-
- LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
-
- Overfull \hbox (200.00162pt too wide) in paragraph at lines 8--9
- []\OT1/cmr/m/n/10 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- []
-
- LaTeX Font Info: External font `cmex10' loaded for size
- (Font) <7> on input line 11.
- LaTeX Font Info: External font `cmex10' loaded for size
- (Font) <5> on input line 11.
-
- Overfull \vbox (3.19998pt too high) detected at line 23
- []
-
- [1
-
- {/TexLive/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./parent.aux) )
- Here is how much of TeX's memory you used:
- 265 strings out of 492995
- 3121 string characters out of 6138727
- 55074 words of memory out of 5000000
- 3896 multiletter control sequences out of 15000+600000
- 3640 words of font info for 14 fonts, out of 8000000 for 9000
- 1141 hyphenation exceptions out of 8191
- 23i,20n,20p,124b,282s stack positions out of 5000i,500n,10000p,200000b,80000s
- </
- TexLive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></TexLive/texmf-d
- ist/fonts/type1/public/amsfonts/cm/cmr7.pfb>
- Output written on parent.pdf (1 page, 17505 bytes).
- PDF statistics:
- 16 PDF objects out of 1000 (max. 8388607)
- 10 compressed objects within 1 object stream
- 0 named destinations out of 1000 (max. 500000)
- 1 words of extra memory for PDF output out of 10000 (max. 10000000)"#,
- };
+ fn parse_001() {
+ let log = r#"
+This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:50
+entering extended mode
+restricted \write18 enabled.
+%&-line parsing enabled.
+**./parent.tex
+(./parent.tex
+LaTeX2e <2017-04-15>
+Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
+(/TexLive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
+(/TexLive/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/TexLive/texmf-dist/tex/latex/multirow/bigstrut.sty
+Package: bigstrut 2016/11/25 v2.2 Provide larger struts in tabulars
+\bigstrutjot=\dimen103
+)
+(/TexLive/texmf-dist/tex/latex/multirow/multirow.sty
+Package: multirow 2016/11/25 v2.2 Span multiple rows of a table
+\multirow@colwidth=\skip43
+\multirow@cntb=\count87
+\multirow@dima=\skip44
+) (./parent.aux)
+\openout1 = `parent.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+
+Overfull \hbox (200.00162pt too wide) in paragraph at lines 8--9
+[]\OT1/cmr/m/n/10 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+[]
+
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <7> on input line 11.
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <5> on input line 11.
+
+Overfull \vbox (3.19998pt too high) detected at line 23
+[]
+
+[1
+
+{/TexLive/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./parent.aux) )
+Here is how much of TeX's memory you used:
+265 strings out of 492995
+3121 string characters out of 6138727
+55074 words of memory out of 5000000
+3896 multiletter control sequences out of 15000+600000
+3640 words of font info for 14 fonts, out of 8000000 for 9000
+1141 hyphenation exceptions out of 8191
+23i,20n,20p,124b,282s stack positions out of 5000i,500n,10000p,200000b,80000s
+</
+TexLive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></TexLive/texmf-d
+ist/fonts/type1/public/amsfonts/cm/cmr7.pfb>
+Output written on parent.pdf (1 page, 17505 bytes).
+PDF statistics:
+16 PDF objects out of 1000 (max. 8388607)
+10 compressed objects within 1 object stream
+0 named destinations out of 1000 (max. 500000)
+1 words of extra memory for PDF output out of 10000 (max. 10000000)"#;
assert_eq!(
parse(log).errors,
@@ -295,74 +292,72 @@ mod tests {
}
#[test]
- fn test_parse_002() {
- let log = indoc! {
- r#"
- This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:52
- entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
- **./parent.tex
- (./parent.tex
- LaTeX2e <2017-04-15>
- Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
- (/TexLive/texmf-dist/tex/latex/base/article.cls
- Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
- (/TexLive/texmf-dist/tex/latex/base/size10.clo
- File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
- )
- \c@part=\count79
- \c@section=\count80
- \c@subsection=\count81
- \c@subsubsection=\count82
- \c@paragraph=\count83
- \c@subparagraph=\count84
- \c@figure=\count85
- \c@table=\count86
- \abovecaptionskip=\skip41
- \belowcaptionskip=\skip42
- \bibindent=\dimen102
- ) (./parent.aux (./child.aux))
- \openout1 = `parent.aux'.
-
- LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- (./child.tex
- ! Undefined control sequence.
- l.1 \foo
-
- The control sequence at the end of the top line
- of your error message was never \def'ed. If you have
- misspelled it (e.g., `\hobx'), type `I' and the correct
- spelling (e.g., `I\hbox'). Otherwise just continue,
- and I'll forget about whatever was undefined.
-
- ) (./parent.aux) )
- Here is how much of TeX's memory you used:
- 205 strings out of 492995
- 2149 string characters out of 6138727
- 54074 words of memory out of 5000000
- 3841 multiletter control sequences out of 15000+600000
- 3640 words of font info for 14 fonts, out of 8000000 for 9000
- 1141 hyphenation exceptions out of 8191
- 23i,1n,17p,116b,36s stack positions out of 5000i,500n,10000p,200000b,80000s
-
- No pages of output.
- PDF statistics:
- 0 PDF objects out of 1000 (max. 8388607)
- 0 named destinations out of 1000 (max. 500000)
- 1 words of extra memory for PDF output out of 10000 (max. 10000000)"#,
- };
+ fn parse_002() {
+ let log = r#"
+This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:52
+entering extended mode
+restricted \write18 enabled.
+%&-line parsing enabled.
+**./parent.tex
+(./parent.tex
+LaTeX2e <2017-04-15>
+Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
+(/TexLive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
+(/TexLive/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+) (./parent.aux (./child.aux))
+\openout1 = `parent.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+(./child.tex
+! Undefined control sequence.
+l.1 \foo
+
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+) (./parent.aux) )
+Here is how much of TeX's memory you used:
+205 strings out of 492995
+2149 string characters out of 6138727
+54074 words of memory out of 5000000
+3841 multiletter control sequences out of 15000+600000
+3640 words of font info for 14 fonts, out of 8000000 for 9000
+1141 hyphenation exceptions out of 8191
+23i,1n,17p,116b,36s stack positions out of 5000i,500n,10000p,200000b,80000s
+
+No pages of output.
+PDF statistics:
+0 PDF objects out of 1000 (max. 8388607)
+0 named destinations out of 1000 (max. 500000)
+1 words of extra memory for PDF output out of 10000 (max. 10000000)"#;
assert_eq!(
parse(log).errors,
@@ -376,75 +371,73 @@ mod tests {
}
#[test]
- fn test_parse_003() {
- let log = indoc! {
- r#"
- This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:51
- entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
- **./parent.tex
- (./parent.tex
- LaTeX2e <2017-04-15>
- Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
- (/TexLive/texmf-dist/tex/latex/base/article.cls
- Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
- (/TexLive/texmf-dist/tex/latex/base/size10.clo
- File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
- )
- \c@part=\count79
- \c@section=\count80
- \c@subsection=\count81
- \c@subsubsection=\count82
- \c@paragraph=\count83
- \c@subparagraph=\count84
- \c@figure=\count85
- \c@table=\count86
- \abovecaptionskip=\skip41
- \belowcaptionskip=\skip42
- \bibindent=\dimen102
- ) (./parent.aux)
- \openout1 = `parent.aux'.
-
- LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
- LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 4.
- LaTeX Font Info: ... okay on input line 4.
-
- LaTeX Warning: Citation `foo' on page 1 undefined on input line 6.
-
- [1
-
- {/TexLive/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./parent.aux)
-
- LaTeX Warning: There were undefined references.
-
- )
- Here is how much of TeX's memory you used:
- 204 strings out of 492995
- 2142 string characters out of 6138727
- 54074 words of memory out of 5000000
- 3842 multiletter control sequences out of 15000+600000
- 3948 words of font info for 15 fonts, out of 8000000 for 9000
- 1141 hyphenation exceptions out of 8191
- 23i,4n,21p,116b,107s stack positions out of 5000i,500n,10000p,200000b,80000s
- </TexLive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></TexLive/
- texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
- Output written on parent.pdf (1 page, 17339 bytes).
- PDF statistics:
- 16 PDF objects out of 1000 (max. 8388607)
- 10 compressed objects within 1 object stream
- 0 named destinations out of 1000 (max. 500000)
- 1 words of extra memory for PDF output out of 10000 (max. 10000000)"#,
- };
+ fn parse_003() {
+ let log = r#"
+This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:51
+entering extended mode
+restricted \write18 enabled.
+%&-line parsing enabled.
+**./parent.tex
+(./parent.tex
+LaTeX2e <2017-04-15>
+Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
+(/TexLive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
+(/TexLive/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+) (./parent.aux)
+\openout1 = `parent.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 4.
+LaTeX Font Info: ... okay on input line 4.
+
+LaTeX Warning: Citation `foo' on page 1 undefined on input line 6.
+
+[1
+
+{/TexLive/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./parent.aux)
+
+LaTeX Warning: There were undefined references.
+
+)
+Here is how much of TeX's memory you used:
+204 strings out of 492995
+2142 string characters out of 6138727
+54074 words of memory out of 5000000
+3842 multiletter control sequences out of 15000+600000
+3948 words of font info for 15 fonts, out of 8000000 for 9000
+1141 hyphenation exceptions out of 8191
+23i,4n,21p,116b,107s stack positions out of 5000i,500n,10000p,200000b,80000s
+</TexLive/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></TexLive/
+texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
+Output written on parent.pdf (1 page, 17339 bytes).
+PDF statistics:
+16 PDF objects out of 1000 (max. 8388607)
+10 compressed objects within 1 object stream
+0 named destinations out of 1000 (max. 500000)
+1 words of extra memory for PDF output out of 10000 (max. 10000000)"#;
assert_eq!(
parse(log).errors,
@@ -466,93 +459,91 @@ mod tests {
}
#[test]
- fn test_parse_004() {
- let log = indoc! {
- r#"
- This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:40
- entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
- **./parent.tex
- (./parent.tex
- LaTeX2e <2017-04-15>
- Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
- (/TexLive/texmf-dist/tex/latex/base/article.cls
- Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
- (/TexLive/texmf-dist/tex/latex/base/size10.clo
- File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
- )
- \c@part=\count79
- \c@section=\count80
- \c@subsection=\count81
- \c@subsubsection=\count82
- \c@paragraph=\count83
- \c@subparagraph=\count84
- \c@figure=\count85
- \c@table=\count86
- \abovecaptionskip=\skip41
- \belowcaptionskip=\skip42
- \bibindent=\dimen102
- )
- (/TexLive/texmf-dist/tex/generic/babel/babel.sty
- Package: babel 2017/05/19 3.10 The Babel package
-
- ! Package babel Error: Unknown option `foo'. Either you misspelled it
- (babel) or the language definition file foo.ldf was not found.
-
- See the babel package documentation for explanation.
- Type H <return> for immediate help.
- ...
-
- l.393 \ProcessOptions*
-
- Valid options are: shorthands=, KeepShorthandsActive,
- activeacute, activegrave, noconfigs, safe=, main=, math=
- headfoot=, strings=, config=, hyphenmap=, or a language name.
-
- ! Package babel Error: You haven't specified a language option.
-
- See the babel package documentation for explanation.
- Type H <return> for immediate help.
- ...
-
- l.426 ...ry to proceed from here, type x to quit.}
-
- You need to specify a language, either as a global option
- or as an optional argument to the \usepackage command;
- You shouldn't try to proceed from here, type x to quit.
-
- ) (./parent.aux)
- \openout1 = `parent.aux'.
-
- LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 5.
- LaTeX Font Info: ... okay on input line 5.
- LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 5.
- LaTeX Font Info: ... okay on input line 5.
- LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 5.
- LaTeX Font Info: ... okay on input line 5.
- LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 5.
- LaTeX Font Info: ... okay on input line 5.
- LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 5.
- LaTeX Font Info: ... okay on input line 5.
- LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 5.
- LaTeX Font Info: ... okay on input line 5.
- (./parent.aux) )
- Here is how much of TeX's memory you used:
- 304 strings out of 492995
- 3421 string characters out of 6138727
- 56035 words of memory out of 5000000
- 3938 multiletter control sequences out of 15000+600000
- 3640 words of font info for 14 fonts, out of 8000000 for 9000
- 1141 hyphenation exceptions out of 8191
- 23i,1n,17p,116b,36s stack positions out of 5000i,500n,10000p,200000b,80000s
-
- No pages of output.
- PDF statistics:
- 0 PDF objects out of 1000 (max. 8388607)
- 0 named destinations out of 1000 (max. 500000)
- 1 words of extra memory for PDF output out of 10000 (max. 10000000)"#,
- };
+ fn parse_004() {
+ let log = r#"
+This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:40
+entering extended mode
+restricted \write18 enabled.
+%&-line parsing enabled.
+**./parent.tex
+(./parent.tex
+LaTeX2e <2017-04-15>
+Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
+(/TexLive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
+(/TexLive/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/TexLive/texmf-dist/tex/generic/babel/babel.sty
+Package: babel 2017/05/19 3.10 The Babel package
+
+! Package babel Error: Unknown option `foo'. Either you misspelled it
+(babel) or the language definition file foo.ldf was not found.
+
+See the babel package documentation for explanation.
+Type H <return> for immediate help.
+...
+
+l.393 \ProcessOptions*
+
+Valid options are: shorthands=, KeepShorthandsActive,
+activeacute, activegrave, noconfigs, safe=, main=, math=
+headfoot=, strings=, config=, hyphenmap=, or a language name.
+
+! Package babel Error: You haven't specified a language option.
+
+See the babel package documentation for explanation.
+Type H <return> for immediate help.
+...
+
+l.426 ...ry to proceed from here, type x to quit.}
+
+You need to specify a language, either as a global option
+or as an optional argument to the \usepackage command;
+You shouldn't try to proceed from here, type x to quit.
+
+) (./parent.aux)
+\openout1 = `parent.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 5.
+LaTeX Font Info: ... okay on input line 5.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 5.
+LaTeX Font Info: ... okay on input line 5.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 5.
+LaTeX Font Info: ... okay on input line 5.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 5.
+LaTeX Font Info: ... okay on input line 5.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 5.
+LaTeX Font Info: ... okay on input line 5.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 5.
+LaTeX Font Info: ... okay on input line 5.
+(./parent.aux) )
+Here is how much of TeX's memory you used:
+304 strings out of 492995
+3421 string characters out of 6138727
+56035 words of memory out of 5000000
+3938 multiletter control sequences out of 15000+600000
+3640 words of font info for 14 fonts, out of 8000000 for 9000
+1141 hyphenation exceptions out of 8191
+23i,1n,17p,116b,36s stack positions out of 5000i,500n,10000p,200000b,80000s
+
+No pages of output.
+PDF statistics:
+0 PDF objects out of 1000 (max. 8388607)
+0 named destinations out of 1000 (max. 500000)
+1 words of extra memory for PDF output out of 10000 (max. 10000000)"#;
assert_eq!(
parse(log).errors,
@@ -574,395 +565,393 @@ mod tests {
}
#[test]
- fn test_parse_005() {
- let log = indoc! {
- r#"
- This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:45
- entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
- **./parent.tex
- (./parent.tex
- LaTeX2e <2017-04-15>
- Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
- (/TexLive/texmf-dist/tex/latex/base/article.cls
- Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
- (/TexLive/texmf-dist/tex/latex/base/size10.clo
- File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
- )
- \c@part=\count79
- \c@section=\count80
- \c@subsection=\count81
- \c@subsubsection=\count82
- \c@paragraph=\count83
- \c@subparagraph=\count84
- \c@figure=\count85
- \c@table=\count86
- \abovecaptionskip=\skip41
- \belowcaptionskip=\skip42
- \bibindent=\dimen102
- )
- (/TexLive/texmf-dist/tex/generic/babel/babel.sty
- Package: babel 2017/05/19 3.10 The Babel package
-
- (/TexLive/texmf-dist/tex/generic/babel-spanish/spanish.ldf
- Language: spanish.ldf 2016/03/03 v5.0p Spanish support from the babel system
-
- (/TexLive/texmf-dist/tex/generic/babel/babel.def
- File: babel.def 2017/05/19 3.10 Babel common definitions
- \babel@savecnt=\count87
- \U@D=\dimen103
- )
- \es@quottoks=\toks14
- \es@quotdepth=\count88
- Package babel Info: Making " an active character on input line 561.
- Package babel Info: Making . an active character on input line 662.
- Package babel Info: Making < an active character on input line 707.
- Package babel Info: Making > an active character on input line 707.
- ))
- (/TexLive/texmf-dist/tex/latex/biblatex/biblatex.sty
- Package: biblatex 2016/12/05 v3.7 programmable bibliographies (PK/JW/AB)
-
- (/TexLive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
- Package: pdftexcmds 2017/03/19 v0.25 Utility functions of pdfTeX for LuaTeX (HO
- )
-
- (/TexLive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
- Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
- )
- (/TexLive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
- Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
- Package ifluatex Info: LuaTeX not detected.
- )
- (/TexLive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
- Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
- )
- (/TexLive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
- Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch
- )
- Package pdftexcmds Info: LuaTeX not detected.
- Package pdftexcmds Info: \pdf@primitive is available.
- Package pdftexcmds Info: \pdf@ifprimitive is available.
- Package pdftexcmds Info: \pdfdraftmode found.
- )
- (/TexLive/texmf-dist/tex/latex/etoolbox/etoolbox.sty
- Package: etoolbox 2017/01/02 v2.4 e-TeX tools for LaTeX (JAW)
- \etb@tempcnta=\count89
- )
- (/TexLive/texmf-dist/tex/latex/graphics/keyval.sty
- Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
- \KV@toks@=\toks15
- )
- (/TexLive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
- Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
-
- (/TexLive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
- Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
-
- (/TexLive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
- Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
- Package etexcmds Info: Could not find \expanded.
- (etexcmds) That can mean that you are not using pdfTeX 1.50 or
- (etexcmds) that some package has redefined \expanded.
- (etexcmds) In the latter case, load this package earlier.
- )))
- (/TexLive/texmf-dist/tex/latex/logreq/logreq.sty
- Package: logreq 2010/08/04 v1.0 xml request logger
- \lrq@indent=\count90
-
- (/TexLive/texmf-dist/tex/latex/logreq/logreq.def
- File: logreq.def 2010/08/04 v1.0 logreq spec v1.0
- ))
- (/TexLive/texmf-dist/tex/latex/base/ifthen.sty
- Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
- )
- (/TexLive/texmf-dist/tex/latex/url/url.sty
- \Urlmuskip=\muskip10
- Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
- )
- (/TexLive/texmf-dist/tex/generic/xstring/xstring.sty
- (/TexLive/texmf-dist/tex/generic/xstring/xstring.tex
- \@xs@message=\write3
- \integerpart=\count91
- \decimalpart=\count92
- )
- Package: xstring 2013/10/13 v1.7c String manipulations (C Tellechea)
- )
- \c@tabx@nest=\count93
- \c@listtotal=\count94
- \c@listcount=\count95
- \c@liststart=\count96
- \c@liststop=\count97
- \c@citecount=\count98
- \c@citetotal=\count99
- \c@multicitecount=\count100
- \c@multicitetotal=\count101
- \c@instcount=\count102
- \c@maxnames=\count103
- \c@minnames=\count104
- \c@maxitems=\count105
- \c@minitems=\count106
- \c@citecounter=\count107
- \c@savedcitecounter=\count108
- \c@uniquelist=\count109
- \c@uniquename=\count110
- \c@refsection=\count111
- \c@refsegment=\count112
- \c@maxextratitle=\count113
- \c@maxextratitleyear=\count114
- \c@maxextrayear=\count115
- \c@maxextraalpha=\count116
- \c@abbrvpenalty=\count117
- \c@highnamepenalty=\count118
- \c@lownamepenalty=\count119
- \c@maxparens=\count120
- \c@parenlevel=\count121
- \blx@tempcnta=\count122
- \blx@tempcntb=\count123
- \blx@tempcntc=\count124
- \blx@maxsection=\count125
- \blx@maxsegment@0=\count126
- \blx@notetype=\count127
- \blx@parenlevel@text=\count128
- \blx@parenlevel@foot=\count129
- \blx@sectionciteorder@0=\count130
- \labelnumberwidth=\skip43
- \labelalphawidth=\skip44
- \biblabelsep=\skip45
- \bibitemsep=\skip46
- \bibnamesep=\skip47
- \bibinitsep=\skip48
- \bibparsep=\skip49
- \bibhang=\skip50
- \blx@bcfin=\read1
- \blx@bcfout=\write4
- \c@mincomprange=\count131
- \c@maxcomprange=\count132
- \c@mincompwidth=\count133
- Package biblatex Info: Trying to load biblatex default data model...
- Package biblatex Info: ... file 'blx-dm.def' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/blx-dm.def)
- Package biblatex Info: Trying to load biblatex style data model...
- Package biblatex Info: ... file 'ieee.dbx' not found.
- Package biblatex Info: Trying to load biblatex custom data model...
- Package biblatex Info: ... file 'biblatex-dm.cfg' not found.
- \c@afterword=\count134
- \c@savedafterword=\count135
- \c@annotator=\count136
- \c@savedannotator=\count137
- \c@author=\count138
- \c@savedauthor=\count139
- \c@bookauthor=\count140
- \c@savedbookauthor=\count141
- \c@commentator=\count142
- \c@savedcommentator=\count143
- \c@editor=\count144
- \c@savededitor=\count145
- \c@editora=\count146
- \c@savededitora=\count147
- \c@editorb=\count148
- \c@savededitorb=\count149
- \c@editorc=\count150
- \c@savededitorc=\count151
- \c@foreword=\count152
- \c@savedforeword=\count153
- \c@holder=\count154
- \c@savedholder=\count155
- \c@introduction=\count156
- \c@savedintroduction=\count157
- \c@namea=\count158
- \c@savednamea=\count159
- \c@nameb=\count160
- \c@savednameb=\count161
- \c@namec=\count162
- \c@savednamec=\count163
- \c@translator=\count164
- \c@savedtranslator=\count165
- \c@shortauthor=\count166
- \c@savedshortauthor=\count167
- \c@shorteditor=\count168
- \c@savedshorteditor=\count169
- \c@labelname=\count170
- \c@savedlabelname=\count171
- \c@institution=\count172
- \c@savedinstitution=\count173
- \c@lista=\count174
- \c@savedlista=\count175
- \c@listb=\count176
- \c@savedlistb=\count177
- \c@listc=\count178
- \c@savedlistc=\count179
- \c@listd=\count180
- \c@savedlistd=\count181
- \c@liste=\count182
- \c@savedliste=\count183
- \c@listf=\count184
- \c@savedlistf=\count185
- \c@location=\count186
- \c@savedlocation=\count187
- \c@organization=\count188
- \c@savedorganization=\count189
- \c@origlocation=\count190
- \c@savedoriglocation=\count191
- \c@origpublisher=\count192
- \c@savedorigpublisher=\count193
- \c@publisher=\count194
- \c@savedpublisher=\count195
- \c@language=\count196
- \c@savedlanguage=\count197
- \c@pageref=\count198
- \c@savedpageref=\count199
- \shorthandwidth=\skip51
- \shortjournalwidth=\skip52
- \shortserieswidth=\skip53
- \shorttitlewidth=\skip54
- \shortauthorwidth=\skip55
- \shorteditorwidth=\skip56
- Package biblatex Info: Trying to load compatibility code...
- Package biblatex Info: ... file 'blx-compat.def' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/blx-compat.def
- File: blx-compat.def 2016/12/05 v3.7 biblatex compatibility (PK/JW/AB)
- )
- Package biblatex Info: Trying to load generic definitions...
- Package biblatex Info: ... file 'biblatex.def' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/biblatex.def
- File: biblatex.def 2016/12/05 v3.7 biblatex compatibility (PK/JW/AB)
- \c@textcitecount=\count266
- \c@textcitetotal=\count267
- \c@textcitemaxnames=\count268
- \c@biburlnumpenalty=\count269
- \c@biburlucpenalty=\count270
- \c@biburllcpenalty=\count271
- \c@smartand=\count272
- )
- Package biblatex Info: Trying to load bibliography style 'ieee'...
- Package biblatex Info: ... file 'ieee.bbx' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex-ieee/ieee.bbx
- File: ieee.bbx 2017/03/27 v1.2d biblatex bibliography style
- Package biblatex Info: Trying to load bibliography style 'numeric-comp'...
- Package biblatex Info: ... file 'numeric-comp.bbx' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/bbx/numeric-comp.bbx
- File: numeric-comp.bbx 2016/12/05 v3.7 biblatex bibliography style (PK/JW/AB)
- Package biblatex Info: Trying to load bibliography style 'numeric'...
- Package biblatex Info: ... file 'numeric.bbx' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
- File: numeric.bbx 2016/12/05 v3.7 biblatex bibliography style (PK/JW/AB)
- Package biblatex Info: Trying to load bibliography style 'standard'...
- Package biblatex Info: ... file 'standard.bbx' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
- File: standard.bbx 2016/12/05 v3.7 biblatex bibliography style (PK/JW/AB)
- \c@bbx:relatedcount=\count273
- \c@bbx:relatedtotal=\count274
- ))))
- Package biblatex Info: Trying to load citation style 'ieee'...
- Package biblatex Info: ... file 'ieee.cbx' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex-ieee/ieee.cbx
- File: ieee.cbx 2017/03/27 v1.2d biblatex citation style
- Package biblatex Info: Trying to load citation style 'numeric-comp'...
- Package biblatex Info: ... file 'numeric-comp.cbx' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/cbx/numeric-comp.cbx
- File: numeric-comp.cbx 2016/12/05 v3.7 biblatex citation style (PK/JW/AB)
- \c@cbx@tempcnta=\count275
- \c@cbx@tempcntb=\count276
- Package biblatex Info: Redefining '\cite'.
- Package biblatex Info: Redefining '\parencite'.
- Package biblatex Info: Redefining '\footcite'.
- Package biblatex Info: Redefining '\footcitetext'.
- Package biblatex Info: Redefining '\smartcite'.
- Package biblatex Info: Redefining '\supercite'.
- Package biblatex Info: Redefining '\textcite'.
- Package biblatex Info: Redefining '\textcites'.
- Package biblatex Info: Redefining '\cites'.
- Package biblatex Info: Redefining '\parencites'.
- Package biblatex Info: Redefining '\smartcites'.
- )
- Package biblatex Info: Redefining '\cite'.
- Package biblatex Info: Redefining '\cites'.
- )
- Package biblatex Info: Trying to load configuration file...
- Package biblatex Info: ... file 'biblatex.cfg' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/biblatex.cfg
- File: biblatex.cfg
- ))
- Package biblatex Info: Trying to load language 'spanish'...
- Package biblatex Info: ... file 'spanish.lbx' found.
-
- (/TexLive/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx
- File: spanish.lbx 2016/12/05 v3.7 biblatex localization (PK/JW/AB)
- )
-
- Package biblatex Warning: 'babel/polyglossia' detected but 'csquotes' missing.
- (biblatex) Loading 'csquotes' recommended.
-
- \@quotelevel=\count277
- \@quotereset=\count278
- (./parent.aux)
- \openout1 = `parent.aux'.
-
- LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 6.
- LaTeX Font Info: ... okay on input line 6.
- LaTeX Info: Redefining \sptext on input line 6.
- LaTeX Info: Redefining \. on input line 6.
- LaTeX Info: Redefining \% on input line 6.
- Package biblatex Info: No input encoding detected.
- (biblatex) Assuming 'ascii'.
- Package biblatex Info: Automatic encoding selection.
- (biblatex) Assuming data encoding 'ascii'.
- \openout4 = `parent.bcf'.
-
- Package biblatex Info: Trying to load bibliographic data...
- Package biblatex Info: ... file 'parent.bbl' not found.
-
- No file parent.bbl.
- Package biblatex Info: Reference section=0 on input line 6.
- Package biblatex Info: Reference segment=0 on input line 6.
- (./parent.aux)
-
- LaTeX Warning: There were undefined references.
-
- Package biblatex Warning: Please (re)run Biber on the file:
- (biblatex) parent
- (biblatex) and rerun LaTeX afterwards.
-
- Package logreq Info: Writing requests to 'parent.run.xml'.
- \openout1 = `parent.run.xml'.
-
- )
- Here is how much of TeX's memory you used:
- 7717 strings out of 492995
- 133301 string characters out of 6138727
- 557258 words of memory out of 5000000
- 11248 multiletter control sequences out of 15000+600000
- 3640 words of font info for 14 fonts, out of 8000000 for 9000
- 1141 hyphenation exceptions out of 8191
- 35i,1n,30p,856b,700s stack positions out of 5000i,500n,10000p,200000b,80000s
-
- No pages of output.
- PDF statistics:
- 0 PDF objects out of 1000 (max. 8388607)
- 0 named destinations out of 1000 (max. 500000)
- 1 words of extra memory for PDF output out of 10000 (max. 10000000)"#,
- };
+ fn parse_005() {
+ let log = r#"
+This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:45
+entering extended mode
+restricted \write18 enabled.
+%&-line parsing enabled.
+**./parent.tex
+(./parent.tex
+LaTeX2e <2017-04-15>
+Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
+(/TexLive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
+(/TexLive/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/TexLive/texmf-dist/tex/generic/babel/babel.sty
+Package: babel 2017/05/19 3.10 The Babel package
+
+(/TexLive/texmf-dist/tex/generic/babel-spanish/spanish.ldf
+Language: spanish.ldf 2016/03/03 v5.0p Spanish support from the babel system
+
+(/TexLive/texmf-dist/tex/generic/babel/babel.def
+File: babel.def 2017/05/19 3.10 Babel common definitions
+\babel@savecnt=\count87
+\U@D=\dimen103
+)
+\es@quottoks=\toks14
+\es@quotdepth=\count88
+Package babel Info: Making " an active character on input line 561.
+Package babel Info: Making . an active character on input line 662.
+Package babel Info: Making < an active character on input line 707.
+Package babel Info: Making > an active character on input line 707.
+))
+(/TexLive/texmf-dist/tex/latex/biblatex/biblatex.sty
+Package: biblatex 2016/12/05 v3.7 programmable bibliographies (PK/JW/AB)
+
+(/TexLive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
+Package: pdftexcmds 2017/03/19 v0.25 Utility functions of pdfTeX for LuaTeX (HO
+)
+
+(/TexLive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/TexLive/texmf-dist/tex/generic/oberdiek/ifluatex.sty
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+)
+(/TexLive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+(/TexLive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+)
+(/TexLive/texmf-dist/tex/latex/etoolbox/etoolbox.sty
+Package: etoolbox 2017/01/02 v2.4 e-TeX tools for LaTeX (JAW)
+\etb@tempcnta=\count89
+)
+(/TexLive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks15
+)
+(/TexLive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+
+(/TexLive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+
+(/TexLive/texmf-dist/tex/generic/oberdiek/etexcmds.sty
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+)))
+(/TexLive/texmf-dist/tex/latex/logreq/logreq.sty
+Package: logreq 2010/08/04 v1.0 xml request logger
+\lrq@indent=\count90
+
+(/TexLive/texmf-dist/tex/latex/logreq/logreq.def
+File: logreq.def 2010/08/04 v1.0 logreq spec v1.0
+))
+(/TexLive/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
+)
+(/TexLive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+(/TexLive/texmf-dist/tex/generic/xstring/xstring.sty
+(/TexLive/texmf-dist/tex/generic/xstring/xstring.tex
+\@xs@message=\write3
+\integerpart=\count91
+\decimalpart=\count92
+)
+Package: xstring 2013/10/13 v1.7c String manipulations (C Tellechea)
+)
+\c@tabx@nest=\count93
+\c@listtotal=\count94
+\c@listcount=\count95
+\c@liststart=\count96
+\c@liststop=\count97
+\c@citecount=\count98
+\c@citetotal=\count99
+\c@multicitecount=\count100
+\c@multicitetotal=\count101
+\c@instcount=\count102
+\c@maxnames=\count103
+\c@minnames=\count104
+\c@maxitems=\count105
+\c@minitems=\count106
+\c@citecounter=\count107
+\c@savedcitecounter=\count108
+\c@uniquelist=\count109
+\c@uniquename=\count110
+\c@refsection=\count111
+\c@refsegment=\count112
+\c@maxextratitle=\count113
+\c@maxextratitleyear=\count114
+\c@maxextrayear=\count115
+\c@maxextraalpha=\count116
+\c@abbrvpenalty=\count117
+\c@highnamepenalty=\count118
+\c@lownamepenalty=\count119
+\c@maxparens=\count120
+\c@parenlevel=\count121
+\blx@tempcnta=\count122
+\blx@tempcntb=\count123
+\blx@tempcntc=\count124
+\blx@maxsection=\count125
+\blx@maxsegment@0=\count126
+\blx@notetype=\count127
+\blx@parenlevel@text=\count128
+\blx@parenlevel@foot=\count129
+\blx@sectionciteorder@0=\count130
+\labelnumberwidth=\skip43
+\labelalphawidth=\skip44
+\biblabelsep=\skip45
+\bibitemsep=\skip46
+\bibnamesep=\skip47
+\bibinitsep=\skip48
+\bibparsep=\skip49
+\bibhang=\skip50
+\blx@bcfin=\read1
+\blx@bcfout=\write4
+\c@mincomprange=\count131
+\c@maxcomprange=\count132
+\c@mincompwidth=\count133
+Package biblatex Info: Trying to load biblatex default data model...
+Package biblatex Info: ... file 'blx-dm.def' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/blx-dm.def)
+Package biblatex Info: Trying to load biblatex style data model...
+Package biblatex Info: ... file 'ieee.dbx' not found.
+Package biblatex Info: Trying to load biblatex custom data model...
+Package biblatex Info: ... file 'biblatex-dm.cfg' not found.
+\c@afterword=\count134
+\c@savedafterword=\count135
+\c@annotator=\count136
+\c@savedannotator=\count137
+\c@author=\count138
+\c@savedauthor=\count139
+\c@bookauthor=\count140
+\c@savedbookauthor=\count141
+\c@commentator=\count142
+\c@savedcommentator=\count143
+\c@editor=\count144
+\c@savededitor=\count145
+\c@editora=\count146
+\c@savededitora=\count147
+\c@editorb=\count148
+\c@savededitorb=\count149
+\c@editorc=\count150
+\c@savededitorc=\count151
+\c@foreword=\count152
+\c@savedforeword=\count153
+\c@holder=\count154
+\c@savedholder=\count155
+\c@introduction=\count156
+\c@savedintroduction=\count157
+\c@namea=\count158
+\c@savednamea=\count159
+\c@nameb=\count160
+\c@savednameb=\count161
+\c@namec=\count162
+\c@savednamec=\count163
+\c@translator=\count164
+\c@savedtranslator=\count165
+\c@shortauthor=\count166
+\c@savedshortauthor=\count167
+\c@shorteditor=\count168
+\c@savedshorteditor=\count169
+\c@labelname=\count170
+\c@savedlabelname=\count171
+\c@institution=\count172
+\c@savedinstitution=\count173
+\c@lista=\count174
+\c@savedlista=\count175
+\c@listb=\count176
+\c@savedlistb=\count177
+\c@listc=\count178
+\c@savedlistc=\count179
+\c@listd=\count180
+\c@savedlistd=\count181
+\c@liste=\count182
+\c@savedliste=\count183
+\c@listf=\count184
+\c@savedlistf=\count185
+\c@location=\count186
+\c@savedlocation=\count187
+\c@organization=\count188
+\c@savedorganization=\count189
+\c@origlocation=\count190
+\c@savedoriglocation=\count191
+\c@origpublisher=\count192
+\c@savedorigpublisher=\count193
+\c@publisher=\count194
+\c@savedpublisher=\count195
+\c@language=\count196
+\c@savedlanguage=\count197
+\c@pageref=\count198
+\c@savedpageref=\count199
+\shorthandwidth=\skip51
+\shortjournalwidth=\skip52
+\shortserieswidth=\skip53
+\shorttitlewidth=\skip54
+\shortauthorwidth=\skip55
+\shorteditorwidth=\skip56
+Package biblatex Info: Trying to load compatibility code...
+Package biblatex Info: ... file 'blx-compat.def' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/blx-compat.def
+File: blx-compat.def 2016/12/05 v3.7 biblatex compatibility (PK/JW/AB)
+)
+Package biblatex Info: Trying to load generic definitions...
+Package biblatex Info: ... file 'biblatex.def' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/biblatex.def
+File: biblatex.def 2016/12/05 v3.7 biblatex compatibility (PK/JW/AB)
+\c@textcitecount=\count266
+\c@textcitetotal=\count267
+\c@textcitemaxnames=\count268
+\c@biburlnumpenalty=\count269
+\c@biburlucpenalty=\count270
+\c@biburllcpenalty=\count271
+\c@smartand=\count272
+)
+Package biblatex Info: Trying to load bibliography style 'ieee'...
+Package biblatex Info: ... file 'ieee.bbx' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex-ieee/ieee.bbx
+File: ieee.bbx 2017/03/27 v1.2d biblatex bibliography style
+Package biblatex Info: Trying to load bibliography style 'numeric-comp'...
+Package biblatex Info: ... file 'numeric-comp.bbx' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/bbx/numeric-comp.bbx
+File: numeric-comp.bbx 2016/12/05 v3.7 biblatex bibliography style (PK/JW/AB)
+Package biblatex Info: Trying to load bibliography style 'numeric'...
+Package biblatex Info: ... file 'numeric.bbx' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
+File: numeric.bbx 2016/12/05 v3.7 biblatex bibliography style (PK/JW/AB)
+Package biblatex Info: Trying to load bibliography style 'standard'...
+Package biblatex Info: ... file 'standard.bbx' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
+File: standard.bbx 2016/12/05 v3.7 biblatex bibliography style (PK/JW/AB)
+\c@bbx:relatedcount=\count273
+\c@bbx:relatedtotal=\count274
+))))
+Package biblatex Info: Trying to load citation style 'ieee'...
+Package biblatex Info: ... file 'ieee.cbx' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex-ieee/ieee.cbx
+File: ieee.cbx 2017/03/27 v1.2d biblatex citation style
+Package biblatex Info: Trying to load citation style 'numeric-comp'...
+Package biblatex Info: ... file 'numeric-comp.cbx' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/cbx/numeric-comp.cbx
+File: numeric-comp.cbx 2016/12/05 v3.7 biblatex citation style (PK/JW/AB)
+\c@cbx@tempcnta=\count275
+\c@cbx@tempcntb=\count276
+Package biblatex Info: Redefining '\cite'.
+Package biblatex Info: Redefining '\parencite'.
+Package biblatex Info: Redefining '\footcite'.
+Package biblatex Info: Redefining '\footcitetext'.
+Package biblatex Info: Redefining '\smartcite'.
+Package biblatex Info: Redefining '\supercite'.
+Package biblatex Info: Redefining '\textcite'.
+Package biblatex Info: Redefining '\textcites'.
+Package biblatex Info: Redefining '\cites'.
+Package biblatex Info: Redefining '\parencites'.
+Package biblatex Info: Redefining '\smartcites'.
+)
+Package biblatex Info: Redefining '\cite'.
+Package biblatex Info: Redefining '\cites'.
+)
+Package biblatex Info: Trying to load configuration file...
+Package biblatex Info: ... file 'biblatex.cfg' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/biblatex.cfg
+File: biblatex.cfg
+))
+Package biblatex Info: Trying to load language 'spanish'...
+Package biblatex Info: ... file 'spanish.lbx' found.
+
+(/TexLive/texmf-dist/tex/latex/biblatex/lbx/spanish.lbx
+File: spanish.lbx 2016/12/05 v3.7 biblatex localization (PK/JW/AB)
+)
+
+Package biblatex Warning: 'babel/polyglossia' detected but 'csquotes' missing.
+(biblatex) Loading 'csquotes' recommended.
+
+\@quotelevel=\count277
+\@quotereset=\count278
+(./parent.aux)
+\openout1 = `parent.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 6.
+LaTeX Font Info: ... okay on input line 6.
+LaTeX Info: Redefining \sptext on input line 6.
+LaTeX Info: Redefining \. on input line 6.
+LaTeX Info: Redefining \% on input line 6.
+Package biblatex Info: No input encoding detected.
+(biblatex) Assuming 'ascii'.
+Package biblatex Info: Automatic encoding selection.
+(biblatex) Assuming data encoding 'ascii'.
+\openout4 = `parent.bcf'.
+
+Package biblatex Info: Trying to load bibliographic data...
+Package biblatex Info: ... file 'parent.bbl' not found.
+
+No file parent.bbl.
+Package biblatex Info: Reference section=0 on input line 6.
+Package biblatex Info: Reference segment=0 on input line 6.
+(./parent.aux)
+
+LaTeX Warning: There were undefined references.
+
+Package biblatex Warning: Please (re)run Biber on the file:
+(biblatex) parent
+(biblatex) and rerun LaTeX afterwards.
+
+Package logreq Info: Writing requests to 'parent.run.xml'.
+\openout1 = `parent.run.xml'.
+
+)
+Here is how much of TeX's memory you used:
+7717 strings out of 492995
+133301 string characters out of 6138727
+557258 words of memory out of 5000000
+11248 multiletter control sequences out of 15000+600000
+3640 words of font info for 14 fonts, out of 8000000 for 9000
+1141 hyphenation exceptions out of 8191
+35i,1n,30p,856b,700s stack positions out of 5000i,500n,10000p,200000b,80000s
+
+No pages of output.
+PDF statistics:
+0 PDF objects out of 1000 (max. 8388607)
+0 named destinations out of 1000 (max. 500000)
+1 words of extra memory for PDF output out of 10000 (max. 10000000)"#;
assert_eq!(
parse(log).errors,
@@ -990,132 +979,130 @@ mod tests {
}
#[test]
- fn test_parse_006() {
- let log = indoc! {
- r#"
- This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:33
- entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
- **./parent.tex
- (./parent.tex
- LaTeX2e <2017-04-15>
- Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
- (/TexLive/texmf-dist/tex/latex/base/article.cls
- Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
- (/TexLive/texmf-dist/tex/latex/base/size10.clo
- File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
- )
- \c@part=\count79
- \c@section=\count80
- \c@subsection=\count81
- \c@subsubsection=\count82
- \c@paragraph=\count83
- \c@subparagraph=\count84
- \c@figure=\count85
- \c@table=\count86
- \abovecaptionskip=\skip41
- \belowcaptionskip=\skip42
- \bibindent=\dimen102
- ) (./parent.aux
- (./child.tex.aux))
- \openout1 = `parent.aux'.
-
- LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- \openout2 = `child.aux'.
-
- (./child.tex)
- ! Undefined control sequence.
- l.7 \foo
-
- The control sequence at the end of the top line
- of your error message was never \def'ed. If you have
- misspelled it (e.g., `\hobx'), type `I' and the correct
- spelling (e.g., `I\hbox'). Otherwise just continue,
- and I'll forget about whatever was undefined.
-
- ! Missing $ inserted.
- <inserted text>
- $
- l.8 \bar
-
- I've inserted a begin-math/end-math symbol since I think
- you left one out. Proceed, with fingers crossed.
-
- LaTeX Font Info: External font `cmex10' loaded for size
- (Font) <7> on input line 8.
- LaTeX Font Info: External font `cmex10' loaded for size
- (Font) <5> on input line 8.
- ! Undefined control sequence.
- l.9 \baz
-
- The control sequence at the end of the top line
- of your error message was never \def'ed. If you have
- misspelled it (e.g., `\hobx'), type `I' and the correct
- spelling (e.g., `I\hbox'). Otherwise just continue,
- and I'll forget about whatever was undefined.
-
- ! Missing { inserted.
- <to be read again>
- \par
- l.10
-
- A left brace was mandatory here, so I've put one in.
- You might want to delete and/or insert some corrections
- so that I will find a matching right brace soon.
- (If you're confused by all this, try typing `I}' now.)
-
- ! Missing $ inserted.
- <inserted text>
- $
- l.10
-
- I've inserted a begin-math/end-math symbol since I think
- you left one out. Proceed, with fingers crossed.
-
- ! Missing } inserted.
- <inserted text>
- }
- l.10
-
- I've inserted something that you may have forgotten.
- (See the <inserted text> above.)
- With luck, this will get me unwedged. But if you
- really didn't forget anything, try typing `2' now; then
- my insertion and my current dilemma will both disappear.
-
- [1
-
- {/TexLive/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./parent.aux
- (./child.aux)) )
- Here is how much of TeX's memory you used:
- 212 strings out of 492995
- 2238 string characters out of 6138727
- 54074 words of memory out of 5000000
- 3843 multiletter control sequences out of 15000+600000
- 3640 words of font info for 14 fonts, out of 8000000 for 9000
- 1141 hyphenation exceptions out of 8191
- 23i,4n,17p,116b,107s stack positions out of 5000i,500n,10000p,200000b,80000s
- </TexLive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
- >
- Output written on parent.pdf (1 page, 8329 bytes).
- PDF statistics:
- 12 PDF objects out of 1000 (max. 8388607)
- 7 compressed objects within 1 object stream
- 0 named destinations out of 1000 (max. 500000)
- 1 words of extra memory for PDF output out of 10000 (max. 10000000)"#,
- };
+ fn parse_006() {
+ let log = r#"
+This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX) (preloaded format=pdflatex 2018.3.30) 26 DEC 2018 16:33
+entering extended mode
+restricted \write18 enabled.
+%&-line parsing enabled.
+**./parent.tex
+(./parent.tex
+LaTeX2e <2017-04-15>
+Babel <3.10> and hyphenation patterns for 84 language(s) loaded.
+(/TexLive/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
+(/TexLive/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@section=\count80
+\c@subsection=\count81
+\c@subsubsection=\count82
+\c@paragraph=\count83
+\c@subparagraph=\count84
+\c@figure=\count85
+\c@table=\count86
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+) (./parent.aux
+(./child.tex.aux))
+\openout1 = `parent.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+\openout2 = `child.aux'.
+
+(./child.tex)
+! Undefined control sequence.
+l.7 \foo
+
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+! Missing $ inserted.
+<inserted text>
+ $
+l.8 \bar
+
+I've inserted a begin-math/end-math symbol since I think
+you left one out. Proceed, with fingers crossed.
+
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <7> on input line 8.
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <5> on input line 8.
+! Undefined control sequence.
+l.9 \baz
+
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+! Missing { inserted.
+<to be read again>
+ \par
+l.10
+
+A left brace was mandatory here, so I've put one in.
+You might want to delete and/or insert some corrections
+so that I will find a matching right brace soon.
+(If you're confused by all this, try typing `I}' now.)
+
+! Missing $ inserted.
+<inserted text>
+ $
+l.10
+
+I've inserted a begin-math/end-math symbol since I think
+you left one out. Proceed, with fingers crossed.
+
+! Missing } inserted.
+<inserted text>
+ }
+l.10
+
+I've inserted something that you may have forgotten.
+(See the <inserted text> above.)
+With luck, this will get me unwedged. But if you
+really didn't forget anything, try typing `2' now; then
+my insertion and my current dilemma will both disappear.
+
+[1
+
+{/TexLive/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./parent.aux
+(./child.aux)) )
+Here is how much of TeX's memory you used:
+212 strings out of 492995
+2238 string characters out of 6138727
+54074 words of memory out of 5000000
+3843 multiletter control sequences out of 15000+600000
+3640 words of font info for 14 fonts, out of 8000000 for 9000
+1141 hyphenation exceptions out of 8191
+23i,4n,17p,116b,107s stack positions out of 5000i,500n,10000p,200000b,80000s
+</TexLive/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
+>
+Output written on parent.pdf (1 page, 8329 bytes).
+PDF statistics:
+12 PDF objects out of 1000 (max. 8388607)
+7 compressed objects within 1 object stream
+0 named destinations out of 1000 (max. 500000)
+1 words of extra memory for PDF output out of 10000 (max. 10000000)"#;
assert_eq!(
parse(log).errors,
@@ -1161,186 +1148,184 @@ mod tests {
}
#[test]
- fn test_parse_007() {
- let log = indoc! {
- r#"
- This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/W32TeX) (preloaded format=pdflatex 2021.6.19) 5 NOV 2021 19:10
- entering extended mode
- restricted \write18 enabled.
- %&-line parsing enabled.
- **/some/folder/a.tex
- (/some/folder/a.tex
- LaTeX2e <2021-06-01> patch level 1
- L3 programming layer <2021-06-18>
- (/texlive/2021/texmf-dist/tex/latex/koma-script/scrartcl.cls
- Document Class: scrartcl 2021/03/17 v3.33 KOMA-Script document class (article)
- (/texlive/2021/texmf-dist/tex/latex/koma-script/scrkbase.sty
- Package: scrkbase 2021/03/17 v3.33 KOMA-Script package (KOMA-Script-dependent b
- asics and keyval usage)
-
- (/texlive/2021/texmf-dist/tex/latex/koma-script/scrbase.sty
- Package: scrbase 2021/03/17 v3.33 KOMA-Script package (KOMA-Script-independent
- basics and keyval usage)
-
- (/texlive/2021/texmf-dist/tex/latex/koma-script/scrlfile.sty
- Package: scrlfile 2021/03/17 v3.33 KOMA-Script package (file load hooks)
-
- (/texlive/2021/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
- Package: scrlfile-hook 2021/03/17 v3.33 KOMA-Script package (using LaTeX hooks)
-
-
- (/texlive/2021/texmf-dist/tex/latex/koma-script/scrlogo.sty
- Package: scrlogo 2021/03/17 v3.33 KOMA-Script package (logo)
- )))
- (/texlive/2021/texmf-dist/tex/latex/graphics/keyval.sty
- Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
- \KV@toks@=\toks16
- )
- Applying: [2021/05/01] Usage of raw option list on input line 252.
- Already applied: [0000/00/00] compatibility for LaTeX before 2021/05/01 on inpu
- t line 337.
- ))
- ==> First Aid for scrkbase.sty no longer applied!
- (/texlive/2021/texmf-dist/tex/latex/koma-script/tocbasic.sty
- Package: tocbasic 2021/03/17 v3.33 KOMA-Script package (handling toc-files)
- \scr@dte@tocline@numberwidth=\skip47
- \scr@dte@tocline@numbox=\box50
- )
- Package tocbasic Info: babel extension for `toc' omitted
- (tocbasic) because of missing \bbl@set@language on input line 135.
- Class scrartcl Info: File `scrsize11pt.clo' used instead of
- (scrartcl) file `scrsize11.clo' to setup font sizes on input line 223
- 9.
-
- (/texlive/2021/texmf-dist/tex/latex/koma-script/scrsize11pt.clo
- File: scrsize11pt.clo 2021/03/17 v3.33 KOMA-Script font size class option (11pt
- )
- )
- (/texlive/2021/texmf-dist/tex/latex/koma-script/typearea.sty
- Package: typearea 2021/03/17 v3.33 KOMA-Script package (type area)
- \ta@bcor=\skip48
- \ta@div=\count182
- \ta@hblk=\skip49
- \ta@vblk=\skip50
- \ta@temp=\skip51
- \footheight=\skip52
- Package typearea Info: These are the values describing the layout:
- (typearea) DIV = 10
- (typearea) BCOR = 0.0pt
- (typearea) \paperwidth = 597.50793pt
- (typearea) \textwidth = 418.25555pt
- (typearea) DIV departure = -6%
- (typearea) \evensidemargin = 17.3562pt
- (typearea) \oddsidemargin = 17.3562pt
- (typearea) \paperheight = 845.04694pt
- (typearea) \textheight = 595.80026pt
- (typearea) \topmargin = -25.16531pt
- (typearea) \headheight = 17.0pt
- (typearea) \headsep = 20.40001pt
- (typearea) \topskip = 11.0pt
- (typearea) \footskip = 47.6pt
- (typearea) \baselineskip = 13.6pt
- (typearea) on input line 1741.
- )
- \c@part=\count183
- \c@section=\count184
- \c@subsection=\count185
- \c@subsubsection=\count186
- \c@paragraph=\count187
- \c@subparagraph=\count188
- \scr@dte@section@maxnumwidth=\skip53
- Class scrartcl Info: using compatibility default `runin=bysign'
- (scrartcl) for `\section on input line 4846.
- Class scrartcl Info: using compatibility default `afterindent=bysign'
- (scrartcl) for `\section on input line 4846.
- \scr@dte@part@maxnumwidth=\skip54
- Class scrartcl Info: using compatibility default `afterindent=false'
- (scrartcl) for `\part on input line 4854.
- \scr@dte@subsection@maxnumwidth=\skip55
- Class scrartcl Info: using compatibility default `runin=bysign'
- (scrartcl) for `\subsection on input line 4864.
- Class scrartcl Info: using compatibility default `afterindent=bysign'
- (scrartcl) for `\subsection on input line 4864.
- \scr@dte@subsubsection@maxnumwidth=\skip56
- Class scrartcl Info: using compatibility default `runin=bysign'
- (scrartcl) for `\subsubsection on input line 4874.
- Class scrartcl Info: using compatibility default `afterindent=bysign'
- (scrartcl) for `\subsubsection on input line 4874.
- \scr@dte@paragraph@maxnumwidth=\skip57
- Class scrartcl Info: using compatibility default `runin=bysign'
- (scrartcl) for `\paragraph on input line 4885.
- Class scrartcl Info: using compatibility default `afterindent=bysign'
- (scrartcl) for `\paragraph on input line 4885.
- \scr@dte@subparagraph@maxnumwidth=\skip58
- Class scrartcl Info: using compatibility default `runin=bysign'
- (scrartcl) for `\subparagraph on input line 4895.
- Class scrartcl Info: using compatibility default `afterindent=bysign'
- (scrartcl) for `\subparagraph on input line 4895.
- \abovecaptionskip=\skip59
- \belowcaptionskip=\skip60
- \c@pti@nb@sid@b@x=\box51
- Package tocbasic Info: babel extension for `lof' omitted
- (tocbasic) because of missing \bbl@set@language on input line 6127.
-
- \scr@dte@figure@maxnumwidth=\skip61
- \c@figure=\count189
- Package tocbasic Info: babel extension for `lot' omitted
- (tocbasic) because of missing \bbl@set@language on input line 6139.
-
- \scr@dte@table@maxnumwidth=\skip62
- \c@table=\count190
- Class scrartcl Info: Redefining `\numberline' on input line 6303.
- \bibindent=\dimen138
- )
- (/texlive/2021/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
- File: l3backend-pdftex.def 2021-05-07 L3 backend support: PDF output (pdfTeX)
- \l__color_backend_stack_int=\count191
- \l__pdf_internal_box=\box52
- ) (./a.aux)
- \openout1 = `a.aux'.
-
- LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 3.
- LaTeX Font Info: ... okay on input line 3.
- Package scrbase Info: activating english \contentsname on input line 3.
- Package scrbase Info: activating english \listfigurename on input line 3.
- Package scrbase Info: activating english \listtablename on input line 3.
- ! Undefined control sequence.
- l.4 \lsdkfjlskdfj
-
- The control sequence at the end of the top line
- of your error message was never \def'ed. If you have
- misspelled it (e.g., `\hobx'), type `I' and the correct
- spelling (e.g., `I\hbox'). Otherwise just continue,
- and I'll forget about whatever was undefined.
-
- (./a.aux) )
- Here is how much of TeX's memory you used:
- 3199 strings out of 478510
- 74549 string characters out of 5853586
- 510929 words of memory out of 5000000
- 21227 multiletter control sequences out of 15000+600000
- 403730 words of font info for 28 fonts, out of 8000000 for 9000
- 1141 hyphenation exceptions out of 8191
- 108i,1n,108p,10625b,270s stack positions out of 5000i,500n,10000p,200000b,80000s
-
- No pages of output.
- PDF statistics:
- 0 PDF objects out of 1000 (max. 8388607)
- 0 named destinations out of 1000 (max. 500000)
- 1 words of extra memory for PDF output out of 10000 (max. 10000000)"#,
- };
+ fn parse_007() {
+ let log = r#"
+This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/W32TeX) (preloaded format=pdflatex 2021.6.19) 5 NOV 2021 19:10
+entering extended mode
+restricted \write18 enabled.
+%&-line parsing enabled.
+**/some/folder/a.tex
+(/some/folder/a.tex
+LaTeX2e <2021-06-01> patch level 1
+L3 programming layer <2021-06-18>
+(/texlive/2021/texmf-dist/tex/latex/koma-script/scrartcl.cls
+Document Class: scrartcl 2021/03/17 v3.33 KOMA-Script document class (article)
+(/texlive/2021/texmf-dist/tex/latex/koma-script/scrkbase.sty
+Package: scrkbase 2021/03/17 v3.33 KOMA-Script package (KOMA-Script-dependent b
+asics and keyval usage)
+
+(/texlive/2021/texmf-dist/tex/latex/koma-script/scrbase.sty
+Package: scrbase 2021/03/17 v3.33 KOMA-Script package (KOMA-Script-independent
+basics and keyval usage)
+
+(/texlive/2021/texmf-dist/tex/latex/koma-script/scrlfile.sty
+Package: scrlfile 2021/03/17 v3.33 KOMA-Script package (file load hooks)
+
+(/texlive/2021/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty
+Package: scrlfile-hook 2021/03/17 v3.33 KOMA-Script package (using LaTeX hooks)
+
+
+(/texlive/2021/texmf-dist/tex/latex/koma-script/scrlogo.sty
+Package: scrlogo 2021/03/17 v3.33 KOMA-Script package (logo)
+)))
+(/texlive/2021/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks16
+)
+Applying: [2021/05/01] Usage of raw option list on input line 252.
+Already applied: [0000/00/00] compatibility for LaTeX before 2021/05/01 on inpu
+t line 337.
+))
+==> First Aid for scrkbase.sty no longer applied!
+(/texlive/2021/texmf-dist/tex/latex/koma-script/tocbasic.sty
+Package: tocbasic 2021/03/17 v3.33 KOMA-Script package (handling toc-files)
+\scr@dte@tocline@numberwidth=\skip47
+\scr@dte@tocline@numbox=\box50
+)
+Package tocbasic Info: babel extension for `toc' omitted
+(tocbasic) because of missing \bbl@set@language on input line 135.
+Class scrartcl Info: File `scrsize11pt.clo' used instead of
+(scrartcl) file `scrsize11.clo' to setup font sizes on input line 223
+9.
+
+(/texlive/2021/texmf-dist/tex/latex/koma-script/scrsize11pt.clo
+File: scrsize11pt.clo 2021/03/17 v3.33 KOMA-Script font size class option (11pt
+)
+)
+(/texlive/2021/texmf-dist/tex/latex/koma-script/typearea.sty
+Package: typearea 2021/03/17 v3.33 KOMA-Script package (type area)
+\ta@bcor=\skip48
+\ta@div=\count182
+\ta@hblk=\skip49
+\ta@vblk=\skip50
+\ta@temp=\skip51
+\footheight=\skip52
+Package typearea Info: These are the values describing the layout:
+(typearea) DIV = 10
+(typearea) BCOR = 0.0pt
+(typearea) \paperwidth = 597.50793pt
+(typearea) \textwidth = 418.25555pt
+(typearea) DIV departure = -6%
+(typearea) \evensidemargin = 17.3562pt
+(typearea) \oddsidemargin = 17.3562pt
+(typearea) \paperheight = 845.04694pt
+(typearea) \textheight = 595.80026pt
+(typearea) \topmargin = -25.16531pt
+(typearea) \headheight = 17.0pt
+(typearea) \headsep = 20.40001pt
+(typearea) \topskip = 11.0pt
+(typearea) \footskip = 47.6pt
+(typearea) \baselineskip = 13.6pt
+(typearea) on input line 1741.
+)
+\c@part=\count183
+\c@section=\count184
+\c@subsection=\count185
+\c@subsubsection=\count186
+\c@paragraph=\count187
+\c@subparagraph=\count188
+\scr@dte@section@maxnumwidth=\skip53
+Class scrartcl Info: using compatibility default `runin=bysign'
+(scrartcl) for `\section on input line 4846.
+Class scrartcl Info: using compatibility default `afterindent=bysign'
+(scrartcl) for `\section on input line 4846.
+\scr@dte@part@maxnumwidth=\skip54
+Class scrartcl Info: using compatibility default `afterindent=false'
+(scrartcl) for `\part on input line 4854.
+\scr@dte@subsection@maxnumwidth=\skip55
+Class scrartcl Info: using compatibility default `runin=bysign'
+(scrartcl) for `\subsection on input line 4864.
+Class scrartcl Info: using compatibility default `afterindent=bysign'
+(scrartcl) for `\subsection on input line 4864.
+\scr@dte@subsubsection@maxnumwidth=\skip56
+Class scrartcl Info: using compatibility default `runin=bysign'
+(scrartcl) for `\subsubsection on input line 4874.
+Class scrartcl Info: using compatibility default `afterindent=bysign'
+(scrartcl) for `\subsubsection on input line 4874.
+\scr@dte@paragraph@maxnumwidth=\skip57
+Class scrartcl Info: using compatibility default `runin=bysign'
+(scrartcl) for `\paragraph on input line 4885.
+Class scrartcl Info: using compatibility default `afterindent=bysign'
+(scrartcl) for `\paragraph on input line 4885.
+\scr@dte@subparagraph@maxnumwidth=\skip58
+Class scrartcl Info: using compatibility default `runin=bysign'
+(scrartcl) for `\subparagraph on input line 4895.
+Class scrartcl Info: using compatibility default `afterindent=bysign'
+(scrartcl) for `\subparagraph on input line 4895.
+\abovecaptionskip=\skip59
+\belowcaptionskip=\skip60
+\c@pti@nb@sid@b@x=\box51
+Package tocbasic Info: babel extension for `lof' omitted
+(tocbasic) because of missing \bbl@set@language on input line 6127.
+
+\scr@dte@figure@maxnumwidth=\skip61
+\c@figure=\count189
+Package tocbasic Info: babel extension for `lot' omitted
+(tocbasic) because of missing \bbl@set@language on input line 6139.
+
+\scr@dte@table@maxnumwidth=\skip62
+\c@table=\count190
+Class scrartcl Info: Redefining `\numberline' on input line 6303.
+\bibindent=\dimen138
+)
+(/texlive/2021/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
+File: l3backend-pdftex.def 2021-05-07 L3 backend support: PDF output (pdfTeX)
+\l__color_backend_stack_int=\count191
+\l__pdf_internal_box=\box52
+) (./a.aux)
+\openout1 = `a.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 3.
+LaTeX Font Info: ... okay on input line 3.
+Package scrbase Info: activating english \contentsname on input line 3.
+Package scrbase Info: activating english \listfigurename on input line 3.
+Package scrbase Info: activating english \listtablename on input line 3.
+! Undefined control sequence.
+l.4 \lsdkfjlskdfj
+
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+
+(./a.aux) )
+Here is how much of TeX's memory you used:
+3199 strings out of 478510
+74549 string characters out of 5853586
+510929 words of memory out of 5000000
+21227 multiletter control sequences out of 15000+600000
+403730 words of font info for 28 fonts, out of 8000000 for 9000
+1141 hyphenation exceptions out of 8191
+108i,1n,108p,10625b,270s stack positions out of 5000i,500n,10000p,200000b,80000s
+
+No pages of output.
+PDF statistics:
+0 PDF objects out of 1000 (max. 8388607)
+0 named destinations out of 1000 (max. 500000)
+1 words of extra memory for PDF output out of 10000 (max. 10000000)"#;
assert_debug_snapshot!(parse(log).errors);
}
diff --git a/support/texlab/src/syntax/latex/analysis/implicit_link.rs b/support/texlab/src/syntax/latex/analysis/implicit_link.rs
index bba3acfb80..60524c623e 100644
--- a/support/texlab/src/syntax/latex/analysis/implicit_link.rs
+++ b/support/texlab/src/syntax/latex/analysis/implicit_link.rs
@@ -1,4 +1,4 @@
-use std::sync::Arc;
+use std::{path::Path, sync::Arc};
use lsp_types::Url;
@@ -19,26 +19,40 @@ fn find_by_extension(context: &LatexAnalyzerContext, extension: &str) -> Option<
let options = &context.environment.options;
if let Some(root_dir) = options.root_directory.as_ref() {
- let path = context
- .environment
- .current_directory
- .join(root_dir)
- .join(&aux_name);
- targets.push(Arc::new(Url::from_file_path(path).ok()?));
+ find_inside_directory(context, root_dir, &aux_name, &mut targets)?;
}
if let Some(build_dir) = options.aux_directory.as_ref() {
- let path = context
- .environment
- .current_directory
- .join(build_dir)
- .join(&aux_name);
- targets.push(Arc::new(Url::from_file_path(path).ok()?));
+ find_inside_directory(context, build_dir, &aux_name, &mut targets)?;
}
}
Some(targets)
}
+fn find_inside_directory(
+ context: &LatexAnalyzerContext,
+ dir: &Path,
+ aux_name: &str,
+ targets: &mut Vec<Arc<Url>>,
+) -> Option<()> {
+ let path = context
+ .environment
+ .current_directory
+ .join(dir)
+ .join(aux_name);
+
+ targets.push(Arc::new(Url::from_file_path(path).ok()?));
+
+ targets.push(Arc::new(
+ context
+ .base_uri
+ .join(&dir.join(aux_name).to_string_lossy())
+ .ok()?,
+ ));
+
+ Some(())
+}
+
fn with_extension(uri: &Url, extension: &str) -> Option<Url> {
let file_name = uri.path_segments()?.last()?;
let file_stem = file_name
diff --git a/support/texlab/src/syntax/latex/cst.rs b/support/texlab/src/syntax/latex/cst.rs
index 06c187213d..a83246571d 100644
--- a/support/texlab/src/syntax/latex/cst.rs
+++ b/support/texlab/src/syntax/latex/cst.rs
@@ -233,7 +233,7 @@ impl Key {
self.syntax()
.children_with_tokens()
.filter_map(|node| node.into_token())
- .filter(|node| node.kind() == WORD)
+ .filter(|node| !matches!(node.kind(), WHITESPACE | LINE_BREAK | COMMENT))
}
}
diff --git a/support/texlab/src/syntax/latex/parser.rs b/support/texlab/src/syntax/latex/parser.rs
index db9462874b..a43a77ebc9 100644
--- a/support/texlab/src/syntax/latex/parser.rs
+++ b/support/texlab/src/syntax/latex/parser.rs
@@ -854,7 +854,10 @@ impl<'a> Parser<'a> {
fn curly_group_path(&mut self) {
self.builder.start_node(CURLY_GROUP_WORD.into());
self.eat();
- while matches!(self.peek(), Some(WORD)) {
+ while matches!(
+ self.peek(),
+ Some(WORD | L_BRACK | R_BRACK | GENERIC_COMMAND_NAME)
+ ) {
self.path();
}
@@ -866,17 +869,24 @@ impl<'a> Parser<'a> {
self.builder.start_node(CURLY_GROUP_WORD_LIST.into());
self.eat();
- while self
- .peek()
- .filter(|&kind| {
- matches!(
- kind,
- LINE_BREAK | WHITESPACE | COMMENT | WORD | COMMA | EQUALITY_SIGN
- )
- })
- .is_some()
- {
- if self.peek() == Some(WORD) {
+ while self.peek().map_or(false, |kind| {
+ matches!(
+ kind,
+ LINE_BREAK
+ | WHITESPACE
+ | COMMENT
+ | WORD
+ | COMMA
+ | EQUALITY_SIGN
+ | L_BRACK
+ | R_BRACK
+ | GENERIC_COMMAND_NAME
+ )
+ }) {
+ if matches!(
+ self.peek(),
+ Some(WORD | L_BRACK | R_BRACK | GENERIC_COMMAND_NAME)
+ ) {
self.path();
} else {
self.eat();
@@ -890,11 +900,18 @@ impl<'a> Parser<'a> {
fn path(&mut self) {
self.builder.start_node(KEY.into());
self.eat();
- while self
- .peek()
- .filter(|&kind| matches!(kind, WHITESPACE | COMMENT | WORD | EQUALITY_SIGN))
- .is_some()
- {
+ while self.peek().map_or(false, |kind| {
+ matches!(
+ kind,
+ WHITESPACE
+ | COMMENT
+ | WORD
+ | EQUALITY_SIGN
+ | L_BRACK
+ | R_BRACK
+ | GENERIC_COMMAND_NAME
+ )
+ }) {
self.eat();
}
@@ -1583,6 +1600,11 @@ mod tests {
}
#[test]
+ fn test_latex_input_path_with_brackets() {
+ assert_debug_snapshot!(setup(r#"\input{foo[bar].tex}"#));
+ }
+
+ #[test]
fn test_biblatex_include_simple() {
assert_debug_snapshot!(setup(r#"\addbibresource{foo/bar.bib}"#));
}
@@ -1613,6 +1635,13 @@ mod tests {
}
#[test]
+ fn test_graphics_include_command() {
+ assert_debug_snapshot!(setup(
+ r#"\includegraphics[width=0.5\textwidth]{\foo.\bar.pdf}"#
+ ));
+ }
+
+ #[test]
fn test_svg_include_simple() {
assert_debug_snapshot!(setup(r#"\includesvg{foo/bar.svg}"#));
}
diff --git a/support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_command.snap b/support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_command.snap
new file mode 100644
index 0000000000..d279eda7f7
--- /dev/null
+++ b/support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__graphics_include_command.snap
@@ -0,0 +1,31 @@
+---
+source: src/syntax/latex/parser.rs
+assertion_line: 1639
+expression: "setup(r#\"\\includegraphics[width=0.5\\textwidth]{\\foo.\\bar.pdf}\"#)"
+---
+ROOT@0..52
+ PREAMBLE@0..52
+ GRAPHICS_INCLUDE@0..52
+ GRAPHICS_INCLUDE_NAME@0..16 "\\includegraphics"
+ BRACK_GROUP_KEY_VALUE@16..37
+ L_BRACK@16..17 "["
+ KEY_VALUE_BODY@17..36
+ KEY_VALUE_PAIR@17..36
+ KEY@17..22
+ WORD@17..22 "width"
+ EQUALITY_SIGN@22..23 "="
+ VALUE@23..36
+ TEXT@23..26
+ WORD@23..26 "0.5"
+ GENERIC_COMMAND@26..36
+ GENERIC_COMMAND_NAME@26..36 "\\textwidth"
+ R_BRACK@36..37 "]"
+ CURLY_GROUP_WORD_LIST@37..52
+ L_CURLY@37..38 "{"
+ KEY@38..51
+ GENERIC_COMMAND_NAME@38..42 "\\foo"
+ WORD@42..43 "."
+ GENERIC_COMMAND_NAME@43..47 "\\bar"
+ WORD@47..51 ".pdf"
+ R_CURLY@51..52 "}"
+
diff --git a/support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_path_with_brackets.snap b/support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_path_with_brackets.snap
new file mode 100644
index 0000000000..cb99f39728
--- /dev/null
+++ b/support/texlab/src/syntax/latex/snapshots/texlab__syntax__latex__parser__tests__latex_input_path_with_brackets.snap
@@ -0,0 +1,19 @@
+---
+source: src/syntax/latex/parser.rs
+assertion_line: 1591
+expression: "setup(r#\"\\input{foo[bar].tex}\"#)"
+---
+ROOT@0..20
+ PREAMBLE@0..20
+ LATEX_INCLUDE@0..20
+ LATEX_INCLUDE_NAME@0..6 "\\input"
+ CURLY_GROUP_WORD_LIST@6..20
+ L_CURLY@6..7 "{"
+ KEY@7..19
+ WORD@7..10 "foo"
+ L_BRACK@10..11 "["
+ WORD@11..14 "bar"
+ R_BRACK@14..15 "]"
+ WORD@15..19 ".tex"
+ R_CURLY@19..20 "}"
+
diff --git a/support/texlab/src/workspace.rs b/support/texlab/src/workspace.rs
index 8fda9c7c1b..e01a2fede4 100644
--- a/support/texlab/src/workspace.rs
+++ b/support/texlab/src/workspace.rs
@@ -1,4 +1,8 @@
-use std::{fs, path::PathBuf, sync::Arc};
+use std::{
+ fs::{self, FileType},
+ path::PathBuf,
+ sync::Arc,
+};
use anyhow::Result;
use crossbeam_channel::Sender;
@@ -6,7 +10,10 @@ use lsp_types::Url;
use petgraph::{graphmap::UnGraphMap, visit::Dfs};
use rustc_hash::{FxHashMap, FxHashSet};
-use crate::{component_db::COMPONENT_DATABASE, Document, DocumentLanguage, Environment};
+use crate::{
+ component_db::COMPONENT_DATABASE, syntax::latex::ExplicitLink, Document, DocumentLanguage,
+ Environment,
+};
#[derive(Debug, Clone)]
pub enum WorkspaceEvent {
@@ -22,6 +29,7 @@ pub struct Workspace {
}
impl Workspace {
+ #[must_use]
pub fn new(environment: Environment) -> Self {
Self {
environment,
@@ -137,7 +145,8 @@ impl Workspace {
.unwrap_or_default()
}
- fn find_parent(&self, uri: &Url) -> Option<Document> {
+ #[must_use]
+ pub fn find_parent(&self, uri: &Url) -> Option<Document> {
self.slice(uri)
.documents_by_uri
.values()
@@ -148,7 +157,7 @@ impl Workspace {
.extras
.explicit_links
.iter()
- .filter_map(|link| link.as_component_name())
+ .filter_map(ExplicitLink::as_component_name)
.any(|name| name == "subfiles.cls")
})
})
@@ -168,8 +177,8 @@ impl Workspace {
std::fs::read_dir(&path)
.into_iter()
.flatten()
- .filter_map(|entry| entry.ok())
- .filter(|entry| entry.file_type().ok().filter(|ty| ty.is_file()).is_some())
+ .filter_map(Result::ok)
+ .filter(|entry| entry.file_type().ok().filter(FileType::is_file).is_some())
.map(|entry| entry.path())
.filter(|path| {
matches!(
@@ -200,7 +209,7 @@ impl Workspace {
}
}
- all_targets.into_iter().for_each(|targets| {
+ for targets in all_targets {
for path in targets
.iter()
.filter(|uri| uri.scheme() == "file" && uri.fragment().is_none())
@@ -210,7 +219,7 @@ impl Workspace {
break;
}
}
- });
+ }
}
}
}
diff --git a/support/texlab/tests/integration/dev.rs b/support/texlab/tests/integration/dev.rs
new file mode 100644
index 0000000000..7ba1e93d0c
--- /dev/null
+++ b/support/texlab/tests/integration/dev.rs
@@ -0,0 +1,17 @@
+use std::process::{Command, Stdio};
+
+use anyhow::Result;
+
+#[test]
+fn rustfmt() -> Result<()> {
+ let success = Command::new("cargo")
+ .args(&["fmt", "--check"])
+ .current_dir(env!("CARGO_MANIFEST_DIR"))
+ .stdout(Stdio::null())
+ .stderr(Stdio::null())
+ .status()?
+ .success();
+
+ assert!(success);
+ Ok(())
+}
diff --git a/support/texlab/tests/integration/lsp.rs b/support/texlab/tests/integration/lsp.rs
new file mode 100644
index 0000000000..9ef1a4f2b4
--- /dev/null
+++ b/support/texlab/tests/integration/lsp.rs
@@ -0,0 +1,4 @@
+mod client;
+mod fixture;
+mod text_document;
+mod workspace;
diff --git a/support/texlab/tests/integration/lsp/client.rs b/support/texlab/tests/integration/lsp/client.rs
new file mode 100644
index 0000000000..dc6b66795c
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/client.rs
@@ -0,0 +1,158 @@
+use anyhow::{bail, Result};
+use crossbeam_channel::{Receiver, Sender};
+use lsp_server::{Connection, Message, Notification, Request, Response};
+use lsp_types::{
+ notification::{Exit, Initialized},
+ request::{Initialize, Shutdown},
+ ClientCapabilities, ClientInfo, DidOpenTextDocumentParams, InitializeParams, InitializeResult,
+ InitializedParams, Url,
+};
+use tempfile::{tempdir, TempDir};
+use texlab::Server;
+
+pub struct IncomingHandler {
+ _handle: jod_thread::JoinHandle<Result<()>>,
+ pub requests: Receiver<Request>,
+ pub notifications: Receiver<Notification>,
+ pub responses: Receiver<Response>,
+}
+
+impl IncomingHandler {
+ pub fn spawn(receiver: Receiver<Message>) -> Result<Self> {
+ let (req_sender, req_receiver) = crossbeam_channel::unbounded();
+ let (not_sender, not_receiver) = crossbeam_channel::unbounded();
+ let (res_sender, res_receiver) = crossbeam_channel::unbounded();
+
+ let _handle = jod_thread::spawn(move || {
+ for message in &receiver {
+ match message {
+ Message::Request(req) => req_sender.send(req)?,
+ Message::Response(res) => res_sender.send(res)?,
+ Message::Notification(not) => not_sender.send(not)?,
+ };
+ }
+
+ Ok(())
+ });
+
+ Ok(Self {
+ _handle,
+ requests: req_receiver,
+ notifications: not_receiver,
+ responses: res_receiver,
+ })
+ }
+}
+
+pub struct ClientResult {
+ pub directory: TempDir,
+ pub incoming: IncomingHandler,
+}
+
+pub struct Client {
+ outgoing: Sender<Message>,
+ incoming: IncomingHandler,
+ directory: TempDir,
+ request_id: i32,
+ _handle: jod_thread::JoinHandle,
+}
+
+impl Client {
+ pub fn spawn() -> Result<Self> {
+ let directory = tempdir()?;
+ let (client, server) = Connection::memory();
+ let incoming = IncomingHandler::spawn(client.receiver)?;
+ let outgoing = client.sender;
+ let server = Server::with_connection(server, directory.path().to_path_buf(), false);
+ let _handle = jod_thread::spawn(move || {
+ server.run().expect("server failed to run");
+ });
+
+ Ok(Self {
+ outgoing,
+ incoming,
+ directory,
+ request_id: 0,
+ _handle,
+ })
+ }
+
+ #[allow(deprecated)]
+ pub fn initialize(
+ &mut self,
+ client_capabilities: ClientCapabilities,
+ client_info: Option<ClientInfo>,
+ ) -> Result<InitializeResult> {
+ let result = self.request::<Initialize>(InitializeParams {
+ process_id: None,
+ root_path: None,
+ root_uri: None,
+ initialization_options: None,
+ capabilities: client_capabilities,
+ trace: None,
+ workspace_folders: None,
+ client_info,
+ locale: None,
+ })?;
+
+ self.notify::<Initialized>(InitializedParams {})?;
+ Ok(result)
+ }
+
+ pub fn request<R: lsp_types::request::Request>(
+ &mut self,
+ params: R::Params,
+ ) -> Result<R::Result> {
+ self.request_id += 1;
+
+ self.outgoing
+ .send(Request::new(self.request_id.into(), R::METHOD.into(), params).into())?;
+
+ let response = self.incoming.responses.recv()?;
+ assert_eq!(response.id, self.request_id.into());
+
+ let result = match response.result {
+ Some(result) => result,
+ None => bail!("request failed: {:?}", response.error),
+ };
+
+ Ok(serde_json::from_value(result)?)
+ }
+
+ pub fn notify<N: lsp_types::notification::Notification>(
+ &mut self,
+ params: N::Params,
+ ) -> Result<()> {
+ self.outgoing
+ .send(Notification::new(N::METHOD.into(), serde_json::to_value(params)?).into())?;
+
+ Ok(())
+ }
+
+ pub fn open(&mut self, name: &str, language_id: &str, text: String) -> Result<()> {
+ self.notify::<lsp_types::notification::DidOpenTextDocument>(DidOpenTextDocumentParams {
+ text_document: lsp_types::TextDocumentItem {
+ uri: self.uri(name)?,
+ language_id: language_id.to_string(),
+ version: 0,
+ text,
+ },
+ })?;
+
+ Ok(())
+ }
+
+ pub fn shutdown(mut self) -> Result<ClientResult> {
+ self.request::<Shutdown>(())?;
+ self.notify::<Exit>(())?;
+ Ok(ClientResult {
+ directory: self.directory,
+ incoming: self.incoming,
+ })
+ }
+
+ pub fn uri(&self, name: &str) -> Result<Url> {
+ Url::from_file_path(self.directory.path().join(name))
+ .map_err(|()| anyhow::anyhow!("failed to create uri"))
+ }
+}
diff --git a/support/texlab/tests/integration/lsp/fixture.rs b/support/texlab/tests/integration/lsp/fixture.rs
new file mode 100644
index 0000000000..17eb659923
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/fixture.rs
@@ -0,0 +1,123 @@
+use std::collections::BTreeMap;
+
+use anyhow::Result;
+use lsp_types::{Position, Range, TextDocumentIdentifier, TextDocumentPositionParams};
+use rustc_hash::FxHashMap;
+
+use crate::lsp::client::Client;
+
+#[derive(Debug, PartialEq, Eq, Clone, Hash)]
+enum Line<'a> {
+ File(&'a str, &'a str),
+ Plain(&'a str),
+ Range(u32, u32, std::ops::Range<usize>),
+ Cursor(usize),
+ Empty,
+}
+
+fn parse_line(line: &str) -> Line {
+ if let Some(name) = line.strip_prefix("%TEX ") {
+ Line::File(name, "latex")
+ } else if let Some(name) = line.strip_prefix("%BIB ") {
+ Line::File(name, "bibtex")
+ } else if let Some(text) = line.strip_prefix("%SRC ") {
+ Line::Plain(text)
+ } else if let Some(text) = line.strip_prefix("%CUR ") {
+ let position = text.find('^').unwrap();
+ Line::Cursor(position)
+ } else if line.is_empty() {
+ Line::Empty
+ } else {
+ let key1 = line[1..2].parse().unwrap();
+ let key2 = line[3..4].parse().unwrap();
+ let line = &line[5..];
+ let range = line
+ .find('^')
+ .map_or(0..0, |start| start..(line.rfind('^').unwrap() + 1));
+ Line::Range(key1, key2, range)
+ }
+}
+
+#[derive(Debug, Default)]
+pub struct FileRange<'a> {
+ pub name: &'a str,
+ pub range: Range,
+}
+
+#[derive(Debug, Default)]
+pub struct File<'a> {
+ pub name: &'a str,
+ pub lang: &'a str,
+ pub text: String,
+}
+
+#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
+pub struct FileCursor<'a> {
+ pub name: &'a str,
+ pub position: Position,
+}
+
+impl<'a> FileCursor<'a> {
+ pub fn into_params(self, server: &Client) -> Result<TextDocumentPositionParams> {
+ let text_document = TextDocumentIdentifier::new(server.uri(self.name)?);
+ Ok(TextDocumentPositionParams {
+ text_document,
+ position: self.position,
+ })
+ }
+}
+
+#[derive(Debug, Default)]
+pub struct Fixture<'a> {
+ pub files: Vec<File<'a>>,
+ pub cursor: Option<FileCursor<'a>>,
+ pub ranges: BTreeMap<u32, FxHashMap<u32, FileRange<'a>>>,
+}
+
+pub fn parse(input: &str) -> Fixture {
+ let mut fixture = Fixture::default();
+ let mut file = File::default();
+ let mut file_line_index = 0;
+ for line in input.lines().map(parse_line) {
+ match line {
+ Line::File(name, lang) => {
+ if !file.name.is_empty() {
+ fixture.files.push(file);
+ file = File::default();
+ }
+
+ file.name = name;
+ file.lang = lang;
+ file_line_index = 0;
+ }
+ Line::Plain(line) => {
+ file.text.push_str(line);
+ file.text.push('\n');
+ file_line_index += 1;
+ }
+ Line::Range(key1, key2, range) => {
+ let line = file_line_index - 1;
+ let start = Position::new(line, range.start.try_into().unwrap());
+ let end = Position::new(line, range.end.try_into().unwrap());
+ let range = Range::new(start, end);
+ fixture.ranges.entry(key1).or_default().insert(
+ key2,
+ FileRange {
+ name: file.name,
+ range,
+ },
+ );
+ }
+ Line::Cursor(position) => {
+ fixture.cursor = Some(FileCursor {
+ name: file.name,
+ position: Position::new(file_line_index - 1, position.try_into().unwrap()),
+ });
+ }
+ Line::Empty => {}
+ };
+ }
+
+ fixture.files.push(file);
+ fixture
+}
diff --git a/support/texlab/tests/integration/lsp/text_document.rs b/support/texlab/tests/integration/lsp/text_document.rs
new file mode 100644
index 0000000000..56ad1ee09f
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document.rs
@@ -0,0 +1,11 @@
+#[cfg(feature = "completion")]
+mod completion;
+mod definition;
+mod document_highlight;
+mod document_link;
+mod document_symbol;
+mod folding_range;
+mod formatting;
+mod hover;
+mod references;
+mod rename;
diff --git a/support/texlab/tests/integration/lsp/text_document/completion.rs b/support/texlab/tests/integration/lsp/text_document/completion.rs
new file mode 100644
index 0000000000..5e160904fe
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/completion.rs
@@ -0,0 +1,870 @@
+use anyhow::Result;
+use insta::assert_json_snapshot;
+use lsp_types::{
+ request::{Completion, ResolveCompletionItem},
+ ClientCapabilities, CompletionItem, CompletionList, CompletionParams, CompletionResponse,
+ CompletionTextEdit, Range,
+};
+
+use crate::lsp::{client::Client, fixture};
+
+fn complete(fixture: &str) -> Result<Vec<CompletionItem>, anyhow::Error> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let range = fixture
+ .ranges
+ .values()
+ .next()
+ .and_then(|map| map.values().next())
+ .map_or_else(
+ || {
+ let position = fixture.cursor.unwrap().position;
+ Range::new(position, position)
+ },
+ |file_range| file_range.range,
+ );
+
+ let actual_list = client
+ .request::<Completion>(CompletionParams {
+ text_document_position: fixture.cursor.unwrap().into_params(&client)?,
+ partial_result_params: Default::default(),
+ work_done_progress_params: Default::default(),
+ context: None,
+ })?
+ .map_or(CompletionList::default(), |actual| match actual {
+ CompletionResponse::List(list) => list,
+ CompletionResponse::Array(_) => unreachable!(),
+ });
+
+ for item in &actual_list.items {
+ if let Some(CompletionTextEdit::Edit(edit)) = item.text_edit.as_ref() {
+ assert_eq!(edit.range, range);
+ }
+ }
+
+ let actual_items = actual_list
+ .items
+ .into_iter()
+ .take(5)
+ .map(|item| client.request::<ResolveCompletionItem>(item))
+ .collect::<Result<Vec<_>>>()?;
+
+ client.shutdown()?;
+ Ok(actual_items)
+}
+
+macro_rules! assert_items {
+ ($items:expr) => {
+ assert_json_snapshot!($items, {
+ "[].data" => "[data]",
+ "[].sortText" => "[sortText]",
+ "[].documentation" => "[documentation]",
+ "[].textEdit.range" => "[range]",
+ "[]" => insta::sorted_redaction()
+ });
+ };
+}
+
+#[test]
+fn acronym_ref_simple() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}
+%SRC \acrshort{f}
+%CUR ^
+%1.1 ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn acronym_ref_empty() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}
+%SRC \acrshort{}
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn acronym_ref_after_group() -> Result<()> {
+ let actual_items = complete(
+ r#"
+%TEX main.tex
+%SRC \newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}
+%SRC \acrshort{}
+%CUR ^
+%1.1 ^"#,
+ )?;
+
+ assert_eq!(actual_items, Vec::new());
+ Ok(())
+}
+
+#[test]
+fn acronym_ref_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}
+%SRC \acrshort{f
+%CUR ^
+%1.1 ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn glossary_ref_simple() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}
+%SRC \gls{f}
+%CUR ^
+%1.1 ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn glossary_ref_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}
+%SRC \gls{f
+%CUR ^
+%1.1 ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn argument_empty() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \usepackage{amsfonts}
+%SRC \mathbb{}
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn argument_word() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \usepackage{amsfonts}
+%SRC \mathbb{A}
+%CUR ^
+%1.1 ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn argument_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \usepackage{amsfonts}
+%SRC \mathbb{
+%CUR ^
+%SRC Test"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn argument_open_brace_unrelated() -> Result<()> {
+ let actual_items = complete(
+ r#"
+%TEX main.tex
+%SRC \usepackage{amsfonts}
+%SRC \mathbb{}{
+%CUR ^
+%SRC Test"#,
+ )?;
+
+ assert_eq!(actual_items, Vec::new());
+ Ok(())
+}
+
+#[test]
+fn begin_environment_without_snippet_support() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \beg
+%CUR ^
+%1.1 ^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn citation() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC \bibliography{main}
+%SRC \begin{document}
+%SRC \cite{
+%CUR ^
+%SRC \end{document}
+
+%BIB main.bib
+%SRC @article{foo:2019,
+%SRC author = {Foo Bar},
+%SRC title = {Baz Qux},
+%SRC year = {2019},
+%SRC }
+%SRC
+%SRC @article{bar:2005,}"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn citation_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \addbibresource{main.bib}
+%SRC \cite{
+%CUR ^
+
+%BIB main.bib
+%SRC @article{foo,}"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn citation_open_brace_multiple() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \addbibresource{main.bib}
+%SRC \cite{foo,a
+%CUR ^
+%1.1 ^
+
+%BIB main.bib
+%SRC @article{foo,}"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn citation_acronym() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \addbibresource{main.bib}
+%SRC \DeclareAcronym{foo}{cite={}}
+%CUR ^
+
+%BIB main.bib
+%SRC @article{foo,}"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn citation_after_brace() -> Result<()> {
+ let actual_items = complete(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC \bibliography{main}
+%SRC \begin{document}
+%SRC \cite{}
+%CUR ^
+%SRC \end{document}
+
+%BIB main.bib
+%SRC @article{foo,}"#,
+ )?;
+
+ assert_eq!(actual_items, Vec::new());
+ Ok(())
+}
+
+#[test]
+fn color_model_definition_simple() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \definecolor{foo}{}
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn color_model_definition_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \definecolor{foo}{
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn color_model_definition_set_simple() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \definecolorset{}
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn color_model_definition_set_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \definecolorset{
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn color_simple() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \color{}
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn color_word() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \color{re}
+%CUR ^
+%1.1 ^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn color_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \color{
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn component_command_simple() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn component_command_simple_before() -> Result<()> {
+ let actual_items = complete(
+ r#"
+%TEX main.tex
+%SRC \
+%CUR ^"#,
+ )?;
+
+ assert_eq!(actual_items, Vec::new());
+ Ok(())
+}
+
+#[test]
+fn component_command_simple_package() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \usepackage{lipsum}
+%SRC \lips
+%CUR ^
+%1.1 ^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn component_command_bibtex() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @article{b,
+%SRC c = {\LaT }
+%CUR ^
+%1.1 ^^^
+%SRC }"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn component_environment_simple() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \begin{doc
+%CUR ^
+%1.1 ^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn component_environment_simple_end() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \begin{document}
+%SRC \end{
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn component_environment_class() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC \begin{thein}
+%CUR ^
+%1.1 ^^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn component_environment_command_definition() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \newcommand{\foo}{\begin{doc}
+%CUR ^
+%1.1 ^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn entry_type_at_empty() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn entry_type_before_preamble() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @preamble
+%CUR ^
+%1.1 ^^^^^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn entry_type_before_string() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @string
+%CUR ^
+%1.1 ^^^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn entry_type_before_article() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @article
+%CUR ^
+%1.1 ^^^^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn entry_type_after_preamble() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @preamble{
+%CUR ^
+%1.1 ^^^^^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn entry_type_after_string() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @string{
+%CUR ^
+%1.1 ^^^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn entry_type_complete_entry() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @article{foo, author = {foo}}
+%CUR ^
+%1.1 ^^^^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn field_empty_entry_open() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @article{foo,
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn field_empty_entry_closed() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @article{foo,}
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn field_entry_field_name() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @article{foo, a
+%CUR ^
+%1.1 ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn field_entry_two_fields_name_open() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @article{foo, author = bar, edit
+%CUR ^
+%1.1 ^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn field_entry_two_fields_name_closed() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%BIB main.bib
+%SRC @article{foo, author = bar, edit}
+%CUR ^
+%1.1 ^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn import_package_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \usepackage{lips
+%CUR ^
+%1.1 ^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn import_package_closed_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \usepackage{lips}
+%CUR ^
+%1.1 ^^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn import_class_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \documentclass{art \foo
+%CUR ^
+%1.1 ^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn import_class_closed_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \documentclass{art}
+%CUR ^
+%1.1 ^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn label() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX foo.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \usepackage{amsmath}
+%SRC \usepackage{caption}
+%SRC \usepackage{amsthm}
+%SRC \newtheorem{lemma}{Lemma}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \section{Foo}%
+%SRC \label{sec:foo}
+%SRC
+%SRC \begin{equation}%
+%SRC \label{eq:foo}
+%SRC 1 + 1 = 2
+%SRC \end{equation}
+%SRC
+%SRC \begin{equation}%
+%SRC \label{eq:bar}
+%SRC 1 + 1 = 2
+%SRC \end{equation}
+%SRC
+%SRC \begin{figure}%
+%SRC \LaTeX{}
+%SRC \caption{Baz}%
+%SRC \label{fig:baz}
+%SRC \end{figure}
+%SRC
+%SRC \begin{lemma}%
+%SRC \label{thm:foo}
+%SRC 1 + 1 = 2
+%SRC \end{lemma}
+%SRC
+%SRC \include{bar}
+%SRC
+%SRC \end{document}
+
+%TEX bar.tex
+%SRC \section{Bar}%
+%SRC \label{sec:bar}
+%SRC
+%SRC Lorem ipsum dolor sit amet.
+%SRC \ref{}
+%CUR ^
+
+%TEX foo.aux
+%SRC \relax
+%SRC \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Baz\relax }}{1}\protected@file@percent }
+%SRC \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
+%SRC \newlabel{fig:baz}{{1}{1}}
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {1}Foo}{1}\protected@file@percent }
+%SRC \newlabel{sec:foo}{{1}{1}}
+%SRC \newlabel{eq:foo}{{1}{1}}
+%SRC \newlabel{eq:bar}{{2}{1}}
+%SRC \newlabel{thm:foo}{{1}{1}}
+%SRC \@input{bar.aux}"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn theorem_begin() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \newtheorem{lemma}{Lemma}
+%SRC \begin{lem
+%CUR ^
+%1.1 ^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn theorem_end() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \newtheorem{lemma}{Lemma}
+%SRC \begin{}
+%SRC \end{lem
+%CUR ^
+%1.1 ^^^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn tikz_library_open_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \usepgflibrary{
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn tikz_library_closed_brace() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \usepgflibrary{}
+%CUR ^"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn test_user_command() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \foobar
+%SRC \fooba
+%CUR ^
+%1.1 ^^^^^
+%SRC \begin{foo}
+%SRC \end{foo}
+%SRC \begin{fo}
+"#
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn test_user_environment() -> Result<()> {
+ assert_items!(complete(
+ r#"
+%TEX main.tex
+%SRC \foobar
+%SRC \fooba
+%SRC \begin{foo}
+%SRC \end{foo}
+%SRC \begin{fo}
+%CUR ^
+%1.1 ^^
+"#
+ )?);
+
+ Ok(())
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/definition.rs b/support/texlab/tests/integration/lsp/text_document/definition.rs
new file mode 100644
index 0000000000..203c350464
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/definition.rs
@@ -0,0 +1,142 @@
+use anyhow::Result;
+use assert_unordered::assert_eq_unordered;
+use lsp_types::{
+ request::GotoDefinition, ClientCapabilities, GotoDefinitionParams, GotoDefinitionResponse,
+ LocationLink,
+};
+
+use crate::lsp::{client::Client, fixture};
+
+fn check(fixture: &str) -> Result<()> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let mut expected_links = Vec::new();
+ for ranges in fixture.ranges.values() {
+ expected_links.push(LocationLink {
+ origin_selection_range: Some(ranges[&1].range),
+ target_uri: client.uri(ranges[&2].name)?,
+ target_range: ranges[&2].range,
+ target_selection_range: ranges[&3].range,
+ });
+ }
+
+ let actual_links = client
+ .request::<GotoDefinition>(GotoDefinitionParams {
+ text_document_position_params: fixture.cursor.unwrap().into_params(&client)?,
+ partial_result_params: Default::default(),
+ work_done_progress_params: Default::default(),
+ })?
+ .map_or(Vec::new(), |actual| match actual {
+ GotoDefinitionResponse::Link(links) => links,
+ GotoDefinitionResponse::Array(_) | GotoDefinitionResponse::Scalar(_) => unreachable!(),
+ });
+
+ client.shutdown()?;
+
+ assert_eq_unordered!(actual_links, expected_links);
+ Ok(())
+}
+
+#[test]
+fn command_definition() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC \DeclareMathOperator{\foo}{foo}
+%1.3 ^^^^
+%1.2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%SRC \foo
+%CUR ^
+%1.1 ^^^^
+"#,
+ )
+}
+
+#[test]
+fn document() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \addbibresource{baz.bib}
+%CUR ^
+%1.1 ^^^^^^^
+
+%TEX bar.bib
+%SRC @article{foo, bar = {baz}}
+
+%TEX baz.bib
+%SRC @article{foo, bar = {baz}}
+%1.3
+%1.2
+"#,
+ )
+}
+
+#[test]
+fn entry() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \addbibresource{baz.bib}
+%SRC \cite{foo}
+%CUR ^
+%1.1 ^^^
+
+%BIB bar.bib
+%SRC @article{foo, bar = {baz}}
+
+%BIB baz.bib
+%SRC @article{foo, bar = {baz}}
+%1.3 ^^^
+%1.2 ^^^^^^^^^^^^^^^^^^^^^^^^^^
+"#,
+ )
+}
+
+#[test]
+fn string_simple() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = {bar}}
+%1.3 ^^^
+%1.2 ^^^^^^^^^^^^^^^^^^^^
+%SRC @article{bar, author = foo}
+%CUR ^
+%1.1 ^^^
+"#,
+ )
+}
+
+#[test]
+fn string_join() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = {bar}}
+%1.3 ^^^
+%1.2 ^^^^^^^^^^^^^^^^^^^^
+%SRC @article{bar, author = foo # "bar"}
+%CUR ^
+%1.1 ^^^
+"#,
+ )
+}
+
+#[test]
+fn string_field() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = {bar}}
+%SRC @article{bar, author = foo # "bar"}
+%CUR ^
+"#,
+ )
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/document_highlight.rs b/support/texlab/tests/integration/lsp/text_document/document_highlight.rs
new file mode 100644
index 0000000000..92102ce0ca
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/document_highlight.rs
@@ -0,0 +1,62 @@
+use anyhow::Result;
+use assert_unordered::assert_eq_unordered;
+use lsp_types::{
+ request::DocumentHighlightRequest, ClientCapabilities, DocumentHighlight,
+ DocumentHighlightKind, DocumentHighlightParams,
+};
+
+use crate::lsp::{client::Client, fixture};
+
+fn check(fixture: &str) -> Result<()> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let mut expected_highlights = Vec::new();
+ for ranges in fixture.ranges.values() {
+ let (i, file_range) = ranges.iter().next().unwrap();
+ let kind = match i {
+ 1 => DocumentHighlightKind::TEXT,
+ 2 => DocumentHighlightKind::READ,
+ 3 => DocumentHighlightKind::WRITE,
+ _ => unreachable!(),
+ };
+
+ expected_highlights.push(DocumentHighlight {
+ range: file_range.range,
+ kind: Some(kind),
+ });
+ }
+
+ let actual_highlights = client
+ .request::<DocumentHighlightRequest>(DocumentHighlightParams {
+ text_document_position_params: fixture.cursor.unwrap().into_params(&client)?,
+ partial_result_params: Default::default(),
+ work_done_progress_params: Default::default(),
+ })?
+ .unwrap_or_default();
+
+ client.shutdown()?;
+
+ assert_eq_unordered!(actual_highlights, expected_highlights);
+ Ok(())
+}
+
+#[test]
+fn test_label() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC \label{foo}
+%CUR ^
+%1.3 ^^^
+%SRC \ref{foo}
+%2.2 ^^^
+%SRC \label{bar}
+"#,
+ )
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/document_link.rs b/support/texlab/tests/integration/lsp/text_document/document_link.rs
new file mode 100644
index 0000000000..1a773fd478
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/document_link.rs
@@ -0,0 +1,73 @@
+use anyhow::Result;
+use assert_unordered::assert_eq_unordered;
+use lsp_types::{
+ request::DocumentLinkRequest, ClientCapabilities, DocumentLink, DocumentLinkParams,
+ TextDocumentIdentifier,
+};
+
+use crate::lsp::{client::Client, fixture};
+
+fn check(fixture: &str) -> Result<()> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let mut expected_links = Vec::new();
+ for ranges in fixture.ranges.values() {
+ expected_links.push(DocumentLink {
+ range: ranges[&1].range,
+ target: Some(client.uri(ranges[&2].name)?),
+ tooltip: None,
+ data: None,
+ });
+ }
+
+ let actual_links = client
+ .request::<DocumentLinkRequest>(DocumentLinkParams {
+ text_document: TextDocumentIdentifier::new(client.uri(fixture.cursor.unwrap().name)?),
+ work_done_progress_params: Default::default(),
+ partial_result_params: Default::default(),
+ })?
+ .unwrap_or_default();
+
+ client.shutdown()?;
+
+ assert_eq_unordered!(actual_links, expected_links);
+ Ok(())
+}
+
+#[test]
+fn document_include() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \input{bar.tex}
+%1.1 ^^^^^^^
+%CUR ^
+
+%TEX bar.tex
+%SRC
+%1.2
+"#,
+ )
+}
+
+#[test]
+fn document_import() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \import{bar/}{baz}
+%1.1 ^^^
+%CUR ^
+
+%TEX bar/baz.tex
+%SRC
+%1.2
+"#,
+ )
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/document_symbol.rs b/support/texlab/tests/integration/lsp/text_document/document_symbol.rs
new file mode 100644
index 0000000000..50bb9db3fe
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/document_symbol.rs
@@ -0,0 +1,427 @@
+use anyhow::Result;
+use insta::{assert_json_snapshot, internals::Redaction};
+use lsp_types::{
+ request::DocumentSymbolRequest, DocumentSymbolParams, DocumentSymbolResponse,
+ TextDocumentIdentifier, Url,
+};
+
+use crate::lsp::{client::Client, fixture};
+
+struct SymbolResult {
+ response: Option<DocumentSymbolResponse>,
+ uri_redaction: Redaction,
+}
+
+fn find_symbols(fixture: &str, client_capabilities: serde_json::Value) -> Result<SymbolResult> {
+ let mut client = Client::spawn()?;
+ client.initialize(serde_json::from_value(client_capabilities)?, None)?;
+
+ let fixture = fixture::parse(fixture);
+ let file = fixture.files.into_iter().next().unwrap();
+ client.open(file.name, file.lang, file.text)?;
+
+ let response = client.request::<DocumentSymbolRequest>(DocumentSymbolParams {
+ text_document: TextDocumentIdentifier::new(client.uri(file.name)?),
+ work_done_progress_params: Default::default(),
+ partial_result_params: Default::default(),
+ })?;
+
+ let result = client.shutdown()?;
+
+ let uri = Url::from_directory_path(result.directory.path()).unwrap();
+ let uri_redaction = insta::dynamic_redaction(move |content, _path| {
+ content.as_str().unwrap().replace(uri.as_str(), "[tmp]/")
+ });
+
+ Ok(SymbolResult {
+ response,
+ uri_redaction,
+ })
+}
+
+macro_rules! assert_symbols {
+ ($result:expr) => {
+ let result = $result;
+ assert_json_snapshot!(result.response, {
+ "[].location.uri" => result.uri_redaction
+ });
+ };
+}
+
+#[test]
+fn enumerate_nested() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \begin{enumerate}
+%SRC \item\label{it:foo} Foo
+%SRC \item\label{it:bar} Bar
+%SRC \item[Baz] Baz
+%SRC \item[Qux]\label{it:qux} Qux
+%SRC \end{enumerate}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \newlabel{it:foo}{{1}{1}}
+%SRC \newlabel{it:qux}{{2}{1}}
+"#,
+ serde_json::json!({
+ "textDocument": {
+ "documentSymbol": {
+ "hierarchicalDocumentSymbolSupport": true,
+ },
+ },
+ }),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn enumerate_flat() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \begin{enumerate}
+%SRC \item\label{it:foo} Foo
+%SRC \item\label{it:bar} Bar
+%SRC \item[Baz] Baz
+%SRC \item[Qux]\label{it:qux} Qux
+%SRC \end{enumerate}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \newlabel{it:foo}{{1}{1}}
+%SRC \newlabel{it:qux}{{2}{1}}
+"#,
+ serde_json::json!({}),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn equation_nested() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \begin{equation}\label{eq:foo}
+%SRC Foo
+%SRC \end{equation}
+%SRC
+%SRC \begin{equation}\label{eq:bar}
+%SRC Bar
+%SRC \end{equation}
+%SRC
+%SRC \begin{equation}
+%SRC Baz
+%SRC \end{equation}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \newlabel{eq:foo}{{1}{1}}
+"#,
+ serde_json::json!({
+ "textDocument": {
+ "documentSymbol": {
+ "hierarchicalDocumentSymbolSupport": true,
+ },
+ },
+ }),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn equation_flat() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \begin{equation}\label{eq:foo}
+%SRC Foo
+%SRC \end{equation}
+%SRC
+%SRC \begin{equation}\label{eq:bar}
+%SRC Bar
+%SRC \end{equation}
+%SRC
+%SRC \begin{equation}
+%SRC Baz
+%SRC \end{equation}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \newlabel{eq:foo}{{1}{1}}
+"#,
+ serde_json::json!({}),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn float_nested() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \begin{figure}
+%SRC Foo
+%SRC \caption{Foo}\label{fig:foo}
+%SRC \end{figure}
+%SRC
+%SRC \begin{figure}
+%SRC Bar
+%SRC \caption{Bar}\label{fig:bar}
+%SRC \end{figure}
+%SRC
+%SRC \begin{figure}
+%SRC Baz
+%SRC \caption{Baz}
+%SRC \end{figure}
+%SRC
+%SRC \begin{figure}
+%SRC Qux
+%SRC \end{figure}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Foo}}{1}\protected@file@percent }
+%SRC \newlabel{fig:foo}{{1}{1}}
+%SRC \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Bar}}{1}\protected@file@percent }
+%SRC \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Baz}}{1}\protected@file@percent }
+"#,
+ serde_json::json!({
+ "textDocument": {
+ "documentSymbol": {
+ "hierarchicalDocumentSymbolSupport": true,
+ },
+ },
+ }),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn float_flat() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \begin{figure}
+%SRC Foo
+%SRC \caption{Foo}\label{fig:foo}
+%SRC \end{figure}
+%SRC
+%SRC \begin{figure}
+%SRC Bar
+%SRC \caption{Bar}\label{fig:bar}
+%SRC \end{figure}
+%SRC
+%SRC \begin{figure}
+%SRC Baz
+%SRC \caption{Baz}
+%SRC \end{figure}
+%SRC
+%SRC \begin{figure}
+%SRC Qux
+%SRC \end{figure}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Foo}}{1}\protected@file@percent }
+%SRC \newlabel{fig:foo}{{1}{1}}
+%SRC \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Bar}}{1}\protected@file@percent }
+%SRC \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Baz}}{1}\protected@file@percent }
+"#,
+ serde_json::json!({}),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn section_nested() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \section{Foo}
+%SRC
+%SRC \section{Bar}\label{sec:bar}
+%SRC
+%SRC \subsection{Baz}\label{sec:baz}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {1}Foo}{1}\protected@file@percent }
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {2}Bar}{1}\protected@file@percent }
+%SRC \newlabel{sec:bar}{{2}{1}}
+"#,
+ serde_json::json!({
+ "textDocument": {
+ "documentSymbol": {
+ "hierarchicalDocumentSymbolSupport": true,
+ },
+ },
+ }),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn section_flat() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \section{Foo}
+%SRC
+%SRC \section{Bar}\label{sec:bar}
+%SRC
+%SRC \subsection{Baz}\label{sec:baz}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {1}Foo}{1}\protected@file@percent }
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {2}Bar}{1}\protected@file@percent }
+%SRC \newlabel{sec:bar}{{2}{1}}
+"#,
+ serde_json::json!({}),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn theorem_nested() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC \usepackage{amsthm}
+%SRC \newtheorem{lemma}{Lemma}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \begin{lemma}[Foo]\label{thm:foo}
+%SRC Foo
+%SRC \end{lemma}
+%SRC
+%SRC \begin{lemma}\label{thm:bar}
+%SRC Bar
+%SRC \end{lemma}
+%SRC
+%SRC \begin{lemma}\label{thm:baz}
+%SRC Baz
+%SRC \end{lemma}
+%SRC
+%SRC \begin{lemma}[Qux]
+%SRC Qux
+%SRC \end{lemma}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \newlabel{thm:foo}{{1}{1}}
+%SRC \newlabel{thm:bar}{{2}{1}}
+"#,
+ serde_json::json!({
+ "textDocument": {
+ "documentSymbol": {
+ "hierarchicalDocumentSymbolSupport": true,
+ },
+ },
+ }),
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn theorem_flat() -> Result<()> {
+ assert_symbols!(find_symbols(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC \usepackage{amsthm}
+%SRC \newtheorem{lemma}{Lemma}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \begin{lemma}[Foo]\label{thm:foo}
+%SRC Foo
+%SRC \end{lemma}
+%SRC
+%SRC \begin{lemma}\label{thm:bar}
+%SRC Bar
+%SRC \end{lemma}
+%SRC
+%SRC \begin{lemma}\label{thm:baz}
+%SRC Baz
+%SRC \end{lemma}
+%SRC
+%SRC \begin{lemma}[Qux]
+%SRC Qux
+%SRC \end{lemma}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \newlabel{thm:foo}{{1}{1}}
+%SRC \newlabel{thm:bar}{{2}{1}}
+"#,
+ serde_json::json!({}),
+ )?);
+
+ Ok(())
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/folding_range.rs b/support/texlab/tests/integration/lsp/text_document/folding_range.rs
new file mode 100644
index 0000000000..1d75ba3e0e
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/folding_range.rs
@@ -0,0 +1,97 @@
+use anyhow::Result;
+use assert_unordered::assert_eq_unordered;
+use lsp_types::{
+ request::FoldingRangeRequest, ClientCapabilities, FoldingRange, FoldingRangeKind,
+ FoldingRangeParams, TextDocumentIdentifier,
+};
+
+use crate::lsp::{client::Client, fixture};
+
+fn check(fixture: &str, expected_ranges: Vec<(u32, u32, u32, u32)>) -> Result<()> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let actual_foldings = client
+ .request::<FoldingRangeRequest>(FoldingRangeParams {
+ text_document: TextDocumentIdentifier::new(client.uri(fixture.cursor.unwrap().name)?),
+ work_done_progress_params: Default::default(),
+ partial_result_params: Default::default(),
+ })?
+ .unwrap_or_default();
+
+ client.shutdown()?;
+
+ let expected_foldings = expected_ranges
+ .into_iter()
+ .map(
+ |(start_line, start_character, end_line, end_character)| FoldingRange {
+ start_line,
+ start_character: Some(start_character),
+ end_line,
+ end_character: Some(end_character),
+ kind: Some(FoldingRangeKind::Region),
+ },
+ )
+ .collect();
+
+ assert_eq_unordered!(actual_foldings, expected_foldings);
+ Ok(())
+}
+
+#[test]
+fn latex() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC \begin{document}
+%SRC \section{Foo}
+%SRC foo
+%SRC \subsection{Bar}
+%SRC bar
+%SRC \section{Baz}
+%SRC baz
+%SRC \section{Qux}
+%SRC \end{document}
+%CUR ^
+"#,
+ vec![
+ (0, 0, 8, 14),
+ (1, 4, 4, 7),
+ (3, 4, 4, 7),
+ (5, 4, 6, 7),
+ (7, 4, 7, 17),
+ ],
+ )
+}
+
+#[test]
+fn bibtex() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC some junk
+%SRC here
+%SRC
+%SRC @article{foo,
+%SRC author = {bar},
+%SRC title = {baz}
+%SRC }
+%SRC
+%SRC @string{foo = "bar"}
+%SRC
+%SRC @comment{foo,
+%SRC author = {bar},
+%SRC title = {baz}
+%SRC }
+%SRC
+%SRC @preamble{"foo"}
+%CUR ^
+"#,
+ vec![(3, 0, 6, 1), (8, 0, 8, 20), (15, 0, 15, 16)],
+ )
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/formatting.rs b/support/texlab/tests/integration/lsp/text_document/formatting.rs
new file mode 100644
index 0000000000..a0c02bf4b1
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/formatting.rs
@@ -0,0 +1,148 @@
+use anyhow::Result;
+use insta::assert_snapshot;
+use lsp_types::{
+ request::Formatting, ClientCapabilities, DocumentFormattingParams, FormattingOptions,
+ TextDocumentIdentifier,
+};
+use texlab::{LineIndex, LineIndexExt};
+
+use crate::lsp::{client::Client, fixture};
+
+fn format(fixture: &str) -> Result<String> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ let file = fixture.files.into_iter().next().unwrap();
+ let old_text = file.text.clone();
+ client.open(file.name, file.lang, file.text)?;
+
+ let actual_edits = client
+ .request::<Formatting>(DocumentFormattingParams {
+ text_document: TextDocumentIdentifier::new(client.uri(file.name)?),
+ work_done_progress_params: Default::default(),
+ options: FormattingOptions {
+ insert_spaces: true,
+ tab_size: 4,
+ ..Default::default()
+ },
+ })?
+ .unwrap_or_default();
+
+ client.shutdown()?;
+
+ let line_index = LineIndex::new(&old_text);
+ let mut actual_text = old_text;
+ for edit in actual_edits.into_iter().rev() {
+ let range = line_index.offset_lsp_range(edit.range);
+ actual_text.replace_range::<std::ops::Range<usize>>(range.into(), &edit.new_text);
+ }
+
+ Ok(actual_text)
+}
+
+#[test]
+fn bibtex_internal_wrap_long_lines() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit.
+%SRC Lorem ipsum dolor sit amet,
+%SRC consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}"#,
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn bibtex_internal_multiple_entries() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet,
+%SRC consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}
+%SRC
+%SRC @article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet,
+%SRC consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}""#,
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn bibtex_internal_trailing_comma() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = baz}"#,
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn bibtex_internal_insert_braces() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = baz,"#,
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn bibtex_internal_command() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = "\baz",}"#,
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn bibtex_internal_join_strings() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = "baz" # "qux"}"#,
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn bibtex_internal_parens() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @article(foo,)"#,
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn bibtex_internal_string() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @string{foo="bar"}"#,
+ )?);
+
+ Ok(())
+}
+
+#[test]
+fn bibtex_internal_preamble() -> Result<()> {
+ assert_snapshot!(format(
+ r#"
+%BIB main.bib
+%SRC @preamble{
+%SRC "foo bar baz" }"#,
+ )?);
+
+ Ok(())
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/hover.rs b/support/texlab/tests/integration/lsp/text_document/hover.rs
new file mode 100644
index 0000000000..2a9e8c271f
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/hover.rs
@@ -0,0 +1,302 @@
+use anyhow::Result;
+use lsp_types::{
+ request::HoverRequest, ClientCapabilities, Hover, HoverContents, HoverParams, MarkupContent,
+ MarkupKind,
+};
+use texlab::{component_db::COMPONENT_DATABASE, LANGUAGE_DATA};
+
+use crate::lsp::{client::Client, fixture};
+
+fn check(fixture: &str, contents: Option<HoverContents>) -> Result<()> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let range = fixture
+ .ranges
+ .values()
+ .next()
+ .and_then(|map| map.values().next())
+ .map(|file_range| file_range.range);
+
+ let actual_hover = client.request::<HoverRequest>(HoverParams {
+ text_document_position_params: fixture.cursor.unwrap().into_params(&client)?,
+ work_done_progress_params: Default::default(),
+ })?;
+
+ client.shutdown()?;
+
+ let expected_hover = contents.map(|contents| Hover { range, contents });
+
+ assert_eq!(actual_hover, expected_hover);
+ Ok(())
+}
+
+#[test]
+fn empty_latex_document() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC
+%CUR ^
+"#,
+ None,
+ )
+}
+
+#[test]
+fn empty_bibtex_document() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC
+%CUR ^
+"#,
+ None,
+ )
+}
+
+#[test]
+fn citation_inside_cite() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @article{foo, author = {Foo Bar}, title = {Baz Qux}, year = 1337}
+
+%TEX main.tex
+%SRC \addbibresource{main.bib}
+%SRC \cite{foo}
+%CUR ^
+%1.1 ^^^
+"#,
+ Some(HoverContents::Markup(MarkupContent {
+ kind: MarkupKind::Markdown,
+ value: "F. Bar: \"Baz Qux\". (1337).".to_string(),
+ })),
+ )
+}
+
+#[test]
+fn citation_inside_entry() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @article{foo, author = {Foo Bar}, title = {Baz Qux}, year = 1337}
+%CUR ^
+%1.1 ^^^
+
+%TEX main.tex
+%SRC \addbibresource{main.bib}
+%SRC \cite{foo}
+"#,
+ Some(HoverContents::Markup(MarkupContent {
+ kind: MarkupKind::Markdown,
+ value: "F. Bar: \"Baz Qux\". (1337).".to_string(),
+ })),
+ )
+}
+
+#[test]
+fn component_known_package() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC \usepackage{amsmath}
+%CUR ^
+%1.1 ^^^^^^^
+"#,
+ COMPONENT_DATABASE
+ .documentation("amsmath")
+ .map(HoverContents::Markup),
+ )
+}
+
+#[test]
+fn component_unknown_class() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC \documentclass{abcdefghijklmnop}
+%CUR ^
+"#,
+ None,
+ )
+}
+
+#[test]
+fn entry_type_known_type() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @article{foo,}
+%CUR ^
+%1.1 ^^^^^^^^
+"#,
+ Some(HoverContents::Markup(MarkupContent {
+ kind: MarkupKind::Markdown,
+ value: LANGUAGE_DATA
+ .entry_type_documentation("article")
+ .unwrap()
+ .to_string(),
+ })),
+ )
+}
+
+#[test]
+fn entry_type_unknown_field() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @foo{bar,}
+%CUR ^
+"#,
+ None,
+ )
+}
+
+#[test]
+fn entry_type_key() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @foo{bar,}
+%CUR ^
+"#,
+ None,
+ )
+}
+
+#[test]
+fn field_known() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @article{foo, author = bar}
+%CUR ^
+%1.1 ^^^^^^
+"#,
+ Some(HoverContents::Markup(MarkupContent {
+ kind: MarkupKind::Markdown,
+ value: LANGUAGE_DATA
+ .field_documentation("author")
+ .unwrap()
+ .to_string(),
+ })),
+ )
+}
+
+#[test]
+fn field_unknown() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = baz}
+%CUR ^
+"#,
+ None,
+ )
+}
+
+#[test]
+fn section() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC \section{Foo}
+%SRC \label{sec:foo}
+%CUR ^
+%1.1 ^^^^^^^
+"#,
+ Some(HoverContents::Markup(MarkupContent {
+ kind: MarkupKind::PlainText,
+ value: "Section (Foo)".to_string(),
+ })),
+ )
+}
+
+#[test]
+fn string_inside_reference() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = "Foo"}
+%SRC @string{bar = "Bar"}
+%SRC @article{baz, author = bar}
+%CUR ^
+%1.1 ^^^
+"#,
+ Some(HoverContents::Markup(MarkupContent {
+ kind: MarkupKind::PlainText,
+ value: "Bar".to_string(),
+ })),
+ )
+}
+
+#[test]
+fn string_inside_field() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = "Foo"}
+%SRC @string{bar = "Bar"}
+%SRC @article{baz, author = bar}
+%CUR ^
+"#,
+ None,
+ )
+}
+
+#[test]
+fn label_theorem_child_file() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC \newtheorem{lemma}{Lemma}
+%SRC \include{child}
+%SRC \ref{thm:foo}
+%CUR ^
+%1.1 ^^^^^^^
+
+%TEX child.tex
+%SRC \begin{lemma}\label{thm:foo}
+%SRC 1 + 1 = 2
+%SRC \end{lemma}
+"#,
+ Some(HoverContents::Markup(MarkupContent {
+ kind: MarkupKind::PlainText,
+ value: "Lemma".to_string(),
+ })),
+ )
+}
+
+#[test]
+fn label_theorem_child_file_mumber() -> Result<()> {
+ check(
+ r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC \newtheorem{lemma}{Lemma}
+%SRC \include{child}
+%SRC \ref{thm:foo}
+%CUR ^
+%1.1 ^^^^^^^
+
+%TEX child.tex
+%SRC \begin{lemma}[Foo]\label{thm:foo}
+%SRC 1 + 1 = 2
+%SRC \end{lemma}
+
+%TEX child.aux
+%SRC \newlabel{thm:foo}{{1}{1}{Foo}{lemma.1}{}}
+"#,
+ Some(HoverContents::Markup(MarkupContent {
+ kind: MarkupKind::PlainText,
+ value: "Lemma 1 (Foo)".to_string(),
+ })),
+ )
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/references.rs b/support/texlab/tests/integration/lsp/text_document/references.rs
new file mode 100644
index 0000000000..ff272673dd
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/references.rs
@@ -0,0 +1,275 @@
+use anyhow::Result;
+use assert_unordered::assert_eq_unordered;
+use lsp_types::{
+ request::References, ClientCapabilities, Location, ReferenceContext, ReferenceParams,
+};
+
+use crate::lsp::{client::Client, fixture};
+
+fn check(fixture: &str, context: ReferenceContext) -> Result<()> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let mut expected_locations = Vec::new();
+ for ranges in fixture.ranges.values() {
+ expected_locations.push(Location::new(
+ client.uri(ranges[&1].name)?,
+ ranges[&1].range,
+ ));
+ }
+
+ let actual_locations = client
+ .request::<References>(ReferenceParams {
+ text_document_position: fixture.cursor.unwrap().into_params(&client)?,
+ context,
+ partial_result_params: Default::default(),
+ work_done_progress_params: Default::default(),
+ })?
+ .unwrap_or_default();
+
+ client.shutdown()?;
+
+ assert_eq_unordered!(actual_locations, expected_locations);
+ Ok(())
+}
+
+#[test]
+fn entry_definition() -> Result<()> {
+ check(
+ r#"
+%BIB foo.bib
+%SRC @article{foo,}
+%CUR ^
+
+%TEX bar.tex
+%SRC \cite{foo}
+%1.1 ^^^
+%SRC \addbibresource{foo.bib}
+"#,
+ ReferenceContext {
+ include_declaration: false,
+ },
+ )
+}
+
+#[test]
+fn entry_definition_include_decl() -> Result<()> {
+ check(
+ r#"
+%BIB foo.bib
+%SRC @article{foo,}
+%CUR ^
+%2.1 ^^^
+
+%TEX bar.tex
+%SRC \cite{foo}
+%1.1 ^^^
+%SRC \addbibresource{foo.bib}
+"#,
+ ReferenceContext {
+ include_declaration: true,
+ },
+ )
+}
+
+#[test]
+fn entry_reference() -> Result<()> {
+ check(
+ r#"
+%BIB foo.bib
+%SRC @article{foo,}
+
+%TEX bar.tex
+%SRC \cite{foo}
+%CUR ^
+%1.1 ^^^
+%SRC \addbibresource{foo.bib}
+"#,
+ ReferenceContext {
+ include_declaration: false,
+ },
+ )
+}
+
+#[test]
+fn entry_reference_include_decl() -> Result<()> {
+ check(
+ r#"
+%BIB foo.bib
+%SRC @article{foo,}
+%2.1 ^^^
+
+%TEX bar.tex
+%SRC \cite{foo}
+%CUR ^
+%1.1 ^^^
+%SRC \addbibresource{foo.bib}
+"#,
+ ReferenceContext {
+ include_declaration: true,
+ },
+ )
+}
+
+#[test]
+fn label_definition() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \label{foo}
+%CUR ^
+
+%TEX bar.tex
+%SRC \ref{foo}
+%1.1 ^^^
+%SRC \input{foo.tex}
+"#,
+ ReferenceContext {
+ include_declaration: false,
+ },
+ )
+}
+
+#[test]
+fn label_definition_include_decl() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \label{foo}
+%CUR ^
+%2.1 ^^^
+
+%TEX bar.tex
+%SRC \ref{foo}
+%1.1 ^^^
+%SRC \input{foo.tex}
+"#,
+ ReferenceContext {
+ include_declaration: true,
+ },
+ )
+}
+
+#[test]
+fn label_reference() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \label{foo}
+%SRC \input{bar.tex}
+
+%TEX bar.tex
+%SRC \ref{foo}
+%CUR ^
+%1.1 ^^^
+
+%TEX baz.tex
+%SRC \ref{foo}
+%2.1 ^^^
+%SRC \input{bar.tex}
+"#,
+ ReferenceContext {
+ include_declaration: false,
+ },
+ )
+}
+
+#[test]
+fn label_reference_include_decl() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \label{foo}
+%3.1 ^^^
+%SRC \input{bar.tex}
+
+%TEX bar.tex
+%SRC \ref{foo}
+%CUR ^
+%1.1 ^^^
+
+%TEX baz.tex
+%SRC \ref{foo}
+%2.1 ^^^
+%SRC \input{bar.tex}
+"#,
+ ReferenceContext {
+ include_declaration: true,
+ },
+ )
+}
+
+#[test]
+fn string_reference() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = {Foo}}
+%SRC @string{bar = {Bar}}
+%SRC @article{baz, author = foo}
+%CUR ^
+%1.1 ^^^
+"#,
+ ReferenceContext {
+ include_declaration: false,
+ },
+ )
+}
+
+#[test]
+fn string_reference_include_decl() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = {Foo}}
+%2.1 ^^^
+%SRC @string{bar = {Bar}}
+%SRC @article{baz, author = foo}
+%CUR ^
+%1.1 ^^^
+"#,
+ ReferenceContext {
+ include_declaration: true,
+ },
+ )
+}
+
+#[test]
+fn string_definition() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = {Foo}}
+%CUR ^
+%SRC @string{bar = {Bar}}
+%SRC @article{baz, author = foo}
+%1.1 ^^^
+"#,
+ ReferenceContext {
+ include_declaration: false,
+ },
+ )
+}
+
+#[test]
+fn string_definition_include_decl() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @string{foo = {Foo}}
+%CUR ^
+%2.1 ^^^
+%SRC @string{bar = {Bar}}
+%SRC @article{baz, author = foo}
+%1.1 ^^^
+"#,
+ ReferenceContext {
+ include_declaration: true,
+ },
+ )
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/rename.rs b/support/texlab/tests/integration/lsp/text_document/rename.rs
new file mode 100644
index 0000000000..6b5a7e4978
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/rename.rs
@@ -0,0 +1,111 @@
+use std::collections::HashMap;
+
+use anyhow::Result;
+use lsp_types::{request::Rename, ClientCapabilities, RenameParams, TextEdit, Url, WorkspaceEdit};
+
+use crate::lsp::{client::Client, fixture};
+
+fn check(fixture: &str, new_name: &str) -> Result<()> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let mut expected_changes: HashMap<Url, Vec<TextEdit>> = HashMap::new();
+ for ranges in fixture.ranges.values() {
+ expected_changes
+ .entry(client.uri(ranges[&1].name)?)
+ .or_default()
+ .push(TextEdit::new(ranges[&1].range, new_name.to_string()));
+ }
+
+ let actual_edit = client
+ .request::<Rename>(RenameParams {
+ text_document_position: fixture.cursor.unwrap().into_params(&client)?,
+ new_name: new_name.to_string(),
+ work_done_progress_params: Default::default(),
+ })?
+ .unwrap_or_default();
+
+ client.shutdown()?;
+
+ assert_eq!(actual_edit, WorkspaceEdit::new(expected_changes));
+ Ok(())
+}
+
+#[test]
+fn command() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \baz
+%CUR ^
+%1.1 ^^^
+%SRC \include{bar.tex}
+
+%TEX bar.tex
+%SRC \baz
+%2.1 ^^^
+"#,
+ "qux",
+ )
+}
+
+#[test]
+fn entry() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = baz}
+%CUR ^
+%1.1 ^^^
+
+%TEX main.tex
+%SRC \addbibresource{main.bib}
+%SRC \cite{foo}
+%2.1 ^^^
+"#,
+ "qux",
+ )
+}
+
+#[test]
+fn citation() -> Result<()> {
+ check(
+ r#"
+%BIB main.bib
+%SRC @article{foo, bar = baz}
+%1.1 ^^^
+
+%TEX main.tex
+%SRC \addbibresource{main.bib}
+%SRC \cite{foo}
+%CUR ^
+%2.1 ^^^
+"#,
+ "qux",
+ )
+}
+
+#[test]
+fn label() -> Result<()> {
+ check(
+ r#"
+%TEX foo.tex
+%SRC \label{foo}\include{bar}
+%CUR ^
+%1.1 ^^^
+
+%TEX bar.tex
+%SRC \ref{foo}
+%2.1 ^^^
+
+%TEX baz.tex
+%SRC \ref{foo}
+"#,
+ "bar",
+ )
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_empty.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_empty.snap
new file mode 100644
index 0000000000..33c5b459e1
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_empty.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 89
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n%SRC \\acrshort{}\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "fpsLabel",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "fpsLabel"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_open_brace.snap
new file mode 100644
index 0000000000..41a71b7951
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_open_brace.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 117
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n%SRC \\acrshort{f\n%CUR ^\n%1.1 ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "fpsLabel",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "fpsLabel"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_simple.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_simple.snap
new file mode 100644
index 0000000000..3d31151a72
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__acronym_ref_simple.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 75
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n%SRC \\acrshort{f}\n%CUR ^\n%1.1 ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "fpsLabel",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "fpsLabel"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_empty.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_empty.snap
new file mode 100644
index 0000000000..41c438baf6
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_empty.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 159
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\usepackage{amsfonts}\n%SRC \\mathbb{}\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "A",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "A"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "B",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "B"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "C",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "C"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "D",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "D"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "E",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "E"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_open_brace.snap
new file mode 100644
index 0000000000..7009557720
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_open_brace.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 186
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\usepackage{amsfonts}\n%SRC \\mathbb{\n%CUR ^\n%SRC Test\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "A",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "A"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "B",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "B"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "C",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "C"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "D",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "D"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "E",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "E"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_word.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_word.snap
new file mode 100644
index 0000000000..2ea7a4649d
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__argument_word.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 172
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\usepackage{amsfonts}\n%SRC \\mathbb{A}\n%CUR ^\n%1.1 ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "A",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "A"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__begin_environment_without_snippet_support.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__begin_environment_without_snippet_support.snap
new file mode 100644
index 0000000000..468ea3ea5f
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__begin_environment_without_snippet_support.snap
@@ -0,0 +1,68 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 215
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\beg\n%CUR ^\n%1.1 ^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "begin",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "begin"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "begingroup",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "begingroup"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "AtBeginDocument",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "AtBeginDocument"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "AtBeginDvi",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "AtBeginDvi"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "⋀, built-in",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "bigwedge",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "bigwedge"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation.snap
new file mode 100644
index 0000000000..517df0a0df
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation.snap
@@ -0,0 +1,32 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 228
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\documentclass{article}\n%SRC \\bibliography{main}\n%SRC \\begin{document}\n%SRC \\cite{\n%CUR ^\n%SRC \\end{document}\n\n%BIB main.bib\n%SRC @article{foo:2019,\n%SRC author = {Foo Bar},\n%SRC title = {Baz Qux},\n%SRC year = {2019},\n%SRC }\n%SRC \n%SRC @article{bar:2005,}\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "filterText": "bar:2005 @article bar:2005",
+ "kind": 1,
+ "label": "bar:2005",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "bar:2005"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "filterText": "foo:2019 @article foo:2019 author Foo Bar title Baz Qux year 2019",
+ "kind": 1,
+ "label": "foo:2019",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "foo:2019"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_acronym.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_acronym.snap
new file mode 100644
index 0000000000..a679c4c42b
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_acronym.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 286
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\addbibresource{main.bib}\n%SRC \\DeclareAcronym{foo}{cite={}}\n%CUR ^\n\n%BIB main.bib\n%SRC @article{foo,}\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "filterText": "foo @article foo",
+ "kind": 1,
+ "label": "foo",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "foo"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace.snap
new file mode 100644
index 0000000000..cf2056b7e7
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 253
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\addbibresource{main.bib}\n%SRC \\cite{\n%CUR ^\n\n%BIB main.bib\n%SRC @article{foo,}\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "filterText": "foo @article foo",
+ "kind": 1,
+ "label": "foo",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "foo"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace_multiple.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace_multiple.snap
new file mode 100644
index 0000000000..7619c22002
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__citation_open_brace_multiple.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 269
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\addbibresource{main.bib}\n%SRC \\cite{foo,a\n%CUR ^\n%1.1 ^\n\n%BIB main.bib\n%SRC @article{foo,}\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "filterText": "foo @article foo",
+ "kind": 1,
+ "label": "foo",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "foo"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_open_brace.snap
new file mode 100644
index 0000000000..651c6e4f36
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_open_brace.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 334
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\definecolor{foo}{\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "HTML",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "HTML"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "RGB",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "RGB"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "cmyk",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "cmyk"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "gray",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "gray"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "rgb",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "rgb"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_open_brace.snap
new file mode 100644
index 0000000000..4fb23233c9
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_open_brace.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 358
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\definecolorset{\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "HTML",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "HTML"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "RGB",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "RGB"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "cmyk",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "cmyk"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "gray",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "gray"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "rgb",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "rgb"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_simple.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_simple.snap
new file mode 100644
index 0000000000..4b7f137e4f
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_set_simple.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 346
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\definecolorset{}\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "HTML",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "HTML"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "RGB",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "RGB"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "cmyk",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "cmyk"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "gray",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "gray"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "rgb",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "rgb"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_simple.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_simple.snap
new file mode 100644
index 0000000000..a160c859c3
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_model_definition_simple.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 322
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\definecolor{foo}{}\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "HTML",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "HTML"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "RGB",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "RGB"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "cmyk",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "cmyk"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "gray",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "gray"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "rgb",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "rgb"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_open_brace.snap
new file mode 100644
index 0000000000..df57a6e6ef
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_open_brace.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 395
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\color{\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Apricot",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Apricot"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Aquamarine",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Aquamarine"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Bittersweet",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Bittersweet"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Black",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Black"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Blue",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Blue"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_simple.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_simple.snap
new file mode 100644
index 0000000000..fb4e2bee73
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_simple.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 370
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\color{}\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Apricot",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Apricot"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Aquamarine",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Aquamarine"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Bittersweet",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Bittersweet"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Black",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Black"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Blue",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Blue"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_word.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_word.snap
new file mode 100644
index 0000000000..b730f14a42
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__color_word.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 382
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\color{re}\n%CUR ^\n%1.1 ^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "red",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "red"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "Red",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "Red"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "RedOrange",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "RedOrange"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "RedViolet",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "RedViolet"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "BrickRed",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "BrickRed"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_bibtex.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_bibtex.snap
new file mode 100644
index 0000000000..545a13af3c
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_bibtex.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 446
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @article{b, \n%SRC c = {\\LaT }\n%CUR ^\n%1.1 ^^^\n%SRC }\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "LaTeX",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "LaTeX"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "LaTeXe",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "LaTeXe"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "latexreleaseversion",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "latexreleaseversion"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "LastDeclaredEncoding",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "LastDeclaredEncoding"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "last",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "last"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple.snap
new file mode 100644
index 0000000000..8414866ca1
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple.snap
@@ -0,0 +1,69 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 407
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "!",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "!"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "\"",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "\""
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "#",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "#"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "$, built-in",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "$",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "$"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "%",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "%"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple_package.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple_package.snap
new file mode 100644
index 0000000000..c08f480f7e
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_command_simple_package.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 432
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\usepackage{lipsum}\n%SRC \\lips\n%CUR ^\n%1.1 ^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "lipsum.sty",
+ "kind": 1,
+ "label": "lipsum",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lipsum"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "lipsum.sty",
+ "kind": 1,
+ "label": "lipsumexp",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lipsumexp"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "lipsum.sty",
+ "kind": 1,
+ "label": "LipsumPar",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "LipsumPar"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "lipsum.sty",
+ "kind": 1,
+ "label": "LipsumProtect",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "LipsumProtect"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "lipsum.sty",
+ "kind": 1,
+ "label": "LipsumRestoreAll",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "LipsumRestoreAll"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_class.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_class.snap
new file mode 100644
index 0000000000..ff16b8e7b6
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_class.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 487
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\documentclass{article}\n%SRC \\begin{thein}\n%CUR ^\n%1.1 ^^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "article.cls",
+ "kind": 1,
+ "label": "theindex",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "theindex"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_command_definition.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_command_definition.snap
new file mode 100644
index 0000000000..e07204dd14
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_command_definition.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 501
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\newcommand{\\foo}{\\begin{doc}\n%CUR ^\n%1.1 ^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "document",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "document"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple.snap
new file mode 100644
index 0000000000..6c3be2426e
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 461
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\begin{doc\n%CUR ^\n%1.1 ^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "document",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "document"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple_end.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple_end.snap
new file mode 100644
index 0000000000..af0e4ca762
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__component_environment_simple_end.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 474
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\begin{document}\n%SRC \\end{\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "document",
+ "preselect": true,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "document"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "abstract",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "abstract"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "array",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "array"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "center",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "center"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "csname",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "csname"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_preamble.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_preamble.snap
new file mode 100644
index 0000000000..281254f2b8
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_preamble.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 565
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @preamble{\n%CUR ^\n%1.1 ^^^^^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "preamble",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "preamble"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_string.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_string.snap
new file mode 100644
index 0000000000..706bd78d07
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_after_string.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 578
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @string{\n%CUR ^\n%1.1 ^^^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "string",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "string"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_at_empty.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_at_empty.snap
new file mode 100644
index 0000000000..19d2a451af
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_at_empty.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 514
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "article",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "article"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "artwork",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "artwork"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "audio",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "audio"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "bibnote",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "bibnote"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "book",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "book"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_article.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_article.snap
new file mode 100644
index 0000000000..654258a594
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_article.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 552
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @article\n%CUR ^\n%1.1 ^^^^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "article",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "article"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_preamble.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_preamble.snap
new file mode 100644
index 0000000000..6a4a79f14d
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_preamble.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 526
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @preamble\n%CUR ^\n%1.1 ^^^^^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "preamble",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "preamble"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_string.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_string.snap
new file mode 100644
index 0000000000..b3b6f2928b
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_before_string.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 539
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @string\n%CUR ^\n%1.1 ^^^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "string",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "string"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_complete_entry.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_complete_entry.snap
new file mode 100644
index 0000000000..2a18a34789
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__entry_type_complete_entry.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 591
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @article{foo, author = {foo}}\n%CUR ^\n%1.1 ^^^^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "article",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "article"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_closed.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_closed.snap
new file mode 100644
index 0000000000..10f3b1d89a
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_closed.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 616
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @article{foo,}\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "abstract",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "abstract"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "addendum",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "addendum"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "address",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "address"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "afterword",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "afterword"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "annotation",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "annotation"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_open.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_open.snap
new file mode 100644
index 0000000000..bb8b03efda
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_empty_entry_open.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 604
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @article{foo,\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "abstract",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "abstract"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "addendum",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "addendum"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "address",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "address"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "afterword",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "afterword"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "annotation",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "annotation"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_field_name.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_field_name.snap
new file mode 100644
index 0000000000..32f1df6369
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_field_name.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 628
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @article{foo, a\n%CUR ^\n%1.1 ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "abstract",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "abstract"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "addendum",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "addendum"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "address",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "address"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "afterword",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "afterword"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "annotation",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "annotation"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_closed.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_closed.snap
new file mode 100644
index 0000000000..e1c61bab4c
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_closed.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 654
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @article{foo, author = bar, edit}\n%CUR ^\n%1.1 ^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "edition",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "edition"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "editor",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "editor"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "editora",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "editora"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "editoratype",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "editoratype"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "editorb",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "editorb"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_open.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_open.snap
new file mode 100644
index 0000000000..b86d4e96b0
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__field_entry_two_fields_name_open.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 641
+expression: "complete(r#\"\n%BIB main.bib\n%SRC @article{foo, author = bar, edit\n%CUR ^\n%1.1 ^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "edition",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "edition"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "editor",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "editor"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "editora",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "editora"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "editoratype",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "editoratype"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "editorb",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "editorb"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_open_brace.snap
new file mode 100644
index 0000000000..25c90c0a4e
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_open_brace.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 145
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n%SRC \\gls{f\n%CUR ^\n%1.1 ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "fpsLabel",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "fpsLabel"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_simple.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_simple.snap
new file mode 100644
index 0000000000..a9c8bc5478
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__glossary_ref_simple.snap
@@ -0,0 +1,18 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 131
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}\n%SRC \\gls{f}\n%CUR ^\n%1.1 ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "fpsLabel",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "fpsLabel"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_closed_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_closed_brace.snap
new file mode 100644
index 0000000000..1b15dff00b
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_closed_brace.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 706
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\documentclass{art}\n%CUR ^\n%1.1 ^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "article",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "article"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "articleingud",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "articleingud"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "articoletteracdp",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "articoletteracdp"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "artikel1",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "artikel1"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "artikel2",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "artikel2"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_open_brace.snap
new file mode 100644
index 0000000000..4118d60707
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_class_open_brace.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 693
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\documentclass{art \\foo\n%CUR ^\n%1.1 ^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "article",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "article"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "articleingud",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "articleingud"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "articoletteracdp",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "articoletteracdp"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "artikel1",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "artikel1"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "artikel2",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "artikel2"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_closed_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_closed_brace.snap
new file mode 100644
index 0000000000..141441047f
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_closed_brace.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 680
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\usepackage{lips}\n%CUR ^\n%1.1 ^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lips",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lips"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lipsum",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lipsum"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lisp-simple-alloc",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lisp-simple-alloc"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lisp-string",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lisp-string"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lwarp-lips",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lwarp-lips"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_open_brace.snap
new file mode 100644
index 0000000000..c188633107
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__import_package_open_brace.snap
@@ -0,0 +1,67 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 667
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\usepackage{lips\n%CUR ^\n%1.1 ^^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lips",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lips"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lipsum",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lipsum"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lisp-simple-alloc",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lisp-simple-alloc"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lisp-string",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lisp-string"
+ }
+ },
+ {
+ "data": "[data]",
+ "documentation": "[documentation]",
+ "kind": 1,
+ "label": "lwarp-lips",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lwarp-lips"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__label.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__label.snap
new file mode 100644
index 0000000000..e30dd28ab9
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__label.snap
@@ -0,0 +1,73 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 719
+expression: "complete(r#\"\n%TEX foo.tex\n%SRC \\documentclass{article}\n%SRC \n%SRC \\usepackage{amsmath}\n%SRC \\usepackage{caption}\n%SRC \\usepackage{amsthm}\n%SRC \\newtheorem{lemma}{Lemma}\n%SRC \n%SRC \\begin{document}\n%SRC \n%SRC \\section{Foo}%\n%SRC \\label{sec:foo}\n%SRC \n%SRC \\begin{equation}%\n%SRC \\label{eq:foo}\n%SRC 1 + 1 = 2\n%SRC \\end{equation}\n%SRC \n%SRC \\begin{equation}%\n%SRC \\label{eq:bar}\n%SRC 1 + 1 = 2\n%SRC \\end{equation}\n%SRC \n%SRC \\begin{figure}%\n%SRC \\LaTeX{}\n%SRC \\caption{Baz}%\n%SRC \\label{fig:baz}\n%SRC \\end{figure}\n%SRC \n%SRC \\begin{lemma}%\n%SRC \\label{thm:foo}\n%SRC 1 + 1 = 2\n%SRC \\end{lemma}\n%SRC \n%SRC \\include{bar}\n%SRC \n%SRC \\end{document}\n\n%TEX bar.tex\n%SRC \\section{Bar}%\n%SRC \\label{sec:bar}\n%SRC \n%SRC Lorem ipsum dolor sit amet.\n%SRC \\ref{}\n%CUR ^\n\n%TEX foo.aux\n%SRC \\relax\n%SRC \\@writefile{lof}{\\contentsline {figure}{\\numberline {1}{\\ignorespaces Baz\\relax }}{1}\\protected@file@percent }\n%SRC \\providecommand*\\caption@xref[2]{\\@setref\\relax\\@undefined{#1}}\n%SRC \\newlabel{fig:baz}{{1}{1}}\n%SRC \\@writefile{toc}{\\contentsline {section}{\\numberline {1}Foo}{1}\\protected@file@percent }\n%SRC \\newlabel{sec:foo}{{1}{1}}\n%SRC \\newlabel{eq:foo}{{1}{1}}\n%SRC \\newlabel{eq:bar}{{2}{1}}\n%SRC \\newlabel{thm:foo}{{1}{1}}\n%SRC \\@input{bar.aux}\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "Equation (2)",
+ "filterText": "eq:bar Equation (2)",
+ "kind": 1,
+ "label": "eq:bar",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "eq:bar"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "Equation (1)",
+ "filterText": "eq:foo Equation (1)",
+ "kind": 1,
+ "label": "eq:foo",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "eq:foo"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "Figure 1",
+ "documentation": "[documentation]",
+ "filterText": "fig:baz Figure 1: Baz",
+ "kind": 1,
+ "label": "fig:baz",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "fig:baz"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "Section (Bar)",
+ "filterText": "sec:bar Section (Bar)",
+ "kind": 1,
+ "label": "sec:bar",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "sec:bar"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "Section 1 (Foo)",
+ "filterText": "sec:foo Section 1 (Foo)",
+ "kind": 1,
+ "label": "sec:foo",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "sec:foo"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_begin.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_begin.snap
new file mode 100644
index 0000000000..b6964fe89c
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_begin.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 785
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\newtheorem{lemma}{Lemma}\n%SRC \\begin{lem \n%CUR ^\n%1.1 ^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "user-defined",
+ "kind": 1,
+ "label": "lemma",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lemma"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_end.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_end.snap
new file mode 100644
index 0000000000..60fdc37edb
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__theorem_end.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 799
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\newtheorem{lemma}{Lemma}\n%SRC \\begin{}\n%SRC \\end{lem\n%CUR ^\n%1.1 ^^^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "user-defined",
+ "kind": 1,
+ "label": "lemma",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "lemma"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_closed_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_closed_brace.snap
new file mode 100644
index 0000000000..a1d7354f8f
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_closed_brace.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 826
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\usepgflibrary{}\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "arrows",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "arrows"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "arrows.meta",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "arrows.meta"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "arrows.spaced",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "arrows.spaced"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "curvilinear",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "curvilinear"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "datavisualization.barcharts",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "datavisualization.barcharts"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_open_brace.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_open_brace.snap
new file mode 100644
index 0000000000..3c8a7a4b79
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__tikz_library_open_brace.snap
@@ -0,0 +1,62 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 814
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\usepgflibrary{\n%CUR ^\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "arrows",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "arrows"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "arrows.meta",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "arrows.meta"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "arrows.spaced",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "arrows.spaced"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "curvilinear",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "curvilinear"
+ }
+ },
+ {
+ "data": "[data]",
+ "kind": 1,
+ "label": "datavisualization.barcharts",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "datavisualization.barcharts"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_command.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_command.snap
new file mode 100644
index 0000000000..c5c6b741f3
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_command.snap
@@ -0,0 +1,19 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 838
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\foobar\n%SRC \\fooba\n%CUR ^\n%1.1 ^^^^^\n%SRC \\begin{foo}\n%SRC \\end{foo}\n%SRC \\begin{fo}\n\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "user-defined",
+ "kind": 1,
+ "label": "foobar",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "foobar"
+ }
+ }
+]
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_environment.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_environment.snap
new file mode 100644
index 0000000000..d760617880
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__completion__user_environment.snap
@@ -0,0 +1,31 @@
+---
+source: tests/integration/lsp/text_document/completion.rs
+assertion_line: 856
+expression: "complete(r#\"\n%TEX main.tex\n%SRC \\foobar\n%SRC \\fooba\n%SRC \\begin{foo}\n%SRC \\end{foo}\n%SRC \\begin{fo}\n%CUR ^\n%1.1 ^^\n\"#)?"
+---
+[
+ {
+ "data": "[data]",
+ "detail": "user-defined",
+ "kind": 1,
+ "label": "foo",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "foo"
+ }
+ },
+ {
+ "data": "[data]",
+ "detail": "built-in",
+ "kind": 1,
+ "label": "filecontents",
+ "preselect": false,
+ "sortText": "[sortText]",
+ "textEdit": {
+ "range": "[range]",
+ "newText": "filecontents"
+ }
+ }
+]
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__enumerate_flat.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_flat.snap
index 52fb082eb0..3293d55600 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__enumerate_flat.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_flat.snap
@@ -1,7 +1,7 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 90
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 88
+expression: result.response
---
[
{
@@ -9,7 +9,7 @@ expression: server.find_document_symbols(uri)?
"kind": 10,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 4,
@@ -23,11 +23,11 @@ expression: server.find_document_symbols(uri)?
}
},
{
- "name": "1",
+ "name": "Item",
"kind": 22,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 5,
@@ -45,7 +45,7 @@ expression: server.find_document_symbols(uri)?
"kind": 22,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 6,
@@ -63,7 +63,7 @@ expression: server.find_document_symbols(uri)?
"kind": 22,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 7,
@@ -77,11 +77,11 @@ expression: server.find_document_symbols(uri)?
}
},
{
- "name": "2",
+ "name": "Qux",
"kind": 22,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 8,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__enumerate_nested.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_nested.snap
index 10fc2f79ea..b2753ba69f 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__enumerate_nested.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__enumerate_nested.snap
@@ -1,7 +1,7 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 54
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 53
+expression: result.response
---
[
{
@@ -30,7 +30,7 @@ expression: server.find_document_symbols(uri)?
},
"children": [
{
- "name": "1",
+ "name": "Item",
"detail": "it:foo",
"kind": 22,
"deprecated": false,
@@ -110,7 +110,7 @@ expression: server.find_document_symbols(uri)?
"children": []
},
{
- "name": "2",
+ "name": "Qux",
"detail": "it:qux",
"kind": 22,
"deprecated": false,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__equation_flat.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_flat.snap
index 94a220cb97..b1a4630dab 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__equation_flat.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_flat.snap
@@ -1,15 +1,15 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 170
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 156
+expression: result.response
---
[
{
- "name": "Equation (1)",
+ "name": "Equation",
"kind": 14,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 4,
@@ -27,7 +27,7 @@ expression: server.find_document_symbols(uri)?
"kind": 14,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 8,
@@ -45,7 +45,7 @@ expression: server.find_document_symbols(uri)?
"kind": 14,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 12,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__equation_nested.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_nested.snap
index 477a9cb585..fc707bd031 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__equation_nested.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__equation_nested.snap
@@ -1,11 +1,11 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 130
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 117
+expression: result.response
---
[
{
- "name": "Equation (1)",
+ "name": "Equation",
"detail": "eq:foo",
"kind": 14,
"deprecated": false,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__float_flat.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_flat.snap
index ba3a5babe6..da456f914e 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__float_flat.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_flat.snap
@@ -1,15 +1,15 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 270
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 238
+expression: result.response
---
[
{
- "name": "Figure 1: Foo",
+ "name": "Figure: Foo",
"kind": 6,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 4,
@@ -27,7 +27,7 @@ expression: server.find_document_symbols(uri)?
"kind": 6,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 9,
@@ -45,7 +45,7 @@ expression: server.find_document_symbols(uri)?
"kind": 6,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 14,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__float_nested.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_nested.snap
index 99262cf5c3..4f60c21c92 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__float_nested.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__float_nested.snap
@@ -1,11 +1,11 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 220
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 189
+expression: result.response
---
[
{
- "name": "Figure 1: Foo",
+ "name": "Figure: Foo",
"detail": "fig:foo",
"kind": 6,
"deprecated": false,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__section_flat.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_flat.snap
index 1b8fecce0a..85e72e90e1 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__section_flat.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_flat.snap
@@ -1,7 +1,7 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 342
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 316
+expression: result.response
---
[
{
@@ -9,7 +9,7 @@ expression: server.find_document_symbols(uri)?
"kind": 2,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 4,
@@ -23,11 +23,11 @@ expression: server.find_document_symbols(uri)?
}
},
{
- "name": "2 Bar",
+ "name": "Bar",
"kind": 2,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 6,
@@ -45,7 +45,7 @@ expression: server.find_document_symbols(uri)?
"kind": 2,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 8,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__section_nested.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_nested.snap
index 8443ca4c96..97ae75eac4 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__section_nested.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__section_nested.snap
@@ -1,7 +1,7 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 306
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 281
+expression: result.response
---
[
{
@@ -31,7 +31,7 @@ expression: server.find_document_symbols(uri)?
"children": []
},
{
- "name": "2 Bar",
+ "name": "Bar",
"detail": "sec:bar",
"kind": 2,
"deprecated": false,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__theorem_flat.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_flat.snap
index 46765f2039..9af601da0d 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__theorem_flat.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_flat.snap
@@ -1,15 +1,15 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 436
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 391
+expression: result.response
---
[
{
- "name": "Lemma 1 (Foo)",
+ "name": "Lemma (Foo)",
"kind": 13,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 6,
@@ -23,11 +23,11 @@ expression: server.find_document_symbols(uri)?
}
},
{
- "name": "Lemma 2",
+ "name": "Lemma",
"kind": 13,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 10,
@@ -45,7 +45,7 @@ expression: server.find_document_symbols(uri)?
"kind": 13,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 14,
@@ -63,7 +63,7 @@ expression: server.find_document_symbols(uri)?
"kind": 13,
"deprecated": false,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 18,
diff --git a/support/texlab/tests/it/snapshots/it__document_symbol__theorem_nested.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_nested.snap
index 2748a2ba0b..6a81f96fa6 100644
--- a/support/texlab/tests/it/snapshots/it__document_symbol__theorem_nested.snap
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__document_symbol__theorem_nested.snap
@@ -1,11 +1,11 @@
---
-source: tests/it/document_symbol.rs
-assertion_line: 389
-expression: server.find_document_symbols(uri)?
+source: tests/integration/lsp/text_document/document_symbol.rs
+assertion_line: 345
+expression: result.response
---
[
{
- "name": "Lemma 1 (Foo)",
+ "name": "Lemma (Foo)",
"detail": "thm:foo",
"kind": 13,
"deprecated": false,
@@ -32,7 +32,7 @@ expression: server.find_document_symbols(uri)?
"children": []
},
{
- "name": "Lemma 2",
+ "name": "Lemma",
"detail": "thm:bar",
"kind": 13,
"deprecated": false,
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_command.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_command.snap
new file mode 100644
index 0000000000..1add9efc6a
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_command.snap
@@ -0,0 +1,9 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 96
+expression: "format(r#\"\n%BIB main.bib\n%SRC @article{foo, bar = \"\\baz\",}\"#)?"
+---
+@article{foo,
+ bar = "\baz",
+}
+
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_insert_braces.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_insert_braces.snap
new file mode 100644
index 0000000000..ee9be8c822
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_insert_braces.snap
@@ -0,0 +1,8 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 85
+expression: "format(r#\"\n%BIB main.bib\n%SRC @article{foo, bar = baz,\"#)?"
+---
+@article{foo,
+ bar = baz,
+}
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_join_strings.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_join_strings.snap
new file mode 100644
index 0000000000..8c2a21f579
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_join_strings.snap
@@ -0,0 +1,9 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 107
+expression: "format(r#\"\n%BIB main.bib\n%SRC @article{foo, bar = \"baz\" # \"qux\"}\"#)?"
+---
+@article{foo,
+ bar = "baz" # "qux",
+}
+
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_multiple_entries.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_multiple_entries.snap
new file mode 100644
index 0000000000..cf228db867
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_multiple_entries.snap
@@ -0,0 +1,17 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 59
+expression: "format(r#\"\n%BIB main.bib\n%SRC @article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, \n%SRC consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}\n%SRC \n%SRC @article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit amet, \n%SRC consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}\"\"#)?"
+---
+@article{foo,
+ bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum
+ dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit
+ amet, consectetur adipiscing elit.},
+}
+
+@article{foo,
+ bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum
+ dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit
+ amet, consectetur adipiscing elit.},
+}"
+
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_parens.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_parens.snap
new file mode 100644
index 0000000000..58e98f7ba5
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_parens.snap
@@ -0,0 +1,8 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 118
+expression: "format(r#\"\n%BIB main.bib\n%SRC @article(foo,)\"#)?"
+---
+@article{foo,
+}
+
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_preamble.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_preamble.snap
new file mode 100644
index 0000000000..a82706dbf6
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_preamble.snap
@@ -0,0 +1,7 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 140
+expression: "format(r#\"\n%BIB main.bib\n%SRC @preamble{\n%SRC \"foo bar baz\" }\"#)?"
+---
+@preamble{"foo bar baz"}
+
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_string.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_string.snap
new file mode 100644
index 0000000000..3234fca52c
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_string.snap
@@ -0,0 +1,7 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 129
+expression: "format(r#\"\n%BIB main.bib\n%SRC @string{foo=\"bar\"}\"#)?"
+---
+@string{foo = "bar"}
+
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_trailing_comma.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_trailing_comma.snap
new file mode 100644
index 0000000000..1231f1795f
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_trailing_comma.snap
@@ -0,0 +1,9 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 74
+expression: "format(r#\"\n%BIB main.bib\n%SRC @article{foo, bar = baz}\"#)?"
+---
+@article{foo,
+ bar = baz,
+}
+
diff --git a/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap
new file mode 100644
index 0000000000..fd9355025c
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/text_document/snapshots/integration__lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap
@@ -0,0 +1,11 @@
+---
+source: tests/integration/lsp/text_document/formatting.rs
+assertion_line: 46
+expression: "format(r#\"\n%BIB main.bib\n%SRC @article{foo, bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n%SRC Lorem ipsum dolor sit amet,\n%SRC consectetur adipiscing elit. Lorem ipsum dolor sit amet, consectetur adipiscing elit.},}\"#)?"
+---
+@article{foo,
+ bar = {Lorem ipsum dolor sit amet, consectetur adipiscing elit. Lorem ipsum
+ dolor sit amet, consectetur adipiscing elit. Lorem ipsum dolor sit
+ amet, consectetur adipiscing elit.},
+}
+
diff --git a/support/texlab/tests/integration/lsp/workspace.rs b/support/texlab/tests/integration/lsp/workspace.rs
new file mode 100644
index 0000000000..15e0679dea
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/workspace.rs
@@ -0,0 +1 @@
+mod symbol;
diff --git a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_bibtex.snap b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_bibtex.snap
index a5db160f9a..8b71b0519e 100644
--- a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_bibtex.snap
+++ b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_bibtex.snap
@@ -1,15 +1,14 @@
---
-source: tests/it/workspace_symbol.rs
-assertion_line: 117
-expression: "run(\"bibtex\")?"
+source: tests/integration/lsp/workspace/symbol.rs
+assertion_line: 145
+expression: result.actual_symbols
---
[
{
- "name": "foo",
- "kind": 24,
"deprecated": false,
+ "kind": 24,
"location": {
- "uri": "http://www.example.com/main.bib",
+ "uri": "[tmp]/main.bib",
"range": {
"start": {
"line": 0,
@@ -20,14 +19,14 @@ expression: "run(\"bibtex\")?"
"character": 14
}
}
- }
+ },
+ "name": "foo"
},
{
- "name": "bar",
- "kind": 15,
"deprecated": false,
+ "kind": 15,
"location": {
- "uri": "http://www.example.com/main.bib",
+ "uri": "[tmp]/main.bib",
"range": {
"start": {
"line": 2,
@@ -38,6 +37,7 @@ expression: "run(\"bibtex\")?"
"character": 20
}
}
- }
+ },
+ "name": "bar"
}
]
diff --git a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_figure.snap b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_figure.snap
index aef75c18a1..a2343d994b 100644
--- a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_figure.snap
+++ b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_figure.snap
@@ -1,15 +1,14 @@
---
-source: tests/it/workspace_symbol.rs
-assertion_line: 99
-expression: "run(\"figure\")?"
+source: tests/integration/lsp/workspace/symbol.rs
+assertion_line: 127
+expression: result.actual_symbols
---
[
{
- "name": "Figure 1: Bar",
- "kind": 6,
"deprecated": false,
+ "kind": 6,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 15,
@@ -20,6 +19,7 @@ expression: "run(\"figure\")?"
"character": 12
}
}
- }
+ },
+ "name": "Figure 1: Bar"
}
]
diff --git a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_item.snap b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_item.snap
index 9f43f48dae..37dad570c9 100644
--- a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_item.snap
+++ b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_item.snap
@@ -1,15 +1,14 @@
---
-source: tests/it/workspace_symbol.rs
-assertion_line: 105
-expression: "run(\"item\")?"
+source: tests/integration/lsp/workspace/symbol.rs
+assertion_line: 133
+expression: result.actual_symbols
---
[
{
- "name": "1",
- "kind": 22,
"deprecated": false,
+ "kind": 22,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 24,
@@ -20,14 +19,14 @@ expression: "run(\"item\")?"
"character": 28
}
}
- }
+ },
+ "name": "1"
},
{
- "name": "2",
- "kind": 22,
"deprecated": false,
+ "kind": 22,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 25,
@@ -38,14 +37,14 @@ expression: "run(\"item\")?"
"character": 28
}
}
- }
+ },
+ "name": "2"
},
{
- "name": "3",
- "kind": 22,
"deprecated": false,
+ "kind": 22,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 26,
@@ -56,6 +55,7 @@ expression: "run(\"item\")?"
"character": 28
}
}
- }
+ },
+ "name": "3"
}
]
diff --git a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_math.snap b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_math.snap
index 5e8e3f9f1e..8b98b614a3 100644
--- a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_math.snap
+++ b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_math.snap
@@ -1,15 +1,14 @@
---
-source: tests/it/workspace_symbol.rs
-assertion_line: 111
-expression: "run(\"math\")?"
+source: tests/integration/lsp/workspace/symbol.rs
+assertion_line: 139
+expression: result.actual_symbols
---
[
{
- "name": "Equation (1)",
- "kind": 14,
"deprecated": false,
+ "kind": 14,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 9,
@@ -20,14 +19,14 @@ expression: "run(\"math\")?"
"character": 14
}
}
- }
+ },
+ "name": "Equation (1)"
},
{
- "name": "Lemma 1 (Qux)",
- "kind": 13,
"deprecated": false,
+ "kind": 13,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 33,
@@ -38,6 +37,7 @@ expression: "run(\"math\")?"
"character": 11
}
}
- }
+ },
+ "name": "Lemma 1 (Qux)"
}
]
diff --git a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_section.snap b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_section.snap
index c075a080b5..b4974c9d7f 100644
--- a/support/texlab/tests/it/snapshots/it__workspace_symbol__filter_type_section.snap
+++ b/support/texlab/tests/integration/lsp/workspace/snapshots/integration__lsp__workspace__symbol__filter_type_section.snap
@@ -1,15 +1,14 @@
---
-source: tests/it/workspace_symbol.rs
-assertion_line: 93
-expression: "run(\"section\")?"
+source: tests/integration/lsp/workspace/symbol.rs
+assertion_line: 121
+expression: result.actual_symbols
---
[
{
- "name": "1 Foo",
- "kind": 2,
"deprecated": false,
+ "kind": 2,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 7,
@@ -20,14 +19,14 @@ expression: "run(\"section\")?"
"character": 14
}
}
- }
+ },
+ "name": "1 Foo"
},
{
- "name": "2 Bar",
- "kind": 2,
"deprecated": false,
+ "kind": 2,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 13,
@@ -38,14 +37,14 @@ expression: "run(\"section\")?"
"character": 12
}
}
- }
+ },
+ "name": "2 Bar"
},
{
- "name": "3 Baz",
- "kind": 2,
"deprecated": false,
+ "kind": 2,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 21,
@@ -56,14 +55,14 @@ expression: "run(\"section\")?"
"character": 15
}
}
- }
+ },
+ "name": "3 Baz"
},
{
- "name": "4 Qux",
- "kind": 2,
"deprecated": false,
+ "kind": 2,
"location": {
- "uri": "http://www.example.com/main.tex",
+ "uri": "[tmp]/main.tex",
"range": {
"start": {
"line": 29,
@@ -74,6 +73,7 @@ expression: "run(\"section\")?"
"character": 11
}
}
- }
+ },
+ "name": "4 Qux"
}
]
diff --git a/support/texlab/tests/integration/lsp/workspace/symbol.rs b/support/texlab/tests/integration/lsp/workspace/symbol.rs
new file mode 100644
index 0000000000..0af7534af3
--- /dev/null
+++ b/support/texlab/tests/integration/lsp/workspace/symbol.rs
@@ -0,0 +1,147 @@
+use anyhow::Result;
+use insta::{assert_json_snapshot, internals::Redaction};
+use lsp_types::{
+ request::WorkspaceSymbol, ClientCapabilities, SymbolInformation, Url, WorkspaceSymbolParams,
+};
+
+use crate::lsp::{client::Client, fixture};
+
+struct SymbolResult {
+ actual_symbols: Vec<SymbolInformation>,
+ uri_redaction: Redaction,
+}
+
+fn find_symbols(fixture: &str, query: &str) -> Result<SymbolResult> {
+ let mut client = Client::spawn()?;
+ client.initialize(ClientCapabilities::default(), None)?;
+
+ let fixture = fixture::parse(fixture);
+ for file in fixture.files {
+ client.open(file.name, file.lang, file.text)?;
+ }
+
+ let actual_symbols = client
+ .request::<WorkspaceSymbol>(WorkspaceSymbolParams {
+ query: query.to_string(),
+ work_done_progress_params: Default::default(),
+ partial_result_params: Default::default(),
+ })?
+ .unwrap_or_default();
+
+ let result = client.shutdown()?;
+
+ let uri = Url::from_directory_path(result.directory.path()).unwrap();
+ let uri_redaction = insta::dynamic_redaction(move |content, _path| {
+ content.as_str().unwrap().replace(uri.as_str(), "[tmp]/")
+ });
+
+ Ok(SymbolResult {
+ actual_symbols,
+ uri_redaction,
+ })
+}
+
+macro_rules! assert_symbols {
+ ($result:expr) => {
+ let result = $result;
+ assert_json_snapshot!(result.actual_symbols, {
+ "[].location.uri" => result.uri_redaction,
+ "[]" => insta::sorted_redaction()
+ });
+ };
+}
+
+const FIXTURE: &str = r#"
+%TEX main.tex
+%SRC \documentclass{article}
+%SRC \usepackage{caption}
+%SRC \usepackage{amsmath}
+%SRC \usepackage{amsthm}
+%SRC
+%SRC \begin{document}
+%SRC
+%SRC \section{Foo}\label{sec:foo}
+%SRC
+%SRC \begin{equation}\label{eq:foo}
+%SRC Foo
+%SRC \end{equation}
+%SRC
+%SRC \section{Bar}\label{sec:bar}
+%SRC
+%SRC \begin{figure}
+%SRC Bar
+%SRC \caption{Bar}
+%SRC \label{fig:bar}
+%SRC \end{figure}
+%SRC
+%SRC \section{Baz}\label{sec:baz}
+%SRC
+%SRC \begin{enumerate}
+%SRC \item\label{itm:foo} Foo
+%SRC \item\label{itm:bar} Bar
+%SRC \item\label{itm:baz} Baz
+%SRC \end{enumerate}
+%SRC
+%SRC \section{Qux}\label{sec:qux}
+%SRC
+%SRC \newtheorem{lemma}{Lemma}
+%SRC
+%SRC \begin{lemma}[Qux]\label{thm:qux}
+%SRC Qux
+%SRC \end{lemma}
+%SRC
+%SRC \end{document}
+
+%TEX main.aux
+%SRC \relax
+%SRC \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Bar\relax }}{1}\protected@file@percent }
+%SRC \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
+%SRC \newlabel{fig:bar}{{1}{1}}
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {1}Foo}{1}\protected@file@percent }
+%SRC \newlabel{sec:foo}{{1}{1}}
+%SRC \newlabel{eq:foo}{{1}{1}}
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {2}Bar}{1}\protected@file@percent }
+%SRC \newlabel{sec:bar}{{2}{1}}
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {3}Baz}{1}\protected@file@percent }
+%SRC \newlabel{sec:baz}{{3}{1}}
+%SRC \newlabel{itm:foo}{{1}{1}}
+%SRC \newlabel{itm:bar}{{2}{1}}
+%SRC \newlabel{itm:baz}{{3}{1}}
+%SRC \@writefile{toc}{\contentsline {section}{\numberline {4}Qux}{1}\protected@file@percent }
+%SRC \newlabel{sec:qux}{{4}{1}}
+%SRC \newlabel{thm:qux}{{1}{1}}
+
+%BIB main.bib
+%SRC @article{foo,}
+%SRC
+%SRC @string{bar = "bar"}"#;
+
+#[test]
+fn filter_type_section() -> Result<()> {
+ assert_symbols!(find_symbols(FIXTURE, "section")?);
+ Ok(())
+}
+
+#[test]
+fn filter_type_figure() -> Result<()> {
+ assert_symbols!(find_symbols(FIXTURE, "figure")?);
+ Ok(())
+}
+
+#[test]
+fn filter_type_item() -> Result<()> {
+ assert_symbols!(find_symbols(FIXTURE, "item")?);
+ Ok(())
+}
+
+#[test]
+fn filter_type_math() -> Result<()> {
+ assert_symbols!(find_symbols(FIXTURE, "math")?);
+ Ok(())
+}
+
+#[test]
+fn filter_bibtex() -> Result<()> {
+ assert_symbols!(find_symbols(FIXTURE, "bibtex")?);
+ Ok(())
+}
diff --git a/support/texlab/tests/integration/main.rs b/support/texlab/tests/integration/main.rs
new file mode 100644
index 0000000000..508158af91
--- /dev/null
+++ b/support/texlab/tests/integration/main.rs
@@ -0,0 +1,2 @@
+mod dev;
+mod lsp;
diff --git a/support/texlab/tests/it/common.rs b/support/texlab/tests/it/common.rs
deleted file mode 100644
index 5430bfd2be..0000000000
--- a/support/texlab/tests/it/common.rs
+++ /dev/null
@@ -1,318 +0,0 @@
-use std::{
- fs,
- sync::{
- atomic::{AtomicI32, Ordering},
- Mutex,
- },
- thread::{self, JoinHandle},
-};
-
-use anyhow::Result;
-use lsp_server::{Connection, RequestId};
-use lsp_types::{notification::Notification, request::Request, *};
-use rustc_hash::FxHashMap;
-use tempfile::{tempdir, TempDir};
-use texlab::Server;
-use unindent::unindent;
-
-pub struct ServerTester {
- pub directory: TempDir,
- client: Connection,
- handle: Option<JoinHandle<()>>,
- request_id: AtomicI32,
- pub diagnostics_by_uri: Mutex<FxHashMap<Url, Vec<Diagnostic>>>,
-}
-
-impl ServerTester {
- pub fn launch_new_instance() -> Result<Self> {
- let directory = tempdir()?;
- let (conn, client) = Connection::memory();
- let server = Server::with_connection(conn, directory.path().to_path_buf(), false)?;
- let handle = thread::spawn(move || server.run().unwrap());
- Ok(Self {
- directory,
- client,
- handle: Some(handle),
- request_id: AtomicI32::new(0),
- diagnostics_by_uri: Mutex::default(),
- })
- }
-
- fn wait_for_response(&self, request_id: RequestId) -> Result<lsp_server::Response> {
- loop {
- match self.client.receiver.recv()? {
- lsp_server::Message::Request(request) => {
- match request.method.as_str() {
- request::RegisterCapability::METHOD => {
- self.client
- .sender
- .send(lsp_server::Response::new_ok(request.id, ()).into())?;
- }
- method => {
- panic!("unknown request: {}", method);
- }
- };
- }
- lsp_server::Message::Notification(notification) => {
- match notification.method.as_str() {
- notification::PublishDiagnostics::METHOD => {
- let params = serde_json::from_value::<PublishDiagnosticsParams>(
- notification.params,
- )?;
- let mut diagnostics_by_uri = self.diagnostics_by_uri.lock().unwrap();
- diagnostics_by_uri.insert(params.uri, params.diagnostics);
- }
- method => {
- panic!("unknown notification: {}", method);
- }
- };
- }
- lsp_server::Message::Response(response) => {
- assert_eq!(response.id, request_id);
- return Ok(response);
- }
- }
- }
- }
-
- #[allow(deprecated)]
- pub fn initialize(
- &self,
- client_capabilities: ClientCapabilities,
- client_info: Option<ClientInfo>,
- ) -> anyhow::Result<()> {
- let request_id = RequestId::from(self.request_id.fetch_add(1, Ordering::SeqCst));
- self.client.sender.send(
- lsp_server::Request::new(
- request_id.clone(),
- request::Initialize::METHOD.to_string(),
- InitializeParams {
- process_id: None,
- root_path: None,
- root_uri: None,
- initialization_options: None,
- capabilities: client_capabilities,
- trace: None,
- workspace_folders: None,
- client_info,
- locale: None,
- },
- )
- .into(),
- )?;
- self.wait_for_response(request_id)?;
-
- self.client.sender.send(
- lsp_server::Notification::new(notification::Initialized::METHOD.to_string(), ()).into(),
- )?;
-
- Ok(())
- }
-
- pub fn open(&self, name: &str, text: &str, language_id: &str, store: bool) -> Result<Url> {
- let text = unindent(text).trim().to_string();
- let path = self.directory.path().join(name);
- if store {
- fs::create_dir_all(path.parent().unwrap())?;
- fs::write(&path, &text)?;
- }
-
- let uri = Url::from_file_path(path).unwrap();
- self.client.sender.send(
- lsp_server::Notification::new(
- notification::DidOpenTextDocument::METHOD.to_string(),
- DidOpenTextDocumentParams {
- text_document: TextDocumentItem::new(
- uri.clone(),
- language_id.to_string(),
- 0,
- text,
- ),
- },
- )
- .into(),
- )?;
- Ok(uri)
- }
-
- pub fn open_memory(&self, uri: Url, text: &str, language_id: &str) -> Result<()> {
- let text = unindent(text).trim().to_string();
- let text_document = TextDocumentItem::new(uri, language_id.to_string(), 0, text);
- self.client.sender.send(
- lsp_server::Notification::new(
- notification::DidOpenTextDocument::METHOD.to_string(),
- DidOpenTextDocumentParams { text_document },
- )
- .into(),
- )?;
- Ok(())
- }
-
- // pub fn edit(&self, uri: Url, text: &str) -> Result<()> {
- // let text = unindent(text).trim().to_string();
- // self.client.sender.send(
- // lsp_server::Notification::new(
- // notification::DidChangeTextDocument::METHOD.to_string(),
- // DidChangeTextDocumentParams {
- // text_document: VersionedTextDocumentIdentifier::new(uri, 0),
- // content_changes: vec![TextDocumentContentChangeEvent {
- // text,
- // range: None,
- // range_length: None,
- // }],
- // },
- // )
- // .into(),
- // )?;
- // Ok(())
- // }
-
- pub fn complete(&self, uri: Url, line: u32, character: u32) -> Result<CompletionList> {
- let request_id = RequestId::from(self.request_id.fetch_add(1, Ordering::SeqCst));
-
- self.client.sender.send(
- lsp_server::Request::new(
- request_id.clone(),
- request::Completion::METHOD.to_string(),
- CompletionParams {
- text_document_position: TextDocumentPositionParams::new(
- TextDocumentIdentifier::new(uri),
- Position::new(line, character),
- ),
- work_done_progress_params: WorkDoneProgressParams::default(),
- partial_result_params: PartialResultParams::default(),
- context: None,
- },
- )
- .into(),
- )?;
-
- let response = self.wait_for_response(request_id)?;
- let list = serde_json::from_value(response.result.expect("completion request failed"))?;
- Ok(list)
- }
-
- pub fn resolve_completion_item(&self, item: CompletionItem) -> Result<CompletionItem> {
- let request_id = RequestId::from(self.request_id.fetch_add(1, Ordering::SeqCst));
-
- self.client.sender.send(
- lsp_server::Request::new(
- request_id.clone(),
- request::ResolveCompletionItem::METHOD.to_string(),
- item,
- )
- .into(),
- )?;
-
- let response = self.wait_for_response(request_id)?;
- let result = serde_json::from_value(
- response
- .result
- .expect("resolve completion item request failed"),
- )?;
- Ok(result)
- }
-
- pub fn hover(&self, uri: Url, line: u32, character: u32) -> Result<Option<Hover>> {
- let request_id = RequestId::from(self.request_id.fetch_add(1, Ordering::SeqCst));
-
- self.client.sender.send(
- lsp_server::Request::new(
- request_id.clone(),
- request::HoverRequest::METHOD.to_string(),
- HoverParams {
- text_document_position_params: TextDocumentPositionParams::new(
- TextDocumentIdentifier::new(uri),
- Position::new(line, character),
- ),
- work_done_progress_params: WorkDoneProgressParams::default(),
- },
- )
- .into(),
- )?;
-
- let response = self.wait_for_response(request_id)?;
- let hover = serde_json::from_value(response.result.expect("hover request failed"))?;
- Ok(hover)
- }
-
- pub fn find_document_symbols(&self, uri: Url) -> Result<DocumentSymbolResponse> {
- let request_id = RequestId::from(self.request_id.fetch_add(1, Ordering::SeqCst));
-
- self.client.sender.send(
- lsp_server::Request::new(
- request_id.clone(),
- request::DocumentSymbolRequest::METHOD.to_string(),
- DocumentSymbolParams {
- text_document: TextDocumentIdentifier::new(uri),
- work_done_progress_params: WorkDoneProgressParams::default(),
- partial_result_params: PartialResultParams::default(),
- },
- )
- .into(),
- )?;
-
- let response = self.wait_for_response(request_id)?;
- let symbols =
- serde_json::from_value(response.result.expect("document symbol request failed"))?;
- Ok(symbols)
- }
-
- pub fn find_workspace_symbols(&self, query: &str) -> Result<Vec<SymbolInformation>> {
- let request_id = RequestId::from(self.request_id.fetch_add(1, Ordering::SeqCst));
-
- self.client.sender.send(
- lsp_server::Request::new(
- request_id.clone(),
- request::WorkspaceSymbol::METHOD.to_string(),
- WorkspaceSymbolParams {
- partial_result_params: PartialResultParams::default(),
- work_done_progress_params: WorkDoneProgressParams::default(),
- query: query.to_string(),
- },
- )
- .into(),
- )?;
-
- let response = self.wait_for_response(request_id)?;
- let symbols =
- serde_json::from_value(response.result.expect("workspace symbol request failed"))?;
- Ok(symbols)
- }
-
- // pub fn change_configuration(&self, options: Options) -> Result<()> {
- // self.client.sender.send(
- // lsp_server::Notification::new(
- // notification::DidChangeConfiguration::METHOD.to_string(),
- // DidChangeConfigurationParams {
- // settings: serde_json::to_value(options)?,
- // },
- // )
- // .into(),
- // )?;
- // Ok(())
- // }
-}
-
-impl Drop for ServerTester {
- fn drop(&mut self) {
- self.client
- .sender
- .send(
- lsp_server::Request::new(
- RequestId::from(self.request_id.fetch_add(1, Ordering::SeqCst)),
- request::Shutdown::METHOD.to_string(),
- (),
- )
- .into(),
- )
- .unwrap();
-
- self.client
- .sender
- .send(lsp_server::Notification::new(notification::Exit::METHOD.to_string(), ()).into())
- .unwrap();
-
- self.handle.take().unwrap().join().unwrap();
- }
-}
diff --git a/support/texlab/tests/it/completion.rs b/support/texlab/tests/it/completion.rs
deleted file mode 100644
index 58ad1970ba..0000000000
--- a/support/texlab/tests/it/completion.rs
+++ /dev/null
@@ -1,817 +0,0 @@
-use anyhow::Result;
-use lsp_types::{CompletionList, Url};
-
-use crate::common::ServerTester;
-
-fn complete_and_resolve(
- server: &ServerTester,
- uri: Url,
- line: u32,
- character: u32,
-) -> Result<CompletionList> {
- let mut list = server.complete(uri, line, character)?;
- let mut new_items = Vec::new();
- for item in list.items.into_iter().take(7) {
- let mut new_item = server.resolve_completion_item(item)?;
- new_item.data = None;
- new_items.push(new_item);
- }
- list.items = new_items;
- Ok(list)
-}
-
-mod bibtex {
- use insta::assert_json_snapshot;
- use lsp_types::ClientCapabilities;
-
- use super::*;
-
- #[test]
- fn test_empty_document() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open("main.bib", "", "bibtex", false)?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 0)?);
- Ok(())
- }
-
- #[test]
- fn test_junk() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open("main.bib", "foo", "bibtex", false)?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 0)?);
- Ok(())
- }
-
- #[test]
- fn test_command_incomplete_entry() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.bib",
- r#"
- @article{foo,
- author = {\LaT
- }
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 18)?);
- Ok(())
- }
-
- #[test]
- fn test_command_complete_entry() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.bib",
- r#"
- @article{foo,
- author = {\LaT}
- }
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 18)?);
- Ok(())
- }
-
- #[test]
- fn test_entry_type_empty_name() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.bib",
- r#"
- @
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 1)?);
- Ok(())
- }
-
- #[test]
- fn test_entry_type_empty_name_before() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.bib",
- r#"
- @
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 0)?);
- Ok(())
- }
-
- #[test]
- fn test_entry_type_incomplete() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.bib",
- r#"
- @art
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 1)?);
- Ok(())
- }
-
- #[test]
- fn test_entry_type_complete() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.bib",
- r#"
- @article
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 1)?);
- Ok(())
- }
-
- #[test]
- fn test_field_incomplete_entry() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.bib",
- r#"
- @article{foo,
- titl
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 6)?);
- Ok(())
- }
-
- #[test]
- fn test_field_complete_entry() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.bib",
- r#"
- @article{foo,
- title = {}
- }
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 6)?);
- Ok(())
- }
-}
-
-mod latex {
- use insta::assert_json_snapshot;
- use lsp_types::ClientCapabilities;
-
- use super::*;
-
- #[test]
- fn test_empty_document() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open("main.tex", "", "latex", false)?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 0)?);
- Ok(())
- }
-
- #[test]
- fn test_begin_command() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open("main.tex", r#"\b"#, "latex", false)?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 2)?);
- Ok(())
- }
-
- #[test]
- fn test_citation() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let tex_uri = server.open(
- "main.tex",
- r#"
- \documentclass{article}
- \bibliography{main}
- \begin{document}
- \cite{
- \end{document}
- "#,
- "latex",
- false,
- )?;
- server.open(
- "main.bib",
- r#"
- @article{foo:2019,
- author = {Foo Bar},
- title = {Baz Qux},
- year = {2019},
- }
-
- @article{bar:2005,}
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, tex_uri, 3, 6)?);
- Ok(())
- }
-
- #[test]
- fn test_citation_multi_word() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let tex_uri = server.open(
- "main.tex",
- r#"
- \documentclass{article}
- \bibliography{main}
- \begin{document}
- \cite{foo 2
- \end{document}
- "#,
- "latex",
- false,
- )?;
- server.open(
- "main.bib",
- r#"
- @article{foo,
- author = {Foo Bar},
- title = {Baz Qux},
- year = {2019},
- }
-
- @article{bar:2005,}
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, tex_uri, 3, 7)?);
- Ok(())
- }
-
- #[test]
- fn test_citation_after() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let tex_uri = server.open(
- "main.tex",
- r#"
- \documentclass{article}
- \bibliography{main}
- \begin{document}
- \cite{}
- \end{document}
- "#,
- "latex",
- false,
- )?;
- server.open(
- "main.bib",
- r#"
- @article{foo:2019,
- author = {Foo Bar},
- title = {Baz Qux},
- year = {2019},
- }
-
- @article{bar:2005,}
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, tex_uri, 3, 7)?);
- Ok(())
- }
-
- #[test]
- fn test_citation_open_brace() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let tex_uri = server.open(
- "main.tex",
- r#"
- \documentclass{article}
- \bibliography{main}
- \begin{document}
- \cite{Foo
- \end{document}
- "#,
- "latex",
- false,
- )?;
- server.open(
- "main.bib",
- r#"
- @article{FooBar,
- author = {Foo Bar},
- title = {Baz Qux},
- year = {2019},
- }
- "#,
- "bibtex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, tex_uri, 3, 9)?);
- Ok(())
- }
-
- #[test]
- fn test_color_name() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \color{re}
- \definecolor{foo}{
- \definecolorset{R}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 9)?);
- Ok(())
- }
-
- #[test]
- fn test_color_model_define_color() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \color{re}
- \definecolor{foo}{
- \definecolorset{R}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 18)?);
- Ok(())
- }
-
- #[test]
- fn test_color_model_define_color_set() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \color{re}
- \definecolor{foo}{
- \definecolorset{R}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 2, 17)?);
- Ok(())
- }
-
- #[test]
- fn test_kernel_command() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- \chap
- \varDel
- \begin{theind}
- \end{alig}
- \begin{doc}
- \vareps
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 2)?);
- Ok(())
- }
-
- #[test]
- fn test_kernel_command_glyph() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- \chap
- \varDel
- \begin{theind}
- \end{alig}
- \begin{doc}
- \vareps
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 7, 7)?);
- Ok(())
- }
-
- #[test]
- fn test_kernel_command_environment() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- \chap
- \varDel
- \begin{theind}
- \end{alig}
- \begin{doc}
- \vareps
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 6, 10)?);
- Ok(())
- }
-
- #[test]
- fn test_class_command() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- \chap
- \varDel
- \begin{theind}
- \end{alig}
- \begin{doc}
- \vareps
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 2, 5)?);
- Ok(())
- }
-
- #[test]
- fn test_class_environment() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- \chap
- \varDel
- \begin{theind}
- \end{alig}
- \begin{doc}
- \vareps
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 4, 13)?);
- Ok(())
- }
-
- #[test]
- fn test_package_command() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- \chap
- \varDel
- \begin{theind}
- \end{alig}
- \begin{doc}
- \vareps
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 3, 7)?);
- Ok(())
- }
-
- #[test]
- fn test_package_environment() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- \chap
- \varDel
- \begin{theind}
- \end{alig}
- \begin{doc}
- \vareps
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 5, 6)?);
- Ok(())
- }
-
- #[test]
- fn test_class_import() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 19)?);
- Ok(())
- }
-
- #[test]
- fn test_package_import() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{book}
- \usepackage{amsmath}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 15)?);
- Ok(())
- }
-
- #[test]
- fn test_label() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
-
- server.open(
- "foo.tex",
- r#"
- \documentclass{article}
-
- \usepackage{amsmath}
- \usepackage{caption}
- \usepackage{amsthm}
- \newtheorem{lemma}{Lemma}
-
- \begin{document}
-
- \section{Foo}%
- \label{sec:foo}
-
- \begin{equation}%
- \label{eq:foo}
- 1 + 1 = 2
- \end{equation}
-
- \begin{equation}%
- \label{eq:bar}
- 1 + 1 = 2
- \end{equation}
-
- \begin{figure}%
- \LaTeX{}
- \caption{Baz}%
- \label{fig:baz}
- \end{figure}
-
- \begin{lemma}%
- \label{thm:foo}
- 1 + 1 = 2
- \end{lemma}
-
- \include{bar}
-
- \end{document}
- "#,
- "latex",
- true,
- )?;
- server.open(
- "foo.aux",
- r#"
- \relax
- \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Baz\relax }}{1}\protected@file@percent }
- \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
- \newlabel{fig:baz}{{1}{1}}
- \@writefile{toc}{\contentsline {section}{\numberline {1}Foo}{1}\protected@file@percent }
- \newlabel{sec:foo}{{1}{1}}
- \newlabel{eq:foo}{{1}{1}}
- \newlabel{eq:bar}{{2}{1}}
- \newlabel{thm:foo}{{1}{1}}
- \@input{bar.aux}
- "#,
- "latex",
- true,
- )?;
- let uri = server.open(
- "bar.tex",
- r#"
- \section{Bar}%
- \label{sec:bar}
-
- Lorem ipsum dolor sit amet.
- \ref{}
- \eqref{}
- "#,
- "latex",
- true,
- )?;
- server.open(
- "bar.aux",
- r#"
- \relax
- \@writefile{toc}{\contentsline {section}{\numberline {2}Bar}{2}\protected@file@percent }
- \newlabel{sec:bar}{{2}{2}}
- \@setckpt{bar}{
- \setcounter{page}{3}
- \setcounter{equation}{2}
- \setcounter{enumi}{0}
- \setcounter{enumii}{0}
- \setcounter{enumiii}{0}
- \setcounter{enumiv}{0}
- \setcounter{footnote}{0}
- \setcounter{mpfootnote}{0}
- \setcounter{part}{0}
- \setcounter{section}{2}
- \setcounter{subsection}{0}
- \setcounter{subsubsection}{0}
- \setcounter{paragraph}{0}
- \setcounter{subparagraph}{0}
- \setcounter{figure}{1}
- \setcounter{table}{0}
- \setcounter{parentequation}{0}
- \setcounter{caption@flags}{0}
- \setcounter{ContinuedFloat}{0}
- \setcounter{lemma}{1}
- "#,
- "latex",
- true,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 4, 5)?);
- Ok(())
- }
-
- #[test]
- fn test_preselect_environment() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \begin{document}
- \end{
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 5)?);
- Ok(())
- }
-
- #[test]
- fn test_theorem_environment() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{article}
- \usepackage{amsthm}
- \newtheorem{foo}{Foo}
- \begin{f}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 3, 8)?);
- Ok(())
- }
-
- #[test]
- fn test_pgf_library() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \usepackage{tikz}
- \usepgflibrary{}
- \usetikzlibrary{}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 15)?);
- Ok(())
- }
-
- #[test]
- fn test_user_command() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \foobar
- \fooba
- \begin{foo}
- \end{foo}
- \begin{fo}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 1, 3)?);
- Ok(())
- }
-
- #[test]
- fn test_user_environment() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \foobar
- \fooba
- \begin{foo}
- \end{foo}
- \begin{fo}
- "#,
- "latex",
- false,
- )?;
- assert_json_snapshot!(complete_and_resolve(&server, uri, 4, 8)?);
- Ok(())
- }
-
- #[test]
- fn test_multi_line_key() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \begin{verb
- Velit tri-tip fig1n shoulder buffalo pariatur porkchop magna chuck sausage,
- sed hamburger fatback ribeye biltong id lorem culpa cow, frankfurter
- deserunt shortloin pancetta dolor et veniam aliqua andouille, pork fugiat eu
- pig landjaeger proident aliquip voluptate.
- "#,
- "latex",
- false,
- )?;
-
- assert_json_snapshot!(complete_and_resolve(&server, uri, 0, 11)?);
- Ok(())
- }
-}
diff --git a/support/texlab/tests/it/document_symbol.rs b/support/texlab/tests/it/document_symbol.rs
deleted file mode 100644
index dbdbe64972..0000000000
--- a/support/texlab/tests/it/document_symbol.rs
+++ /dev/null
@@ -1,438 +0,0 @@
-use anyhow::Result;
-use insta::assert_json_snapshot;
-use lsp_types::{
- ClientCapabilities, DocumentSymbolClientCapabilities, TextDocumentClientCapabilities, Url,
-};
-
-use crate::common::ServerTester;
-
-fn nested_symbol_capabilities() -> ClientCapabilities {
- ClientCapabilities {
- text_document: Some(TextDocumentClientCapabilities {
- document_symbol: Some(DocumentSymbolClientCapabilities {
- hierarchical_document_symbol_support: Some(true),
- ..DocumentSymbolClientCapabilities::default()
- }),
- ..TextDocumentClientCapabilities::default()
- }),
- ..ClientCapabilities::default()
- }
-}
-
-#[test]
-fn test_enumerate_nested() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(nested_symbol_capabilities(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
-
- \begin{document}
-
- \begin{enumerate}
- \item\label{it:foo} Foo
- \item\label{it:bar} Bar
- \item[Baz] Baz
- \item[Qux]\label{it:qux} Qux
- \end{enumerate}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \newlabel{it:foo}{{1}{1}}
- \newlabel{it:qux}{{2}{1}}
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_enumerate_flat() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
-
- \begin{document}
-
- \begin{enumerate}
- \item\label{it:foo} Foo
- \item\label{it:bar} Bar
- \item[Baz] Baz
- \item[Qux]\label{it:qux} Qux
- \end{enumerate}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \newlabel{it:foo}{{1}{1}}
- \newlabel{it:qux}{{2}{1}}
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_equation_nested() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(nested_symbol_capabilities(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
-
- \begin{document}
-
- \begin{equation}\label{eq:foo}
- Foo
- \end{equation}
-
- \begin{equation}\label{eq:bar}
- Bar
- \end{equation}
-
- \begin{equation}
- Baz
- \end{equation}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \newlabel{eq:foo}{{1}{1}}
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_equation_flat() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
-
- \begin{document}
-
- \begin{equation}\label{eq:foo}
- Foo
- \end{equation}
-
- \begin{equation}\label{eq:bar}
- Bar
- \end{equation}
-
- \begin{equation}
- Baz
- \end{equation}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \newlabel{eq:foo}{{1}{1}}
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_float_nested() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(nested_symbol_capabilities(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
-
- \begin{document}
-
- \begin{figure}
- Foo
- \caption{Foo}\label{fig:foo}
- \end{figure}
-
- \begin{figure}
- Bar
- \caption{Bar}\label{fig:bar}
- \end{figure}
-
- \begin{figure}
- Baz
- \caption{Baz}
- \end{figure}
-
- \begin{figure}
- Qux
- \end{figure}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Foo}}{1}\protected@file@percent }
- \newlabel{fig:foo}{{1}{1}}
- \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Bar}}{1}\protected@file@percent }
- \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Baz}}{1}\protected@file@percent }
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_float_flat() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
-
- \begin{document}
-
- \begin{figure}
- Foo
- \caption{Foo}\label{fig:foo}
- \end{figure}
-
- \begin{figure}
- Bar
- \caption{Bar}\label{fig:bar}
- \end{figure}
-
- \begin{figure}
- Baz
- \caption{Baz}
- \end{figure}
-
- \begin{figure}
- Qux
- \end{figure}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Foo}}{1}\protected@file@percent }
- \newlabel{fig:foo}{{1}{1}}
- \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Bar}}{1}\protected@file@percent }
- \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Baz}}{1}\protected@file@percent }
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_section_nested() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(nested_symbol_capabilities(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
-
- \begin{document}
-
- \section{Foo}
-
- \section{Bar}\label{sec:bar}
-
- \subsection{Baz}\label{sec:baz}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \@writefile{toc}{\contentsline {section}{\numberline {1}Foo}{1}\protected@file@percent }
- \@writefile{toc}{\contentsline {section}{\numberline {2}Bar}{1}\protected@file@percent }
- \newlabel{sec:bar}{{2}{1}}
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_section_flat() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
-
- \begin{document}
-
- \section{Foo}
-
- \section{Bar}\label{sec:bar}
-
- \subsection{Baz}\label{sec:baz}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \@writefile{toc}{\contentsline {section}{\numberline {1}Foo}{1}\protected@file@percent }
- \@writefile{toc}{\contentsline {section}{\numberline {2}Bar}{1}\protected@file@percent }
- \newlabel{sec:bar}{{2}{1}}
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_theorem_nested() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(nested_symbol_capabilities(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
- \usepackage{amsthm}
- \newtheorem{lemma}{Lemma}
-
- \begin{document}
-
- \begin{lemma}[Foo]\label{thm:foo}
- Foo
- \end{lemma}
-
- \begin{lemma}\label{thm:bar}
- Bar
- \end{lemma}
-
- \begin{lemma}\label{thm:baz}
- Baz
- \end{lemma}
-
- \begin{lemma}[Qux]
- Qux
- \end{lemma}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \newlabel{thm:foo}{{1}{1}}
- \newlabel{thm:bar}{{2}{1}}
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
-
-#[test]
-fn test_theorem_flat() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri.clone(),
- r#"
- \documentclass{article}
- \usepackage{amsthm}
- \newtheorem{lemma}{Lemma}
-
- \begin{document}
-
- \begin{lemma}[Foo]\label{thm:foo}
- Foo
- \end{lemma}
-
- \begin{lemma}\label{thm:bar}
- Bar
- \end{lemma}
-
- \begin{lemma}\label{thm:baz}
- Baz
- \end{lemma}
-
- \begin{lemma}[Qux]
- Qux
- \end{lemma}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \newlabel{thm:foo}{{1}{1}}
- \newlabel{thm:bar}{{2}{1}}
- "#,
- "latex",
- )?;
- assert_json_snapshot!(server.find_document_symbols(uri)?);
- Ok(())
-}
diff --git a/support/texlab/tests/it/hover.rs b/support/texlab/tests/it/hover.rs
deleted file mode 100644
index 70b14cccd0..0000000000
--- a/support/texlab/tests/it/hover.rs
+++ /dev/null
@@ -1,89 +0,0 @@
-use anyhow::Result;
-use insta::assert_json_snapshot;
-use lsp_types::ClientCapabilities;
-
-use crate::common::ServerTester;
-
-#[test]
-fn test_empty_bibtex_document() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open("main.bib", "", "bibtex", false)?;
- assert_json_snapshot!(server.hover(uri, 0, 0)?);
- Ok(())
-}
-
-#[test]
-fn test_empty_labtex_document() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open("main.tex", "", "latex", false)?;
- assert_json_snapshot!(server.hover(uri, 0, 0)?);
- Ok(())
-}
-
-#[test]
-fn test_label_theorem_child_file() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{article}
- \newtheorem{lemma}{Lemma}
- \include{child}
- \ref{thm:foo}
- "#,
- "latex",
- false,
- )?;
- server.open(
- "child.tex",
- r#"
- \begin{lemma}\label{thm:foo}
- 1 + 1 = 2
- \end{lemma}
- "#,
- "latex",
- false,
- )?;
-
- assert_json_snapshot!(server.hover(uri, 3, 8)?);
- Ok(())
-}
-
-#[test]
-fn test_label_theorem_child_file_mumber() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = server.open(
- "main.tex",
- r#"
- \documentclass{article}
- \newtheorem{lemma}{Lemma}
- \include{child}
- \ref{thm:foo}
- "#,
- "latex",
- false,
- )?;
- server.open(
- "child.tex",
- r#"
- \begin{lemma}[Foo]\label{thm:foo}
- 1 + 1 = 2
- \end{lemma}
- "#,
- "latex",
- false,
- )?;
- server.open(
- "child.aux",
- r#"\newlabel{thm:foo}{{1}{1}{Foo}{lemma.1}{}}"#,
- "latex",
- false,
- )?;
-
- assert_json_snapshot!(server.hover(uri, 3, 8)?);
- Ok(())
-}
diff --git a/support/texlab/tests/it/issues.rs b/support/texlab/tests/it/issues.rs
deleted file mode 100644
index 1fb66dc4a9..0000000000
--- a/support/texlab/tests/it/issues.rs
+++ /dev/null
@@ -1,81 +0,0 @@
-use std::{fs, thread, time::Duration};
-
-use anyhow::Result;
-use lsp_types::ClientCapabilities;
-
-use crate::common::ServerTester;
-
-#[test]
-#[cfg(feature = "completion")]
-fn test_408_parent_expansion() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let root = server.directory.path();
-
- let level1 = root.join("level1");
- let level2 = level1.join("level2");
- let level3 = level2.join("level3");
- fs::create_dir_all(&level3)?;
- fs::write(level3.join("d.tex"), "d")?;
- fs::write(
- level2.join("c.tex"),
- r#"\documentclass{subfiles}\begin{document}\include{level3/d}\end{document}"#,
- )?;
- fs::write(
- level1.join("b.tex"),
- r#"\documentclass{article}\begin{document}\include{level2/c}\end{document}"#,
- )?;
- fs::write(root.join("a.tex"), "}")?;
-
- thread::sleep(Duration::from_millis(300));
-
- let uri = server.open("level1/level2/level3/d.tex", "d", "latex", false)?;
- server.complete(uri, 0, 0)?;
-
- let diagnostics_by_uri = server.diagnostics_by_uri.lock().unwrap();
- assert!(diagnostics_by_uri
- .iter()
- .all(|(uri, _)| !uri.as_str().ends_with("a.tex")));
-
- Ok(())
-}
-
-#[test]
-#[cfg(feature = "completion")]
-fn test_510_completion_with_unmatched_braces() -> Result<()> {
- use insta::assert_debug_snapshot;
-
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
-
- let uri = server.open(
- "main.tex",
- "\\label{eq:foo}\n\\ref{eq is a \\emph{useful} identity.",
- "latex",
- false,
- )?;
-
- assert_debug_snapshot!(server.complete(uri, 1, 7)?);
-
- Ok(())
-}
-
-#[test]
-#[cfg(feature = "completion")]
-fn test_540_subimport_link() -> Result<()> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
-
- server.open("stuff.tex", "\\usepackage{lipsum}", "latex", false)?;
- let uri = server.open("main.tex", "\\subimport{}{stuff}\n\\lipsu", "latex", false)?;
-
- let success = server
- .complete(uri, 1, 4)?
- .items
- .into_iter()
- .any(|item| item.label == "lipsum");
-
- assert!(success);
-
- Ok(())
-}
diff --git a/support/texlab/tests/it/main.rs b/support/texlab/tests/it/main.rs
deleted file mode 100644
index ebccca7396..0000000000
--- a/support/texlab/tests/it/main.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-mod common;
-#[cfg(feature = "completion")]
-mod completion;
-mod document_symbol;
-mod hover;
-mod issues;
-mod workspace_symbol;
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__command_complete_entry.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__command_complete_entry.snap
deleted file mode 100644
index 8f3aa3a4b2..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__command_complete_entry.snap
+++ /dev/null
@@ -1,150 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 79
-expression: "complete_and_resolve(&server, uri, 1, 18)?"
----
-{
- "isIncomplete": true,
- "items": [
- {
- "label": "LaTeX",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "LaTeX"
- }
- },
- {
- "label": "LaTeXe",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "LaTeXe"
- }
- },
- {
- "label": "latexreleaseversion",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "latexreleaseversion"
- }
- },
- {
- "label": "LastDeclaredEncoding",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "LastDeclaredEncoding"
- }
- },
- {
- "label": "last",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "last"
- }
- },
- {
- "label": "lastbox",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "lastbox"
- }
- },
- {
- "label": "lastkern",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "lastkern"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__command_incomplete_entry.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__command_incomplete_entry.snap
deleted file mode 100644
index 272e527920..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__command_incomplete_entry.snap
+++ /dev/null
@@ -1,150 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 61
-expression: "complete_and_resolve(&server, uri, 1, 18)?"
----
-{
- "isIncomplete": true,
- "items": [
- {
- "label": "LaTeX",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "LaTeX"
- }
- },
- {
- "label": "LaTeXe",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "LaTeXe"
- }
- },
- {
- "label": "latexreleaseversion",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "latexreleaseversion"
- }
- },
- {
- "label": "LastDeclaredEncoding",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "LastDeclaredEncoding"
- }
- },
- {
- "label": "last",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "last"
- }
- },
- {
- "label": "lastbox",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "lastbox"
- }
- },
- {
- "label": "lastkern",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "lastkern"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__empty_document.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__empty_document.snap
deleted file mode 100644
index 339ed48749..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__empty_document.snap
+++ /dev/null
@@ -1,9 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 34
-expression: "complete_and_resolve(&server, uri, 0, 0)?"
----
-{
- "isIncomplete": false,
- "items": []
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_complete.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_complete.snap
deleted file mode 100644
index 2bc50f8505..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_complete.snap
+++ /dev/null
@@ -1,33 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 143
-expression: "complete_and_resolve(&server, uri, 0, 1)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "article",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An article in a journal, magazine, newspaper, or other periodical which forms a \n self-contained unit with its own title. The title of the periodical is given in the \n journaltitle field. If the issue has its own title in addition to the main title of \n the periodical, it goes in the issuetitle field. Note that editor and related \n fields refer to the journal while translator and related fields refer to the article.\n\nRequired fields: `author`, `title`, `journaltitle`, `year/date`"
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 8
- }
- },
- "newText": "article"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name.snap
deleted file mode 100644
index ddc3f29f5f..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name.snap
+++ /dev/null
@@ -1,171 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 95
-expression: "complete_and_resolve(&server, uri, 0, 1)?"
----
-{
- "isIncomplete": true,
- "items": [
- {
- "label": "article",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An article in a journal, magazine, newspaper, or other periodical which forms a \n self-contained unit with its own title. The title of the periodical is given in the \n journaltitle field. If the issue has its own title in addition to the main title of \n the periodical, it goes in the issuetitle field. Note that editor and related \n fields refer to the journal while translator and related fields refer to the article.\n\nRequired fields: `author`, `title`, `journaltitle`, `year/date`"
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 1
- }
- },
- "newText": "article"
- }
- },
- {
- "label": "artwork",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "Works of the visual arts such as paintings, sculpture, and installations."
- },
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 1
- }
- },
- "newText": "artwork"
- }
- },
- {
- "label": "audio",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "Audio recordings, typically on audio cd, dvd, audio cassette, or similar media. See\n also `@music`."
- },
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 1
- }
- },
- "newText": "audio"
- }
- },
- {
- "label": "bibnote",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "This special entry type is not meant to be used in the `bib` file like other types. It is\n provided for third-party packages like `notes2bib` which merge notes into the bibliography.\n The notes should go into the `note` field. Be advised that the `@bibnote`\n type is not related to the `defbibnote` command in any way. `defbibnote`\n is for adding comments at the beginning or the end of the bibliography, whereas\n the `@bibnote` type is meant for packages which render endnotes as bibliography\n entries."
- },
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 1
- }
- },
- "newText": "bibnote"
- }
- },
- {
- "label": "book",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "A single-volume book with one or more authors where the authors share credit for\n the work as a whole. This entry type also covers the function of the `@inbook` type\n of traditional BibTeX.\n\nRequired fields: `author`, `title`, `year/date`"
- },
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 1
- }
- },
- "newText": "book"
- }
- },
- {
- "label": "bookinbook",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "This type is similar to `@inbook` but intended for works originally published as a\n stand-alone book. A typical example are books reprinted in the collected works of\n an author."
- },
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 1
- }
- },
- "newText": "bookinbook"
- }
- },
- {
- "label": "booklet",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "A book-like work without a formal publisher or sponsoring institution. Use the field\n howpublished to supply publishing information in free format, if applicable. The\n field type may be useful as well.\n\nRequired fields: `author/editor`, `title`, `year/date`"
- },
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 1
- }
- },
- "newText": "booklet"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name_before.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name_before.snap
deleted file mode 100644
index b6cf4a29dd..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_empty_name_before.snap
+++ /dev/null
@@ -1,9 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 111
-expression: "complete_and_resolve(&server, uri, 0, 0)?"
----
-{
- "isIncomplete": false,
- "items": []
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_incomplete.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_incomplete.snap
deleted file mode 100644
index 2e7226985d..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__entry_type_incomplete.snap
+++ /dev/null
@@ -1,79 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 127
-expression: "complete_and_resolve(&server, uri, 0, 1)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "article",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An article in a journal, magazine, newspaper, or other periodical which forms a \n self-contained unit with its own title. The title of the periodical is given in the \n journaltitle field. If the issue has its own title in addition to the main title of \n the periodical, it goes in the issuetitle field. Note that editor and related \n fields refer to the journal while translator and related fields refer to the article.\n\nRequired fields: `author`, `title`, `journaltitle`, `year/date`"
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 4
- }
- },
- "newText": "article"
- }
- },
- {
- "label": "artwork",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "Works of the visual arts such as paintings, sculpture, and installations."
- },
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 4
- }
- },
- "newText": "artwork"
- }
- },
- {
- "label": "mastersthesis",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "Similar to `@thesis` except that the `type` field is optional and defaults to the\n localised term ‘Master’s thesis’. You may still use the `type` field to override that."
- },
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 4
- }
- },
- "newText": "mastersthesis"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__field_complete_entry.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__field_complete_entry.snap
deleted file mode 100644
index 9340866462..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__field_complete_entry.snap
+++ /dev/null
@@ -1,171 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 178
-expression: "complete_and_resolve(&server, uri, 1, 6)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "title",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "The title of the work."
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 9
- }
- },
- "newText": "title"
- }
- },
- {
- "label": "titleaddon",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An annex to the `title`, to be printed in a different font."
- },
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 9
- }
- },
- "newText": "titleaddon"
- }
- },
- {
- "label": "booksubtitle",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "The subtitle related to the `booktitle`. If the subtitle field refers to a work which is part of a larger publication, a possible subtitle of the main work is given in this field. See also `subtitle`."
- },
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 9
- }
- },
- "newText": "booksubtitle"
- }
- },
- {
- "label": "booktitle",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "If the `title` field indicates the title of a work which is part of a larger publication, the title of the main work is given in this field. See also `title`."
- },
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 9
- }
- },
- "newText": "booktitle"
- }
- },
- {
- "label": "booktitleaddon",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An annex to the `booktitle`, to be printed in a different font."
- },
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 9
- }
- },
- "newText": "booktitleaddon"
- }
- },
- {
- "label": "eventtitle",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "The title of a conference, a symposium, or some other event in `@proceedings` and `@inproceedings` entries. Note that this field holds the plain title of the event. Things like \"Proceedings of the Fifth XYZ Conference\" go into the `titleaddon` or `booktitleaddon` field, respectively. See also `eventdate` and `venue`."
- },
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 9
- }
- },
- "newText": "eventtitle"
- }
- },
- {
- "label": "eventtitleaddon",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An annex to the `eventtitle` field. Can be used for known event acronyms, for example."
- },
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 9
- }
- },
- "newText": "eventtitleaddon"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__field_incomplete_entry.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__field_incomplete_entry.snap
deleted file mode 100644
index 398ed710ce..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__field_incomplete_entry.snap
+++ /dev/null
@@ -1,171 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 160
-expression: "complete_and_resolve(&server, uri, 1, 6)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "title",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "The title of the work."
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 8
- }
- },
- "newText": "title"
- }
- },
- {
- "label": "titleaddon",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An annex to the `title`, to be printed in a different font."
- },
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 8
- }
- },
- "newText": "titleaddon"
- }
- },
- {
- "label": "booksubtitle",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "The subtitle related to the `booktitle`. If the subtitle field refers to a work which is part of a larger publication, a possible subtitle of the main work is given in this field. See also `subtitle`."
- },
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 8
- }
- },
- "newText": "booksubtitle"
- }
- },
- {
- "label": "booktitle",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "If the `title` field indicates the title of a work which is part of a larger publication, the title of the main work is given in this field. See also `title`."
- },
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 8
- }
- },
- "newText": "booktitle"
- }
- },
- {
- "label": "booktitleaddon",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An annex to the `booktitle`, to be printed in a different font."
- },
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 8
- }
- },
- "newText": "booktitleaddon"
- }
- },
- {
- "label": "eventtitle",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "The title of a conference, a symposium, or some other event in `@proceedings` and `@inproceedings` entries. Note that this field holds the plain title of the event. Things like \"Proceedings of the Fifth XYZ Conference\" go into the `titleaddon` or `booktitleaddon` field, respectively. See also `eventdate` and `venue`."
- },
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 8
- }
- },
- "newText": "eventtitle"
- }
- },
- {
- "label": "eventtitleaddon",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "An annex to the `eventtitle` field. Can be used for known event acronyms, for example."
- },
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 4
- },
- "end": {
- "line": 1,
- "character": 8
- }
- },
- "newText": "eventtitleaddon"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__bibtex__junk.snap b/support/texlab/tests/it/snapshots/it__completion__bibtex__junk.snap
deleted file mode 100644
index 72c29cf065..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__bibtex__junk.snap
+++ /dev/null
@@ -1,9 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 43
-expression: "complete_and_resolve(&server, uri, 0, 0)?"
----
-{
- "isIncomplete": false,
- "items": []
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__begin_command.snap b/support/texlab/tests/it/snapshots/it__completion__latex__begin_command.snap
deleted file mode 100644
index ff1fed0a8d..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__begin_command.snap
+++ /dev/null
@@ -1,162 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 203
-expression: "complete_and_resolve(&server, uri, 0, 2)?"
----
-{
- "isIncomplete": true,
- "items": [
- {
- "label": "b",
- "kind": 1,
- "detail": "built-in",
- "documentation": {
- "kind": "markdown",
- "value": "![b](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAA6CAIAAAB5+022AAAHLklEQVR4nO2ZX0hTbRzHz9nZ5jb2V8O5mqaOWrrUCJZgLqmkhBDroghSCYr+UDdGXRQFRnQTBUU3o4tjRGgJQZg4Jkgs5pIkM4uZtmzqnJa5s7X/5+w8570477v3cJzbMe19veh7+dvzfM/nnOd3fs/vPIMpioLWknj/NwBbf4Ayac0B8TmOi8Vi4+PjdrvdZrN9/Phxbm4uFAoBAMRicU5Ojl6vr66u3r17d3l5uUwmWwkQnPEti0ajdrv90aNHNpttbm4OhmGVSqVSqSQSCUmSGIbNz89Ho1Eej5ednW00GhsbG+vq6rKzs3+RiFpaAACXy3Xq1CmVSoUgiE6nO336dGdn58jIiNfrXVhYmJ+fd7lcXV1dzc3NSQKxWLx///6+vj6CINKYL6UlgQAAb9++3blzJ4/HU6vVV65c+fTp01LXiEajz58/NxgMyfvUaDT37t0Lh8OrBjQxMVFdXQ3DsMFg6OnpwXE8vREAwG636/X6JJNMJrtx40YkElkFIBzHL1y4gCBIVlZWS0vL0NBQNBrN6EWSZHt7u1wuTzLJ5fIHDx4kEomVAo2Ojm7cuJE2FQgEGo3m/Pnzs7OzGe1CodDhw4eZOarT6YaGhlYK9PjxY4FAwPTl8/ktLS3xeDyjY3d3t1QqTU6EYfjMmTNcJtJKXRg/f/5MEAQzkkgkurq6PB5PxtfWaDRu3ryZ+RZbLBaXy5VxIq3UQNFodHHQ7/f7/f6Mjjk5Odu3b2dGvF7vwMDAioB0Oh2fzy7iCoVCoVBkdEQQpLy8nMf715kgiHfv3gEAfh1o7969JSUlrMvU1dVptVoupgUFBawUnJqaYuXAkkqZWSRJ9vb2VlZWisViBEEUCsXRo0fdbjfHxHz58iUzryEIqq2tDYVCXOam3lx5PF5tbe3WrVuHh4cxDNNqtdu2bWMWmPQSCoXMJYMgCIZhGIa5zF1yt4dhWKPRaDQajhCsuayIQCBgIS4biIsAALFYLBgMBgIBv9//8+fPUCgUi8XoXe8/AiII4sePHy6X68OHDyMjIy6Xa25uDsOwcDiM4zhJkuAfMWdxXK9lAJEk6fV6+/v7rVbr4ODg9PQ03aBBECQUClUqVXFxcX5+vlarzcvL8/l8ZrM5Fost61a5AhEE4XQ629vbu7u7v3z5Eo/H6bhIJNLpdCaTqaamxmAwrF+/XiqVCoVCGIZfv36NoujqA1EUNTk5aTabOzo6PB5PchWkUqnJZGpsbKypqVGr1YtL6Iq0VD3AcfzFixdGoxFBkORgBEF27Njx5MkTv9+fppY4HA5WjTh48CDH/TU1UDweN5vNarWaaSoSiU6ePDkxMQEASG+6ykCJRAJFUVaXLhKJLl26hGEYF9NVBnI4HMnujBaPx2tubvb5fFwcVwjEzsdgMHjnzp2pqSlmUK/XX758WaVSpU/HZenv5wFBrILJBrLb7X19fRTjYw1BkKamJmbPtSr6+vXr/fv3KYq6e/cuM84u58+ePWN1YXl5efX19RwLPy0cxzN2P9++fUNRFEVRVpx9mf7+flZEr9cXFhZyp4EgCMMwrt3PIrGBZmZmWJHi4mKxWLws07GxMRzHVwcoEomwIjKZjPvWSDs4HA7qVw/m2ECs1hOCIAzDOLbDtEZHR9+8ecMK0t+KzAhBECRJZgbatGkTK+J0Orl8bNDCcfzhw4c+n2/Lli3M5xoMBlmLSOfZ4n2QDXTkyBHWoNHR0cWZnlIURVmt1o6OjsLCwrNnzzIzz+v1+nw+5sixsTGCIIqKilK4MDU5OVlVVcUaU1NTMz09nb7CAgAGBgYMBoNIJLp9+7bb7WYehkgkks7OzuTgQCCwb98+BEFaW1tZPmwgAIDNZmOVQQRBjh07loYJx3GLxVJWViYQCE6cOIFhWCKRaG1tZT5sk8nkdDoJggiHw2azWSqVlpWVjY+PZwCiKIokyVevXlVXVzPt+Hz+nj17LBZLIBBg7vaRSGR4ePjixYu5ublSqfTcuXPfv3+nf3K73VVVVclM4vF4JSUlTU1N9fX1SqVy3bp1T58+Xdw4pG4/AAAej+fmzZsGg0EoFCaxlEplbW3ttWvXUBRta2u7fv16Q0PDhg0bsrKyKioqUBRlfnzRi1hZWcnsqCAIgmG4qKiora0t5ZlTujNGkiQ9Ho/NZuvt7X3//v3s7Gw4HCYIAgBA7yQIgiiVytLS0kOHDjU0NBQUFLAqFkVRExMTKIparVb6NCc3N3fXrl3Hjx+vqKhggf6NmwYoKRzHFxYWZmZmvF6v1+sNBAKxWEwsFufn5+v1ep1OJ5fL0xRPkiR9Ph/dvahUqpycnDRdLyeg/1Jr7uD8D1AmrTmg1NkeiUR+uaFJL6FQKJFIlgcEALh161ZPT8/vADpw4MDVq1dTVqAlgehqNjg4+DuASktL0xea1EuWnZ2dn5//O4Ay/kv0pzBm0h+gTFpzQH8Bp4gu0MowthIAAAAASUVORK5CYII=|width=48,height=48)"
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 2
- }
- },
- "newText": "b"
- }
- },
- {
- "label": "backslash",
- "kind": 1,
- "detail": "\\, built-in",
- "documentation": {
- "kind": "markdown",
- "value": "![backslash](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAA6CAIAAAAsmq7oAAADD0lEQVR4nO2Y3Uv6UBzGv5stsyhCiUTRytJIDTMkRUEqhmnbVTf+o9sygqjAi4RIVqlJKWWl1FB6oyLt/C68K9tb5+YHncudw4fnczjbcxiBEALcg8RO/IN+ha6srKTT6ZeXF5xQSZJ2d3fPzs5wQjc2Nlqt1vb29m+O2lcoy7IWiyWTyTw+PmKDer3eUCgkiuLp6Sk26NDQEMMwT09PW1tb+ncAfRuFQsHhcEQiEUmSvs+qGT3O6dTUVDgcLhQKoijqC9oDOjAwwLLs29vb5ubm5+enHmrP/Ofn5y6XKxgMNhoNPPoA4HA4YrFYuVw+PDzUEbQ3tL+/n2GYTqcjCEK73dZM/Unh8vJydnbW5/PVajU8+gBgs9ni8XilUsnlclqD/gjt6+tjWZYgCI7jPj4+tFFlLG5ububn52dmZiqVCh59ABgfH19dXa3VatlsVlNQOajBYFhfX6coiuf59/d3DVR5kbu7u1AoNDExUSqV8OgDgMVioWn69vZ2f39ffVAFKEmSyWRycHCQ5/nX11e1VEWXZrMZjUZtNpsoinj0AWB0dHRtbe3+/n5nZwep+2wrQwmCSCQSIyMjgiCorG5Vlwmv1xsIBI6OjkqlEjbo8PBwMplUX92qoARB0DTdre6Hhwc8UADweDyLi4vHx8dqqlsttFvdz8/PmUxGubjUv3wnJyd2uz0cDitWt4arpMvlWlpaKhaL+XxefqUGqMlk6la3IAidTkduqXp9hFC5XJ6cnFxYWKjX63j0AcDpdEajUcXq1gY1Go3d6uY4Tq66NekjhKrVqtvtnpubu7q6wqMPAHa7PR6PV6vVg4ODn9ZohlIUxTCMQnVr1UcIXV9f+3y+6enpi4sLPPoAYLVal5eXZapbD9RgMDAMQ1EUx3G9q1uHPkKo0WgEg0Gn01ksFvHoA8DY2BhN0/V6fW9v7/usTihJkqlUymQy8Tzfo7j06SOEJEmKRCJWqzWXy+HRBwCz2ZxIJCRJ4nkeW1KEUDabNZvNfr8fW1IA8Pv9sVjMaDR+eU6gvx8z/wX0H6vA4+khaPAcAAAAAElFTkSuQmCC|width=48,height=48)"
- },
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 2
- }
- },
- "newText": "backslash"
- }
- },
- {
- "label": "badness",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 2
- }
- },
- "newText": "badness"
- }
- },
- {
- "label": "bar",
- "kind": 1,
- "detail": " ̄, built-in",
- "documentation": {
- "kind": "markdown",
- "value": "![bar](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA6CAIAAACvXpfTAAAHHklEQVR4nO2ZX0xSbxjHORxAkH8FEShCpU7DRI3RNHEul1uzrdRqtpazumrzprV1QReuedFFrbY229ja6kJbK7fanEsrK1saWGoFREA0Y0mioAiNA8HhnPO7YDudH3Dg6K/t14Xfu/fhfZ7zed/3Oc/7vgcAwzDaXyP6/w3wL23QkOvvoqFhJLp16xaLxQL/tM6cOZNIJMgeyshCiSAIgiB/dvAoimb5lZRGq9X29vb+8fe/qqqKTidND2Cj3pBqg4ZcGzTk2qAhF2n1oyIURSEI8vv9gUAgFovl5+fLZDKJRMJgrDPsOt0ikYjFYhkdHZ2YmHC73aFQCEEQJpMpk8n2799/+vRptVoNguBaw665FsMwbDKZDAbDixcvVlZWQBDcsWNHVVWVRCIJBoNWq9Xlcsnl8kuXLp04cYLJZGIY9vXr16GhoaWlpfr6+paWFjabTRqdbDvNKI/Ho9frt27dSqPR6HS6SqXq6+tzu92xWAxFURiGPR7PtWvXZDKZWCweGBhIJBIfP37UarXJvUkoFN6/fz9LfKo0CIKYTKampqbk/DMYjPb2dpvNhiBISk8Yhu/duycWi4uLiycnJ7u6ugAAwAd//vx5FEX/E00ikRgeHi4rK0vGZTAYXV1dCwsLZP1jsZher2cwGI2NjYWFhb/TAgCuXr2a5UG5aRAEefjwoVKpxCO2trZ6vd7sXk6ns6SkhE6nEyeGy+WOjY2tnwZF0adPn27fvh2PqFarP3/+nHMMMAx3d3en5Ghpaanb7V4/jdlsrqysxMMJBILBwcEsC0/Uo0eP8vLyiDStra3RaHSdND6f79ChQ/hUAwDQ1dUFQRAVFAzDZmdnxWIxMWmuXLmS3YWUBobhy5cvs1gsPJxUKjUajRRRMAwbGxvjcrm4O5/PHx8fz+5Cuk9NT08bDIZ4PI5bmpqaampqyPqnCMOw9+/fRyIR3FJUVFRWVpbdKzMNBEF9fX0/fvzALRwO5+jRoxwOhyJNLBZLTiRuUavVW7ZsWQ/N69evR0dHibFKSkr27t1LEYVGo/l8PpvN9vsxdLpOpyOuO1WaaDTa398fDAaJxsbGRqlUSp3G4XAsLCzgTYFAoNVqc3ploLFarS9fviRaOBxOc3Pzms4Jb9++jUajeFOpVJaUlKyZJlnulpeXiUa5XL57927qKNFodGpqirjQNTU1IpFozTSrq6vPnj1LuZ9WV1fLZDLqNF6v1263400QBHU6HZPJXDONy+VyOp3/6kGnNzQ0ZDuUpMluty8uLuLNTZs2UZzaVJqZmZnV1VWihcfjUUlAXBiGmUymX79+4RalUrlt27b10ExPTycSCaJFLpcXFxdTp4Eg6N27d8Skqays3Lx583povnz5kmIpLy8nbjc5tbCwQFxrEAT37NlDJWky0Ph8vhSLWq1O2Yqzy2azEYPw+XyNRkPRN5UGgiBik8lkqtVq6igoihqNxlgshlsyVhoURefm5lJeF1rOGwyXy6WYgEmFw+GZmRli0lRXV6cv9NLS0qlTpwKBAHH3oKXPTcqbLBQKJRIJdRqPx+NyufAmCIJ1dXXpSWO3281mc/qFK5UmeTvBJRAIeDwedRqLxeL3+4nu6ZUGw7CpqSkIgnQ6XQ4alUpFbHI4nJwbL654PP78+XPikUipVKZXh0gkMjExkZeXt2/fvhw0DQ0NxIml/lkUwzCj0Tg6Oko0qlSq9ErjdrutVqtCoUgvqqk09fX1crkcb4ZCoZS3jEwOh0Ov13u9XtwCAEBFRUXK1GIYNjk56fP5tFptUVFRDprS0tLm5mb8ZL68vOzxeHKieDyeCxcuzM7OEucVAADiwJKCIGh4eBgAgAMHDmQoY+lH5Tdv3uA7Np1Ov379evYry/z8/LFjx1gsVltbW0dHBx4ZBMG7d++mdH716pVIJNq5c+e3b9/SQ2WgicfjPT09+AzX1dUtLi5m5EBR1GKxtLS0sFisw4cPu93ux48fCwQCfCQGg4HYPxwOd3Z2giB48eLFjN/3M99gfD7f8ePHk/WAxWL19PSkX6OCwWB/f/+uXbvYbPbJkyfn5+cxDAuFQh0dHfhCd3d3wzCc7A/D8J07d/h8vlqtdjqdGZ9Lep+an5/v7OxMFkM+n3/u3LkPHz74/f7l5WWHwzEwMHDw4EEejyeVSnt7e1dWVnDHT58+1dbWJoEUCsXQ0JDf7//+/fvNmzcLCgokEsmDBw/Sv2zkoMEwLBAI3Lhxo6KigslkgiBYUFCg0Wg0Go1CoWCz2SKR6MiRI+Pj47FYjOiFoqjVam1vb8/Pz6fRaCKRSKPRlJeXczgcpVJ5+/btlP5E5fi2hSDI3NzcyMjIkydPHA7Hz58/QRAsLCzU6XRtbW21tbV4lqQoEAiMjIwMDg6azeZwOCwUChsaGs6ePVtbW5vltL/xrwe5NmjI9XfR/ANs1iTDg+2GBQAAAABJRU5ErkJggg==|width=48,height=48)"
- },
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 2
- }
- },
- "newText": "bar"
- }
- },
- {
- "label": "baselineskip",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 2
- }
- },
- "newText": "baselineskip"
- }
- },
- {
- "label": "baselinestretch",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 2
- }
- },
- "newText": "baselinestretch"
- }
- },
- {
- "label": "batchmode",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 2
- }
- },
- "newText": "batchmode"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__citation.snap b/support/texlab/tests/it/snapshots/it__completion__latex__citation.snap
deleted file mode 100644
index af2249cb0a..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__citation.snap
+++ /dev/null
@@ -1,54 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 237
-expression: "complete_and_resolve(&server, tex_uri, 3, 6)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "bar:2005",
- "kind": 1,
- "preselect": false,
- "sortText": "00 bar:2005 @articlebar:2005",
- "filterText": "bar:2005 @articlebar:2005",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 6
- },
- "end": {
- "line": 3,
- "character": 6
- }
- },
- "newText": "bar:2005"
- }
- },
- {
- "label": "foo:2019",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "F. Bar: \"Baz Qux\". (2019)."
- },
- "preselect": false,
- "sortText": "01 foo:2019 @articlefoo:2019 author Foo Bar title Baz Qux year 2019",
- "filterText": "foo:2019 @articlefoo:2019 author Foo Bar title Baz Qux year 2019",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 6
- },
- "end": {
- "line": 3,
- "character": 6
- }
- },
- "newText": "foo:2019"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__citation_after.snap b/support/texlab/tests/it/snapshots/it__completion__latex__citation_after.snap
deleted file mode 100644
index 9d635a36d3..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__citation_after.snap
+++ /dev/null
@@ -1,9 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 305
-expression: "complete_and_resolve(&server, tex_uri, 3, 7)?"
----
-{
- "isIncomplete": false,
- "items": []
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__citation_multi_word.snap b/support/texlab/tests/it/snapshots/it__completion__latex__citation_multi_word.snap
deleted file mode 100644
index 94ed4922d6..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__citation_multi_word.snap
+++ /dev/null
@@ -1,34 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 271
-expression: "complete_and_resolve(&server, tex_uri, 3, 7)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "foo",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "F. Bar: \"Baz Qux\". (2019)."
- },
- "preselect": false,
- "sortText": "00 foo @articlefoo author Foo Bar title Baz Qux year 2019",
- "filterText": "foo @articlefoo author Foo Bar title Baz Qux year 2019",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 6
- },
- "end": {
- "line": 3,
- "character": 11
- }
- },
- "newText": "foo"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__citation_open_brace.snap b/support/texlab/tests/it/snapshots/it__completion__latex__citation_open_brace.snap
deleted file mode 100644
index 43012267d5..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__citation_open_brace.snap
+++ /dev/null
@@ -1,34 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 337
-expression: "complete_and_resolve(&server, tex_uri, 3, 9)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "FooBar",
- "kind": 1,
- "documentation": {
- "kind": "markdown",
- "value": "F. Bar: \"Baz Qux\". (2019)."
- },
- "preselect": false,
- "sortText": "00 FooBar @articleFooBar author Foo Bar title Baz Qux year 2019",
- "filterText": "FooBar @articleFooBar author Foo Bar title Baz Qux year 2019",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 6
- },
- "end": {
- "line": 3,
- "character": 9
- }
- },
- "newText": "FooBar"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__class_command.snap b/support/texlab/tests/it/snapshots/it__completion__latex__class_command.snap
deleted file mode 100644
index bac91f2943..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__class_command.snap
+++ /dev/null
@@ -1,150 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 483
-expression: "complete_and_resolve(&server, uri, 2, 5)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "chapter",
- "kind": 1,
- "detail": "book.cls",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 1
- },
- "end": {
- "line": 2,
- "character": 5
- }
- },
- "newText": "chapter"
- }
- },
- {
- "label": "chaptermark",
- "kind": 1,
- "detail": "book.cls",
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 1
- },
- "end": {
- "line": 2,
- "character": 5
- }
- },
- "newText": "chaptermark"
- }
- },
- {
- "label": "chaptername",
- "kind": 1,
- "detail": "book.cls",
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 1
- },
- "end": {
- "line": 2,
- "character": 5
- }
- },
- "newText": "chaptername"
- }
- },
- {
- "label": "thechapter",
- "kind": 1,
- "detail": "book.cls",
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 1
- },
- "end": {
- "line": 2,
- "character": 5
- }
- },
- "newText": "thechapter"
- }
- },
- {
- "label": "scshape",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 1
- },
- "end": {
- "line": 2,
- "character": 5
- }
- },
- "newText": "scshape"
- }
- },
- {
- "label": "fontchardp",
- "kind": 1,
- "detail": "amsmath.sty",
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 1
- },
- "end": {
- "line": 2,
- "character": 5
- }
- },
- "newText": "fontchardp"
- }
- },
- {
- "label": "XeTeXcharglyph",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 1
- },
- "end": {
- "line": 2,
- "character": 5
- }
- },
- "newText": "XeTeXcharglyph"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__class_environment.snap b/support/texlab/tests/it/snapshots/it__completion__latex__class_environment.snap
deleted file mode 100644
index b751033521..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__class_environment.snap
+++ /dev/null
@@ -1,30 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 506
-expression: "complete_and_resolve(&server, uri, 4, 13)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "theindex",
- "kind": 1,
- "detail": "book.cls",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 7
- },
- "end": {
- "line": 4,
- "character": 13
- }
- },
- "newText": "theindex"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__class_import.snap b/support/texlab/tests/it/snapshots/it__completion__latex__class_import.snap
deleted file mode 100644
index 7d964d6f85..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__class_import.snap
+++ /dev/null
@@ -1,171 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 569
-expression: "complete_and_resolve(&server, uri, 0, 19)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "book",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "LaTeX is a widely-used macro package for TeX, providing many basic document formating commands extended by a wide range of packages. It is a development of Leslie Lamport's LaTeX 2.09, and superseded the older system in June 1994. The basic distribution is catalogued separately, at latex-base; apart from a large set of contributed packages and third-party documentation (elsewhere on the archive), the distribution includes: - a bunch of required packages, which LaTeX authors are \"entitled to assume\" will be present on any system running LaTeX; and - a minimal set of documentation detailing differences from the 'old' version of LaTeX in the areas of user commands, font selection and control, class and package writing, font encodings, configuration options and modification of LaTeX. For downloading details, see the linked catalogue entries above."
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 15
- },
- "end": {
- "line": 0,
- "character": 19
- }
- },
- "newText": "book"
- }
- },
- {
- "label": "bookcover",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "This class helps typesetting book covers and dust jackets."
- },
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 15
- },
- "end": {
- "line": 0,
- "character": 19
- }
- },
- "newText": "bookcover"
- }
- },
- {
- "label": "bookest",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "The class extends the standard book class, in the areas of colour scheme management, document layout, headings and footers, front page layout, and other minor items."
- },
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 15
- },
- "end": {
- "line": 0,
- "character": 19
- }
- },
- "newText": "bookest"
- }
- },
- {
- "label": "bbook",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "The bundle provides class files for writing Bangla and Assamese with LaTeX, and Metafont sources for fonts."
- },
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 15
- },
- "end": {
- "line": 0,
- "character": 19
- }
- },
- "newText": "bbook"
- }
- },
- {
- "label": "basque-book",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "The class is derived from the LaTeX book class. The extensions solve grammatical and numeration issues that occur when book-type documents are written in Basque. The class is useful for writing books, PhD and Master Theses, etc., in Basque."
- },
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 15
- },
- "end": {
- "line": 0,
- "character": 19
- }
- },
- "newText": "basque-book"
- }
- },
- {
- "label": "biditufte-book",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "A convenient interface for typesetting bidirectional texts with plain TeX and LaTeX. The package includes adaptations for use with many other commonly-used packages."
- },
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 15
- },
- "end": {
- "line": 0,
- "character": 19
- }
- },
- "newText": "biditufte-book"
- }
- },
- {
- "label": "caesar_book",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "The package allows typesetting of texts with notes, figures, citations, captions and tables in the margin. This is common (for example) in science text books."
- },
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 15
- },
- "end": {
- "line": 0,
- "character": 19
- }
- },
- "newText": "caesar_book"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color.snap b/support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color.snap
deleted file mode 100644
index d65f573d96..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color.snap
+++ /dev/null
@@ -1,105 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 373
-expression: "complete_and_resolve(&server, uri, 1, 18)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "HTML",
- "kind": 1,
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 18
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "HTML"
- }
- },
- {
- "label": "RGB",
- "kind": 1,
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 18
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "RGB"
- }
- },
- {
- "label": "cmyk",
- "kind": 1,
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 18
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "cmyk"
- }
- },
- {
- "label": "gray",
- "kind": 1,
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 18
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "gray"
- }
- },
- {
- "label": "rgb",
- "kind": 1,
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 18
- },
- "end": {
- "line": 1,
- "character": 18
- }
- },
- "newText": "rgb"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color_set.snap b/support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color_set.snap
deleted file mode 100644
index dd49043a9e..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__color_model_define_color_set.snap
+++ /dev/null
@@ -1,67 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 391
-expression: "complete_and_resolve(&server, uri, 2, 17)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "RGB",
- "kind": 1,
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 16
- },
- "end": {
- "line": 2,
- "character": 17
- }
- },
- "newText": "RGB"
- }
- },
- {
- "label": "rgb",
- "kind": 1,
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 16
- },
- "end": {
- "line": 2,
- "character": 17
- }
- },
- "newText": "rgb"
- }
- },
- {
- "label": "gray",
- "kind": 1,
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 2,
- "character": 16
- },
- "end": {
- "line": 2,
- "character": 17
- }
- },
- "newText": "gray"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__color_name.snap b/support/texlab/tests/it/snapshots/it__completion__latex__color_name.snap
deleted file mode 100644
index 2b428d0e72..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__color_name.snap
+++ /dev/null
@@ -1,143 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 355
-expression: "complete_and_resolve(&server, uri, 0, 9)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "red",
- "kind": 1,
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 9
- }
- },
- "newText": "red"
- }
- },
- {
- "label": "Red",
- "kind": 1,
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 9
- }
- },
- "newText": "Red"
- }
- },
- {
- "label": "RedOrange",
- "kind": 1,
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 9
- }
- },
- "newText": "RedOrange"
- }
- },
- {
- "label": "RedViolet",
- "kind": 1,
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 9
- }
- },
- "newText": "RedViolet"
- }
- },
- {
- "label": "BrickRed",
- "kind": 1,
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 9
- }
- },
- "newText": "BrickRed"
- }
- },
- {
- "label": "OrangeRed",
- "kind": 1,
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 9
- }
- },
- "newText": "OrangeRed"
- }
- },
- {
- "label": "RubineRed",
- "kind": 1,
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 9
- }
- },
- "newText": "RubineRed"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__empty_document.snap b/support/texlab/tests/it/snapshots/it__completion__latex__empty_document.snap
deleted file mode 100644
index f291fddd8b..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__empty_document.snap
+++ /dev/null
@@ -1,9 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 194
-expression: "complete_and_resolve(&server, uri, 0, 0)?"
----
-{
- "isIncomplete": false,
- "items": []
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command.snap b/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command.snap
deleted file mode 100644
index 39b89d46d4..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command.snap
+++ /dev/null
@@ -1,30 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 414
-expression: "complete_and_resolve(&server, uri, 0, 2)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "documentclass",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 1
- },
- "end": {
- "line": 0,
- "character": 14
- }
- },
- "newText": "documentclass"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_environment.snap b/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_environment.snap
deleted file mode 100644
index 5e0ea8e44d..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_environment.snap
+++ /dev/null
@@ -1,30 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 460
-expression: "complete_and_resolve(&server, uri, 6, 10)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "document",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 6,
- "character": 7
- },
- "end": {
- "line": 6,
- "character": 10
- }
- },
- "newText": "document"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_glyph.snap b/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_glyph.snap
deleted file mode 100644
index 6e7aacacbb..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__kernel_command_glyph.snap
+++ /dev/null
@@ -1,34 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 437
-expression: "complete_and_resolve(&server, uri, 7, 7)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "varepsilon",
- "kind": 1,
- "detail": "ε, built-in",
- "documentation": {
- "kind": "markdown",
- "value": "![varepsilon](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADMAAAA6CAIAAACSzPa1AAAHu0lEQVR4nO2ZX0hTXxzA77n37p933rmmzmQxYaZmKlOzNKQQJEyJMqgQKn2Q/gjmQ3+ECLEXIxRJkx4CQYJ6SSoffFGaYEgoTW0G/kPMNd1ya5v7d2/bvef+Hm6YLHV/Muvh93nbzrnnfHZ2zvd87zmA4zjknwT92wJb8r9Z5Py7ZvhONRQIBOx2++Li4vz8/PT0tNFoNJvNbrebpmkMw+Li4vbt25eZmZmbm5uZmZmUlCQQCP6sWSAQMJlMo6OjOp1uYmLCaDSura0FAgEI4a+VMQyTSqVqtbq4uLiysvLw4cMkSW7ZNBctHo9Hp9Ndv359//79IpEoot8DAJDJZGVlZX19fV6vd9P2ozGjKGpgYODs2bNyuRwAEOkwb4QkyZqamrm5OQhhUC+AiyTSchw3NzfX3t7+8uVLh8MRVIphmEgkIghCKpUSBCEWizEMgxD6/X6n02m3271e76//MoqiRUVFjx8/zs3N3fh9BGZ+v7+/v//+/ftTU1PrHeA4rlAoUlNTs7Ozs7KyUlNTlUplXFycRCIRCAQYhnEc5/f73W73ly9fxsbGBgcH9Xq90+nc2C8A4MyZM69evQoehnDw+XyPHj1KTExcbys+Pr6ioqKrq2t8fNxutzMME7IRCKHT6RwYGLhw4ULQ3C8rKwuqHJYZRVGtra0ymYx3SkpKunbt2rt379xu96/zIxxcLteLFy9yc3NRFAUAaDSa/v7+iM1Yln327NmePXsQBBEKhRUVFcPDwzRNRyG0EQjh3NxcU1PT7du3379//+uQhzYzGAxpaWkIghAE0djYaLVaf9NpIyzLsiy7aVEIM5qmr169CgAQiUT37t3zeDw7qLU9IcwMBoNKpUIQpKKiwmaz7Y4TT4gdfXR01Gw2EwRRW1urUCjCjC87wnZmEMLJyUmWZZOTk7Va7W4p/SDEmPGBniRJqVS6Kz4/CWHGxzCfz0fT9K74/GQ7MxRFs7OzMQxbWVmZnZ3dNacfvW9ffOzYMZVK5XK5enp63G73NjWDVtbvm4XIHNPS0qqqqtra2l6/fq3Vauvq6iQSCV/EMIzD4TCZTCaTyWKxrK6u+nw+lmVFIpFIJJLL5SqVKj09Xa1WR5q9/SBkXFlaWiopKeFzvbt375pMpuXl5d7e3itXruTl5SUkJIjFYhQNHnsURSUSSUpKyo0bNywWSxTxLHQWxHHc5ORkXV3d2NgYhmE5OTkQwpmZGYqiUBSVyWSJiYl85kMQBIqiDMO43W6z2by0tORwODAMa2tra2hoiHTIQr8HAAC0Wu2DBw9qamqWlpb0ev36qGi12qqqqry8PKVSKZFIUBTlOA5C6PV6p6enu7u7dTodwzA2my1SrbDMGIYZHh5uaWkxm80oiu7du5emabvdDiE0GAyLi4tSqZRPXwEAEEIIIUVRLpeL32TT09NPnToVhVmIf9Pr9XZ3dz98+NBsNickJFy+fLm6utrr9ep0upGRkYWFBbvdTtM0wzB8lgsAAAAIBAKpVKpSqYqLiy9evJiTk/PrRPwtM5fL1dLS0tXVRdP0kSNHmpubjx8/LhQKEQThOO779+8Oh8Nut7vdbo/HEwgEOI7DMIzXksvl8fHxMpksCqcfbLU0PB5PY2OjWCwWCATnz59fWFiIYn39DpubBQKBjo4OgiBwHL906ZLZbN5lLW4rs6GhoeTkZABAeXm5yWTaZSeeTcxsNltZWRmCIBqNRq/X774TT7AZhLCnp0cikQiFwvb29q2S9F0g2Ozbt2+lpaUIghw6dOivTK91gpf0hw8f9Ho9iqLnzp1TKpVRLvidINhsaGhobW1NLpfzu/hfceIJNtPr9RDC5ORktVr9V4TWCTZbXl5GECQ2NjbKpGrnCDZjWRZBEJ/PFwgE/obPT4LN5HI5giBfv361WCx/qMvZ2dnOzs6FhYXIzA4ePAgAsFqtOp2O+wPXKzab7datWzdv3nzz5k2I9oOiyPPnz2NiYhAEycrKmpmZ2dkQRVFUc3OzSCRSKBRDQ0PbVw42MxqN+fn5CIKgKHr69OnPnz/vlJbX6+3o6JDL5TiONzQ0UBQVmRnLsp2dnfzCxDCspKREp9OFbGV7GIaZnZ2tr68nSRIAcOLECaPRGPKpTXb01dXV8vJyPswCAJRKZW1t7eDgoNVqDefIcx2WZZ1O59jYWFNT04EDB/h0vLi42GAwhPP45jntxMRETU2NwWDgPwIASJLMyMgoKCjIz8/XaDTx8fGxsbESiQTHcT5rZVnW7/fTNO3xeKxW6+LiosFgGB8fn56ettlsEEIcx0tLS1tbW/lFFnKtbG7GcdzIyEh9ff3Hjx+DKuA4HhMTQxAESZIEQQgEAhzHIYQsy9I0TVGU2+32er0URfF5Cv8USZLV1dV37tzhT+PCYqvBhBBOTU1VVlaKxeJw29oMoVBYVFTU29vr8/nCnwlcyDNHh8Px9OnTgoKCSP0AAFKp9OjRo0+ePDGbzVEcgYf1jm6xWN6+fdvX1zc+Pm6xWGia3vTCCwCA4zhJkmq1urCw8OTJk4WFhQqFIrqcJYI7FJ/PZzQaP336NDk5OT8/v7Ky4nK5AoGAQCCIiYlJSEhISUnJyMjIzs7WaDSJiYk4/lsXgZHdO+0m/+6d8P9mkfPvmv0HfL2v3IpRQCcAAAAASUVORK5CYII=|width=48,height=48)"
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 7,
- "character": 1
- },
- "end": {
- "line": 7,
- "character": 7
- }
- },
- "newText": "varepsilon"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__label.snap b/support/texlab/tests/it/snapshots/it__completion__latex__label.snap
deleted file mode 100644
index ffdfa17dd7..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__label.snap
+++ /dev/null
@@ -1,137 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 699
-expression: "complete_and_resolve(&server, uri, 4, 5)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "eq:bar",
- "kind": 1,
- "detail": "Equation (2)",
- "preselect": false,
- "sortText": "00 eq:bar Equation (2)",
- "filterText": "eq:bar Equation (2)",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 5
- },
- "end": {
- "line": 4,
- "character": 5
- }
- },
- "newText": "eq:bar"
- }
- },
- {
- "label": "eq:foo",
- "kind": 1,
- "detail": "Equation (1)",
- "preselect": false,
- "sortText": "01 eq:foo Equation (1)",
- "filterText": "eq:foo Equation (1)",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 5
- },
- "end": {
- "line": 4,
- "character": 5
- }
- },
- "newText": "eq:foo"
- }
- },
- {
- "label": "fig:baz",
- "kind": 1,
- "detail": "Figure 1",
- "documentation": "Baz",
- "preselect": false,
- "sortText": "02 fig:baz Figure 1: Baz",
- "filterText": "fig:baz Figure 1: Baz",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 5
- },
- "end": {
- "line": 4,
- "character": 5
- }
- },
- "newText": "fig:baz"
- }
- },
- {
- "label": "sec:bar",
- "kind": 1,
- "detail": "Section 2 (Bar)",
- "preselect": false,
- "sortText": "03 sec:bar Section 2 (Bar)",
- "filterText": "sec:bar Section 2 (Bar)",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 5
- },
- "end": {
- "line": 4,
- "character": 5
- }
- },
- "newText": "sec:bar"
- }
- },
- {
- "label": "sec:foo",
- "kind": 1,
- "detail": "Section 1 (Foo)",
- "preselect": false,
- "sortText": "04 sec:foo Section 1 (Foo)",
- "filterText": "sec:foo Section 1 (Foo)",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 5
- },
- "end": {
- "line": 4,
- "character": 5
- }
- },
- "newText": "sec:foo"
- }
- },
- {
- "label": "thm:foo",
- "kind": 1,
- "detail": "Lemma 1",
- "preselect": false,
- "sortText": "05 thm:foo Lemma 1",
- "filterText": "thm:foo Lemma 1",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 5
- },
- "end": {
- "line": 4,
- "character": 5
- }
- },
- "newText": "thm:foo"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__multi_line_key.snap b/support/texlab/tests/it/snapshots/it__completion__latex__multi_line_key.snap
deleted file mode 100644
index a3258523bd..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__multi_line_key.snap
+++ /dev/null
@@ -1,50 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 814
-expression: "complete_and_resolve(&server, uri, 0, 11)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "verbatim",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 11
- }
- },
- "newText": "verbatim"
- }
- },
- {
- "label": "verbatim*",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 0,
- "character": 7
- },
- "end": {
- "line": 0,
- "character": 11
- }
- },
- "newText": "verbatim*"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__package_command.snap b/support/texlab/tests/it/snapshots/it__completion__latex__package_command.snap
deleted file mode 100644
index 011038f894..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__package_command.snap
+++ /dev/null
@@ -1,34 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 529
-expression: "complete_and_resolve(&server, uri, 3, 7)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "varDelta",
- "kind": 1,
- "detail": "amsmath.sty",
- "documentation": {
- "kind": "markdown",
- "value": "![varDelta](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA4CAIAAAAjEXx0AAAF60lEQVR4nO2ab0gTfxzHb0PvNjfERqXOqWyIjaRCUUzc0FUoJaWooEUQPSiIIaFIiaKGYE96IIlECyrBCltqjSwVI9AHJiJapmu1NGkYkXP/0bndnx4Y8u1st+/Nbf5+4Ovh3efzude+9952dxuHoijk/wN3pwXYsasbSnZ1/TE/P3/69GmxWHz9+nWv18uumQovFovl3LlzXC4XQZC0tLSlpSVW7WFdXa/Xe/fu3d7eXpIkEQQxmUxGo5HVhPDpUhQ1ODjY1ta2vr6+scXlck1OTrKeEh7m5uaOHDlCO3pZWZnb7YYfEibdlZWV8vJyLpfL4XBAXblcbjKZ4OeEIwwej6ejo+Ply5cKheLAgQPgrqWlpS9fvsCPCrkuRVH9/f3t7e0ymaytrS0vLw/cyzq+ITv/f5iZmUlLSxOJRFqtliCIzs7OyMhIUKCkpAQ+vqHV/fXrV3FxMYZhTU1NG07T09P79+8HdVNTU79//w45MIS6bre7oaEBRdHS0lKz2byx0WKxHD16FNQVCATDw8OQM0OlSxBEd3f3nj17Dh8+PDs7u7kdx/ErV66AuhwO5+bNm5BjQ6U7NTUll8v37dun0+lIkgR3dXV1RUREgMZnzpxZW1uDGRsS3Z8/f546dYrH47W2tno8HtreDx8+xMbGgropKSmLi4swk4Ovu7a2du3aNRRFKysrLRbL1gKr1ZqTk0OL79DQEMzwIOsSBNHV1RUTE5ORkWEwGHzVqNVqWnxbWlpomQmH7sTEREpKSlxc3MDAAMPhHz16RPv0LSoqWl1d9Ts/mLo/fvwoKCjg8/m3bt3aGlmQmZmZuLg4UFcmky0sLPg9RNB0V1dXq6urURS9cOGCzWZjLrZarbm5uaBuVFTU69ev/R4lOLoEQTx48CA6Ojo7O3t+fh6mvqqqihbfGzdu+I1vcHTHxsakUqlYLH7z5g3MO4aiqCdPnqAoChqfPHnSb3yDoGsymVQqlUAgaG9v93q9kF2zs7Px8fGgrlQq9XtmtqvrcrnUajWKopcuXXI4HPCNNptNoVCAunw+v7+/n7lrW7o4jms0GqFQqFAoIL+WNiEI4urVq7T4NjY2MmdpW7qjo6NJSUlJSUkjIyMBtHd3d9PiW1hY6HK5GFoC111cXFQqlUKhUKPR4DgewIS5uTlafJOTk41GI0NLgLpOp/Py5csoiqrVaub1YMButyuVSlCXx+PpdDqGlkB0cRzv6OgQCAQqlYrVfSwNgiCqq6uRv6mvr2eIL2tdkiTfvn0rkUhkMtnY2FjArhtotVpafE+cOOF0On3Vs9ZdWFjIycmJjo5++PAhQRDbs6X0en1CQgKom5iY+PnzZ1/17HQdDsfFixcxDKupqYG5gPKL3W7Pz88HdTEMe/78ua96Fs8ZcBy/f//+06dP8/Pza2tr+Xw+fK8vhEJhZmYmuGV9fX18fJzy9YsJ5DKQJDk0NBQfH5+amjo5Obn9dd2kp6cHwzBQ6dixY77iC6trNBqzsrJiYmIeP368/ciCfPr0SSKRgLoSicTXnQiUrs1mO3/+PIZhdXV1kLes8DgcDpVKBepiGNbT0/PPYv/Z9Xq9Go2mt7e3oKCgpqaGx+NB5hISX/HdeGRNh/mlkyT56tWr2NjYgwcPvn//PrjruklfXx8tvnl5eXa7fWulH12DwZCeni4SiZ49ewZ53R0ABoMhMTER1BWLxXq9fmslk67FYqmoqODxeM3NzayecbPF6XQeP34c1EVRVKvVbq30mV2Px3Pnzh2dTldUVFRVVUU7WcElKioqKysLfLDu8XjevXv3j/j+8+WSJPnixYu9e/ceOnTo48ePROjp6+ujvYmVSqXVaqWJRdD1EQRBEL1e39jYaDabExISbt++TftBIRQsLy9Tf3+Tff369du3b+np6X/VbV1as9lcWloaBkVmUBS9d+8ezY2u63a7m5qaaBd1O8XZs2f96HZ2dopEop32/INUKvWjK5fLdzwGG3A4HIlEQtPjUL4u1f6T7P6fIZTs6oaS3/oaUpPRFnIuAAAAAElFTkSuQmCC|width=48,height=48)"
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 1
- },
- "end": {
- "line": 3,
- "character": 7
- }
- },
- "newText": "varDelta"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__package_environment.snap b/support/texlab/tests/it/snapshots/it__completion__latex__package_environment.snap
deleted file mode 100644
index 048cff4986..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__package_environment.snap
+++ /dev/null
@@ -1,150 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 552
-expression: "complete_and_resolve(&server, uri, 5, 6)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "align",
- "kind": 1,
- "detail": "amsmath.sty",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 5,
- "character": 5
- },
- "end": {
- "line": 5,
- "character": 9
- }
- },
- "newText": "align"
- }
- },
- {
- "label": "align*",
- "kind": 1,
- "detail": "amsmath.sty",
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 5,
- "character": 5
- },
- "end": {
- "line": 5,
- "character": 9
- }
- },
- "newText": "align*"
- }
- },
- {
- "label": "alignat",
- "kind": 1,
- "detail": "amsmath.sty",
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 5,
- "character": 5
- },
- "end": {
- "line": 5,
- "character": 9
- }
- },
- "newText": "alignat"
- }
- },
- {
- "label": "alignat*",
- "kind": 1,
- "detail": "amsmath.sty",
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 5,
- "character": 5
- },
- "end": {
- "line": 5,
- "character": 9
- }
- },
- "newText": "alignat*"
- }
- },
- {
- "label": "aligned",
- "kind": 1,
- "detail": "amsmath.sty",
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 5,
- "character": 5
- },
- "end": {
- "line": 5,
- "character": 9
- }
- },
- "newText": "aligned"
- }
- },
- {
- "label": "alignedat",
- "kind": 1,
- "detail": "amsmath.sty",
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 5,
- "character": 5
- },
- "end": {
- "line": 5,
- "character": 9
- }
- },
- "newText": "alignedat"
- }
- },
- {
- "label": "flalign",
- "kind": 1,
- "detail": "amsmath.sty",
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 5,
- "character": 5
- },
- "end": {
- "line": 5,
- "character": 9
- }
- },
- "newText": "flalign"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__package_import.snap b/support/texlab/tests/it/snapshots/it__completion__latex__package_import.snap
deleted file mode 100644
index 4b45166b80..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__package_import.snap
+++ /dev/null
@@ -1,102 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 586
-expression: "complete_and_resolve(&server, uri, 1, 15)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "amsmath",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "The package provides the principal packages in the AMS-LaTeX distribution. It adapts for use in LaTeX most of the mathematical features found in AMS-TeX; it is highly recommended as an adjunct to serious mathematical typesetting in LaTeX. When amsmath is loaded, AMS-LaTeX packages amsbsy (for bold symbols), amsopn (for operator names) and amstext (for text embedded in mathematics) are also loaded. amsmath is part of the LaTeX required distribution; however, several contributed packages add still further to its appeal; examples are empheq, which provides functions for decorating and highlighting mathematics, and ntheorem, for specifying theorem (and similar) definitions."
- },
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 12
- },
- "end": {
- "line": 1,
- "character": 19
- }
- },
- "newText": "amsmath"
- }
- },
- {
- "label": "lwarp-amsmath",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "This package converts LaTeX to HTML by using LaTeX to process the user's document and generate HTML tags. External utility programs are only used for the final conversion of text and images. Math may be represented by SVG files or MathJax. Hundreds of LaTeX packages are supported, and their load order is automatically verified. Documents may be produced by LaTeX, LuaLaTeX, XeLaTeX, and by several CJK engines, classes, and packages. A texlua script automates compilation, index, glossary, and batch image processing, and also supports latexmk. Configuration is semi-automatic at the first manual compile. Support files are self-generated. Print and HTML versions of each document may coexist. Assistance is provided for HTML import into EPUB conversion software and word processors. Requirements include the commonly-available Poppler utilities, and Perl. Detailed installation instructions are included for each of the major operating systems and TeX distributions. A quick-start tutorial is provided."
- },
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 12
- },
- "end": {
- "line": 1,
- "character": 19
- }
- },
- "newText": "lwarp-amsmath"
- }
- },
- {
- "label": "simurgh-amsmath",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "The package provides an automatic and unified interface for Parsi typesetting in LaTeX, using the LuaTeX engine. The project to produce this system is dedicated to Ferdowsi The Great."
- },
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 12
- },
- "end": {
- "line": 1,
- "character": 19
- }
- },
- "newText": "simurgh-amsmath"
- }
- },
- {
- "label": "onlyamsmath",
- "kind": 1,
- "documentation": {
- "kind": "plaintext",
- "value": "This package inhibits the usage of plain TeX and (on demand) of standard LaTeX mathematics environments. This is useful for class writers who want to encourage their users to use the environments provided by the amsmath package."
- },
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 12
- },
- "end": {
- "line": 1,
- "character": 19
- }
- },
- "newText": "onlyamsmath"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__pgf_library.snap b/support/texlab/tests/it/snapshots/it__completion__latex__pgf_library.snap
deleted file mode 100644
index 23713c6a9e..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__pgf_library.snap
+++ /dev/null
@@ -1,143 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 753
-expression: "complete_and_resolve(&server, uri, 1, 15)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "arrows",
- "kind": 1,
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 15
- }
- },
- "newText": "arrows"
- }
- },
- {
- "label": "arrows.meta",
- "kind": 1,
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 15
- }
- },
- "newText": "arrows.meta"
- }
- },
- {
- "label": "arrows.spaced",
- "kind": 1,
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 15
- }
- },
- "newText": "arrows.spaced"
- }
- },
- {
- "label": "curvilinear",
- "kind": 1,
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 15
- }
- },
- "newText": "curvilinear"
- }
- },
- {
- "label": "datavisualization.barcharts",
- "kind": 1,
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 15
- }
- },
- "newText": "datavisualization.barcharts"
- }
- },
- {
- "label": "datavisualization.formats.functions",
- "kind": 1,
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 15
- }
- },
- "newText": "datavisualization.formats.functions"
- }
- },
- {
- "label": "datavisualization.polar",
- "kind": 1,
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 15
- },
- "end": {
- "line": 1,
- "character": 15
- }
- },
- "newText": "datavisualization.polar"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__preselect_environment.snap b/support/texlab/tests/it/snapshots/it__completion__latex__preselect_environment.snap
deleted file mode 100644
index 29d6f5bac6..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__preselect_environment.snap
+++ /dev/null
@@ -1,150 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 716
-expression: "complete_and_resolve(&server, uri, 1, 5)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "document",
- "kind": 1,
- "detail": "built-in",
- "preselect": true,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 5
- },
- "end": {
- "line": 1,
- "character": 5
- }
- },
- "newText": "document"
- }
- },
- {
- "label": "abstract",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 5
- },
- "end": {
- "line": 1,
- "character": 5
- }
- },
- "newText": "abstract"
- }
- },
- {
- "label": "array",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 5
- },
- "end": {
- "line": 1,
- "character": 5
- }
- },
- "newText": "array"
- }
- },
- {
- "label": "center",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 5
- },
- "end": {
- "line": 1,
- "character": 5
- }
- },
- "newText": "center"
- }
- },
- {
- "label": "csname",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 5
- },
- "end": {
- "line": 1,
- "character": 5
- }
- },
- "newText": "csname"
- }
- },
- {
- "label": "description",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 5
- },
- "end": {
- "line": 1,
- "character": 5
- }
- },
- "newText": "description"
- }
- },
- {
- "label": "displaymath",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "06",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 5
- },
- "end": {
- "line": 1,
- "character": 5
- }
- },
- "newText": "displaymath"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__theorem_environment.snap b/support/texlab/tests/it/snapshots/it__completion__latex__theorem_environment.snap
deleted file mode 100644
index 766d6fe526..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__theorem_environment.snap
+++ /dev/null
@@ -1,130 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 735
-expression: "complete_and_resolve(&server, uri, 3, 8)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "figure",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 7
- },
- "end": {
- "line": 3,
- "character": 8
- }
- },
- "newText": "figure"
- }
- },
- {
- "label": "filecontents",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 7
- },
- "end": {
- "line": 3,
- "character": 8
- }
- },
- "newText": "filecontents"
- }
- },
- {
- "label": "flushleft",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "02",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 7
- },
- "end": {
- "line": 3,
- "character": 8
- }
- },
- "newText": "flushleft"
- }
- },
- {
- "label": "flushright",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "03",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 7
- },
- "end": {
- "line": 3,
- "character": 8
- }
- },
- "newText": "flushright"
- }
- },
- {
- "label": "foo",
- "kind": 1,
- "detail": "user-defined",
- "preselect": false,
- "sortText": "04",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 7
- },
- "end": {
- "line": 3,
- "character": 8
- }
- },
- "newText": "foo"
- }
- },
- {
- "label": "proof",
- "kind": 1,
- "detail": "amsthm.sty",
- "preselect": false,
- "sortText": "05",
- "textEdit": {
- "range": {
- "start": {
- "line": 3,
- "character": 7
- },
- "end": {
- "line": 3,
- "character": 8
- }
- },
- "newText": "proof"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__user_command.snap b/support/texlab/tests/it/snapshots/it__completion__latex__user_command.snap
deleted file mode 100644
index 09efd12c52..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__user_command.snap
+++ /dev/null
@@ -1,30 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 773
-expression: "complete_and_resolve(&server, uri, 1, 3)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "foobar",
- "kind": 1,
- "detail": "user-defined",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 1,
- "character": 1
- },
- "end": {
- "line": 1,
- "character": 6
- }
- },
- "newText": "foobar"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__completion__latex__user_environment.snap b/support/texlab/tests/it/snapshots/it__completion__latex__user_environment.snap
deleted file mode 100644
index 8e3e866d5f..0000000000
--- a/support/texlab/tests/it/snapshots/it__completion__latex__user_environment.snap
+++ /dev/null
@@ -1,50 +0,0 @@
----
-source: tests/it/completion.rs
-assertion_line: 793
-expression: "complete_and_resolve(&server, uri, 4, 8)?"
----
-{
- "isIncomplete": false,
- "items": [
- {
- "label": "foo",
- "kind": 1,
- "detail": "user-defined",
- "preselect": false,
- "sortText": "00",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 7
- },
- "end": {
- "line": 4,
- "character": 9
- }
- },
- "newText": "foo"
- }
- },
- {
- "label": "filecontents",
- "kind": 1,
- "detail": "built-in",
- "preselect": false,
- "sortText": "01",
- "textEdit": {
- "range": {
- "start": {
- "line": 4,
- "character": 7
- },
- "end": {
- "line": 4,
- "character": 9
- }
- },
- "newText": "filecontents"
- }
- }
- ]
-}
diff --git a/support/texlab/tests/it/snapshots/it__hover__empty_bibtex_document.snap b/support/texlab/tests/it/snapshots/it__hover__empty_bibtex_document.snap
deleted file mode 100644
index 0b36355e00..0000000000
--- a/support/texlab/tests/it/snapshots/it__hover__empty_bibtex_document.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: tests/it/hover.rs
-assertion_line: 12
-expression: "server.hover(uri, 0, 0)?"
----
-null
diff --git a/support/texlab/tests/it/snapshots/it__hover__empty_labtex_document.snap b/support/texlab/tests/it/snapshots/it__hover__empty_labtex_document.snap
deleted file mode 100644
index c653b05832..0000000000
--- a/support/texlab/tests/it/snapshots/it__hover__empty_labtex_document.snap
+++ /dev/null
@@ -1,6 +0,0 @@
----
-source: tests/it/hover.rs
-assertion_line: 21
-expression: "server.hover(uri, 0, 0)?"
----
-null
diff --git a/support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file.snap b/support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file.snap
deleted file mode 100644
index 6bc9b28a75..0000000000
--- a/support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file.snap
+++ /dev/null
@@ -1,21 +0,0 @@
----
-source: tests/it/hover.rs
-assertion_line: 51
-expression: "server.hover(uri, 3, 8)?"
----
-{
- "contents": {
- "kind": "plaintext",
- "value": "Lemma"
- },
- "range": {
- "start": {
- "line": 3,
- "character": 5
- },
- "end": {
- "line": 3,
- "character": 12
- }
- }
-}
diff --git a/support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file_mumber.snap b/support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file_mumber.snap
deleted file mode 100644
index b7515e7d43..0000000000
--- a/support/texlab/tests/it/snapshots/it__hover__label_theorem_child_file_mumber.snap
+++ /dev/null
@@ -1,21 +0,0 @@
----
-source: tests/it/hover.rs
-assertion_line: 87
-expression: "server.hover(uri, 3, 8)?"
----
-{
- "contents": {
- "kind": "plaintext",
- "value": "Lemma 1 (Foo)"
- },
- "range": {
- "start": {
- "line": 3,
- "character": 5
- },
- "end": {
- "line": 3,
- "character": 12
- }
- }
-}
diff --git a/support/texlab/tests/it/snapshots/it__issues__510_completion_with_unmatched_braces.snap b/support/texlab/tests/it/snapshots/it__issues__510_completion_with_unmatched_braces.snap
deleted file mode 100644
index 3895881165..0000000000
--- a/support/texlab/tests/it/snapshots/it__issues__510_completion_with_unmatched_braces.snap
+++ /dev/null
@@ -1,57 +0,0 @@
----
-source: tests/it/issues.rs
-assertion_line: 58
-expression: "server.complete(uri, 1, 7)?"
----
-CompletionList {
- is_incomplete: false,
- items: [
- CompletionItem {
- label: "eq:foo",
- kind: Some(
- Text,
- ),
- detail: None,
- documentation: None,
- deprecated: None,
- preselect: Some(
- false,
- ),
- sort_text: Some(
- "00 eq:foo",
- ),
- filter_text: Some(
- "eq:foo",
- ),
- insert_text: None,
- insert_text_format: None,
- insert_text_mode: None,
- text_edit: Some(
- Edit(
- TextEdit {
- range: Range {
- start: Position {
- line: 1,
- character: 5,
- },
- end: Position {
- line: 1,
- character: 7,
- },
- },
- new_text: "eq:foo",
- },
- ),
- ),
- additional_text_edits: None,
- command: None,
- commit_characters: None,
- data: Some(
- String(
- "label",
- ),
- ),
- tags: None,
- },
- ],
-}
diff --git a/support/texlab/tests/it/workspace_symbol.rs b/support/texlab/tests/it/workspace_symbol.rs
deleted file mode 100644
index 4083b32933..0000000000
--- a/support/texlab/tests/it/workspace_symbol.rs
+++ /dev/null
@@ -1,119 +0,0 @@
-use anyhow::Result;
-use insta::assert_json_snapshot;
-use lsp_types::{ClientCapabilities, SymbolInformation, Url};
-
-use crate::common::ServerTester;
-
-fn run(query: &str) -> Result<Vec<SymbolInformation>> {
- let server = ServerTester::launch_new_instance()?;
- server.initialize(ClientCapabilities::default(), None)?;
- let uri = Url::parse("http://www.example.com/main.tex")?;
- server.open_memory(
- uri,
- r#"
- \documentclass{article}
- \usepackage{caption}
- \usepackage{amsmath}
- \usepackage{amsthm}
-
- \begin{document}
-
- \section{Foo}\label{sec:foo}
-
- \begin{equation}\label{eq:foo}
- Foo
- \end{equation}
-
- \section{Bar}\label{sec:bar}
-
- \begin{figure}
- Bar
- \caption{Bar}
- \label{fig:bar}
- \end{figure}
-
- \section{Baz}\label{sec:baz}
-
- \begin{enumerate}
- \item\label{itm:foo} Foo
- \item\label{itm:bar} Bar
- \item\label{itm:baz} Baz
- \end{enumerate}
-
- \section{Qux}\label{sec:qux}
-
- \newtheorem{lemma}{Lemma}
-
- \begin{lemma}[Qux]\label{thm:qux}
- Qux
- \end{lemma}
-
- \end{document}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.aux")?,
- r#"
- \relax
- \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Bar\relax }}{1}\protected@file@percent }
- \providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
- \newlabel{fig:bar}{{1}{1}}
- \@writefile{toc}{\contentsline {section}{\numberline {1}Foo}{1}\protected@file@percent }
- \newlabel{sec:foo}{{1}{1}}
- \newlabel{eq:foo}{{1}{1}}
- \@writefile{toc}{\contentsline {section}{\numberline {2}Bar}{1}\protected@file@percent }
- \newlabel{sec:bar}{{2}{1}}
- \@writefile{toc}{\contentsline {section}{\numberline {3}Baz}{1}\protected@file@percent }
- \newlabel{sec:baz}{{3}{1}}
- \newlabel{itm:foo}{{1}{1}}
- \newlabel{itm:bar}{{2}{1}}
- \newlabel{itm:baz}{{3}{1}}
- \@writefile{toc}{\contentsline {section}{\numberline {4}Qux}{1}\protected@file@percent }
- \newlabel{sec:qux}{{4}{1}}
- \newlabel{thm:qux}{{1}{1}}
- "#,
- "latex",
- )?;
- server.open_memory(
- Url::parse("http://www.example.com/main.bib")?,
- r#"
- @article{foo,}
-
- @string{bar = "bar"}
- "#,
- "bibtex",
- )?;
-
- server.find_workspace_symbols(query)
-}
-
-#[test]
-fn test_filter_type_section() -> Result<()> {
- assert_json_snapshot!(run("section")?);
- Ok(())
-}
-
-#[test]
-fn test_filter_type_figure() -> Result<()> {
- assert_json_snapshot!(run("figure")?);
- Ok(())
-}
-
-#[test]
-fn test_filter_type_item() -> Result<()> {
- assert_json_snapshot!(run("item")?);
- Ok(())
-}
-
-#[test]
-fn test_filter_type_math() -> Result<()> {
- assert_json_snapshot!(run("math")?);
- Ok(())
-}
-
-#[test]
-fn test_filter_bibtex() -> Result<()> {
- assert_json_snapshot!(run("bibtex")?);
- Ok(())
-}
diff --git a/support/texlab/texlab.pdf b/support/texlab/texlab.pdf
index 4c9134ec2c..68e68c312d 100644
--- a/support/texlab/texlab.pdf
+++ b/support/texlab/texlab.pdf
Binary files differ
diff --git a/support/texlab/texlab.tex b/support/texlab/texlab.tex
index 7faff8b122..632325bbc5 100644
--- a/support/texlab/texlab.tex
+++ b/support/texlab/texlab.tex
@@ -72,7 +72,7 @@ There are various ways to install TexLab:
\subsection{Options}
\begin{itemize}
- \item \texttt{--log-file <FILE>} WRite the logging output to \texttt{FILE}
+ \item \texttt{--log-file <FILE>} Write the logging output to \texttt{FILE}
\end{itemize}
\end{document} \ No newline at end of file
diff --git a/systems/mac/mactex/ExtrasFolder.pdf b/systems/mac/mactex/ExtrasFolder.pdf
index 3064b0580a..d1a7a15840 100644
--- a/systems/mac/mactex/ExtrasFolder.pdf
+++ b/systems/mac/mactex/ExtrasFolder.pdf
Binary files differ
diff --git a/systems/mac/mactex/Licenses.txt b/systems/mac/mactex/Licenses.txt
index 1a8dd6010c..c1a83d5e2b 100644
--- a/systems/mac/mactex/Licenses.txt
+++ b/systems/mac/mactex/Licenses.txt
@@ -1,6 +1,6 @@
$Id: Licenses.txt,v 1.14 2007/02/28 14:23:19 herbs Exp $
-Brief summary of the licensing of the various applications included as of 2022/06/10
+Brief summary of the licensing of the various applications included as of 2022/06/12
Aquamacs Emacs (Intel) - 3.6 - gpl - http://aquamacs.org/
Aquatkbibtex - 1.3 - gpl - http://aquatkbibtex.sourceforge.net/
@@ -17,4 +17,4 @@ Skim (10.10+) - 1.6.10 - bsd - http://skim-app.sourceforge
Symbols Widget - 1.4.3 - gpl - http://vocaro.com/trevor/software/widgets/
TeX Live Utility (10.9+) - 1.53 - bsd - https://github.com/amaxwell/tlutility/releases
TexMaker (10.13+) - 5.1.3 - gpl - http://www.xm1math.net/texmaker/
-TeXShop (10.12+) - 4.74 - gpl - http://www.uoregon.edu/~koch/texshop/texshop.html
+TeXShop (10.12+) - 4.75 - gpl - http://www.uoregon.edu/~koch/texshop/texshop.html
diff --git a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
index 52306bfaf6..e283e90a25 100644
--- a/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
+++ b/systems/texlive/tlnet/tlpkg/installer/ctan-mirrors.pl
@@ -19,7 +19,6 @@ $mirrors = {
'https://mirrors.hit.edu.cn/CTAN/' => 1,
'https://mirrors.nju.edu.cn/CTAN/' => 1,
'https://mirrors.nwafu.edu.cn/ctan/' => 1,
- 'https://mirrors.sjtug.sjtu.edu.cn/ctan/' => 1,
'https://mirrors.sustech.edu.cn/CTAN/' => 1,
'https://mirrors.tuna.tsinghua.edu.cn/CTAN/' => 1,
'https://mirrors.ustc.edu.cn/CTAN/' => 1,
@@ -50,6 +49,7 @@ $mirrors = {
'https://cran.asia/tex/' => 1,
'https://ftp.harukasan.org/CTAN/' => 1,
'https://ftp.kaist.ac.kr/pub/tex-archive/' => 1,
+ 'https://mirror.kakao.com/CTAN/' => 1,
'https://mirror.navercorp.com/CTAN/' => 1,
'https://mirror.yongbok.net/ctan/' => 1,
},
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
index b2709901e0..52a98a5121 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb
@@ -26,7 +26,7 @@ depend container_split_src_files/1
depend frozen/0
depend minrelease/2016
depend release/2022
-depend revision/63552
+depend revision/63567
name 00texlive.image
category TLCore
@@ -4583,7 +4583,7 @@ depend setting_available_architectures:aarch64-linux amd64-freebsd amd64-netbsd
name 00texlive.installer
category TLCore
-revision 63544
+revision 63554
shortdesc TeX Live standalone installer package
longdesc This package defines the files to go into the installer
longdesc archives (install-tl-unx.tar.gz, install-tl.zip) built by the
@@ -58915,7 +58915,7 @@ binfiles arch=x86_64-solaris size=1
name cjk-ko
category Package
-revision 60079
+revision 63561
shortdesc Extension of the CJK package for Korean typesetting
relocated 1
longdesc The package supports typesetting UTF-8-encoded modern Korean
@@ -58924,10 +58924,10 @@ longdesc some enhanced features focused on Korean typesetting culture,
longdesc one of them being allowing line-break between Latin and CJK
longdesc characters. The package requires nanumtype1 fonts.
depend cjk
-containersize 9040
-containerchecksum 7a41d66a62eac6cd97479da22481c57c85f12f65ffe18995a22ec56a64b03d95aee3e6b3b0d0edcfeab89b3f3d64e95f26b8910905b9085b55c7f371b1b9c1b7
-doccontainersize 160388
-doccontainerchecksum 4d81968baa644ee9966e2498bcb788920b013d0ffbbaf3df8b09b40c6b2b286a5e749d19c11c0f5828432b376f3acc480ea5eb0c8fe8db9ba2413c7077a64b39
+containersize 8652
+containerchecksum be65ef03300b8fccc4012ece68570a86797e36267ea2f531fead77659cf7bf2a315cca1a3e3386f8d1dc09cbb3b44b20dafb3e0e0cbd53bddb1a368c984937b0
+doccontainersize 161584
+doccontainerchecksum 3ffcae00a4a0dcd175fcf864c3c0c578d7926917216b4a785c0a46074ef013eafe9458ba9010d14f081c63ab4ee0941d0597dace373eb178369de9caa210a16b
docfiles size=49
RELOC/doc/latex/cjk-ko/ChangeLog
RELOC/doc/latex/cjk-ko/README details="Readme"
@@ -58944,7 +58944,7 @@ catalogue-contact-repository https://github.com/dohyunkim/cjk-ko
catalogue-ctan /language/korean/cjk-ko
catalogue-license gpl lppl pd
catalogue-topics korean
-catalogue-version 2.2
+catalogue-version 2.3
name cjkpunct
category Package
@@ -171602,33 +171602,33 @@ catalogue-version 0.2
name latexbug
category Package
-revision 60609
+revision 63564
shortdesc Bug-classification for LaTeX related bugs
relocated 1
longdesc The package is written in order to help identifying the
longdesc rightful addressee for a bug report. The LaTeX team asks that
longdesc it will be loaded in any test file that is intended to be sent
longdesc to the LaTeX bug database as part of a bug report.
-containersize 5396
-containerchecksum 512f622e48241d25fe38a0c64c9edcf4d20780beb7bfe9fe885e233e4ad880342d60d5b9c1d0f9b1243b51775621afe22b6f289a47fb184eab9b574cc976a800
-doccontainersize 207368
-doccontainerchecksum 2d62931897b2117952de92536a80126ee696675dff7124750a1c332a74a9931051fb4c7a338e87957d044847b4a0023e779979c6fe67e38636367f7b92789ba8
-docfiles size=54
+containersize 7988
+containerchecksum 7795671297ee01e105b06da56b2fc7037eb8ac1b87d8512a61b6feec1e9952f094b11d3d431034aa1a924c7e2ee2173918b44ce8a7cdea6ea4f5d50d74419b58
+doccontainersize 218992
+doccontainerchecksum 7acf6ac6c3dd8c0bb041424fcdf86ac3f603511855bd26f5375ac87e36c92417623f54094986039c96b83cf989778b0efdaac2c6badb5e309bf18c1f4cfd22cb
+docfiles size=57
RELOC/doc/latex/latexbug/README.md details="Readme"
RELOC/doc/latex/latexbug/changes.txt
RELOC/doc/latex/latexbug/latexbug.pdf details="Package documentation"
-srccontainersize 9996
-srccontainerchecksum 6233bfb8ab6b417236d9796f2595fe54373c14632039fb30c98885bbbdb4fa1578a8d101e7b41624010ddc7010c0bd3ef9db604cc759e2ab9ca35d38798f6d2c
-srcfiles size=10
+srccontainersize 12676
+srccontainerchecksum 117dc4a964155cb99e5e182dc8e66d611cfb2234b06da09af3dc993bd35da1f60adef7c56d6247d1d9dec49c27a1cdf6c69c354f2bd187a9e654253423644a2f
+srcfiles size=16
RELOC/source/latex/latexbug/latexbug.dtx
RELOC/source/latex/latexbug/latexbug.ins
-runfiles size=6
+runfiles size=11
RELOC/tex/latex/latexbug/latexbug.sty
catalogue-contact-repository https://github.com/latex3/latexbug
catalogue-ctan /macros/latex/required/latexbug
catalogue-license lppl1.3c
catalogue-topics latex-doc latex-devel
-catalogue-version 1.0l
+catalogue-version 1.0m
name latexcheat
category Package
@@ -192637,7 +192637,7 @@ catalogue-version 2.0b
name ly1
category Package
-revision 47848
+revision 63565
shortdesc Support for LY1 LaTeX encoding
relocated 1
longdesc The Y&Y 'texnansi' (TeX and ANSI, for Microsoft interpretations
@@ -192646,12 +192646,12 @@ longdesc the company; it is known in the LaTeX scheme of things as LY1
longdesc encoding. This bundle includes metrics and LaTeX macros to use
longdesc the basic three (Times, Helvetica and Courier) Adobe Type 1
longdesc fonts in LaTeX using LY1 encoding.
-containersize 54896
-containerchecksum 8b170d04aef1c95b345440b60e5aca56442374d897e4a64ea4fefff4506e133d4c06350b5ea86a81eb9a015a1fe32b2bd8c433401a9bf6433e279cc700d0b8ae
-doccontainersize 3632
-doccontainerchecksum c1bbaff6124984b0c582cb86e3e8f729e2b2c256808dc621de2c12da94c7b67c673c70fbd3d17c723292a90c60638e32fd79ece9915648347a7469caea040d7b
+containersize 54900
+containerchecksum 79ec3f1971587a3266d3351cf4d97e44d7871ace695c7f229b92c819f1334c2032a3c906a2e7e74e98fea5f01ef4dabac9c2dbdbecf68f0d5512c637288e8297
+doccontainersize 3652
+doccontainerchecksum c1a39c96000fa3e929ab6518acb71c26bb06179cf06af4f4eb1f2bde0d21816e108c6a89dfa2f7dd71f95887a37d532bb2914a03732dfe4080541ffa204e8e43
docfiles size=2
- RELOC/doc/fonts/ly1/README details="Outline of usage"
+ RELOC/doc/latex/ly1/README.md details="Outline of usage"
runfiles size=104
RELOC/fonts/enc/dvips/ly1/texnansi.enc
RELOC/fonts/map/dvips/ly1/pag8y.map
@@ -192726,7 +192726,7 @@ runfiles size=104
RELOC/tex/plain/ly1/texnansi.tex
catalogue-ctan /fonts/psfonts/ly1
catalogue-license lppl
-catalogue-topics font-supp
+catalogue-topics font-supp fontenc
name lyluatex
category Package
@@ -197757,16 +197757,16 @@ catalogue-version 0.5
name mcf2graph
category Package
-revision 63258
+revision 63559
shortdesc Draw chemical structure diagrams with MetaPost
relocated 1
longdesc The Molecular Coding Format (MCF) is a linear notation for
longdesc describing chemical structure diagrams. This package converts
longdesc MCF to graphic files using MetaPost.
containersize 448
-containerchecksum a679843f33094b0491e20aee07f18a9c5f96159b559ccc4003f549fbb7109df8d861cabe28b96056be1354715d1939b64c585a7b84b273357df7b157a57a82be
-doccontainersize 1038060
-doccontainerchecksum 7d8a82a258d250ac8509e81db3bb5dcabc146dbebca92baa845ccd42adbb8734a1408cbab2da1f6755016a7b2df4af03976f6ce024bd530cdf6a399018b0b41a
+containerchecksum 0bd8cab548f751e1cf2b559d3564694ee2b1303512076abaff9978fde87d3715a2f6549e1760dfd8c6734a565f2cdc4ffef7a46b1cc00adf1302a780ada84c64
+doccontainersize 1038020
+doccontainerchecksum 18f46b8c32ea4702c44eaa46d0cdf15507fff0dd9961290a7e9752d74a2cceea2df9107e8c0881b3377ff8f6308cbd6eeaa8d46c20614414dc74fd446edb2fac
docfiles size=335
RELOC/doc/metapost/mcf2graph/CHANGELOG
RELOC/doc/metapost/mcf2graph/README details="Readme"
@@ -197785,7 +197785,7 @@ docfiles size=335
catalogue-ctan /graphics/mcf2graph
catalogue-license mit
catalogue-topics graphics graphics-mpost chemistry
-catalogue-version 4.84
+catalogue-version 4.85
name mcite
category Package
@@ -294221,16 +294221,16 @@ catalogue-topics documentation polish-doc
name tex-vpat
category Package
-revision 61810
+revision 63560
shortdesc TeX Accessibility Conformance Report
relocated 1
longdesc TeX Accessibility Conformance Report based on ITI VPAT(R)
longdesc guidelines. Currently it covers TeX Live. Other distributions
longdesc can be added if needed.
-containersize 512
-containerchecksum 748b2918120012869223afd9516197992485078eb10b6c9406069376cb2b7afdd74fa848ad0a6e3b85c8e89f869283ffe89d9add89d64d388eb83fd02f37874d
-doccontainersize 184448
-doccontainerchecksum f52fcf79d04eca3dfb3351da667efa8b80be894400490048da3ec1e39d973fb1f17fb126381a6f5f04269da6f5f880607a6410931fbccc2d8d3ff1f59a89f934
+containersize 516
+containerchecksum c215b5745c023c9c79694c61d6ac961356fa921b671e774e3adbd75f0445682255570c7e269cc425bd8745304f1df4acc543bc22bd12ab61a594c3f34ca55628
+doccontainersize 184164
+doccontainerchecksum 87a5870f9b313548e8a8f8f2ec757bb287d0d9bafd1461067ab3d767874c7dd7b482d19557b48f43790b644506b7f1106a68bebf1eb7980479fd5133fadfbf6d
docfiles size=95
RELOC/doc/latex/tex-vpat/LICENSE
RELOC/doc/latex/tex-vpat/Makefile
@@ -294242,10 +294242,10 @@ docfiles size=95
catalogue-contact-bugs https://github.com/TeXUsersGroup/TeX-VPAT/issues
catalogue-contact-development https://github.com/TeXUsersGroup/TeX-VPAT/pulls
catalogue-contact-repository https://github.com/TeXUsersGroup/TeX-VPAT
-catalogue-ctan /documentation/tex-vpat
+catalogue-ctan /info/tex-vpat
catalogue-license cc-by-3
catalogue-topics std-conform std-spec
-catalogue-version 2.0
+catalogue-version 2.1, June 2022
name tex.aarch64-linux
category TLCore
@@ -304976,14 +304976,14 @@ docfiles size=544
name texlive-msg-translations
category TLCore
-revision 63545
+revision 63555
shortdesc translations of the TeX Live installer and TeX Live Manager
longdesc This package contains the translated messages of the TeX Live
longdesc installer and TeX Live Manager. For information on creating or
longdesc updating translations, see
longdesc http://tug.org/texlive/doc.html#install-tl-xlate.
-containersize 146900
-containerchecksum 8267d4d571f9eff9a4aecdaebfc5288e30ad8d6518ad508418add9f245932ab830a22e15b485e87ca0c6aff7aae665cc154af9bf2ad0c5fba9554f34028194d2
+containersize 146956
+containerchecksum 057f01a14f9504457af2d944e4bd85d3787127967f1fd0309b493b0ed21d7be8ae24228c4b3e42e5ba0755bbca84fd70d07ee72bca5b93de60b1b7beed7e8d1a
runfiles size=373
tlpkg/translations/README
tlpkg/translations/cs.po
@@ -305045,7 +305045,7 @@ docfiles size=376
name texlive-scripts
category TLCore
-revision 63544
+revision 63554
shortdesc TeX Live infrastructure programs
longdesc Includes install-tl, tl-portable, rungs, etc.; not needed for
longdesc tlmgr to run but still ours. Not included in tlcritical.
@@ -305053,10 +305053,10 @@ depend texlive-scripts.ARCH
depend texlive.infra
execute addMap mathpple.map
postaction shortcut type=menu name="TeX Live command-line" cmd=TEXDIR/tlpkg/installer/tl-cmd.bat
-containersize 109792
-containerchecksum 3deb0eee6d49e1600bbbb65215c1f607ac7ee6eb085f2f8252bb34bacf0809d413254fb0249119933bc81ae6ef5f54e91d6b629cf81fda3a3eb7c8447cdea402
-doccontainersize 407048
-doccontainerchecksum e1c02cdfb191905ecddc36232d31f4bf43bc627f5659093f7ded81d364bd55e573fae973409c234bdb6de9052ff5c0ff009ea7a4d48f45abc7a0631eb96fd47f
+containersize 109796
+containerchecksum 1d7845c0a35df926c1b105584f4d8d109414b8d005f8bfeac48b428f0ed062836153303641a4baaa894233d4bd01f4dc85e4ada19b66fb7e6e4b2ecd9af0dd02
+doccontainersize 407176
+doccontainerchecksum 1bc6abe725d0016534611c1f726c2c2356fe2f8804c40ef5a739a28453dae92960e747ea9cfd7f56e8332b350e1cd36c334c418469d0bcdb0e57994701909ec3
docfiles size=507
doc.html
texmf-dist/doc/man/man1/fmtutil-sys.1
@@ -341416,7 +341416,7 @@ catalogue-version 0.5
name xcolor
category Package
-revision 60925
+revision 63563
shortdesc Driver-independent color extensions for LaTeX and pdfLaTeX
relocated 1
longdesc The package starts from the basic facilities of the color
@@ -341428,13 +341428,13 @@ longdesc color models. Additionally, there is a command for alternating
longdesc row colors plus repeated non-aligned material (like horizontal
longdesc lines) in tables. Colors can be mixed like
longdesc \color{red!30!green!40!blue}.
-containersize 17364
-containerchecksum 399dc73f97a9c8ca1eae50f0f30fc900427adb48cecc4c01ed6609f741e267b6494ef40f2ad29a40d0257eddc43e7e27e82e42b9bead66f9a87468890c372525
-doccontainersize 925936
-doccontainerchecksum 0fe7912bd9a47a16bd17e72fec9e4d06d88a579bf3ab7e3602f110c23f628bf594406a2d83f221fcc826a89da9bd0503de86387e90e70d34981d48c30080b15d
-docfiles size=247
+containersize 17404
+containerchecksum 936241be2d7eebec5cb7e1edf54a9522a14d58d8a4d2b339b912b08054fafa33e2cc158360aed9fe1db88db23d68b17e989ad70b90d0fbb04131676ad981e3c8
+doccontainersize 929652
+doccontainerchecksum 9129fa37573a55ebd878e6c5b52ee3a449375e55dd0a87bc85620b12ae9fbbdfadb92e65e5cf3f8e3e7fbd5512107b55d017f8df8db317c50c0f0248dab4399a
+docfiles size=249
RELOC/doc/latex/xcolor/ChangeLog
- RELOC/doc/latex/xcolor/README details="Readme"
+ RELOC/doc/latex/xcolor/README.md details="Readme"
RELOC/doc/latex/xcolor/xcolor.lox
RELOC/doc/latex/xcolor/xcolor.pdf details="Package documentation"
RELOC/doc/latex/xcolor/xcolor1.tex
@@ -341442,8 +341442,8 @@ docfiles size=247
RELOC/doc/latex/xcolor/xcolor2.tex
RELOC/doc/latex/xcolor/xcolor3.tex
RELOC/doc/latex/xcolor/xcolor4.tex
-srccontainersize 77232
-srccontainerchecksum fad460b174fe565d975ab0250cced26d1272f564033c9320bfe1118f03509058a4b7ded71535441b0981813b00be1ab07d3ce0b5765307d12333226f5414522b
+srccontainersize 77416
+srccontainerchecksum 4e3f5af10fe8797073f78e7b0d8b7e89e43427209834c4211fd36d0b3594975c13577a806f090e8153c12e00896c6c5d34ce2be8c1aeb123568b0b5c08b89880
srcfiles size=85
RELOC/source/latex/xcolor/xcolor.dtx
RELOC/source/latex/xcolor/xcolor.ins
@@ -341455,9 +341455,9 @@ runfiles size=20
catalogue-contact-bugs https://github.com/latex3/xcolor/issues
catalogue-contact-home https://github.com/latex3/xcolor
catalogue-ctan /macros/latex/contrib/xcolor
-catalogue-license lppl1.2
+catalogue-license lppl1.3c
catalogue-topics colour
-catalogue-version 2.13
+catalogue-version 2.14
name xcolor-material
category Package
@@ -344312,7 +344312,7 @@ binfiles arch=x86_64-linux size=1272
name xint
category Package
-revision 63436
+revision 63562
shortdesc Expandable operations on long numbers
relocated 1
longdesc The xint bundle main modules are: xinttools utilities of
@@ -344337,18 +344337,18 @@ longdesc display of continued fractions). All computations are
longdesc compatible with expansion-only context. The packages may be
longdesc used with Plain TeX, LaTeX, or (a priori) any other macro
longdesc format built upon TeX.
-containersize 80792
-containerchecksum fa81589efa4c6870246ab4b5c9f33c9e461e939d20abb68892c1e0cb9726152b0c6c96107022cf28e0c066cf7f11deb720b8a28df0ba9c237ff5dc1261af2660
-doccontainersize 2203600
-doccontainerchecksum 0c6d7af8cbdeac284ab9a4a5807d3220854c42acc4eac8c0f880196ec9abe90db4597b8df08d40b567988cc2e05e156e93a22af6cad1fde09219da2f70b8d185
-docfiles size=586
+containersize 80860
+containerchecksum 7c98cd18683bc57dbae80c74fcf30995519f5c6176b5af4865ecf3adce844ac0a58c5cef2bb96e30f9d244da37effbc0b164a544dbdfb9f69ef0314c0be1436b
+doccontainersize 3584228
+doccontainerchecksum a1ecb80e4ebb43b5b3979493f426b89d7b952c03a388f3eb36d3496506820b97e15926736f44f94195336224e3d382139458ad8c6f6060bb5129ce4edf9d3e39
+docfiles size=941
RELOC/doc/generic/xint/CHANGES.html details="Changes (HTML)"
RELOC/doc/generic/xint/README.md details="Readme"
RELOC/doc/generic/xint/sourcexint.pdf details="Documented source code"
RELOC/doc/generic/xint/xint.pdf details="Package documentation"
-srccontainersize 408648
-srccontainerchecksum e61c4a7772cfb9f40a995d52d379ee629fd258654ed58fc1b0984da759df9774676228f077828791b99860e69a2008b8f8d24b408bf1ae899fa6048350d866ff
-srcfiles size=470
+srccontainersize 421752
+srccontainerchecksum c05b56b92a09c51eaa9a3e12bfe52e85408efd97175a2ea8f1c504bc5fcb6800776360e9453b970d048e97b129da2316ae5fd5c257978c3423bcee04f5c864db
+srcfiles size=486
RELOC/source/generic/xint/Makefile
RELOC/source/generic/xint/xint.dtx
runfiles size=163
@@ -344368,7 +344368,7 @@ catalogue-alias xintexpr
catalogue-ctan /macros/generic/xint
catalogue-license lppl1.3c
catalogue-topics arithmetic calculation
-catalogue-version 1.4l
+catalogue-version 1.4m
name xintsession
category Package
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
index 6f8d45ba05..f2d0725ba0 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.md5
@@ -1 +1 @@
-8c7f815c88b0c8cc1ddc58a38e50f818 texlive.tlpdb
+1b10d10e459ef0cac293db68140ad73e texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512 b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
index af81fa8a69..a4f3cbe39b 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512
@@ -1 +1 @@
-dfaaebcd23738d43fb9373ecbf01a73dce75f6953342d2140846155899fbbffb54a8c483110676dbcb6362a95f9bcf9944e11d493eac8dabb97c34252340e167 texlive.tlpdb
+32f4fcd98825363a22f7f5c83715a3dc53f28274f3c3f5c9e8ce623598c18ede49b0656fb35923de6b3aa7af389dac8026822006ba659a486c6f0b5dfaddb531 texlive.tlpdb
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
index 0aa3a2c2db..3ebfbce9c3 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.sha512.asc
@@ -1,10 +1,10 @@
-----BEGIN PGP SIGNATURE-----
-iQEcBAEBCgAGBQJipSu0AAoJEEzhh34ZQ4xwLYMH/iMHrDS04+dQhoHkJXAh7nrp
-sFgHmSg65yaMrvNevb0gPfwScyOxWfee5BKS1MbMTrRCdC3mb1eorkEVmpG4P472
-NiFpI8AN24mMr3f4I9OkcIyRDaUrB/MXoJPMCxt2qlik0hIWMOhbsw/8Y0S2Br5N
-DdVl/nni1L7BZ11h9I1vKRdOjCsH/JH+WXrt4S0MHhWNMzfl8Dti5fZckbYZA13o
-dZfGnh9DZ7l0oEBCVYlP74OAmTOb6OAGit0MCV0AP+WYxRE9rzjTrMNqghx1xXqg
-AnIi4+X0uROxiyNd7grq4a+Eiy4qn9J26kM+EUzXRouIMJePUlxIVmMHoSDCSVU=
-=HYHL
+iQEcBAEBCgAGBQJipnx5AAoJEEzhh34ZQ4xwCkQH/A0f3c1Y2/EKDMuKCp5pMpGv
+hKf7L1F+UUFdOr6bKMxfJHEYsa2pB19LT23XJtGuIA7tSlocde4AChb7caLDxkfD
+tOAdQgeLnPlne8uRQuSkMVZTpwVXj/pj44MVBpQIA9jYDLciQsbMdwmmu7IYw2Da
+IxHuVyoUu87gGrrojzneWXd7yeNvC4jmS6fVcQ5/7O+TgEcwvocTTLPmD1XdkzRB
+W9FCPDkMHkEk3m+JNfolX7gxYkwCAu97JXuIvJ9jk1I0mvbfDVrx2D0J4F9q55Dc
+wYGmuzmEAQ0lkiISMJwfy6ScsbShJrEedHE/lFD7pP5iI4oaP1y0Pi03/c+mLOQ=
+=wxBX
-----END PGP SIGNATURE-----
diff --git a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
index 558cb447a1..cf0d075313 100644
--- a/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
+++ b/systems/texlive/tlnet/tlpkg/texlive.tlpdb.xz
Binary files differ
diff --git a/systems/texlive/tlnet/tlpkg/translations/cs.po b/systems/texlive/tlnet/tlpkg/translations/cs.po
index 2c0061fc78..1a83ced65c 100644
--- a/systems/texlive/tlnet/tlpkg/translations/cs.po
+++ b/systems/texlive/tlnet/tlpkg/translations/cs.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-21 13:54+0100\n"
"Last-Translator: Petr Sojka <sojka@fi.muni.cz>\n"
"Language-Team: Czech <>\n"
@@ -1754,206 +1754,210 @@ msgid "basic scheme (plain and latex)"
msgstr "základní schéma (plain a latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schéma ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "úplné schéma (všechno)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schéma GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "pouze infrastukturní schéma (vůbec žádný TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "střední schéma (malé + více balíků a jazyků)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimální schéma (pouze plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "malé schéma (základní + xetex, metapost, několik jazyků)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schéma teTeX (více než střední, ale zdaleka ne úplné)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Nezbytné programy a soubory"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Dodatečné styly pro BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Pomocné programy pro TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt a balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Dodatečné fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Doporučené fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utility pro práci s grafikou a fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Dodatečné formáty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Sazba her"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Balíky pro humanitní obory"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Čínština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Čínština/Japonština/Korejština (základ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cyrilice"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Čeština/slovenština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Angličtina, US a UK"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Ostatní evropské jazyky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francouzština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Němčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Řečtina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Korejština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Ostatní jazyky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugalština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Španělština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Základní balíky pro LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Dodatečné balíky pro LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Doporučené balíky pro LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Balíky pro LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Matematické, přírodovědní a informatické balíčky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Balíky pro MetaPost a Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Balíky pro sazbu hudby"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafika, obrázky, diagramy"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Základní (La)TeXové balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Nakladatelské styly, disertace atd."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL obsahuje pouze binárku pro Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Podpůrné programy výhradně pro Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX a balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Vítejte v TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1968,7 +1972,7 @@ msgstr ""
"podporu přijetím členství ve sdružení, které je Vám nejbližší (CSTUG). "
"Seznam skupin u6ivatel; najdete na webu https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/da.po b/systems/texlive/tlnet/tlpkg/translations/da.po
index 0a51076536..896a6aa32b 100644
--- a/systems/texlive/tlnet/tlpkg/translations/da.po
+++ b/systems/texlive/tlnet/tlpkg/translations/da.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2021\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2021-05-05 10:13+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -1754,207 +1754,211 @@ msgid "basic scheme (plain and latex)"
msgstr "basal plan (plain og latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt-plan"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "fuld plan (alt)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST's TeX Live plan"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "plan kun med infrastruktur (ingen TeX overhovedet)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "medium plan (lille plan samt ekstra pakker og sprog)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimal plan (kun plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "lille plan (basal + xetes, metapost samt nogle få sprog)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX plan (mere end medium, men ingenlunde fuld plan)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Essentielle programmer og filer"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Yderligere stilarter til BiBTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Hjælpeprogrammer til TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt med pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Yderligere skrifttyper"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Anbefalede skrifttyper"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Værktøjer til grafik og skrifttyper"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Yderligere formater"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Typesetting af spil"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pakker til humaniora"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Kinesisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Kinesisk/Japansk/Koreansk (basis)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Kyrillisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tjekkisk/Slovakisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Amerikansk og Britisk Engelsk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Øvrige Europæiske sprog"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Fransk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Tysk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Græsk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiensk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japansk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Koreansk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Øvrige sprog"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polsk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugisisk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Spansk"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Grundlæggende LaTeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Yderligere LaTeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Anbefalede LaTeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakker til matematik, naturvidenskab og datalogi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Pakker til MetaPost og Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Pakker til musik"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafik, billeder og diagrammer"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Simple (La)TeX-pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Udgiver-pakker, afhandlinger mv."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
"Redigeringsværktøjet TeXworks; TL includerer kun de binære filer til Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programmer, der kun understøttes på Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX med pakker"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Velkommen til TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1969,7 +1973,7 @@ msgstr ""
"rundt; overvej venligt at støtte den gruppe, der passer bedst med dine "
"behov. En liste med grupper er at finde på https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/de.po b/systems/texlive/tlnet/tlpkg/translations/de.po
index 114185c32d..720b02ca84 100644
--- a/systems/texlive/tlnet/tlpkg/translations/de.po
+++ b/systems/texlive/tlnet/tlpkg/translations/de.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-21 06:26+0100\n"
"Last-Translator: Uwe Ziegenhagen <ziegenhagen@gmail.com>\n"
"Language-Team: TL German Translation Team <tex-live@tug.org>\n"
@@ -1746,206 +1746,210 @@ msgid "basic scheme (plain and latex)"
msgstr "Basis Scheme (Plain und LaTeX)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt scheme"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "Full scheme (alles)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live scheme"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "nur die Infrastruktur (kein TeX etc.)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "Medium (\"small\" + mehr Pakete und Sprachen)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "Minimal Scheme (nur plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "Small Scheme (Basis + XeTeX, Metapost, einige Sprachen)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX scheme (mehr als 'medium', aber nicht 'full')"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Grundlegende Programme und Dateien"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "BibTeX Zusatzstile"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "TeX Hilfsprogramme"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt und Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Zusätzliche Fonts"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Empfohlene Schriftarten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Grafik- und Font-Werkzeuge"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Zusätzliche Formate"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Satz von Spielen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pakete für die Geisteswissenschaften"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chinesisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinesisch/Japanisch/Koreanisch (Basis)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Kyrillisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tschechisch/Slowakisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "US und UK Englisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Andere europäische Sprachen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Französisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Deutsch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Griechisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italienisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japanisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Koreanisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Andere Sprachen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polnisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugiesisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Spanisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "LaTeX grundlegende Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "LaTeX: zusätzliche Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "LaTeX: empfohlene Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Mathematik, Natur- und Computerwissenschaftliche Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPost und Metafont Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Musikpakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafik, Bilder, Diagramme"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeX Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Verlagsstile, Abschlussarbeiten, etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks Editor; TL enthält nur Binaries für Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Zusatzprogramme (nur-Windows)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX und XeTeX-Pakete"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Willkommen bei TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1960,7 +1964,7 @@ msgstr ""
"weltweit, werden Sie Mitglied um ihre Arbeit zu unterstützen. Die Liste der "
"Gruppen finden Sie unter https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/es.po b/systems/texlive/tlnet/tlpkg/translations/es.po
index 54fde83b7e..a0fbfea997 100644
--- a/systems/texlive/tlnet/tlpkg/translations/es.po
+++ b/systems/texlive/tlnet/tlpkg/translations/es.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2019-03-30 17:58-0400\n"
"Last-Translator: linguafalsa <linguafalsa@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1746,206 +1746,210 @@ msgid "basic scheme (plain and latex)"
msgstr "esquema básico (TeX básico y LaTeX)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Esquema de ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "esquema completo (todo)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Esquema de TeX Live de GUST"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "esquema de infraestructura solamente (nada de TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "esquema mediano (pequeño + más paquetes y lenguajes)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "esquema mínimo (TeX básico solamente)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "esquema pequeño (básico + xetex, metapost, y unos cuantos idiomas)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "esquema de teTeX (más que mediano, pero no del todo lleno)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Programas y archivos esenciales"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Estilos adicionales de BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Programas auxiliares de TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt y paquetes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Fuentes adicionales"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Fuentes recomendables"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utilidades para gráficos y para fuentes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Formatos adicionales"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Juegos tipográficos"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Paquetes de humanidades"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Árabe"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chino"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chino/Japonés/Coreano (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cirílico"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Checoslovaco/Eslovaco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Inglés de US y UK"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Otros idiomas Europeos"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Alemán"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Griego"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Otros idiomas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polaco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugués"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Español"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Paquetes fundamentales de LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Paquetes adicionales de LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Paquetes recomendados de LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Paquetes de LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Paquetes para matemáticas, ciencias naturales, y computación"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Paquetes de Metapost y Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Paquetes para música"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Gráficas, imágenes, diagramas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Paquetes básicos para (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Estilos para publicistas, tesis, etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor de TeXWorks: TL incluye solamente el binario de Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programas de respaldo solamente para Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX y paquetes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "¡Bienvenido a Tex Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1961,7 +1965,7 @@ msgstr ""
"apoyarlo formando parte de un grupo que más conveniente sea para usted. La "
"lista de grupos está disponible en el web en https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/fr.po b/systems/texlive/tlnet/tlpkg/translations/fr.po
index d58bb3ad68..123d260772 100644
--- a/systems/texlive/tlnet/tlpkg/translations/fr.po
+++ b/systems/texlive/tlnet/tlpkg/translations/fr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-20 22:41+0100\n"
"Last-Translator: Denis Bitouzé <denis.bitouze@univ-littoral.fr>\n"
"Language-Team: French <kde-i18n-doc@kde.org>\n"
@@ -1761,207 +1761,211 @@ msgid "basic scheme (plain and latex)"
msgstr "Schéma de base (plain et latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schéma pour ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "Schéma complet (absolument tout)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schéma TeX Live du GUST"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "Schéma d'infrastructure (aucun TeX là-dedans)."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "Schéma moyen (petit avec plus de packages et langues)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "Schéma minimal (Plain seulement)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "Schéma petit (de base + xetex, metapost, quelques langues)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "Schéma teTeX (plus gros que moyen, mais encore loin d'être complet)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Programmes et fichiers essentiels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Styles BibTeX additionnels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Programmes auxiliaires pour TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt et packages associés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Fontes additionnelles"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Fontes recommandées"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utilitaires pour les graphiques et les fontes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Formats additionnels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Composition des jeux"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Packages pour les sciences humaines"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabe"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chinois"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinois/Japonais/Coréen (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cyrillique"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tchèque et slovaque"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Anglais britannique et américain"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Autres langues européennes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Français"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Allemand"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Grec"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italien"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Coréen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Autres langues"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polonais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portuguais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Espagnol"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Packages LaTeX essentiels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Packages LaTeX additionnels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Packages LaTeX recommandés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Packages LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
"Packages pour les mathématiques, les sciences naturelles et l'informatique"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Packages pour MetaPost et Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Packages pour la musique"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Graphiques, images, diagrammes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Packages plain (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Styles de maisons d'édition, de thèses, etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Éditeur TeXworks ; la TL n'inclut que les binaires pour Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programmes pour le support de Windows seulement"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX et packages associés"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Bienvenue sous TeX Live !"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1978,7 +1982,7 @@ msgstr ""
"groupes est disponible sur le web à l'adresse http://tug.org/usergroups."
"html ; la page du groupe francophone est https://www.gutenberg-asso.fr/."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/it.po b/systems/texlive/tlnet/tlpkg/translations/it.po
index 2c290cae5c..bbab552b51 100644
--- a/systems/texlive/tlnet/tlpkg/translations/it.po
+++ b/systems/texlive/tlnet/tlpkg/translations/it.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Tex Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2021-03-22 06:20+0100\n"
"Last-Translator: Marco Pallante\n"
"Language-Team: <>\n"
@@ -1753,206 +1753,210 @@ msgid "basic scheme (plain and latex)"
msgstr "schema base (plain e latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schema ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "schema completo (installa tutto)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schema GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "schema solo-infrastruttura (niente TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "schema medio (ridotto + altri pacchetti e lingue)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "schema minimo (solo plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "schema ridotto (base + xetex, metapost, alcune lingue)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schema teTeX (più dell'intermedio, ma per niente completo)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Programmi e file essenziali"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Stili BibTeX aggiuntivi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Programmi ausiliari per TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt e pacchetti"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Font aggiuntivi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Font raccomandati"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utilità per font e grafica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Formati aggiuntivi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Composizione tipografica per giochi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pacchetti per discipline umanistiche"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabo"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Cinese"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Cinese/giapponese/coreano (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cirillico"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Ceco/slovacco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Inglese USA/Regno Unito"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Altre lingue europee"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francese"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Tedesco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Greco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Giapponese"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Altre lingue"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polacco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portoghese"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Spagnolo"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Pacchetti LaTeX fondamentali"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Pacchetti LaTeX aggiuntivi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Pacchetti LaTeX raccomandati"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Pacchetti LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pacchetti per matematica, scienze naturali, informatica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Pacchetti per MetaPost e Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Pacchetti per la musica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafica, immagini, diagrammi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Pacchetti Plain TeX e LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Stili di editori, tesi, ecc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL include solo i binari per Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programmi di supporto solo per Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX e pacchetti"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Benvenuto in TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1968,7 +1972,7 @@ msgstr ""
"voi. La lista dei gruppi è disponibile sul web all’indirizzo https://tug.org/"
"usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/ja.po b/systems/texlive/tlnet/tlpkg/translations/ja.po
index 580a4eb2ec..3d52f25fcb 100644
--- a/systems/texlive/tlnet/tlpkg/translations/ja.po
+++ b/systems/texlive/tlnet/tlpkg/translations/ja.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-19 20:42+0900\n"
"Last-Translator: Takuto Asakura <tkt.asakura@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1749,208 +1749,212 @@ msgid "basic scheme (plain and latex)"
msgstr "basic スキーム(plain および latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt スキーム"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "full スキーム(すべて)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live スキーム"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "infrastructure-only スキーム(TeX 処理系は一切含みません)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "midium スキーム(small スキーム+欧州の主要言語サポート)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimal スキーム(plain のみ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"small スキーム(basic スキーム+XeTeX, MetaPost といくつかの言語サポート)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
"teTeX スキーム(medium スキームよりも大きいが,full スキームには及ばない)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "必須プログラムとファイル"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "BibTeX の追加スタイル"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "TeX 外部プログラム"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt とパッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "追加フォント"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "推奨フォント"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "画像およびフォントのユーティリティ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "追加フォーマット"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "ゲーム組版"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "人文科学パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "アラビア語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "中国語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "日中韓 (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "キリル文字"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "チェコ・スロバキア語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "英語・米語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "その他の欧州言語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "フランス語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "ドイツ語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "ギリシア語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "イタリア語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "日本語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "韓国語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "他の言語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "ポーランド語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "ポルトガル語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "スペイン語"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "LaTeX 基本パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "LaTeX 追加パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "LaTeX 推奨パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "数学,自然科学,計算機科学パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPost および Metafont パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "音楽パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "画像と図表"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeX パッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "出版社スタイルや学位論文"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks(Windows 版のみ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Windows 専用プログラム"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX とパッケージ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "TeX Live へようこそ!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1966,7 +1970,7 @@ msgstr ""
"入会することをご検討ください.TeX ユーザ会の一覧はhttps://tug.org/usergroups."
"html でご確認いただけます."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/messages.pot b/systems/texlive/tlnet/tlpkg/translations/messages.pot
index 76e8f046a8..15e91981a3 100644
--- a/systems/texlive/tlnet/tlpkg/translations/messages.pot
+++ b/systems/texlive/tlnet/tlpkg/translations/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2022\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1692,206 +1692,210 @@ msgid "basic scheme (plain and latex)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
-msgid "ConTeXt scheme"
+msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
-msgid "full scheme (everything)"
+msgid "ConTeXt scheme"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
-msgid "GUST TeX Live scheme"
+msgid "full scheme (everything)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
-msgid "infrastructure-only scheme (no TeX at all)"
+msgid "GUST TeX Live scheme"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
-msgid "medium scheme (small + more packages and languages)"
+msgid "infrastructure-only scheme (no TeX at all)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
-msgid "minimal scheme (plain only)"
+msgid "medium scheme (small + more packages and languages)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
-msgid "small scheme (basic + xetex, metapost, a few languages)"
+msgid "minimal scheme (plain only)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
-msgid "teTeX scheme (more than medium, but nowhere near full)"
+msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
-msgid "Essential programs and files"
+msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
-msgid "BibTeX additional styles"
+msgid "Essential programs and files"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
-msgid "TeX auxiliary programs"
+msgid "BibTeX additional styles"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
-msgid "ConTeXt and packages"
+msgid "TeX auxiliary programs"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
-msgid "Additional fonts"
+msgid "ConTeXt and packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
-msgid "Recommended fonts"
+msgid "Additional fonts"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
-msgid "Graphics and font utilities"
+msgid "Recommended fonts"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
-msgid "Additional formats"
+msgid "Graphics and font utilities"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
-msgid "Games typesetting"
+msgid "Additional formats"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
-msgid "Humanities packages"
+msgid "Games typesetting"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
-msgid "Arabic"
+msgid "Humanities packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
-msgid "Chinese"
+msgid "Arabic"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
-msgid "Chinese/Japanese/Korean (base)"
+msgid "Chinese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
-msgid "Cyrillic"
+msgid "Chinese/Japanese/Korean (base)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
-msgid "Czech/Slovak"
+msgid "Cyrillic"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
-msgid "US and UK English"
+msgid "Czech/Slovak"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
-msgid "Other European languages"
+msgid "US and UK English"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
-msgid "French"
+msgid "Other European languages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
-msgid "German"
+msgid "French"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
-msgid "Greek"
+msgid "German"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
-msgid "Italian"
+msgid "Greek"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
-msgid "Japanese"
+msgid "Italian"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
-msgid "Korean"
+msgid "Japanese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
-msgid "Other languages"
+msgid "Korean"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
-msgid "Polish"
+msgid "Other languages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
-msgid "Portuguese"
+msgid "Polish"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
-msgid "Spanish"
+msgid "Portuguese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
-msgid "LaTeX fundamental packages"
+msgid "Spanish"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
-msgid "LaTeX additional packages"
+msgid "LaTeX fundamental packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
-msgid "LaTeX recommended packages"
+msgid "LaTeX additional packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
-msgid "LuaTeX packages"
+msgid "LaTeX recommended packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
-msgid "Mathematics, natural sciences, computer science packages"
+msgid "LuaTeX packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
-msgid "MetaPost and Metafont packages"
+msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
-msgid "Music packages"
+msgid "MetaPost and Metafont packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
-msgid "Graphics, pictures, diagrams"
+msgid "Music packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
-msgid "Plain (La)TeX packages"
+msgid "Graphics, pictures, diagrams"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
-msgid "PSTricks"
+msgid "Plain (La)TeX packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
-msgid "Publisher styles, theses, etc."
+msgid "PSTricks"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
-msgid "TeXworks editor; TL includes only the Windows binary"
+msgid "Publisher styles, theses, etc."
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
-msgid "Windows-only support programs"
+msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+msgid "Windows-only support programs"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1901,7 +1905,7 @@ msgid ""
"list of groups is available on the web at https://tug.org/usergroups.html."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/nl.po b/systems/texlive/tlnet/tlpkg/translations/nl.po
index 023a373701..20804600e4 100644
--- a/systems/texlive/tlnet/tlpkg/translations/nl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/nl.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-19 19:34+0100\n"
"Last-Translator: Siep Kroonenberg <siepo@bitmuis.nl>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1751,206 +1751,210 @@ msgid "basic scheme (plain and latex)"
msgstr "basis-schema (Plain en latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt schema"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "volledig schema (alles)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live schema"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "alleen infrastruktuur (helemaal geen TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "medium schema (klein + meer pakketten en taken)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimum schema (alleen plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "klein schema (basis + xetex, metapost, enkele talen)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX schema (meer dan medium, maar lang niet alles)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Essentiële programma's en bestanden"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Extra stijlen voor BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "TeX hulpprogramma's"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt en pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Extra lettertypen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Aanbevolen lettertypen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Hulpprogramma's voor figuren en lettertypen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Extra formaten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Spellen typesetten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pakketten voor humaniora"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chinees"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chiness/Japans/Koreaans (basis)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cyrillisch"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tsjechisch/Slovaaks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Amerikaans en Brits Engels"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Andere Europese talen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Frans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Duits"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Grieks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiaans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Koreaans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Andere talen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Pools"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugees"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Spaans"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "LaTeX basis-pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Extra LaTeX pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "LaTeX aanbevolen pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakketten voor wiskunde, natuurwetenschappen en informatica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPost- en Metafont pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Muziek pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafieken, figuren, diagrammen"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Plain (La)TeX pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Stijlen voor uitgevers, proefschriften etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "TeXworks editor; TL bevat alleen de Windows versie"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Ondersteunende programma's specifiek voor Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX en bijbehorende pakketten"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Welkom bij TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1965,7 +1969,7 @@ msgstr ""
"wereldwijd; overweeg ondersteuning door lid te worden van zo'n groep. De "
"lijst van gebruikersgroepen staat op https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/pl.po b/systems/texlive/tlnet/tlpkg/translations/pl.po
index c8446b82fe..db9fb32e53 100644
--- a/systems/texlive/tlnet/tlpkg/translations/pl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/pl.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2020\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-20 17:17+0100\n"
"Last-Translator: Jerzy Ludwichowski <Jerzy.Ludwichowski@umk.pl>\n"
"Language-Team: \n"
@@ -1755,208 +1755,212 @@ msgid "basic scheme (plain and latex)"
msgstr "schemat podstawowy (plain i latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schemat ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "schemat pełny (wszystko)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schemat GUST"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "wyłącznie schemat plików (w ogóle bez TeX-a):"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "schemat typowy (skromny + wybrane dodatkowe pakiety i języki):"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "schemat minimalny (tylko plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"schemat skromny (podstawowy + xetex, metapost oraz wzorce przenoszenia kilku "
"języków):"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schemat teTeX (obszerniejszy niż typowy, ale mniejszy od pełnego)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Podstawowe programy i pliki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Dodatkowe style BibTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Dodatkowe programy pomocnicze TeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt i jego pakiety"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Dodatkowe fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Rekomendowne fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Narzędzia do grafiki i fontów"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Dodatkowe formaty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Zapis gier"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pakiety dla humanistów"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Język arabski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Język chiński"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Języki chiński/japoński/koreański (podstawa)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Język cyryliczny"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Języki czeski/słowacki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Angielski brytyjski i amerykański"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Inne języki europejskie"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Język francuski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Język niemiecki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Język grecki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Język włoski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Język japoński"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Język koreański"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Inne języki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Język polski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Język portugalski"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Język hiszpański"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Podstawowe pakiety LaTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Dodatkowe pakiety LaTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Polecane pakiety LaTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Pakiety LuaTeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pakiety do składu matematyki, nauk przyrodniczych i informatyki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Pakiety MetaPosta i Metafonta"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Pakiety do składania nut"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Pakiety do grafiki, rysunków, diagramów"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Pakiety dla plain (La)TeX-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Style wydawców, publikacji konferencyjnych itp."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Edytor TeXworks; binaria tylko dla systemu Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Dodatkowe programy tylko dla Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX i pakiety"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Witamy w TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1972,7 +1976,7 @@ msgstr ""
"rozważ wsparcie poprzez przystąpienie do jednej z grup.\n"
"Lista grup dostępna jest na stronie https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/pt_BR.po b/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
index 1035aa9dc6..7079a4d9ba 100644
--- a/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
+++ b/systems/texlive/tlnet/tlpkg/translations/pt_BR.po
@@ -4,7 +4,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-02-21 07:43-0300\n"
"Last-Translator: Paulo Roberto Massa Cereda <cereda.paulo@gmail.com>\n"
"Language-Team: Paulo Roberto Massa Cereda <cereda.paulo@gmail.com>\n"
@@ -1755,208 +1755,212 @@ msgid "basic scheme (plain and latex)"
msgstr "esquema básico (plain e latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "esquema ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "esquema completo (tudo)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "esquema GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "esquema com apenas infraestrutura (sem TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "esquema médio (pequeno + pacotes extras e idiomas)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "esquema mínimo (apenas plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "esquema pequeno (básico + xetex, metapost, alguns idiomas)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
"esquema teTeX (mais do que o esquema médio, mas nada que se aproxime do "
"esquema completo)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Programas e arquivos essenciais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Estilos BibTeX adicionais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Programas auxiliares TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt e pacotes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Fontes adicionais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Fontes recomendadas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Utilitários para gráficos e fontes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Formatos adicionais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Escrita de jogos"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Pacotes da área de Humanas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Árabe"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Chinês"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Chinês/Japonês/Coreano (base)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cirílico"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Tcheco/Eslovaco"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Inglês Americano e Britânico"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Outros idiomas europeus"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francês"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Alemão"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Grego"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italiano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonês"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Coreano"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Outros idiomas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Polonês"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Português"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Espanhol"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Pacotes LaTeX fundamentais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Pacotes LaTeX adicionais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Pacotes LaTeX recomendados"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Pacotes LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Pacotes de matemática, ciências naturais e ciência da computação"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Pacotes MetaPost e Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Pacotes musicais"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Gráficos, imagens, diagramas"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Pacotes plain (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Estilos de editoras, teses, etc."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "editor TeXworks; TL inclui apenas o binário para Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programas de suporte exclusivos para Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX e pacotes"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Bem-vindo ao TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1972,7 +1976,7 @@ msgstr ""
"inscrevendo-se em um grupo que lhe seja oportuno. A lista de grupos está "
"disponível na web no endereço https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/ru.po b/systems/texlive/tlnet/tlpkg/translations/ru.po
index 127a7f0a64..87c7abdeb6 100644
--- a/systems/texlive/tlnet/tlpkg/translations/ru.po
+++ b/systems/texlive/tlnet/tlpkg/translations/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-23 09:50+0800\n"
"Last-Translator: Vladimir Lomov <irk.translator@yandex.ru>\n"
"Language-Team: Russian <tldoc@tug.org>\n"
@@ -1756,206 +1756,210 @@ msgid "basic scheme (plain and latex)"
msgstr "базовая схема (plain и latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "схема ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "полная схема (включает всё)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "схема GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "схема только с инфраструктурой (совсем без TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "средняя схема (малая + больше пакетов и языков)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "минимальная схема (только plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "малая схема (базовая + xetex, metapost и пара языков)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "схема teTeX (больше чем средняя, но не сравнится с полной)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Важные программы и файлы"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Дополнительные стили BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Вспомогательные программы TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt и пакеты"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Дополнительные шрифты"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Рекомендованные шрифты"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Инструменты для работы с графикой и шрифтами"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Дополнительные форматы"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Для вёрстки игр"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Пакеты для гуманитарных наук"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Арабский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Китайский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Китайский/Японский/Корейский (базовая поддержка)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Кириллица"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Чешский/Словацкий"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Английский США и Великобритании"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Другие европейские языки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Французский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Немецкий"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Греческий"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Итальянский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Японский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Корейский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Другие языки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Польский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Португальский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Испанский"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Базовые пакеты LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Дополнительные пакеты LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Рекомендованные пакеты LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Пакеты LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Пакеты для математики, естественных наук, программирования"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Пакеты для MetaPost и Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Пакеты для музыки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Графики, рисунки, диаграммы"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Простые (La)TeX пакеты"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Стили издательств, сборников тезисов и пр."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Редактор TeXworks; TL предоставляет программу только для Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Вспомогательные программы, только для Windows ОС"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX и пакеты"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Вас приветствует TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1971,7 +1975,7 @@ msgstr ""
"подходящей вам группе. Список групп доступен на странице https://tug.org/"
"usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sk.po b/systems/texlive/tlnet/tlpkg/translations/sk.po
index dfb8356283..243b1d5e1e 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sk.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sk.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-21 13:59+0100\n"
"Last-Translator: Ján Buša <jan.busa@tuke.sk>\n"
"Language-Team: tex-live@tug.org\n"
@@ -1755,206 +1755,210 @@ msgid "basic scheme (plain and latex)"
msgstr "základná schéma (plain a latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Schéma ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "úplná schéma (všetko)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Schéma GUST TeXlive"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "schéma len-infraštruktúra (vôbec žiaden TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "stredná schéma (malá + viac balíkov a jazykov)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "minimálna schéma (len plainTeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "malá schéma (základ + xetex, metapost a niektoré jazyky)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "schéma teTeX (o niečo väčšia než stredne veľká, ale ďaleko od úplnej)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Dôležité programy a súbory"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Ďalšie štýly BibTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Pomocné programy TeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt a balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Ďalšie fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Odporúčané fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Pomocné programy pre grafiku a fonty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Ďalšie formáty"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Sadzba hier"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Balíky pre humanitné odbory"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Čínština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Čínština/japončina/kórejčina (základ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Ruština, ukrajinčina (azbuka)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Čeština/slovenčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Angličtina (US a UK)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Ďalšie európske jazyky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francúzština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Nemčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Gréčtina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Taliančina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japončina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Kórejčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Ďalšie jazyky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Poľština"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugalčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Španielčina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Základné balíky LaTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Ďalšie balíky LaTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Odporúčané balíky LaTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Balíky LuaTeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Matematické, prírodovedné a informatické balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Balíky MetaPostu a Metafontu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Hudobné balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Grafika, obrázky, diagramy"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Balíky Plain (La)TeXu"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Štýly vydavateľstiev, záverečné práce atď."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Editor TeXworks; TL zahŕňa len binárky pre Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Podporné programy len pre Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX a balíky"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Vitajte vo svete TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1970,7 +1974,7 @@ msgstr ""
"najlepšej. Zoznam skupín je dostupný na webe na https://tug.org/usergroups."
"html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sl.po b/systems/texlive/tlnet/tlpkg/translations/sl.po
index 1a6a004a60..45e4779919 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sl.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sl.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2022-03-21 13:45+0100\n"
"Last-Translator: Mojca Miklavec <mojca.miklavec.lists@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1839,208 +1839,212 @@ msgid "basic scheme (plain and latex)"
msgstr "Osnovna namestitev (plain TeX in LaTeX)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Namestitev ConTeXt-a"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "Polna namestitev"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Poljski GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "Samo infrastruktura (brez TeX-a)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "Srednje velika namestitev (majhna nam. z dodatnimi paketi in jeziki)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "Minimalna namestitev (samo plain TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
"Majhna namestitev (osnovna orodja, XeTeX, metapost, podpora za nekaj jezikov)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "Shema, podobna teTeX-u (med srednje veliko in polno)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Osnovni programi in datoteke"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Dodatni slogi za BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Pomožni programi za TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt s paketi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Dodatne pisave"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Priporočene pisave"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Orodja za grafiko in pisave"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Dodatni formati"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Stavljenje iger"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Paketi za družboslovce"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Arabske pisave"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Kitajščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Kitajščina, japonščina, korejščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Cirilica"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Češčina in slovaščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Angleščina & angl. priročniki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Ostali evropski jeziki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Francoščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Nemščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Grščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Italijanščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Japonščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Korejščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Ostali jeziki"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Poljščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Portugalščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Španščina"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Osnovni paketi za LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Dodatni paketi za LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Priporočeni paketi za LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Paketi za LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Paketi za matematiko, naravoslovje in računalništvo"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Paketi za MetaPost in MetaFont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Paketi za stavljenje glasbe"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Slike in diagrami"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
#, fuzzy
msgid "Plain (La)TeX packages"
msgstr "Paketi za plain (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Slogi za založnike, dizertacije ipd."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Urejevalnik TeXworks (za Windows)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Programi za MS Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX s paketi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Dobrodošli v TeX Live-u!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -2055,7 +2059,7 @@ msgstr ""
"sveta; podprete ga lahko s pridružitvijo vam najbližjemu društvu. Seznam le-"
"teh je na voljo na strani https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/sr.po b/systems/texlive/tlnet/tlpkg/translations/sr.po
index 960247c3c0..c27282aeee 100644
--- a/systems/texlive/tlnet/tlpkg/translations/sr.po
+++ b/systems/texlive/tlnet/tlpkg/translations/sr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2019-10-23 02:13+0300\n"
"Last-Translator: Nikola Lečić <nikola.lecic@anthesphoria.net>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1752,206 +1752,210 @@ msgid "basic scheme (plain and latex)"
msgstr "основна шема (чист [plain] TeX и latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "ConTeXt шема"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "пуна шема (све)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "GUST TeX Live шема"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "инфраструктурна шема (без TeX-а)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "средња шема (мала шема + већи број пакета и боља језичка подршка)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "минимална шема (само чист [plain] TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "мала шема (основна шема + xetex, metapost, подршка за неколико језика)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "teTeX шема (више од средње шеме, али доста мање од целине)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Најважнији програми и фајлови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Додатни стилови за BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Помоћни TeX програми"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt и повезани пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Додатни фонтови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Препоручени фонтови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Програми за рад са графиком и фонтовима"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Додатни формати"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Припрема докумената везаних за игре"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Пакети за рад у друштвеним наукама"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Арапски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Кинески"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Кинески, јапански, корејски (основно)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Ћирилица"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Чешки и словачки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Амерички и британски енглески"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Остали европски језици"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Француски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Немачки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Грчки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Италијански"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Јапански"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Корејски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Остали језици"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Пољски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Португалски"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Шпански"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Основни LaTeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Додатни LaTeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Препоручени LaTeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "LuaTeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Математички, природнонаучни и компјутерски пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Пакети за MetaPost и Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Пакети за рад са музиком"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Пакети за рад са графиком, сликама и дијаграмима"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Plain (чисти) (La)TeX пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Стилови за издаваштво, дисертације итд."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Едитор TeXworks (само за Windows)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Помоћни програми за Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX и повезани пакети"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Добродошли у TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1966,7 +1970,7 @@ msgstr ""
"света; молимо вас да размотрите учлањење у најближу из њих. Списак група "
"можете пронаћи овде: https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/uk.po b/systems/texlive/tlnet/tlpkg/translations/uk.po
index 8a51c4f896..25a1225e8d 100644
--- a/systems/texlive/tlnet/tlpkg/translations/uk.po
+++ b/systems/texlive/tlnet/tlpkg/translations/uk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live 2010\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2019-03-23 09:02+0200\n"
"Last-Translator: Andriy Bandura <andriykopanytsia@gmail.com>\n"
"Language-Team: Ukrainian <andriykopanytsia@gmail.com>\n"
@@ -1736,206 +1736,210 @@ msgid "basic scheme (plain and latex)"
msgstr "основна схема (plain та latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "схема ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "повна схема (включає усе)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "схема GUST TeX Live"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "схема тільки з інфраструктурою (без TeX зовсім)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "середня схема (мала + більше пакунків та мов)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "мінімальна схема (лише plain)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "мала схема (основна + xetex, metapost, кілька мов)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "схема teTeX (більша за середню, але не дотягає до повної)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Важливі програми і файли"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Додаткові стилі BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Допоміжні програми TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt і пакунки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Додаткові шрифти"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Рекомендовані шрифти"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Утиліти для графіки та шрифтів"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Додаткові формати"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Верстка запису ігор"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Пакунки для гуманітарних наук"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Арабська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Китайська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Китайська/японська/корейська (базова)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Кирилиця"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Чеська/словацька"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Англійська США та Великобританії"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Інші європейські мови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Французька"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Німецька"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Грецька"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Італійська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Японська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Корейська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Інші мови"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Польська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Португальська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Іспанська"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Основні пакунки LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Додаткові пакунки LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Рекомендовані пакунки LaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Пакунки LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Пакунки для математики, природничих та комп'ютерних наук"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "Пакунки MetaPost та Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Музичні пакунки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Графіки, рисунки та діаграми"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Пакунки простого (La)TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PSTricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Стилі для видавництв, тез конференцій і т.п."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Редактор TeXworks; TL містить програму лише для Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Додаткові програми лише під Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX та пакунки"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Ласкаво просимо до TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1950,7 +1954,7 @@ msgstr ""
"світу; будь ласка, підтримайте нас, приєднавшись до групи, найкращої для "
"вас. Список груп доступний на веб-сторінці https://tug.org/usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/vi.po b/systems/texlive/tlnet/tlpkg/translations/vi.po
index 730e241f87..e8b0926c67 100644
--- a/systems/texlive/tlnet/tlpkg/translations/vi.po
+++ b/systems/texlive/tlnet/tlpkg/translations/vi.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2021-03-13 11:02+0100\n"
"Last-Translator: Anh K. Huỳnh <kyanh@viettug.org>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1747,206 +1747,210 @@ msgid "basic scheme (plain and latex)"
msgstr "bộ cài cơ bản (plain và latex)"
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
+msgid "book publishing scheme (core LaTeX and add-ons)"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
msgid "ConTeXt scheme"
msgstr "Nhóm ConTeXt"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
msgid "full scheme (everything)"
msgstr "bộ cài đầy đủ mọi thứ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
msgid "GUST TeX Live scheme"
msgstr "Bộ cài TeX Live GUST"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
msgid "infrastructure-only scheme (no TeX at all)"
msgstr "cài đặt kiến trúc chung (không có gì liên quan TeX)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
msgid "medium scheme (small + more packages and languages)"
msgstr "bộ cài vừa (nhỏ + thêm các ngôn ngữ và gói bổ sung)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
msgid "minimal scheme (plain only)"
msgstr "nhóm tối thiểu (chỉ có \"plain TeX\")"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr "bộ cài nhỏ (cơ bản, xtex, metapost, vài ngôn ngữ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr "nhóm teTeX (nhiều gói hơn nhóm trung bình, nhưng chưa phải là đầy đủ)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
msgid "Essential programs and files"
msgstr "Các thứ bắt buộc"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
msgid "BibTeX additional styles"
msgstr "Kiểu bổ sung cho BibTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
msgid "TeX auxiliary programs"
msgstr "Các chương trình hỗ trợ cho TeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
msgid "ConTeXt and packages"
msgstr "ConTeXt và các gói của nó"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
msgid "Additional fonts"
msgstr "Các font bổ sung"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
msgid "Recommended fonts"
msgstr "Phông chữ nên dùng"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
msgid "Graphics and font utilities"
msgstr "Tiện ích đồ họa và phông chữ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
msgid "Additional formats"
msgstr "Các định dạng bổ sung"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
msgid "Games typesetting"
msgstr "Sắp chữ trong các trò chơi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
msgid "Humanities packages"
msgstr "Gói cho khoa học nhân văn"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
msgid "Arabic"
msgstr "Tiếng Ả rập"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
msgid "Chinese"
msgstr "Tiếng Trung"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
msgid "Chinese/Japanese/Korean (base)"
msgstr "Tiếng Trung/Nhật/Hàn (phần cơ sở)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
msgid "Cyrillic"
msgstr "Kiểu chữ Kirin"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
msgid "Czech/Slovak"
msgstr "Czech/Slovka"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
msgid "US and UK English"
msgstr "Tiếng Anh (US, UK)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
msgid "Other European languages"
msgstr "Các ngôn ngữ châu Âu khác"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
msgid "French"
msgstr "Tiếng Pháp"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
msgid "German"
msgstr "Tiếng Đức"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
msgid "Greek"
msgstr "Hy Lạp"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
msgid "Italian"
msgstr "Tiếng Ý"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
msgid "Japanese"
msgstr "Tiếng Nhật"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
msgid "Korean"
msgstr "Tiếng Hàn"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
msgid "Other languages"
msgstr "Ngôn ngữ khác"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
msgid "Polish"
msgstr "Tiếng Ba Lan"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
msgid "Portuguese"
msgstr "Tiếng Thổ Nhĩ Kỳ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
msgid "Spanish"
msgstr "Tiếng Bồ Đào Nha"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
msgid "LaTeX fundamental packages"
msgstr "Các gói LaTeX cốt lõi"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
msgid "LaTeX additional packages"
msgstr "Các gói LaTeX bổ sung"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
msgid "LaTeX recommended packages"
msgstr "Gói LaTeX nên dùng"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
msgid "LuaTeX packages"
msgstr "Gói cho LuaTeX"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
msgid "Mathematics, natural sciences, computer science packages"
msgstr "Toán, khoa học tự nhiên, khoa học máy tính"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
msgid "MetaPost and Metafont packages"
msgstr "MetaPOST, Metafont"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
msgid "Music packages"
msgstr "Gói âm nhạc"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
msgid "Graphics, pictures, diagrams"
msgstr "Đồ họa, hình ảnh, sơ đồ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
msgid "Plain (La)TeX packages"
msgstr "Các gói (La)TeX nguyên sơ"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
msgid "PSTricks"
msgstr "PStricks"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
msgid "Publisher styles, theses, etc."
msgstr "Kiểu luận văn hay của một số nhà xuất bản,..."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
msgid "TeXworks editor; TL includes only the Windows binary"
msgstr "Chương trình soạn thảo TeXworks (chỉ có cho Windows)"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
msgid "Windows-only support programs"
msgstr "Các chương trình chỉ cho Windows"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr "XeTeX và các gói của nó"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "Chào mừng đến với TeX Live!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1962,7 +1966,7 @@ msgstr ""
"hợp nhất. Danh sách các nhóm người dùng có thể tìm thấy tại http://tug.org/"
"usergroups.html."
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/zh_CN.po b/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
index 77d653e391..6d83dba180 100644
--- a/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
+++ b/systems/texlive/tlnet/tlpkg/translations/zh_CN.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2009-09-22 12:54+0800\n"
"Last-Translator: Jiang Jiang <gzjjgod@gmail.com>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1696,206 +1696,210 @@ msgid "basic scheme (plain and latex)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
-msgid "ConTeXt scheme"
+msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
-msgid "full scheme (everything)"
+msgid "ConTeXt scheme"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
-msgid "GUST TeX Live scheme"
+msgid "full scheme (everything)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
-msgid "infrastructure-only scheme (no TeX at all)"
+msgid "GUST TeX Live scheme"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
-msgid "medium scheme (small + more packages and languages)"
+msgid "infrastructure-only scheme (no TeX at all)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
-msgid "minimal scheme (plain only)"
+msgid "medium scheme (small + more packages and languages)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
-msgid "small scheme (basic + xetex, metapost, a few languages)"
+msgid "minimal scheme (plain only)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
-msgid "teTeX scheme (more than medium, but nowhere near full)"
+msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
-msgid "Essential programs and files"
+msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
-msgid "BibTeX additional styles"
+msgid "Essential programs and files"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
-msgid "TeX auxiliary programs"
+msgid "BibTeX additional styles"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
-msgid "ConTeXt and packages"
+msgid "TeX auxiliary programs"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
-msgid "Additional fonts"
+msgid "ConTeXt and packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
-msgid "Recommended fonts"
+msgid "Additional fonts"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
-msgid "Graphics and font utilities"
+msgid "Recommended fonts"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
-msgid "Additional formats"
+msgid "Graphics and font utilities"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
-msgid "Games typesetting"
+msgid "Additional formats"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
-msgid "Humanities packages"
+msgid "Games typesetting"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
-msgid "Arabic"
+msgid "Humanities packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
-msgid "Chinese"
+msgid "Arabic"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
-msgid "Chinese/Japanese/Korean (base)"
+msgid "Chinese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
-msgid "Cyrillic"
+msgid "Chinese/Japanese/Korean (base)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
-msgid "Czech/Slovak"
+msgid "Cyrillic"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
-msgid "US and UK English"
+msgid "Czech/Slovak"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
-msgid "Other European languages"
+msgid "US and UK English"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
-msgid "French"
+msgid "Other European languages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
-msgid "German"
+msgid "French"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
-msgid "Greek"
+msgid "German"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
-msgid "Italian"
+msgid "Greek"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
-msgid "Japanese"
+msgid "Italian"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
-msgid "Korean"
+msgid "Japanese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
-msgid "Other languages"
+msgid "Korean"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
-msgid "Polish"
+msgid "Other languages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
-msgid "Portuguese"
+msgid "Polish"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
-msgid "Spanish"
+msgid "Portuguese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
-msgid "LaTeX fundamental packages"
+msgid "Spanish"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
-msgid "LaTeX additional packages"
+msgid "LaTeX fundamental packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
-msgid "LaTeX recommended packages"
+msgid "LaTeX additional packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
-msgid "LuaTeX packages"
+msgid "LaTeX recommended packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
-msgid "Mathematics, natural sciences, computer science packages"
+msgid "LuaTeX packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
-msgid "MetaPost and Metafont packages"
+msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
-msgid "Music packages"
+msgid "MetaPost and Metafont packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
-msgid "Graphics, pictures, diagrams"
+msgid "Music packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
-msgid "Plain (La)TeX packages"
+msgid "Graphics, pictures, diagrams"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
-msgid "PSTricks"
+msgid "Plain (La)TeX packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
-msgid "Publisher styles, theses, etc."
+msgid "PSTricks"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
-msgid "TeXworks editor; TL includes only the Windows binary"
+msgid "Publisher styles, theses, etc."
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
-msgid "Windows-only support programs"
+msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+msgid "Windows-only support programs"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "欢迎进入 TeX Live 的世界!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1905,7 +1909,7 @@ msgid ""
"list of groups is available on the web at https://tug.org/usergroups.html."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/texlive/tlnet/tlpkg/translations/zh_TW.po b/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
index 1be36d4389..ebf69bc307 100644
--- a/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
+++ b/systems/texlive/tlnet/tlpkg/translations/zh_TW.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TeX Live translation\n"
"Report-Msgid-Bugs-To: tex-live@tug.org\n"
-"POT-Creation-Date: 2022-06-11 01:49+0200\n"
+"POT-Creation-Date: 2022-06-12 01:52+0200\n"
"PO-Revision-Date: 2009-09-03 12:34+0200\n"
"Last-Translator: Norbert Preining <preining@logic.at>\n"
"Language-Team: TL Translation Team <tex-live@tug.org>\n"
@@ -1722,206 +1722,210 @@ msgid "basic scheme (plain and latex)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2
-msgid "ConTeXt scheme"
+msgid "book publishing scheme (core LaTeX and add-ons)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:3
-msgid "full scheme (everything)"
+msgid "ConTeXt scheme"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:4
-msgid "GUST TeX Live scheme"
+msgid "full scheme (everything)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:5
-msgid "infrastructure-only scheme (no TeX at all)"
+msgid "GUST TeX Live scheme"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:6
-msgid "medium scheme (small + more packages and languages)"
+msgid "infrastructure-only scheme (no TeX at all)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:7
-msgid "minimal scheme (plain only)"
+msgid "medium scheme (small + more packages and languages)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:8
-msgid "small scheme (basic + xetex, metapost, a few languages)"
+msgid "minimal scheme (plain only)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:9
-msgid "teTeX scheme (more than medium, but nowhere near full)"
+msgid "small scheme (basic + xetex, metapost, a few languages)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:10
-msgid "Essential programs and files"
+msgid "teTeX scheme (more than medium, but nowhere near full)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:11
-msgid "BibTeX additional styles"
+msgid "Essential programs and files"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:12
-msgid "TeX auxiliary programs"
+msgid "BibTeX additional styles"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:13
-msgid "ConTeXt and packages"
+msgid "TeX auxiliary programs"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:14
-msgid "Additional fonts"
+msgid "ConTeXt and packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:15
-msgid "Recommended fonts"
+msgid "Additional fonts"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:16
-msgid "Graphics and font utilities"
+msgid "Recommended fonts"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:17
-msgid "Additional formats"
+msgid "Graphics and font utilities"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:18
-msgid "Games typesetting"
+msgid "Additional formats"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:19
-msgid "Humanities packages"
+msgid "Games typesetting"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:20
-msgid "Arabic"
+msgid "Humanities packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:21
-msgid "Chinese"
+msgid "Arabic"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:22
-msgid "Chinese/Japanese/Korean (base)"
+msgid "Chinese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:23
-msgid "Cyrillic"
+msgid "Chinese/Japanese/Korean (base)"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:24
-msgid "Czech/Slovak"
+msgid "Cyrillic"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:25
-msgid "US and UK English"
+msgid "Czech/Slovak"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:26
-msgid "Other European languages"
+msgid "US and UK English"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:27
-msgid "French"
+msgid "Other European languages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:28
-msgid "German"
+msgid "French"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:29
-msgid "Greek"
+msgid "German"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:30
-msgid "Italian"
+msgid "Greek"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:31
-msgid "Japanese"
+msgid "Italian"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:32
-msgid "Korean"
+msgid "Japanese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:33
-msgid "Other languages"
+msgid "Korean"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:34
-msgid "Polish"
+msgid "Other languages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:35
-msgid "Portuguese"
+msgid "Polish"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:36
-msgid "Spanish"
+msgid "Portuguese"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:37
-msgid "LaTeX fundamental packages"
+msgid "Spanish"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:38
-msgid "LaTeX additional packages"
+msgid "LaTeX fundamental packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:39
-msgid "LaTeX recommended packages"
+msgid "LaTeX additional packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:40
-msgid "LuaTeX packages"
+msgid "LaTeX recommended packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:41
-msgid "Mathematics, natural sciences, computer science packages"
+msgid "LuaTeX packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:42
-msgid "MetaPost and Metafont packages"
+msgid "Mathematics, natural sciences, computer science packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:43
-msgid "Music packages"
+msgid "MetaPost and Metafont packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:44
-msgid "Graphics, pictures, diagrams"
+msgid "Music packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:45
-msgid "Plain (La)TeX packages"
+msgid "Graphics, pictures, diagrams"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:46
-msgid "PSTricks"
+msgid "Plain (La)TeX packages"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:47
-msgid "Publisher styles, theses, etc."
+msgid "PSTricks"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:48
-msgid "TeXworks editor; TL includes only the Windows binary"
+msgid "Publisher styles, theses, etc."
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:49
-msgid "Windows-only support programs"
+msgid "TeXworks editor; TL includes only the Windows binary"
msgstr ""
#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:50
+msgid "Windows-only support programs"
+msgstr ""
+
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:51
msgid "XeTeX and packages"
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2683
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2684
msgid "Welcome to TeX Live!"
msgstr "歡迎進入 TeX Live 的世界!"
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2686
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2687
#, perl-format
msgid ""
"See %s/index.html for links to documentation.\n"
@@ -1931,7 +1935,7 @@ msgid ""
"list of groups is available on the web at https://tug.org/usergroups.html."
msgstr ""
-#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2696
+#: /home/texlive/karl/Master/tlpkg/translations/shortdesc.pl:2697
#, perl-format
msgid ""
"Add %s/texmf-dist/doc/man to MANPATH.\n"
diff --git a/systems/win32/miktex/tm/packages/files.csv.lzma b/systems/win32/miktex/tm/packages/files.csv.lzma
index a9f1847ba1..f59f44fe83 100644
--- a/systems/win32/miktex/tm/packages/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/files.csv.lzma b/systems/win32/miktex/tm/packages/next/files.csv.lzma
index 450f70e130..4014a60a9a 100644
--- a/systems/win32/miktex/tm/packages/next/files.csv.lzma
+++ b/systems/win32/miktex/tm/packages/next/files.csv.lzma
Binary files differ
diff --git a/systems/win32/miktex/tm/packages/next/pr.ini b/systems/win32/miktex/tm/packages/next/pr.ini
index 8f0fdd02c7..656d2d91a3 100644
--- a/systems/win32/miktex/tm/packages/next/pr.ini
+++ b/systems/win32/miktex/tm/packages/next/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1654978714
+date=1655065421
lastupd=miktex-arctrl-bin-2.9 miktex-arctrl-bin-x64-2.9 miktex-asymptote-bin-2.9 miktex-asymptote-bin-x64-2.9 miktex-autosp-bin-2.9 miktex-autosp-bin-x64-2.9 miktex-axohelp-bin-2.9 miktex-axohelp-bin-x64-2.9 miktex-bibarts-bin-2.9 miktex-bibarts-bin-x64-2.9 miktex-bibtex-bin-2.9 miktex-bibtex-bin-x64-2.9 miktex-bibtex8bit-bin-2.9 miktex-bibtex8bit-bin-x64-2.9 miktex-bzip2-bin-2.9 miktex-bzip2-bin-x64-2.9 miktex-cairo-bin-2.9 miktex-cairo-bin-x64-2.9 miktex-chktex-bin-2.9 miktex-chktex-bin-x64-2.9
-lstdigest=e7a97e00dbee491ff912fbd71ce73319
-numpkg=5626
+lstdigest=b542e8dad86734557dc57631ac469fb4
+numpkg=5684
relstate=next
-version=8197
+version=8198
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: IDM6P/kXao4OfizrSFuK3m9nsUSHcGT1h4xyLajNjHin7s4QteHOS4IomrZX6Q2z54BOSI5RVJb5QE2dww/u3UK/XRRIeiKHbaS0G6eb0nl4W4oVZYeUnLfnQ/6BlmUSGCvcJbhaM8s7Gr/U7sfLR0IaHvbKKcRNR/VNPDFWwD3MOHbBT12m4AmY3BXEHOH5G+IBRDAqfmoxkqBHWm+DdG+c7yg1qc8d+s4Fy6nlfng5oGnBM0X2kUqTmbWjHZj8gOQopiKzr8vwsg13BvQWgFJKH3oesyskUzzXxYpC6hg8Hicmyi7YMGxjRl9QA34njZwbQKnJQP6Yy5g3qzAcMQ==
+;;;; signature/miktex: lrTBR/9KPYm16+6QYELjjnRcc+hThxwm9fxd8xlL1vGCIye+7U04JTZwYk+aneYVtNd4b3rB7YejQTpfwmyl0jaMj02smHDCi1Na84iCsi2r8W6zqLFfuy186tjwdyHPnvHAN9NvFqIOFkWYiqvJchLVmu50Yvybx/YBuOnVenLmYe61dFelg6Aoqo9UShForGQwrvc1as+Ud0TvhgH5bjDbR3lk4sE00BHxwhRsnlU6Oig1n3XOyuxPFpOQolOvECzXcv5NhlppaUwRZoDKgWy39HWezJSPUPw/qDUff8EORj2UHFmPG2oT6PwAJ/Oy+NO96i+i8AQZfg/pWj0SJg==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/systems/win32/miktex/tm/packages/pr.ini b/systems/win32/miktex/tm/packages/pr.ini
index 57f77ba143..f14848ff4e 100644
--- a/systems/win32/miktex/tm/packages/pr.ini
+++ b/systems/win32/miktex/tm/packages/pr.ini
@@ -1,13 +1,13 @@
[repository]
-date=1654978293
-lastupd=adjmulticol adjmulticol__doc adjmulticol__source babel babel__doc babel__source beamer beamer__doc biblatex-gb7714-2015 biblatex-gb7714-2015__doc biblatex-gb7714-2015__source bidi bidi__doc bidi__source bxghost bxghost__doc causets causets__doc causets__source create-theorem
-lstdigest=3187941f32881d30072c7ccfea43316b
-numpkg=5626
+date=1655064685
+lastupd=acmart acmart__doc acmart__source amsmath amsmath__doc amsmath__source aomart aomart__doc aomart__source arabtex arabtex__doc arabtex__source babel babel__doc babel__source bath-bst bath-bst__doc bath-bst__source beamerthemeamurmaple beamerthemeamurmaple__doc
+lstdigest=938bd7487b32f3143d1b5fa55cd2e136
+numpkg=5684
relstate=stable
-version=8197
+version=8198
;;;;This configuration file is signed by a MiKTeX maintainer. The signature follows.
;;;;-----BEGIN MIKTEX SIGNATURE-----
-;;;; signature/miktex: GmlKCFKcGwYnVdViM9vPJb0+c+V7GPA+qzC3LzvHaFLJFPnO3vudtTWC1fqJBk6YjwYLR+wMv60oqM7EN9orNC0Hrhyx6/5ENu+0biua8UX42BNWkJiMT70vOwk0wo0Hclg06AnBAl/Xaqsw6IONPFyVxrLVNIrtk7mEB9EWewb4683Iw0E7Mky1RQGeDBHOjl+be/cjQk1EG9rRInMjynpJaFpa3F/o4+yHXWoDEUn4+Ys8P9ANTmGew5Rh8hk3xUJTDEvDdkxGF5NQPwTMtmVEtIxJ7y8rhChW7tgfuM3dSSx2YSBlmg6aPwGtSxUUU8H7FoDTOJsvbC9/ShiuVQ==
+;;;; signature/miktex: m3RizsiL+9y2AodgOeJIS5R3woZKQNivfGJsB2rBZQIIozVygkV/HqHCAxcF2ZPQFbxWuMnxMz+ycCBsWoR35gKkewoC+SdY/pMm4z2LpeiWdIrBHsTvWdDFdEaTkP11i9/hJiiOORtb+1t485XKUx9Ndg270HRXrkjf0nJ/vYUjY6AUAd3PEC7Ma9dMNHZihjUMhDoB4cmJbKJ7oUa4iAExQwRL2AHz9TFJTG3UXdmI5ZYPWu3Up+nY2AR4p5noW/U2cXL9PFYOOj+x0DlVOvpfWBCZ9GK93Wm6ldM3XWwbfj9pv24bfje4JgsmJs79bbYSGmpbzMzEFm4wtv8rhA==
;;;;-----END MIKTEX SIGNATURE-----
diff --git a/timestamp b/timestamp
index b2ac2bab27..4c72b71599 100644
--- a/timestamp
+++ b/timestamp
@@ -2,4 +2,4 @@
# The source CTAN of this site's material:
dante.ctan.org
# The year-month-day-hour-minute of this site's material:
-2022-06-12-02-02
+2022-06-13-02-02