From 45c7bac9080d91b53c686e776fc6217d7f139b86 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Wed, 12 Apr 2023 03:01:14 +0000 Subject: CTAN sync 202304120301 --- support/latexindent/LatexIndent/Document.pm | 8 - support/latexindent/LatexIndent/FileExtension.pm | 13 +- support/latexindent/LatexIndent/LogFile.pm | 9 +- support/latexindent/LatexIndent/Version.pm | 4 +- support/latexindent/README | 2 +- support/latexindent/bin/linux/latexindent | Bin 6163996 -> 6164028 bytes support/latexindent/bin/macos/latexindent | Bin 6393199 -> 6393230 bytes support/latexindent/defaultSettings.yaml | 2 +- .../documentation/latexindent-yaml-schema.json | 2 +- support/latexindent/documentation/latexindent.pdf | Bin 1243960 -> 1244704 bytes support/latexindent/latexindent.pl | 2 +- support/texlab/CHANGELOG.md | 7 + support/texlab/Cargo.lock | 755 +++++++------ support/texlab/Cargo.toml | 87 +- support/texlab/benches/bench_main.rs | 25 - support/texlab/crates/base-db/Cargo.toml | 25 + support/texlab/crates/base-db/src/config.rs | 233 ++++ support/texlab/crates/base-db/src/diagnostics.rs | 25 + .../texlab/crates/base-db/src/diagnostics/bib.rs | 69 ++ .../texlab/crates/base-db/src/diagnostics/log.rs | 68 ++ .../texlab/crates/base-db/src/diagnostics/tex.rs | 116 ++ support/texlab/crates/base-db/src/document.rs | 196 ++++ support/texlab/crates/base-db/src/graph.rs | 161 +++ support/texlab/crates/base-db/src/lib.rs | 9 + support/texlab/crates/base-db/src/line_index.rs | 217 ++++ support/texlab/crates/base-db/src/semantics.rs | 17 + .../crates/base-db/src/semantics/auxiliary.rs | 39 + support/texlab/crates/base-db/src/semantics/tex.rs | 292 +++++ support/texlab/crates/base-db/src/workspace.rs | 302 ++++++ support/texlab/crates/citeproc/Cargo.toml | 26 + support/texlab/crates/citeproc/src/driver.rs | 728 +++++++++++++ support/texlab/crates/citeproc/src/entry.rs | 162 +++ support/texlab/crates/citeproc/src/field.rs | 4 + support/texlab/crates/citeproc/src/field/author.rs | 80 ++ support/texlab/crates/citeproc/src/field/date.rs | 85 ++ support/texlab/crates/citeproc/src/field/number.rs | 60 ++ support/texlab/crates/citeproc/src/field/text.rs | 306 ++++++ support/texlab/crates/citeproc/src/lib.rs | 36 + support/texlab/crates/citeproc/src/output.rs | 68 ++ .../citeproc__tests__article_aksin_2006.snap | 5 + .../citeproc__tests__article_betram_1996.snap | 5 + .../citeproc__tests__article_blom_2021.snap | 5 + .../citeproc__tests__article_jain_1999.snap | 5 + .../citeproc__tests__article_kastenholz_2006.snap | 5 + .../citeproc__tests__article_rivest_1978.snap | 5 + .../snapshots/citeproc__tests__book_aho_2006.snap | 5 + .../citeproc__tests__book_averroes_1998.snap | 5 + .../citeproc__tests__book_knuth_1984.snap | 5 + .../citeproc__tests__collection_matuz_1990.snap | 5 + .../citeproc__tests__inproceedings_combi_2004.snap | 5 + .../citeproc__tests__inproceedings_erwin_2007.snap | 5 + .../citeproc__tests__mvbook_nietzsche_1988.snap | 5 + .../citeproc__tests__patent_almendro_1998.snap | 5 + support/texlab/crates/citeproc/src/tests.rs | 351 ++++++ support/texlab/crates/distro/Cargo.toml | 14 + support/texlab/crates/distro/src/file_name_db.rs | 80 ++ support/texlab/crates/distro/src/kpsewhich.rs | 25 + support/texlab/crates/distro/src/language.rs | 42 + support/texlab/crates/distro/src/lib.rs | 75 ++ support/texlab/crates/distro/src/miktex.rs | 78 ++ support/texlab/crates/distro/src/texlive.rs | 36 + support/texlab/crates/parser/Cargo.toml | 20 + support/texlab/crates/parser/src/bibtex.rs | 450 ++++++++ support/texlab/crates/parser/src/build_log.rs | 187 ++++ support/texlab/crates/parser/src/latex.rs | 1137 ++++++++++++++++++++ support/texlab/crates/parser/src/latex/lexer.rs | 64 ++ .../crates/parser/src/latex/lexer/commands.rs | 93 ++ .../texlab/crates/parser/src/latex/lexer/types.rs | 131 +++ support/texlab/crates/parser/src/lib.rs | 5 + .../parser__bibtex__tests__parse@comment.txt.snap | 10 + ...parser__bibtex__tests__parse@issue_809.txt.snap | 32 + .../parser__bibtex__tests__parse@preamble.txt.snap | 17 + ...bibtex__tests__parse@samples__aho_2006.txt.snap | 132 +++ ...btex__tests__parse@samples__aksin_2006.txt.snap | 258 +++++ ...x__tests__parse@samples__almendro_1998.txt.snap | 246 +++++ ...x__tests__parse@samples__averroes_1998.txt.snap | 351 ++++++ ...tex__tests__parse@samples__betram_1996.txt.snap | 208 ++++ ...ibtex__tests__parse@samples__blom_2021.txt.snap | 223 ++++ ...btex__tests__parse@samples__combi_2004.txt.snap | 251 +++++ ...btex__tests__parse@samples__erwin_2007.txt.snap | 239 ++++ ...ibtex__tests__parse@samples__jain_1999.txt.snap | 267 +++++ ..._tests__parse@samples__kastenholz_2006.txt.snap | 302 ++++++ ...btex__tests__parse@samples__knuth_1984.txt.snap | 320 ++++++ ...btex__tests__parse@samples__matuz_1990.txt.snap | 176 +++ ...__tests__parse@samples__nietzsche_1998.txt.snap | 368 +++++++ ...tex__tests__parse@samples__rivest_1978.txt.snap | 232 ++++ .../parser__build_log__tests__parse@001.txt.snap | 27 + .../parser__build_log__tests__parse@002.txt.snap | 20 + .../parser__build_log__tests__parse@003.txt.snap | 25 + .../parser__build_log__tests__parse@004.txt.snap | 31 + .../parser__build_log__tests__parse@005.txt.snap | 30 + .../parser__build_log__tests__parse@006.txt.snap | 69 ++ .../parser__build_log__tests__parse@007.txt.snap | 20 + ...er__latex__tests__parse@block_comments.txt.snap | 30 + ..._tests__parse@caption__caption_default.txt.snap | 26 + ...__parse@caption__caption_default_error.txt.snap | 25 + ...__tests__parse@caption__caption_figure.txt.snap | 30 + ..._tests__parse@caption__caption_minimal.txt.snap | 21 + ...__parse@caption__caption_minimal_error.txt.snap | 20 + ..._tests__parse@citation__citation_empty.txt.snap | 13 + ...parse@citation__citation_missing_brace.txt.snap | 14 + ...parse@citation__citation_multiple_keys.txt.snap | 19 + ...ests__parse@citation__citation_prenote.txt.snap | 20 + ...se@citation__citation_prenote_postnote.txt.snap | 25 + ...rse@citation__citation_redundant_comma.txt.snap | 17 + ...tests__parse@citation__citation_simple.txt.snap | 15 + ...__tests__parse@citation__citation_star.txt.snap | 15 + ...__parse@color__color_definition_simple.txt.snap | 29 + ...s__parse@color__color_reference_simple.txt.snap | 15 + ...rse@color__color_set_definition_error1.txt.snap | 33 + ...rse@color__color_set_definition_error2.txt.snap | 23 + ...rse@color__color_set_definition_error3.txt.snap | 18 + ...rse@color__color_set_definition_error4.txt.snap | 10 + ...rse@color__color_set_definition_simple.txt.snap | 38 + ...definition__command_definition_no_argc.txt.snap | 19 + ...definition__command_definition_no_impl.txt.snap | 14 + ...tion__command_definition_no_impl_error.txt.snap | 13 + ...efinition__command_definition_optional.txt.snap | 29 + ..._definition__command_definition_simple.txt.snap | 25 + ...inition__command_definition_with_begin.txt.snap | 39 + ...mand_definition__math_operator_no_impl.txt.snap | 14 + ...mmand_definition__math_operator_simple.txt.snap | 19 + ...rse@environment__environment_asymptote.txt.snap | 41 + ...se@environment__environment_definition.txt.snap | 40 + ...t__environment_definition_optional_arg.txt.snap | 35 + ..._parse@environment__environment_nested.txt.snap | 41 + ...ent__environment_nested_missing_braces.txt.snap | 42 + ..._parse@environment__environment_simple.txt.snap | 29 + .../parser__latex__tests__parse@equation.txt.snap | 17 + ...x__tests__parse@equation_missing_begin.txt.snap | 32 + ...tex__tests__parse@generic_command_args.txt.snap | 20 + ...ex__tests__parse@generic_command_empty.txt.snap | 10 + ...x__tests__parse@generic_command_escape.txt.snap | 10 + ...s__parse@glossary__acronym_declaration.txt.snap | 50 + ...e@glossary__acronym_definition_options.txt.snap | 47 + ...se@glossary__acronym_definition_simple.txt.snap | 29 + ...tests__parse@glossary__acronym_package.txt.snap | 30 + ...se@glossary__acronym_reference_options.txt.snap | 30 + ...rse@glossary__acronym_reference_simple.txt.snap | 15 + ...sary__glossary_entry_definition_simple.txt.snap | 34 + ...sary__glossary_entry_reference_options.txt.snap | 33 + ...ssary__glossary_entry_reference_simple.txt.snap | 15 + ...ser__latex__tests__parse@graphics_path.txt.snap | 18 + ...ex__tests__parse@graphics_path_command.txt.snap | 23 + ...ex__tests__parse@graphics_path_options.txt.snap | 23 + ...__parse@group__curly_group_missing_end.txt.snap | 14 + ...tests__parse@group__curly_group_simple.txt.snap | 15 + ...sts__parse@group__equation_missing_end.txt.snap | 32 + ...__tests__parse@group__escaped_brackets.txt.snap | 18 + ...__tests__parse@group__unmatched_braces.txt.snap | 12 + ...tests__parse@group__unmatched_brackets.txt.snap | 12 + ...e@group__unmatched_brackets_with_group.txt.snap | 15 + ...arser__latex__tests__parse@hello_world.txt.snap | 12 + ...arse@include__biblatex_include_options.txt.snap | 31 + ...parse@include__biblatex_include_simple.txt.snap | 15 + ...__parse@include__bibtex_include_simple.txt.snap | 15 + ...ts__parse@include__class_include_empty.txt.snap | 13 + ...__parse@include__class_include_options.txt.snap | 38 + ...s__parse@include__class_include_simple.txt.snap | 15 + ...arse@include__graphics_include_command.txt.snap | 31 + ...__graphics_include_complicated_options.txt.snap | 26 + ...arse@include__graphics_include_options.txt.snap | 26 + ...parse@include__graphics_include_simple.txt.snap | 15 + ...ests__parse@include__import_incomplete.txt.snap | 14 + ...x__tests__parse@include__import_simple.txt.snap | 20 + ...arse@include__inkscape_include_options.txt.snap | 26 + ...parse@include__inkscape_include_simple.txt.snap | 15 + ...e@include__latex_include_equality_sign.txt.snap | 17 + ...s__parse@include__latex_include_simple.txt.snap | 15 + ...rse@include__latex_input_path_brackets.txt.snap | 19 + ...__parse@include__package_include_empty.txt.snap | 13 + ...arse@include__package_include_multiple.txt.snap | 19 + ...parse@include__package_include_options.txt.snap | 38 + ..._parse@include__package_include_simple.txt.snap | 15 + ...rse@include__pgf_library_import_simple.txt.snap | 15 + ...ts__parse@include__svg_include_options.txt.snap | 26 + ...sts__parse@include__svg_include_simple.txt.snap | 15 + ...se@include__tikz_library_import_simple.txt.snap | 15 + ...parse@include__verbatim_include_simple.txt.snap | 15 + .../parser__latex__tests__parse@inline.txt.snap | 26 + ...tex__tests__parse@inline_double_dollar.txt.snap | 26 + .../parser__latex__tests__parse@issue_745.txt.snap | 131 +++ .../parser__latex__tests__parse@issue_789.txt.snap | 15 + .../parser__latex__tests__parse@issue_853.txt.snap | 62 ++ .../parser__latex__tests__parse@issue_857.txt.snap | 33 + .../parser__latex__tests__parse@issue_874.txt.snap | 28 + ...rse@label__label_definition_line_break.txt.snap | 19 + ...__parse@label__label_definition_simple.txt.snap | 15 + ...atex__tests__parse@label__label_number.txt.snap | 23 + ..._parse@label__label_reference_equation.txt.snap | 15 + ...arse@label__label_reference_incomplete.txt.snap | 32 + ..._parse@label__label_reference_multiple.txt.snap | 19 + ...rse@label__label_reference_range_error.txt.snap | 19 + ...abel__label_reference_range_incomplete.txt.snap | 15 + ...se@label__label_reference_range_simple.txt.snap | 20 + ...s__parse@label__label_reference_simple.txt.snap | 15 + .../parser__latex__tests__parse@parameter.txt.snap | 10 + ...r__latex__tests__parse@parameter_error.txt.snap | 10 + ...__parse@structure__structure_enum_item.txt.snap | 47 + ...e@structure__structure_invalid_nesting.txt.snap | 23 + ...sts__parse@structure__structure_nested.txt.snap | 57 + ...s__parse@structure__structure_siblings.txt.snap | 29 + ...em_definition__theorem_definition_full.txt.snap | 30 + ...__theorem_definition_name_with_counter.txt.snap | 20 + ...eorem_definition_name_with_description.txt.snap | 20 + ...tion_name_with_description_and_counter.txt.snap | 25 + ...finition__theorem_definition_only_name.txt.snap | 15 + .../crates/parser/src/test_data/bibtex/comment.txt | 6 + .../parser/src/test_data/bibtex/issue_809.txt | 3 + .../parser/src/test_data/bibtex/preamble.txt | 1 + .../src/test_data/bibtex/samples/aho_2006.txt | 8 + .../src/test_data/bibtex/samples/aksin_2006.txt | 16 + .../src/test_data/bibtex/samples/almendro_1998.txt | 14 + .../src/test_data/bibtex/samples/averroes_1998.txt | 21 + .../src/test_data/bibtex/samples/betram_1996.txt | 16 + .../src/test_data/bibtex/samples/blom_2021.txt | 20 + .../src/test_data/bibtex/samples/combi_2004.txt | 16 + .../src/test_data/bibtex/samples/erwin_2007.txt | 14 + .../src/test_data/bibtex/samples/jain_1999.txt | 18 + .../test_data/bibtex/samples/kastenholz_2006.txt | 20 + .../src/test_data/bibtex/samples/knuth_1984.txt | 22 + .../src/test_data/bibtex/samples/matuz_1990.txt | 14 + .../test_data/bibtex/samples/nietzsche_1998.txt | 24 + .../src/test_data/bibtex/samples/rivest_1978.txt | 17 + .../crates/parser/src/test_data/build_log/001.txt | 83 ++ .../crates/parser/src/test_data/build_log/002.txt | 64 ++ .../crates/parser/src/test_data/build_log/003.txt | 65 ++ .../crates/parser/src/test_data/build_log/004.txt | 83 ++ .../crates/parser/src/test_data/build_log/005.txt | 385 +++++++ .../crates/parser/src/test_data/build_log/006.txt | 122 +++ .../crates/parser/src/test_data/build_log/007.txt | 176 +++ .../parser/src/test_data/latex/block_comments.txt | 9 + .../test_data/latex/caption/caption_default.txt | 1 + .../latex/caption/caption_default_error.txt | 1 + .../src/test_data/latex/caption/caption_figure.txt | 1 + .../test_data/latex/caption/caption_minimal.txt | 1 + .../latex/caption/caption_minimal_error.txt | 1 + .../test_data/latex/citation/citation_empty.txt | 1 + .../latex/citation/citation_missing_brace.txt | 1 + .../latex/citation/citation_multiple_keys.txt | 1 + .../test_data/latex/citation/citation_prenote.txt | 1 + .../latex/citation/citation_prenote_postnote.txt | 1 + .../latex/citation/citation_redundant_comma.txt | 1 + .../test_data/latex/citation/citation_simple.txt | 1 + .../src/test_data/latex/citation/citation_star.txt | 1 + .../latex/color/color_definition_simple.txt | 1 + .../latex/color/color_reference_simple.txt | 1 + .../latex/color/color_set_definition_error1.txt | 1 + .../latex/color/color_set_definition_error2.txt | 1 + .../latex/color/color_set_definition_error3.txt | 1 + .../latex/color/color_set_definition_error4.txt | 1 + .../latex/color/color_set_definition_simple.txt | 1 + .../command_definition_no_argc.txt | 1 + .../command_definition_no_impl.txt | 1 + .../command_definition_no_impl_error.txt | 1 + .../command_definition_optional.txt | 1 + .../command_definition_simple.txt | 1 + .../command_definition_with_begin.txt | 1 + .../command_definition/math_operator_no_impl.txt | 1 + .../command_definition/math_operator_simple.txt | 1 + .../latex/environment/environment_asymptote.txt | 3 + .../latex/environment/environment_definition.txt | 1 + .../environment_definition_optional_arg.txt | 1 + .../latex/environment/environment_nested.txt | 1 + .../environment_nested_missing_braces.txt | 1 + .../latex/environment/environment_simple.txt | 1 + .../crates/parser/src/test_data/latex/equation.txt | 1 + .../src/test_data/latex/equation_missing_begin.txt | 1 + .../src/test_data/latex/generic_command_args.txt | 1 + .../src/test_data/latex/generic_command_empty.txt | 1 + .../src/test_data/latex/generic_command_escape.txt | 1 + .../latex/glossary/acronym_declaration.txt | 1 + .../latex/glossary/acronym_definition_options.txt | 1 + .../latex/glossary/acronym_definition_simple.txt | 1 + .../test_data/latex/glossary/acronym_package.txt | 1 + .../latex/glossary/acronym_reference_options.txt | 1 + .../latex/glossary/acronym_reference_simple.txt | 1 + .../glossary/glossary_entry_definition_simple.txt | 1 + .../glossary/glossary_entry_reference_options.txt | 1 + .../glossary/glossary_entry_reference_simple.txt | 1 + .../parser/src/test_data/latex/graphics_path.txt | 1 + .../src/test_data/latex/graphics_path_command.txt | 1 + .../src/test_data/latex/graphics_path_options.txt | 1 + .../latex/group/curly_group_missing_end.txt | 1 + .../test_data/latex/group/curly_group_simple.txt | 1 + .../test_data/latex/group/equation_missing_end.txt | 1 + .../src/test_data/latex/group/escaped_brackets.txt | 1 + .../src/test_data/latex/group/unmatched_braces.txt | 1 + .../test_data/latex/group/unmatched_brackets.txt | 1 + .../latex/group/unmatched_brackets_with_group.txt | 1 + .../parser/src/test_data/latex/hello_world.txt | 1 + .../latex/include/biblatex_include_options.txt | 1 + .../latex/include/biblatex_include_simple.txt | 1 + .../latex/include/bibtex_include_simple.txt | 1 + .../latex/include/class_include_empty.txt | 1 + .../latex/include/class_include_options.txt | 1 + .../latex/include/class_include_simple.txt | 1 + .../latex/include/graphics_include_command.txt | 1 + .../graphics_include_complicated_options.txt | 1 + .../latex/include/graphics_include_options.txt | 1 + .../latex/include/graphics_include_simple.txt | 1 + .../test_data/latex/include/import_incomplete.txt | 1 + .../src/test_data/latex/include/import_simple.txt | 1 + .../latex/include/inkscape_include_options.txt | 1 + .../latex/include/inkscape_include_simple.txt | 1 + .../latex/include/latex_include_equality_sign.txt | 1 + .../latex/include/latex_include_simple.txt | 1 + .../latex/include/latex_input_path_brackets.txt | 1 + .../latex/include/package_include_empty.txt | 1 + .../latex/include/package_include_multiple.txt | 1 + .../latex/include/package_include_options.txt | 1 + .../latex/include/package_include_simple.txt | 1 + .../latex/include/pgf_library_import_simple.txt | 1 + .../latex/include/svg_include_options.txt | 1 + .../test_data/latex/include/svg_include_simple.txt | 1 + .../latex/include/tikz_library_import_simple.txt | 1 + .../latex/include/verbatim_include_simple.txt | 1 + .../crates/parser/src/test_data/latex/inline.txt | 1 + .../src/test_data/latex/inline_double_dollar.txt | 1 + .../parser/src/test_data/latex/issue_745.txt | 21 + .../parser/src/test_data/latex/issue_789.txt | 1 + .../parser/src/test_data/latex/issue_853.txt | 8 + .../parser/src/test_data/latex/issue_857.txt | 3 + .../parser/src/test_data/latex/issue_874.txt | 1 + .../latex/label/label_definition_line_break.txt | 2 + .../latex/label/label_definition_simple.txt | 1 + .../src/test_data/latex/label/label_number.txt | 1 + .../latex/label/label_reference_equation.txt | 1 + .../latex/label/label_reference_incomplete.txt | 1 + .../latex/label/label_reference_multiple.txt | 1 + .../latex/label/label_reference_range_error.txt | 1 + .../label/label_reference_range_incomplete.txt | 1 + .../latex/label/label_reference_range_simple.txt | 1 + .../latex/label/label_reference_simple.txt | 1 + .../parser/src/test_data/latex/parameter.txt | 1 + .../parser/src/test_data/latex/parameter_error.txt | 1 + .../latex/structure/structure_enum_item.txt | 1 + .../latex/structure/structure_invalid_nesting.txt | 1 + .../test_data/latex/structure/structure_nested.txt | 1 + .../latex/structure/structure_siblings.txt | 1 + .../theorem_definition/theorem_definition_full.txt | 1 + .../theorem_definition_name_with_counter.txt | 1 + .../theorem_definition_name_with_description.txt | 1 + ...efinition_name_with_description_and_counter.txt | 1 + .../theorem_definition_only_name.txt | 1 + support/texlab/crates/syntax/Cargo.toml | 14 + support/texlab/crates/syntax/src/bibtex.rs | 304 ++++++ support/texlab/crates/syntax/src/latex.rs | 29 + support/texlab/crates/syntax/src/latex/cst.rs | 688 ++++++++++++ support/texlab/crates/syntax/src/latex/kind.rs | 91 ++ support/texlab/crates/syntax/src/lib.rs | 35 + support/texlab/crates/texlab/Cargo.toml | 78 ++ support/texlab/crates/texlab/benches/bench_main.rs | 43 + .../texlab/crates/texlab/data/components.json.gz | Bin 0 -> 6970534 bytes support/texlab/crates/texlab/data/lang_data.json | 1058 ++++++++++++++++++ support/texlab/crates/texlab/src/client.rs | 109 ++ support/texlab/crates/texlab/src/features.rs | 14 + support/texlab/crates/texlab/src/features/build.rs | 171 +++ .../crates/texlab/src/features/build/progress.rs | 54 + .../crates/texlab/src/features/completion.rs | 57 + .../texlab/src/features/completion/acronym_ref.rs | 31 + .../texlab/src/features/completion/argument.rs | 57 + .../src/features/completion/begin_snippet.rs | 9 + .../texlab/src/features/completion/builder.rs | 770 +++++++++++++ .../texlab/src/features/completion/citation.rs | 58 + .../crates/texlab/src/features/completion/color.rs | 20 + .../texlab/src/features/completion/color_model.rs | 40 + .../src/features/completion/component_command.rs | 24 + .../features/completion/component_environment.rs | 18 + .../texlab/src/features/completion/entry_type.rs | 25 + .../crates/texlab/src/features/completion/field.rs | 34 + .../texlab/src/features/completion/glossary_ref.rs | 37 + .../texlab/src/features/completion/import.rs | 53 + .../texlab/src/features/completion/include.rs | 140 +++ .../crates/texlab/src/features/completion/label.rs | 72 ++ .../texlab/src/features/completion/theorem.rs | 21 + .../texlab/src/features/completion/tikz_library.rs | 27 + .../texlab/src/features/completion/user_command.rs | 21 + .../src/features/completion/user_environment.rs | 26 + .../crates/texlab/src/features/definition.rs | 60 ++ .../texlab/src/features/definition/command.rs | 45 + .../texlab/src/features/definition/document.rs | 31 + .../crates/texlab/src/features/definition/entry.rs | 42 + .../crates/texlab/src/features/definition/label.rs | 37 + .../texlab/src/features/definition/string.rs | 35 + .../texlab/crates/texlab/src/features/folding.rs | 62 ++ .../crates/texlab/src/features/formatting.rs | 29 + .../src/features/formatting/bibtex_internal.rs | 198 ++++ .../texlab/src/features/formatting/latexindent.rs | 75 ++ .../crates/texlab/src/features/forward_search.rs | 195 ++++ .../texlab/crates/texlab/src/features/highlight.rs | 15 + .../crates/texlab/src/features/highlight/label.rs | 30 + support/texlab/crates/texlab/src/features/hover.rs | 39 + .../crates/texlab/src/features/hover/citation.rs | 27 + .../crates/texlab/src/features/hover/component.rs | 23 + .../crates/texlab/src/features/hover/entry_type.rs | 20 + .../crates/texlab/src/features/hover/field.rs | 23 + .../crates/texlab/src/features/hover/label.rs | 26 + .../crates/texlab/src/features/hover/string_ref.rs | 42 + .../crates/texlab/src/features/inlay_hint.rs | 48 + .../crates/texlab/src/features/inlay_hint/label.rs | 39 + support/texlab/crates/texlab/src/features/link.rs | 38 + .../crates/texlab/src/features/link/include.rs | 22 + .../texlab/crates/texlab/src/features/reference.rs | 39 + .../crates/texlab/src/features/reference/entry.rs | 56 + .../crates/texlab/src/features/reference/label.rs | 36 + .../crates/texlab/src/features/reference/string.rs | 44 + .../texlab/crates/texlab/src/features/rename.rs | 64 ++ .../crates/texlab/src/features/rename/command.rs | 39 + .../crates/texlab/src/features/rename/entry.rs | 70 ++ .../crates/texlab/src/features/rename/label.rs | 37 + .../texlab/crates/texlab/src/features/symbol.rs | 129 +++ .../crates/texlab/src/features/symbol/bibtex.rs | 82 ++ .../crates/texlab/src/features/symbol/latex.rs | 431 ++++++++ .../texlab/src/features/symbol/project_order.rs | 203 ++++ .../crates/texlab/src/features/symbol/types.rs | 133 +++ .../texlab/src/features/workspace_command.rs | 3 + .../workspace_command/change_environment.rs | 108 ++ .../texlab/src/features/workspace_command/clean.rs | 93 ++ .../src/features/workspace_command/dep_graph.rs | 57 + support/texlab/crates/texlab/src/lib.rs | 33 + support/texlab/crates/texlab/src/main.rs | 70 ++ support/texlab/crates/texlab/src/server.rs | 1018 ++++++++++++++++++ .../texlab/crates/texlab/src/server/dispatch.rs | 86 ++ support/texlab/crates/texlab/src/server/options.rs | 213 ++++ support/texlab/crates/texlab/src/util.rs | 16 + .../texlab/crates/texlab/src/util/capabilities.rs | 179 +++ support/texlab/crates/texlab/src/util/chktex.rs | 113 ++ .../texlab/crates/texlab/src/util/components.rs | 116 ++ support/texlab/crates/texlab/src/util/cursor.rs | 303 ++++++ .../texlab/crates/texlab/src/util/diagnostics.rs | 120 +++ support/texlab/crates/texlab/src/util/label.rs | 202 ++++ support/texlab/crates/texlab/src/util/lang_data.rs | 68 ++ .../crates/texlab/src/util/line_index_ext.rs | 51 + support/texlab/crates/texlab/src/util/lsp_enums.rs | 94 ++ .../texlab/crates/texlab/src/util/regex_filter.rs | 20 + support/texlab/crates/texlab/tests/lsp/fixture.rs | 269 +++++ support/texlab/crates/texlab/tests/lsp/main.rs | 3 + .../crates/texlab/tests/lsp/text_document.rs | 11 + .../texlab/tests/lsp/text_document/completion.rs | 854 +++++++++++++++ .../texlab/tests/lsp/text_document/definition.rs | 156 +++ .../tests/lsp/text_document/document_highlight.rs | 51 + .../tests/lsp/text_document/document_link.rs | 52 + .../tests/lsp/text_document/document_symbol.rs | 441 ++++++++ .../tests/lsp/text_document/folding_range.rs | 66 ++ .../texlab/tests/lsp/text_document/formatting.rs | 135 +++ .../crates/texlab/tests/lsp/text_document/hover.rs | 246 +++++ .../texlab/tests/lsp/text_document/inlay_hint.rs | 57 + .../texlab/tests/lsp/text_document/references.rs | 270 +++++ .../texlab/tests/lsp/text_document/rename.rs | 106 ++ ..._document__completion__acronym_package_ref.snap | 10 + ...xt_document__completion__acronym_ref_empty.snap | 10 + ...cument__completion__acronym_ref_open_brace.snap | 10 + ...t_document__completion__acronym_ref_simple.snap | 10 + ..._text_document__completion__argument_empty.snap | 26 + ..._document__completion__argument_open_brace.snap | 26 + ...__text_document__completion__argument_word.snap | 10 + ..._begin_environment_without_snippet_support.snap | 31 + .../lsp__text_document__completion__citation.snap | 16 + ...ext_document__completion__citation_acronym.snap | 11 + ..._document__completion__citation_open_brace.snap | 11 + ...__completion__citation_open_brace_multiple.snap | 11 + ...pletion__color_model_definition_open_brace.snap | 26 + ...ion__color_model_definition_set_open_brace.snap | 26 + ...pletion__color_model_definition_set_simple.snap | 26 + ..._completion__color_model_definition_simple.snap | 26 + ...ext_document__completion__color_open_brace.snap | 26 + ...p__text_document__completion__color_simple.snap | 26 + ...lsp__text_document__completion__color_word.snap | 26 + ...ment__completion__component_command_bibtex.snap | 31 + ...ment__completion__component_command_simple.snap | 31 + ...mpletion__component_command_simple_package.snap | 31 + ...t__completion__component_environment_class.snap | 11 + ...__component_environment_command_definition.snap | 11 + ...__completion__component_environment_simple.snap | 11 + ...mpletion__component_environment_simple_end.snap | 31 + ...ent__completion__entry_type_after_preamble.snap | 10 + ...ument__completion__entry_type_after_string.snap | 10 + ..._document__completion__entry_type_at_empty.snap | 26 + ...ent__completion__entry_type_before_article.snap | 10 + ...nt__completion__entry_type_before_preamble.snap | 10 + ...ment__completion__entry_type_before_string.snap | 10 + ...ent__completion__entry_type_complete_entry.snap | 10 + ...ment__completion__field_empty_entry_closed.snap | 26 + ...cument__completion__field_empty_entry_open.snap | 26 + ...cument__completion__field_entry_field_name.snap | 26 + ...letion__field_entry_two_fields_name_closed.snap | 26 + ...mpletion__field_entry_two_fields_name_open.snap | 26 + ...ument__completion__glossary_ref_open_brace.snap | 10 + ..._document__completion__glossary_ref_simple.snap | 10 + ...ent__completion__import_class_closed_brace.snap | 26 + ...ument__completion__import_class_open_brace.snap | 26 + ...t__completion__import_package_closed_brace.snap | 26 + ...ent__completion__import_package_open_brace.snap | 26 + ...sp__text_document__completion__issue_857_1.snap | 21 + .../lsp__text_document__completion__issue_864.snap | 11 + .../lsp__text_document__completion__label.snap | 36 + ...ent__completion__project_resolution_import.snap | 31 + ..._completion__project_resolution_texlabroot.snap | 31 + ...__text_document__completion__theorem_begin.snap | 11 + ...sp__text_document__completion__theorem_end.snap | 11 + ...ent__completion__tikz_library_closed_brace.snap | 26 + ...ument__completion__tikz_library_open_brace.snap | 26 + ...p__text_document__completion__user_command.snap | 11 + ...ext_document__completion__user_environment.snap | 16 + ...t_document__document_link__document_import.snap | 19 + ..._document__document_link__document_include.snap | 19 + ..._document__document_symbol__enumerate_flat.snap | 96 ++ ...ocument__document_symbol__enumerate_nested.snap | 140 +++ ...t_document__document_symbol__equation_flat.snap | 60 ++ ...document__document_symbol__equation_nested.snap | 86 ++ ...text_document__document_symbol__float_flat.snap | 60 ++ ...xt_document__document_symbol__float_nested.snap | 86 ++ ...ocument__document_symbol__ignored_patterns.snap | 24 + ...xt_document__document_symbol__section_flat.snap | 60 ++ ..._document__document_symbol__section_nested.snap | 87 ++ ...xt_document__document_symbol__theorem_flat.snap | 78 ++ ..._document__document_symbol__theorem_nested.snap | 113 ++ .../lsp__text_document__folding_range__bibtex.snap | 27 + .../lsp__text_document__folding_range__latex.snap | 41 + ...ument__formatting__bibtex_internal_command.snap | 7 + ..._formatting__bibtex_internal_insert_braces.snap | 7 + ...__formatting__bibtex_internal_join_strings.snap | 7 + ...rmatting__bibtex_internal_multiple_entries.snap | 15 + ...cument__formatting__bibtex_internal_parens.snap | 6 + ...ment__formatting__bibtex_internal_preamble.snap | 5 + ...cument__formatting__bibtex_internal_string.snap | 5 + ...formatting__bibtex_internal_trailing_comma.snap | 7 + ...ormatting__bibtex_internal_wrap_long_lines.snap | 9 + ...text_document__hover__citation_inside_cite.snap | 8 + ...ext_document__hover__citation_inside_entry.snap | 8 + ...t_document__hover__component_known_package.snap | 8 + ...ext_document__hover__entry_type_known_type.snap | 8 + .../lsp__text_document__hover__field_known.snap | 8 + ..._document__hover__label_theorem_child_file.snap | 8 + ...nt__hover__label_theorem_child_file_mumber.snap | 8 + .../lsp__text_document__hover__section.snap | 8 + ...t_document__hover__string_inside_reference.snap | 8 + ...ext_document__inlay_hint__label_definition.snap | 38 + .../texlab/crates/texlab/tests/lsp/workspace.rs | 1 + .../lsp__workspace__symbol__filter_bibtex.snap | 42 + ...lsp__workspace__symbol__filter_type_figure.snap | 24 + .../lsp__workspace__symbol__filter_type_item.snap | 60 ++ .../lsp__workspace__symbol__filter_type_math.snap | 42 + ...sp__workspace__symbol__filter_type_section.snap | 78 ++ .../crates/texlab/tests/lsp/workspace/symbol.rs | 124 +++ support/texlab/data/components.json.gz | Bin 6970534 -> 0 bytes support/texlab/data/lang_data.json | 1058 ------------------ support/texlab/src/citation.rs | 37 - support/texlab/src/citation/driver.rs | 729 ------------- support/texlab/src/citation/entry.rs | 126 --- support/texlab/src/citation/field.rs | 4 - support/texlab/src/citation/field/author.rs | 70 -- support/texlab/src/citation/field/date.rs | 81 -- support/texlab/src/citation/field/number.rs | 54 - support/texlab/src/citation/field/text.rs | 261 ----- support/texlab/src/citation/output.rs | 68 -- ...exlab__citation__tests__article_aksin_2006.snap | 6 - ...xlab__citation__tests__article_betram_1996.snap | 6 - ...texlab__citation__tests__article_blom_2021.snap | 6 - ...texlab__citation__tests__article_jain_1999.snap | 6 - ...__citation__tests__article_kastenholz_2006.snap | 6 - ...xlab__citation__tests__article_rivest_1978.snap | 6 - .../texlab__citation__tests__book_aho_2006.snap | 6 - ...exlab__citation__tests__book_averroes_1998.snap | 6 - .../texlab__citation__tests__book_knuth_1984.snap | 6 - ...ab__citation__tests__collection_matuz_1990.snap | 6 - ..._citation__tests__inproceedings_combi_2004.snap | 6 - ..._citation__tests__inproceedings_erwin_2007.snap | 6 - ...ab__citation__tests__mvbook_nietzsche_1988.snap | 6 - ...lab__citation__tests__patent_almendro_1998.snap | 6 - support/texlab/src/citation/tests.rs | 351 ------ support/texlab/src/client.rs | 109 -- support/texlab/src/config.rs | 230 ---- support/texlab/src/db.rs | 15 - support/texlab/src/db/analysis.rs | 221 ---- support/texlab/src/db/analysis/label.rs | 122 --- support/texlab/src/db/context.rs | 18 - support/texlab/src/db/diagnostics.rs | 177 --- support/texlab/src/db/diagnostics/bib.rs | 112 -- support/texlab/src/db/diagnostics/log.rs | 100 -- support/texlab/src/db/diagnostics/tex.rs | 147 --- support/texlab/src/db/discovery.rs | 258 ----- support/texlab/src/db/document.rs | 199 ---- support/texlab/src/db/parse.rs | 79 -- support/texlab/src/db/workspace.rs | 211 ---- support/texlab/src/distro.rs | 74 -- support/texlab/src/distro/file_name_db.rs | 80 -- support/texlab/src/distro/kpsewhich.rs | 25 - support/texlab/src/distro/miktex.rs | 78 -- support/texlab/src/distro/texlive.rs | 36 - support/texlab/src/features.rs | 14 - support/texlab/src/features/build.rs | 190 ---- support/texlab/src/features/build/progress.rs | 54 - support/texlab/src/features/completion.rs | 50 - .../texlab/src/features/completion/acronym_ref.rs | 29 - support/texlab/src/features/completion/argument.rs | 62 -- .../src/features/completion/begin_snippet.rs | 9 - support/texlab/src/features/completion/builder.rs | 767 ------------- support/texlab/src/features/completion/citation.rs | 63 -- support/texlab/src/features/completion/color.rs | 22 - .../texlab/src/features/completion/color_model.rs | 39 - .../src/features/completion/component_command.rs | 24 - .../features/completion/component_environment.rs | 18 - .../texlab/src/features/completion/entry_type.rs | 27 - support/texlab/src/features/completion/field.rs | 36 - .../texlab/src/features/completion/glossary_ref.rs | 35 - support/texlab/src/features/completion/import.rs | 55 - support/texlab/src/features/completion/include.rs | 149 --- support/texlab/src/features/completion/label.rs | 79 -- support/texlab/src/features/completion/theorem.rs | 21 - .../texlab/src/features/completion/tikz_library.rs | 29 - .../texlab/src/features/completion/user_command.rs | 30 - .../src/features/completion/user_environment.rs | 25 - support/texlab/src/features/definition.rs | 63 -- support/texlab/src/features/definition/command.rs | 41 - support/texlab/src/features/definition/document.rs | 30 - support/texlab/src/features/definition/entry.rs | 43 - support/texlab/src/features/definition/label.rs | 38 - support/texlab/src/features/definition/string.rs | 34 - support/texlab/src/features/folding.rs | 63 -- support/texlab/src/features/formatting.rs | 33 - .../src/features/formatting/bibtex_internal.rs | 200 ---- .../texlab/src/features/formatting/latexindent.rs | 78 -- support/texlab/src/features/forward_search.rs | 195 ---- support/texlab/src/features/highlight.rs | 10 - support/texlab/src/features/highlight/label.rs | 32 - support/texlab/src/features/hover.rs | 42 - support/texlab/src/features/hover/citation.rs | 27 - support/texlab/src/features/hover/component.rs | 28 - support/texlab/src/features/hover/entry_type.rs | 22 - support/texlab/src/features/hover/field.rs | 25 - support/texlab/src/features/hover/label.rs | 23 - support/texlab/src/features/hover/string_ref.rs | 43 - support/texlab/src/features/inlay_hint.rs | 45 - support/texlab/src/features/inlay_hint/label.rs | 48 - support/texlab/src/features/link.rs | 41 - support/texlab/src/features/link/include.rs | 25 - support/texlab/src/features/reference.rs | 45 - support/texlab/src/features/reference/entry.rs | 58 - support/texlab/src/features/reference/label.rs | 36 - support/texlab/src/features/reference/string.rs | 45 - support/texlab/src/features/rename.rs | 69 -- support/texlab/src/features/rename/command.rs | 37 - support/texlab/src/features/rename/entry.rs | 66 -- support/texlab/src/features/rename/label.rs | 76 -- support/texlab/src/features/symbol.rs | 124 --- support/texlab/src/features/symbol/bibtex.rs | 87 -- support/texlab/src/features/symbol/latex.rs | 446 -------- .../texlab/src/features/symbol/project_order.rs | 202 ---- support/texlab/src/features/symbol/types.rs | 136 --- support/texlab/src/features/workspace_command.rs | 3 - .../workspace_command/change_environment.rs | 108 -- .../texlab/src/features/workspace_command/clean.rs | 95 -- .../src/features/workspace_command/dep_graph.rs | 57 - support/texlab/src/lib.rs | 125 --- support/texlab/src/main.rs | 70 -- support/texlab/src/parser.rs | 5 - support/texlab/src/parser/bibtex.rs | 454 -------- support/texlab/src/parser/build_log.rs | 188 ---- support/texlab/src/parser/latex.rs | 1134 ------------------- support/texlab/src/parser/latex/lexer.rs | 65 -- support/texlab/src/parser/latex/lexer/commands.rs | 93 -- support/texlab/src/parser/latex/lexer/types.rs | 132 --- ...__parser__bibtex__tests__parse@comment.txt.snap | 10 - ...parser__bibtex__tests__parse@issue_809.txt.snap | 31 - ..._parser__bibtex__tests__parse@preamble.txt.snap | 17 - ...bibtex__tests__parse@samples__aho_2006.txt.snap | 132 --- ...btex__tests__parse@samples__aksin_2006.txt.snap | 258 ----- ...x__tests__parse@samples__almendro_1998.txt.snap | 246 ----- ...x__tests__parse@samples__averroes_1998.txt.snap | 351 ------ ...tex__tests__parse@samples__betram_1996.txt.snap | 208 ---- ...ibtex__tests__parse@samples__blom_2021.txt.snap | 223 ---- ...btex__tests__parse@samples__combi_2004.txt.snap | 251 ----- ...btex__tests__parse@samples__erwin_2007.txt.snap | 239 ---- ...ibtex__tests__parse@samples__jain_1999.txt.snap | 267 ----- ..._tests__parse@samples__kastenholz_2006.txt.snap | 302 ------ ...btex__tests__parse@samples__knuth_1984.txt.snap | 320 ------ ...btex__tests__parse@samples__matuz_1990.txt.snap | 176 --- ...__tests__parse@samples__nietzsche_1998.txt.snap | 368 ------- ...tex__tests__parse@samples__rivest_1978.txt.snap | 232 ---- ...b__parser__build_log__tests__parse@001.txt.snap | 27 - ...b__parser__build_log__tests__parse@002.txt.snap | 20 - ...b__parser__build_log__tests__parse@003.txt.snap | 25 - ...b__parser__build_log__tests__parse@004.txt.snap | 31 - ...b__parser__build_log__tests__parse@005.txt.snap | 30 - ...b__parser__build_log__tests__parse@006.txt.snap | 69 -- ...b__parser__build_log__tests__parse@007.txt.snap | 19 - ...er__latex__tests__parse@block_comments.txt.snap | 30 - ..._tests__parse@caption__caption_default.txt.snap | 26 - ...__parse@caption__caption_default_error.txt.snap | 25 - ...__tests__parse@caption__caption_figure.txt.snap | 30 - ..._tests__parse@caption__caption_minimal.txt.snap | 21 - ...__parse@caption__caption_minimal_error.txt.snap | 20 - ..._tests__parse@citation__citation_empty.txt.snap | 13 - ...parse@citation__citation_missing_brace.txt.snap | 14 - ...parse@citation__citation_multiple_keys.txt.snap | 19 - ...ests__parse@citation__citation_prenote.txt.snap | 20 - ...se@citation__citation_prenote_postnote.txt.snap | 25 - ...rse@citation__citation_redundant_comma.txt.snap | 17 - ...tests__parse@citation__citation_simple.txt.snap | 15 - ...__tests__parse@citation__citation_star.txt.snap | 15 - ...__parse@color__color_definition_simple.txt.snap | 29 - ...s__parse@color__color_reference_simple.txt.snap | 15 - ...rse@color__color_set_definition_error1.txt.snap | 33 - ...rse@color__color_set_definition_error2.txt.snap | 23 - ...rse@color__color_set_definition_error3.txt.snap | 18 - ...rse@color__color_set_definition_error4.txt.snap | 10 - ...rse@color__color_set_definition_simple.txt.snap | 38 - ...definition__command_definition_no_argc.txt.snap | 19 - ...definition__command_definition_no_impl.txt.snap | 14 - ...tion__command_definition_no_impl_error.txt.snap | 13 - ...efinition__command_definition_optional.txt.snap | 29 - ..._definition__command_definition_simple.txt.snap | 25 - ...inition__command_definition_with_begin.txt.snap | 39 - ...mand_definition__math_operator_no_impl.txt.snap | 14 - ...mmand_definition__math_operator_simple.txt.snap | 19 - ...rse@environment__environment_asymptote.txt.snap | 41 - ...se@environment__environment_definition.txt.snap | 40 - ...t__environment_definition_optional_arg.txt.snap | 35 - ..._parse@environment__environment_nested.txt.snap | 41 - ...ent__environment_nested_missing_braces.txt.snap | 42 - ..._parse@environment__environment_simple.txt.snap | 29 - ...__parser__latex__tests__parse@equation.txt.snap | 17 - ...x__tests__parse@equation_missing_begin.txt.snap | 32 - ...tex__tests__parse@generic_command_args.txt.snap | 20 - ...ex__tests__parse@generic_command_empty.txt.snap | 10 - ...x__tests__parse@generic_command_escape.txt.snap | 10 - ...s__parse@glossary__acronym_declaration.txt.snap | 50 - ...e@glossary__acronym_definition_options.txt.snap | 47 - ...se@glossary__acronym_definition_simple.txt.snap | 29 - ...tests__parse@glossary__acronym_package.txt.snap | 30 - ...se@glossary__acronym_reference_options.txt.snap | 30 - ...rse@glossary__acronym_reference_simple.txt.snap | 15 - ...sary__glossary_entry_definition_simple.txt.snap | 34 - ...sary__glossary_entry_reference_options.txt.snap | 33 - ...ssary__glossary_entry_reference_simple.txt.snap | 15 - ...ser__latex__tests__parse@graphics_path.txt.snap | 18 - ...ex__tests__parse@graphics_path_command.txt.snap | 23 - ...ex__tests__parse@graphics_path_options.txt.snap | 23 - ...__parse@group__curly_group_missing_end.txt.snap | 14 - ...tests__parse@group__curly_group_simple.txt.snap | 15 - ...sts__parse@group__equation_missing_end.txt.snap | 32 - ...__tests__parse@group__escaped_brackets.txt.snap | 18 - ...__tests__parse@group__unmatched_braces.txt.snap | 12 - ...tests__parse@group__unmatched_brackets.txt.snap | 12 - ...e@group__unmatched_brackets_with_group.txt.snap | 15 - ...arser__latex__tests__parse@hello_world.txt.snap | 12 - ...arse@include__biblatex_include_options.txt.snap | 31 - ...parse@include__biblatex_include_simple.txt.snap | 15 - ...__parse@include__bibtex_include_simple.txt.snap | 15 - ...ts__parse@include__class_include_empty.txt.snap | 13 - ...__parse@include__class_include_options.txt.snap | 38 - ...s__parse@include__class_include_simple.txt.snap | 15 - ...arse@include__graphics_include_command.txt.snap | 31 - ...__graphics_include_complicated_options.txt.snap | 26 - ...arse@include__graphics_include_options.txt.snap | 26 - ...parse@include__graphics_include_simple.txt.snap | 15 - ...ests__parse@include__import_incomplete.txt.snap | 14 - ...x__tests__parse@include__import_simple.txt.snap | 20 - ...arse@include__inkscape_include_options.txt.snap | 26 - ...parse@include__inkscape_include_simple.txt.snap | 15 - ...e@include__latex_include_equality_sign.txt.snap | 17 - ...s__parse@include__latex_include_simple.txt.snap | 15 - ...rse@include__latex_input_path_brackets.txt.snap | 19 - ...__parse@include__package_include_empty.txt.snap | 13 - ...arse@include__package_include_multiple.txt.snap | 19 - ...parse@include__package_include_options.txt.snap | 38 - ..._parse@include__package_include_simple.txt.snap | 15 - ...rse@include__pgf_library_import_simple.txt.snap | 15 - ...ts__parse@include__svg_include_options.txt.snap | 26 - ...sts__parse@include__svg_include_simple.txt.snap | 15 - ...se@include__tikz_library_import_simple.txt.snap | 15 - ...parse@include__verbatim_include_simple.txt.snap | 15 - ...ab__parser__latex__tests__parse@inline.txt.snap | 26 - ...tex__tests__parse@inline_double_dollar.txt.snap | 26 - ..._parser__latex__tests__parse@issue_745.txt.snap | 131 --- ..._parser__latex__tests__parse@issue_789.txt.snap | 15 - ..._parser__latex__tests__parse@issue_853.txt.snap | 62 -- ..._parser__latex__tests__parse@issue_857.txt.snap | 33 - ...rse@label__label_definition_line_break.txt.snap | 19 - ...__parse@label__label_definition_simple.txt.snap | 15 - ...atex__tests__parse@label__label_number.txt.snap | 23 - ..._parse@label__label_reference_equation.txt.snap | 15 - ...arse@label__label_reference_incomplete.txt.snap | 32 - ..._parse@label__label_reference_multiple.txt.snap | 19 - ...rse@label__label_reference_range_error.txt.snap | 19 - ...abel__label_reference_range_incomplete.txt.snap | 15 - ...se@label__label_reference_range_simple.txt.snap | 20 - ...s__parse@label__label_reference_simple.txt.snap | 15 - ..._parser__latex__tests__parse@parameter.txt.snap | 10 - ...r__latex__tests__parse@parameter_error.txt.snap | 10 - ...__parse@structure__structure_enum_item.txt.snap | 47 - ...e@structure__structure_invalid_nesting.txt.snap | 23 - ...sts__parse@structure__structure_nested.txt.snap | 57 - ...s__parse@structure__structure_siblings.txt.snap | 29 - ...em_definition__theorem_definition_full.txt.snap | 30 - ...__theorem_definition_name_with_counter.txt.snap | 20 - ...eorem_definition_name_with_description.txt.snap | 20 - ...tion_name_with_description_and_counter.txt.snap | 25 - ...finition__theorem_definition_only_name.txt.snap | 15 - .../texlab/src/parser/test_data/bibtex/comment.txt | 6 - .../src/parser/test_data/bibtex/issue_809.txt | 3 - .../src/parser/test_data/bibtex/preamble.txt | 1 - .../parser/test_data/bibtex/samples/aho_2006.txt | 8 - .../parser/test_data/bibtex/samples/aksin_2006.txt | 16 - .../test_data/bibtex/samples/almendro_1998.txt | 14 - .../test_data/bibtex/samples/averroes_1998.txt | 21 - .../test_data/bibtex/samples/betram_1996.txt | 16 - .../parser/test_data/bibtex/samples/blom_2021.txt | 20 - .../parser/test_data/bibtex/samples/combi_2004.txt | 16 - .../parser/test_data/bibtex/samples/erwin_2007.txt | 14 - .../parser/test_data/bibtex/samples/jain_1999.txt | 18 - .../test_data/bibtex/samples/kastenholz_2006.txt | 20 - .../parser/test_data/bibtex/samples/knuth_1984.txt | 22 - .../parser/test_data/bibtex/samples/matuz_1990.txt | 14 - .../test_data/bibtex/samples/nietzsche_1998.txt | 24 - .../test_data/bibtex/samples/rivest_1978.txt | 17 - .../texlab/src/parser/test_data/build_log/001.txt | 83 -- .../texlab/src/parser/test_data/build_log/002.txt | 64 -- .../texlab/src/parser/test_data/build_log/003.txt | 65 -- .../texlab/src/parser/test_data/build_log/004.txt | 83 -- .../texlab/src/parser/test_data/build_log/005.txt | 385 ------- .../texlab/src/parser/test_data/build_log/006.txt | 122 --- .../texlab/src/parser/test_data/build_log/007.txt | 176 --- .../src/parser/test_data/latex/block_comments.txt | 9 - .../test_data/latex/caption/caption_default.txt | 1 - .../latex/caption/caption_default_error.txt | 1 - .../test_data/latex/caption/caption_figure.txt | 1 - .../test_data/latex/caption/caption_minimal.txt | 1 - .../latex/caption/caption_minimal_error.txt | 1 - .../test_data/latex/citation/citation_empty.txt | 1 - .../latex/citation/citation_missing_brace.txt | 1 - .../latex/citation/citation_multiple_keys.txt | 1 - .../test_data/latex/citation/citation_prenote.txt | 1 - .../latex/citation/citation_prenote_postnote.txt | 1 - .../latex/citation/citation_redundant_comma.txt | 1 - .../test_data/latex/citation/citation_simple.txt | 1 - .../test_data/latex/citation/citation_star.txt | 1 - .../latex/color/color_definition_simple.txt | 1 - .../latex/color/color_reference_simple.txt | 1 - .../latex/color/color_set_definition_error1.txt | 1 - .../latex/color/color_set_definition_error2.txt | 1 - .../latex/color/color_set_definition_error3.txt | 1 - .../latex/color/color_set_definition_error4.txt | 1 - .../latex/color/color_set_definition_simple.txt | 1 - .../command_definition_no_argc.txt | 1 - .../command_definition_no_impl.txt | 1 - .../command_definition_no_impl_error.txt | 1 - .../command_definition_optional.txt | 1 - .../command_definition_simple.txt | 1 - .../command_definition_with_begin.txt | 1 - .../command_definition/math_operator_no_impl.txt | 1 - .../command_definition/math_operator_simple.txt | 1 - .../latex/environment/environment_asymptote.txt | 3 - .../latex/environment/environment_definition.txt | 1 - .../environment_definition_optional_arg.txt | 1 - .../latex/environment/environment_nested.txt | 1 - .../environment_nested_missing_braces.txt | 1 - .../latex/environment/environment_simple.txt | 1 - .../texlab/src/parser/test_data/latex/equation.txt | 1 - .../test_data/latex/equation_missing_begin.txt | 1 - .../test_data/latex/generic_command_args.txt | 1 - .../test_data/latex/generic_command_empty.txt | 1 - .../test_data/latex/generic_command_escape.txt | 1 - .../latex/glossary/acronym_declaration.txt | 1 - .../latex/glossary/acronym_definition_options.txt | 1 - .../latex/glossary/acronym_definition_simple.txt | 1 - .../test_data/latex/glossary/acronym_package.txt | 1 - .../latex/glossary/acronym_reference_options.txt | 1 - .../latex/glossary/acronym_reference_simple.txt | 1 - .../glossary/glossary_entry_definition_simple.txt | 1 - .../glossary/glossary_entry_reference_options.txt | 1 - .../glossary/glossary_entry_reference_simple.txt | 1 - .../src/parser/test_data/latex/graphics_path.txt | 1 - .../test_data/latex/graphics_path_command.txt | 1 - .../test_data/latex/graphics_path_options.txt | 1 - .../latex/group/curly_group_missing_end.txt | 1 - .../test_data/latex/group/curly_group_simple.txt | 1 - .../test_data/latex/group/equation_missing_end.txt | 1 - .../test_data/latex/group/escaped_brackets.txt | 1 - .../test_data/latex/group/unmatched_braces.txt | 1 - .../test_data/latex/group/unmatched_brackets.txt | 1 - .../latex/group/unmatched_brackets_with_group.txt | 1 - .../src/parser/test_data/latex/hello_world.txt | 1 - .../latex/include/biblatex_include_options.txt | 1 - .../latex/include/biblatex_include_simple.txt | 1 - .../latex/include/bibtex_include_simple.txt | 1 - .../latex/include/class_include_empty.txt | 1 - .../latex/include/class_include_options.txt | 1 - .../latex/include/class_include_simple.txt | 1 - .../latex/include/graphics_include_command.txt | 1 - .../graphics_include_complicated_options.txt | 1 - .../latex/include/graphics_include_options.txt | 1 - .../latex/include/graphics_include_simple.txt | 1 - .../test_data/latex/include/import_incomplete.txt | 1 - .../test_data/latex/include/import_simple.txt | 1 - .../latex/include/inkscape_include_options.txt | 1 - .../latex/include/inkscape_include_simple.txt | 1 - .../latex/include/latex_include_equality_sign.txt | 1 - .../latex/include/latex_include_simple.txt | 1 - .../latex/include/latex_input_path_brackets.txt | 1 - .../latex/include/package_include_empty.txt | 1 - .../latex/include/package_include_multiple.txt | 1 - .../latex/include/package_include_options.txt | 1 - .../latex/include/package_include_simple.txt | 1 - .../latex/include/pgf_library_import_simple.txt | 1 - .../latex/include/svg_include_options.txt | 1 - .../test_data/latex/include/svg_include_simple.txt | 1 - .../latex/include/tikz_library_import_simple.txt | 1 - .../latex/include/verbatim_include_simple.txt | 1 - .../texlab/src/parser/test_data/latex/inline.txt | 1 - .../test_data/latex/inline_double_dollar.txt | 1 - .../src/parser/test_data/latex/issue_745.txt | 21 - .../src/parser/test_data/latex/issue_789.txt | 1 - .../src/parser/test_data/latex/issue_853.txt | 8 - .../src/parser/test_data/latex/issue_857.txt | 3 - .../latex/label/label_definition_line_break.txt | 2 - .../latex/label/label_definition_simple.txt | 1 - .../parser/test_data/latex/label/label_number.txt | 1 - .../latex/label/label_reference_equation.txt | 1 - .../latex/label/label_reference_incomplete.txt | 1 - .../latex/label/label_reference_multiple.txt | 1 - .../latex/label/label_reference_range_error.txt | 1 - .../label/label_reference_range_incomplete.txt | 1 - .../latex/label/label_reference_range_simple.txt | 1 - .../latex/label/label_reference_simple.txt | 1 - .../src/parser/test_data/latex/parameter.txt | 1 - .../src/parser/test_data/latex/parameter_error.txt | 1 - .../latex/structure/structure_enum_item.txt | 1 - .../latex/structure/structure_invalid_nesting.txt | 1 - .../test_data/latex/structure/structure_nested.txt | 1 - .../latex/structure/structure_siblings.txt | 1 - .../theorem_definition/theorem_definition_full.txt | 1 - .../theorem_definition_name_with_counter.txt | 1 - .../theorem_definition_name_with_description.txt | 1 - ...efinition_name_with_description_and_counter.txt | 1 - .../theorem_definition_only_name.txt | 1 - support/texlab/src/server.rs | 1060 ------------------ support/texlab/src/server/dispatch.rs | 87 -- support/texlab/src/server/options.rs | 214 ---- support/texlab/src/server/query.rs | 32 - support/texlab/src/syntax.rs | 22 - support/texlab/src/syntax/bibtex.rs | 304 ------ support/texlab/src/syntax/latex.rs | 29 - support/texlab/src/syntax/latex/cst.rs | 688 ------------ support/texlab/src/syntax/latex/kind.rs | 91 -- support/texlab/src/util.rs | 16 - support/texlab/src/util/capabilities.rs | 179 --- support/texlab/src/util/chktex.rs | 112 -- support/texlab/src/util/components.rs | 120 --- support/texlab/src/util/cursor.rs | 315 ------ support/texlab/src/util/label.rs | 267 ----- support/texlab/src/util/lang_data.rs | 68 -- support/texlab/src/util/line_index.rs | 217 ---- support/texlab/src/util/line_index_ext.rs | 42 - support/texlab/src/util/lsp_enums.rs | 94 -- support/texlab/src/util/regex_filter.rs | 20 - support/texlab/tests/lsp/fixture.rs | 266 ----- support/texlab/tests/lsp/main.rs | 3 - support/texlab/tests/lsp/text_document.rs | 11 - .../texlab/tests/lsp/text_document/completion.rs | 854 --------------- .../texlab/tests/lsp/text_document/definition.rs | 156 --- .../tests/lsp/text_document/document_highlight.rs | 51 - .../tests/lsp/text_document/document_link.rs | 52 - .../tests/lsp/text_document/document_symbol.rs | 441 -------- .../tests/lsp/text_document/folding_range.rs | 66 -- .../texlab/tests/lsp/text_document/formatting.rs | 134 --- support/texlab/tests/lsp/text_document/hover.rs | 246 ----- .../texlab/tests/lsp/text_document/inlay_hint.rs | 57 - .../texlab/tests/lsp/text_document/references.rs | 270 ----- support/texlab/tests/lsp/text_document/rename.rs | 106 -- ..._document__completion__acronym_package_ref.snap | 10 - ...xt_document__completion__acronym_ref_empty.snap | 10 - ...cument__completion__acronym_ref_open_brace.snap | 10 - ...t_document__completion__acronym_ref_simple.snap | 10 - ..._text_document__completion__argument_empty.snap | 26 - ..._document__completion__argument_open_brace.snap | 26 - ...__text_document__completion__argument_word.snap | 10 - ..._begin_environment_without_snippet_support.snap | 31 - .../lsp__text_document__completion__citation.snap | 16 - ...ext_document__completion__citation_acronym.snap | 11 - ..._document__completion__citation_open_brace.snap | 11 - ...__completion__citation_open_brace_multiple.snap | 11 - ...pletion__color_model_definition_open_brace.snap | 26 - ...ion__color_model_definition_set_open_brace.snap | 26 - ...pletion__color_model_definition_set_simple.snap | 26 - ..._completion__color_model_definition_simple.snap | 26 - ...ext_document__completion__color_open_brace.snap | 26 - ...p__text_document__completion__color_simple.snap | 26 - ...lsp__text_document__completion__color_word.snap | 26 - ...ment__completion__component_command_bibtex.snap | 31 - ...ment__completion__component_command_simple.snap | 31 - ...mpletion__component_command_simple_package.snap | 31 - ...t__completion__component_environment_class.snap | 11 - ...__component_environment_command_definition.snap | 11 - ...__completion__component_environment_simple.snap | 11 - ...mpletion__component_environment_simple_end.snap | 31 - ...ent__completion__entry_type_after_preamble.snap | 10 - ...ument__completion__entry_type_after_string.snap | 10 - ..._document__completion__entry_type_at_empty.snap | 26 - ...ent__completion__entry_type_before_article.snap | 10 - ...nt__completion__entry_type_before_preamble.snap | 10 - ...ment__completion__entry_type_before_string.snap | 10 - ...ent__completion__entry_type_complete_entry.snap | 10 - ...ment__completion__field_empty_entry_closed.snap | 26 - ...cument__completion__field_empty_entry_open.snap | 26 - ...cument__completion__field_entry_field_name.snap | 26 - ...letion__field_entry_two_fields_name_closed.snap | 26 - ...mpletion__field_entry_two_fields_name_open.snap | 26 - ...ument__completion__glossary_ref_open_brace.snap | 10 - ..._document__completion__glossary_ref_simple.snap | 10 - ...ent__completion__import_class_closed_brace.snap | 26 - ...ument__completion__import_class_open_brace.snap | 26 - ...t__completion__import_package_closed_brace.snap | 26 - ...ent__completion__import_package_open_brace.snap | 26 - ...sp__text_document__completion__issue_857_1.snap | 21 - .../lsp__text_document__completion__issue_864.snap | 11 - .../lsp__text_document__completion__label.snap | 36 - ...ent__completion__project_resolution_import.snap | 31 - ..._completion__project_resolution_texlabroot.snap | 31 - ...__text_document__completion__theorem_begin.snap | 11 - ...sp__text_document__completion__theorem_end.snap | 11 - ...ent__completion__tikz_library_closed_brace.snap | 26 - ...ument__completion__tikz_library_open_brace.snap | 26 - ...p__text_document__completion__user_command.snap | 11 - ...ext_document__completion__user_environment.snap | 16 - ...t_document__document_link__document_import.snap | 19 - ..._document__document_link__document_include.snap | 19 - ..._document__document_symbol__enumerate_flat.snap | 96 -- ...ocument__document_symbol__enumerate_nested.snap | 140 --- ...t_document__document_symbol__equation_flat.snap | 60 -- ...document__document_symbol__equation_nested.snap | 86 -- ...text_document__document_symbol__float_flat.snap | 60 -- ...xt_document__document_symbol__float_nested.snap | 86 -- ...ocument__document_symbol__ignored_patterns.snap | 24 - ...xt_document__document_symbol__section_flat.snap | 60 -- ..._document__document_symbol__section_nested.snap | 87 -- ...xt_document__document_symbol__theorem_flat.snap | 78 -- ..._document__document_symbol__theorem_nested.snap | 113 -- .../lsp__text_document__folding_range__bibtex.snap | 27 - .../lsp__text_document__folding_range__latex.snap | 41 - ...ument__formatting__bibtex_internal_command.snap | 7 - ..._formatting__bibtex_internal_insert_braces.snap | 7 - ...__formatting__bibtex_internal_join_strings.snap | 7 - ...rmatting__bibtex_internal_multiple_entries.snap | 15 - ...cument__formatting__bibtex_internal_parens.snap | 6 - ...ment__formatting__bibtex_internal_preamble.snap | 5 - ...cument__formatting__bibtex_internal_string.snap | 5 - ...formatting__bibtex_internal_trailing_comma.snap | 7 - ...ormatting__bibtex_internal_wrap_long_lines.snap | 9 - ...text_document__hover__citation_inside_cite.snap | 8 - ...ext_document__hover__citation_inside_entry.snap | 8 - ...t_document__hover__component_known_package.snap | 8 - ...ext_document__hover__entry_type_known_type.snap | 8 - .../lsp__text_document__hover__field_known.snap | 8 - ..._document__hover__label_theorem_child_file.snap | 8 - ...nt__hover__label_theorem_child_file_mumber.snap | 8 - .../lsp__text_document__hover__section.snap | 8 - ...t_document__hover__string_inside_reference.snap | 8 - ...ext_document__inlay_hint__label_definition.snap | 38 - support/texlab/tests/lsp/workspace.rs | 1 - .../lsp__workspace__symbol__filter_bibtex.snap | 42 - ...lsp__workspace__symbol__filter_type_figure.snap | 24 - .../lsp__workspace__symbol__filter_type_item.snap | 60 -- .../lsp__workspace__symbol__filter_type_math.snap | 42 - ...sp__workspace__symbol__filter_type_section.snap | 78 -- support/texlab/tests/lsp/workspace/symbol.rs | 124 --- support/texlab/texlab.1 | 4 +- support/texlab/texlab.pdf | Bin 26434 -> 26391 bytes 1070 files changed, 29678 insertions(+), 30013 deletions(-) delete mode 100644 support/texlab/benches/bench_main.rs create mode 100644 support/texlab/crates/base-db/Cargo.toml create mode 100644 support/texlab/crates/base-db/src/config.rs create mode 100644 support/texlab/crates/base-db/src/diagnostics.rs create mode 100644 support/texlab/crates/base-db/src/diagnostics/bib.rs create mode 100644 support/texlab/crates/base-db/src/diagnostics/log.rs create mode 100644 support/texlab/crates/base-db/src/diagnostics/tex.rs create mode 100644 support/texlab/crates/base-db/src/document.rs create mode 100644 support/texlab/crates/base-db/src/graph.rs create mode 100644 support/texlab/crates/base-db/src/lib.rs create mode 100644 support/texlab/crates/base-db/src/line_index.rs create mode 100644 support/texlab/crates/base-db/src/semantics.rs create mode 100644 support/texlab/crates/base-db/src/semantics/auxiliary.rs create mode 100644 support/texlab/crates/base-db/src/semantics/tex.rs create mode 100644 support/texlab/crates/base-db/src/workspace.rs create mode 100644 support/texlab/crates/citeproc/Cargo.toml create mode 100644 support/texlab/crates/citeproc/src/driver.rs create mode 100644 support/texlab/crates/citeproc/src/entry.rs create mode 100644 support/texlab/crates/citeproc/src/field.rs create mode 100644 support/texlab/crates/citeproc/src/field/author.rs create mode 100644 support/texlab/crates/citeproc/src/field/date.rs create mode 100644 support/texlab/crates/citeproc/src/field/number.rs create mode 100644 support/texlab/crates/citeproc/src/field/text.rs create mode 100644 support/texlab/crates/citeproc/src/lib.rs create mode 100644 support/texlab/crates/citeproc/src/output.rs create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__article_aksin_2006.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__article_betram_1996.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__article_blom_2021.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__article_jain_1999.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__article_kastenholz_2006.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__article_rivest_1978.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__book_aho_2006.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__book_averroes_1998.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__book_knuth_1984.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__collection_matuz_1990.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__inproceedings_combi_2004.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__inproceedings_erwin_2007.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__mvbook_nietzsche_1988.snap create mode 100644 support/texlab/crates/citeproc/src/snapshots/citeproc__tests__patent_almendro_1998.snap create mode 100644 support/texlab/crates/citeproc/src/tests.rs create mode 100644 support/texlab/crates/distro/Cargo.toml create mode 100644 support/texlab/crates/distro/src/file_name_db.rs create mode 100644 support/texlab/crates/distro/src/kpsewhich.rs create mode 100644 support/texlab/crates/distro/src/language.rs create mode 100644 support/texlab/crates/distro/src/lib.rs create mode 100644 support/texlab/crates/distro/src/miktex.rs create mode 100644 support/texlab/crates/distro/src/texlive.rs create mode 100644 support/texlab/crates/parser/Cargo.toml create mode 100644 support/texlab/crates/parser/src/bibtex.rs create mode 100644 support/texlab/crates/parser/src/build_log.rs create mode 100644 support/texlab/crates/parser/src/latex.rs create mode 100644 support/texlab/crates/parser/src/latex/lexer.rs create mode 100644 support/texlab/crates/parser/src/latex/lexer/commands.rs create mode 100644 support/texlab/crates/parser/src/latex/lexer/types.rs create mode 100644 support/texlab/crates/parser/src/lib.rs create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@comment.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@issue_809.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@preamble.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__aho_2006.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__aksin_2006.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__almendro_1998.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__averroes_1998.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__betram_1996.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__blom_2021.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__combi_2004.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__erwin_2007.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__jain_1999.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__kastenholz_2006.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__knuth_1984.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__matuz_1990.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__nietzsche_1998.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__bibtex__tests__parse@samples__rivest_1978.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__build_log__tests__parse@001.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__build_log__tests__parse@002.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__build_log__tests__parse@003.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__build_log__tests__parse@004.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__build_log__tests__parse@005.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__build_log__tests__parse@006.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__build_log__tests__parse@007.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@block_comments.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@caption__caption_default.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@caption__caption_default_error.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@caption__caption_figure.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@caption__caption_minimal.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@caption__caption_minimal_error.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_empty.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_missing_brace.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_multiple_keys.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_prenote.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_prenote_postnote.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_redundant_comma.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@citation__citation_star.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@color__color_definition_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@color__color_reference_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@color__color_set_definition_error1.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@color__color_set_definition_error2.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@color__color_set_definition_error3.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@color__color_set_definition_error4.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@color__color_set_definition_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@command_definition__command_definition_no_argc.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@command_definition__command_definition_no_impl.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@command_definition__command_definition_no_impl_error.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@command_definition__command_definition_optional.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@command_definition__command_definition_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@command_definition__command_definition_with_begin.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@command_definition__math_operator_no_impl.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@command_definition__math_operator_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@environment__environment_asymptote.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@environment__environment_definition.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@environment__environment_definition_optional_arg.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@environment__environment_nested.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@environment__environment_nested_missing_braces.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@environment__environment_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@equation.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@equation_missing_begin.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@generic_command_args.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@generic_command_empty.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@generic_command_escape.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__acronym_declaration.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__acronym_definition_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__acronym_definition_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__acronym_package.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__acronym_reference_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__acronym_reference_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__glossary_entry_definition_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__glossary_entry_reference_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@glossary__glossary_entry_reference_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@graphics_path.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@graphics_path_command.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@graphics_path_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@group__curly_group_missing_end.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@group__curly_group_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@group__equation_missing_end.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@group__escaped_brackets.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@group__unmatched_braces.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@group__unmatched_brackets.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@group__unmatched_brackets_with_group.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@hello_world.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__biblatex_include_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__biblatex_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__bibtex_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__class_include_empty.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__class_include_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__class_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__graphics_include_command.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__graphics_include_complicated_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__graphics_include_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__graphics_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__import_incomplete.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__import_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__inkscape_include_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__inkscape_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__latex_include_equality_sign.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__latex_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__latex_input_path_brackets.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__package_include_empty.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__package_include_multiple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__package_include_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__package_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__pgf_library_import_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__svg_include_options.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__svg_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__tikz_library_import_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@include__verbatim_include_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@inline.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@inline_double_dollar.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@issue_745.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@issue_789.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@issue_853.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@issue_857.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@issue_874.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_definition_line_break.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_definition_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_number.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_reference_equation.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_reference_incomplete.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_reference_multiple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_reference_range_error.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_reference_range_incomplete.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_reference_range_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@label__label_reference_simple.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@parameter.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@parameter_error.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@structure__structure_enum_item.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@structure__structure_invalid_nesting.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@structure__structure_nested.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@structure__structure_siblings.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@theorem_definition__theorem_definition_full.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_counter.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_description.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_description_and_counter.txt.snap create mode 100644 support/texlab/crates/parser/src/snapshots/parser__latex__tests__parse@theorem_definition__theorem_definition_only_name.txt.snap create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/comment.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/issue_809.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/preamble.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/aho_2006.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/aksin_2006.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/almendro_1998.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/averroes_1998.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/betram_1996.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/blom_2021.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/combi_2004.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/erwin_2007.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/jain_1999.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/kastenholz_2006.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/knuth_1984.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/matuz_1990.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/nietzsche_1998.txt create mode 100644 support/texlab/crates/parser/src/test_data/bibtex/samples/rivest_1978.txt create mode 100644 support/texlab/crates/parser/src/test_data/build_log/001.txt create mode 100644 support/texlab/crates/parser/src/test_data/build_log/002.txt create mode 100644 support/texlab/crates/parser/src/test_data/build_log/003.txt create mode 100644 support/texlab/crates/parser/src/test_data/build_log/004.txt create mode 100644 support/texlab/crates/parser/src/test_data/build_log/005.txt create mode 100644 support/texlab/crates/parser/src/test_data/build_log/006.txt create mode 100644 support/texlab/crates/parser/src/test_data/build_log/007.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/block_comments.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/caption/caption_default.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/caption/caption_default_error.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/caption/caption_figure.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/caption/caption_minimal.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/caption/caption_minimal_error.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/citation/citation_empty.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/citation/citation_missing_brace.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/citation/citation_multiple_keys.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/citation/citation_prenote.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/citation/citation_prenote_postnote.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/citation/citation_redundant_comma.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/citation/citation_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/citation/citation_star.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/color/color_definition_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/color/color_reference_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/color/color_set_definition_error1.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/color/color_set_definition_error2.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/color/color_set_definition_error3.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/color/color_set_definition_error4.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/color/color_set_definition_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/command_definition/command_definition_no_argc.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/command_definition/command_definition_no_impl.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/command_definition/command_definition_no_impl_error.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/command_definition/command_definition_optional.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/command_definition/command_definition_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/command_definition/command_definition_with_begin.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/command_definition/math_operator_no_impl.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/command_definition/math_operator_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/environment/environment_asymptote.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/environment/environment_definition.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/environment/environment_definition_optional_arg.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/environment/environment_nested.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/environment/environment_nested_missing_braces.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/environment/environment_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/equation.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/equation_missing_begin.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/generic_command_args.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/generic_command_empty.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/generic_command_escape.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/acronym_declaration.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/acronym_definition_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/acronym_definition_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/acronym_package.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/acronym_reference_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/acronym_reference_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/glossary_entry_definition_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/glossary_entry_reference_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/glossary/glossary_entry_reference_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/graphics_path.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/graphics_path_command.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/graphics_path_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/group/curly_group_missing_end.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/group/curly_group_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/group/equation_missing_end.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/group/escaped_brackets.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/group/unmatched_braces.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/group/unmatched_brackets.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/group/unmatched_brackets_with_group.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/hello_world.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/biblatex_include_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/biblatex_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/bibtex_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/class_include_empty.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/class_include_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/class_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/graphics_include_command.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/graphics_include_complicated_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/graphics_include_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/graphics_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/import_incomplete.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/import_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/inkscape_include_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/inkscape_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/latex_include_equality_sign.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/latex_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/latex_input_path_brackets.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/package_include_empty.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/package_include_multiple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/package_include_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/package_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/pgf_library_import_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/svg_include_options.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/svg_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/tikz_library_import_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/include/verbatim_include_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/inline.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/inline_double_dollar.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/issue_745.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/issue_789.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/issue_853.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/issue_857.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/issue_874.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_definition_line_break.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_definition_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_number.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_reference_equation.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_reference_incomplete.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_reference_multiple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_reference_range_error.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_reference_range_incomplete.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_reference_range_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/label/label_reference_simple.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/parameter.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/parameter_error.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/structure/structure_enum_item.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/structure/structure_invalid_nesting.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/structure/structure_nested.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/structure/structure_siblings.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/theorem_definition/theorem_definition_full.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/theorem_definition/theorem_definition_name_with_counter.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/theorem_definition/theorem_definition_name_with_description.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/theorem_definition/theorem_definition_name_with_description_and_counter.txt create mode 100644 support/texlab/crates/parser/src/test_data/latex/theorem_definition/theorem_definition_only_name.txt create mode 100644 support/texlab/crates/syntax/Cargo.toml create mode 100644 support/texlab/crates/syntax/src/bibtex.rs create mode 100644 support/texlab/crates/syntax/src/latex.rs create mode 100644 support/texlab/crates/syntax/src/latex/cst.rs create mode 100644 support/texlab/crates/syntax/src/latex/kind.rs create mode 100644 support/texlab/crates/syntax/src/lib.rs create mode 100644 support/texlab/crates/texlab/Cargo.toml create mode 100644 support/texlab/crates/texlab/benches/bench_main.rs create mode 100644 support/texlab/crates/texlab/data/components.json.gz create mode 100644 support/texlab/crates/texlab/data/lang_data.json create mode 100644 support/texlab/crates/texlab/src/client.rs create mode 100644 support/texlab/crates/texlab/src/features.rs create mode 100644 support/texlab/crates/texlab/src/features/build.rs create mode 100644 support/texlab/crates/texlab/src/features/build/progress.rs create mode 100644 support/texlab/crates/texlab/src/features/completion.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/acronym_ref.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/argument.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/begin_snippet.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/builder.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/citation.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/color.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/color_model.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/component_command.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/component_environment.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/entry_type.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/field.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/glossary_ref.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/import.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/include.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/label.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/theorem.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/tikz_library.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/user_command.rs create mode 100644 support/texlab/crates/texlab/src/features/completion/user_environment.rs create mode 100644 support/texlab/crates/texlab/src/features/definition.rs create mode 100644 support/texlab/crates/texlab/src/features/definition/command.rs create mode 100644 support/texlab/crates/texlab/src/features/definition/document.rs create mode 100644 support/texlab/crates/texlab/src/features/definition/entry.rs create mode 100644 support/texlab/crates/texlab/src/features/definition/label.rs create mode 100644 support/texlab/crates/texlab/src/features/definition/string.rs create mode 100644 support/texlab/crates/texlab/src/features/folding.rs create mode 100644 support/texlab/crates/texlab/src/features/formatting.rs create mode 100644 support/texlab/crates/texlab/src/features/formatting/bibtex_internal.rs create mode 100644 support/texlab/crates/texlab/src/features/formatting/latexindent.rs create mode 100644 support/texlab/crates/texlab/src/features/forward_search.rs create mode 100644 support/texlab/crates/texlab/src/features/highlight.rs create mode 100644 support/texlab/crates/texlab/src/features/highlight/label.rs create mode 100644 support/texlab/crates/texlab/src/features/hover.rs create mode 100644 support/texlab/crates/texlab/src/features/hover/citation.rs create mode 100644 support/texlab/crates/texlab/src/features/hover/component.rs create mode 100644 support/texlab/crates/texlab/src/features/hover/entry_type.rs create mode 100644 support/texlab/crates/texlab/src/features/hover/field.rs create mode 100644 support/texlab/crates/texlab/src/features/hover/label.rs create mode 100644 support/texlab/crates/texlab/src/features/hover/string_ref.rs create mode 100644 support/texlab/crates/texlab/src/features/inlay_hint.rs create mode 100644 support/texlab/crates/texlab/src/features/inlay_hint/label.rs create mode 100644 support/texlab/crates/texlab/src/features/link.rs create mode 100644 support/texlab/crates/texlab/src/features/link/include.rs create mode 100644 support/texlab/crates/texlab/src/features/reference.rs create mode 100644 support/texlab/crates/texlab/src/features/reference/entry.rs create mode 100644 support/texlab/crates/texlab/src/features/reference/label.rs create mode 100644 support/texlab/crates/texlab/src/features/reference/string.rs create mode 100644 support/texlab/crates/texlab/src/features/rename.rs create mode 100644 support/texlab/crates/texlab/src/features/rename/command.rs create mode 100644 support/texlab/crates/texlab/src/features/rename/entry.rs create mode 100644 support/texlab/crates/texlab/src/features/rename/label.rs create mode 100644 support/texlab/crates/texlab/src/features/symbol.rs create mode 100644 support/texlab/crates/texlab/src/features/symbol/bibtex.rs create mode 100644 support/texlab/crates/texlab/src/features/symbol/latex.rs create mode 100644 support/texlab/crates/texlab/src/features/symbol/project_order.rs create mode 100644 support/texlab/crates/texlab/src/features/symbol/types.rs create mode 100644 support/texlab/crates/texlab/src/features/workspace_command.rs create mode 100644 support/texlab/crates/texlab/src/features/workspace_command/change_environment.rs create mode 100644 support/texlab/crates/texlab/src/features/workspace_command/clean.rs create mode 100644 support/texlab/crates/texlab/src/features/workspace_command/dep_graph.rs create mode 100644 support/texlab/crates/texlab/src/lib.rs create mode 100644 support/texlab/crates/texlab/src/main.rs create mode 100644 support/texlab/crates/texlab/src/server.rs create mode 100644 support/texlab/crates/texlab/src/server/dispatch.rs create mode 100644 support/texlab/crates/texlab/src/server/options.rs create mode 100644 support/texlab/crates/texlab/src/util.rs create mode 100644 support/texlab/crates/texlab/src/util/capabilities.rs create mode 100644 support/texlab/crates/texlab/src/util/chktex.rs create mode 100644 support/texlab/crates/texlab/src/util/components.rs create mode 100644 support/texlab/crates/texlab/src/util/cursor.rs create mode 100644 support/texlab/crates/texlab/src/util/diagnostics.rs create mode 100644 support/texlab/crates/texlab/src/util/label.rs create mode 100644 support/texlab/crates/texlab/src/util/lang_data.rs create mode 100644 support/texlab/crates/texlab/src/util/line_index_ext.rs create mode 100644 support/texlab/crates/texlab/src/util/lsp_enums.rs create mode 100644 support/texlab/crates/texlab/src/util/regex_filter.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/fixture.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/main.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/completion.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/definition.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/document_highlight.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/document_link.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/document_symbol.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/folding_range.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/formatting.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/hover.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/inlay_hint.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/references.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/rename.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_package_ref.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_empty.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_simple.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_empty.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_word.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__begin_environment_without_snippet_support.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_acronym.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_open_brace_multiple.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_set_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_set_simple.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_simple.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_simple.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_word.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_bibtex.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_simple.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_simple_package.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_class.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_command_definition.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_simple.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_simple_end.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_after_preamble.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_after_string.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_at_empty.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_article.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_preamble.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_string.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_complete_entry.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_empty_entry_closed.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_empty_entry_open.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_field_name.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_two_fields_name_closed.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_two_fields_name_open.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__glossary_ref_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__glossary_ref_simple.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_class_closed_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_class_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_package_closed_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_package_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__issue_857_1.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__issue_864.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__label.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__project_resolution_import.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__project_resolution_texlabroot.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__theorem_begin.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__theorem_end.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__tikz_library_closed_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__tikz_library_open_brace.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__user_command.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__user_environment.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_link__document_import.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_link__document_include.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__enumerate_flat.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__enumerate_nested.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__equation_flat.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__equation_nested.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__float_flat.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__float_nested.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__ignored_patterns.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__section_flat.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__section_nested.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__theorem_flat.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__theorem_nested.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__folding_range__bibtex.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__folding_range__latex.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_command.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_insert_braces.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_join_strings.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_multiple_entries.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_parens.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_preamble.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_string.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_trailing_comma.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__citation_inside_cite.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__citation_inside_entry.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__component_known_package.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__entry_type_known_type.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__field_known.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__label_theorem_child_file.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__label_theorem_child_file_mumber.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__section.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__string_inside_reference.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/text_document/snapshots/lsp__text_document__inlay_hint__label_definition.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/workspace.rs create mode 100644 support/texlab/crates/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_bibtex.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_figure.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_item.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_math.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_section.snap create mode 100644 support/texlab/crates/texlab/tests/lsp/workspace/symbol.rs delete mode 100644 support/texlab/data/components.json.gz delete mode 100644 support/texlab/data/lang_data.json delete mode 100644 support/texlab/src/citation.rs delete mode 100644 support/texlab/src/citation/driver.rs delete mode 100644 support/texlab/src/citation/entry.rs delete mode 100644 support/texlab/src/citation/field.rs delete mode 100644 support/texlab/src/citation/field/author.rs delete mode 100644 support/texlab/src/citation/field/date.rs delete mode 100644 support/texlab/src/citation/field/number.rs delete mode 100644 support/texlab/src/citation/field/text.rs delete mode 100644 support/texlab/src/citation/output.rs delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__article_aksin_2006.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__article_betram_1996.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__article_blom_2021.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__article_jain_1999.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__article_kastenholz_2006.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__article_rivest_1978.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__book_aho_2006.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__book_averroes_1998.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__book_knuth_1984.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__collection_matuz_1990.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_combi_2004.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__inproceedings_erwin_2007.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__mvbook_nietzsche_1988.snap delete mode 100644 support/texlab/src/citation/snapshots/texlab__citation__tests__patent_almendro_1998.snap delete mode 100644 support/texlab/src/citation/tests.rs delete mode 100644 support/texlab/src/client.rs delete mode 100644 support/texlab/src/config.rs delete mode 100644 support/texlab/src/db.rs delete mode 100644 support/texlab/src/db/analysis.rs delete mode 100644 support/texlab/src/db/analysis/label.rs delete mode 100644 support/texlab/src/db/context.rs delete mode 100644 support/texlab/src/db/diagnostics.rs delete mode 100644 support/texlab/src/db/diagnostics/bib.rs delete mode 100644 support/texlab/src/db/diagnostics/log.rs delete mode 100644 support/texlab/src/db/diagnostics/tex.rs delete mode 100644 support/texlab/src/db/discovery.rs delete mode 100644 support/texlab/src/db/document.rs delete mode 100644 support/texlab/src/db/parse.rs delete mode 100644 support/texlab/src/db/workspace.rs delete mode 100644 support/texlab/src/distro.rs delete mode 100644 support/texlab/src/distro/file_name_db.rs delete mode 100644 support/texlab/src/distro/kpsewhich.rs delete mode 100644 support/texlab/src/distro/miktex.rs delete mode 100644 support/texlab/src/distro/texlive.rs delete mode 100644 support/texlab/src/features.rs delete mode 100644 support/texlab/src/features/build.rs delete mode 100644 support/texlab/src/features/build/progress.rs delete mode 100644 support/texlab/src/features/completion.rs delete mode 100644 support/texlab/src/features/completion/acronym_ref.rs delete mode 100644 support/texlab/src/features/completion/argument.rs delete mode 100644 support/texlab/src/features/completion/begin_snippet.rs delete mode 100644 support/texlab/src/features/completion/builder.rs delete mode 100644 support/texlab/src/features/completion/citation.rs delete mode 100644 support/texlab/src/features/completion/color.rs delete mode 100644 support/texlab/src/features/completion/color_model.rs delete mode 100644 support/texlab/src/features/completion/component_command.rs delete mode 100644 support/texlab/src/features/completion/component_environment.rs delete mode 100644 support/texlab/src/features/completion/entry_type.rs delete mode 100644 support/texlab/src/features/completion/field.rs delete mode 100644 support/texlab/src/features/completion/glossary_ref.rs delete mode 100644 support/texlab/src/features/completion/import.rs delete mode 100644 support/texlab/src/features/completion/include.rs delete mode 100644 support/texlab/src/features/completion/label.rs delete mode 100644 support/texlab/src/features/completion/theorem.rs delete mode 100644 support/texlab/src/features/completion/tikz_library.rs delete mode 100644 support/texlab/src/features/completion/user_command.rs delete mode 100644 support/texlab/src/features/completion/user_environment.rs delete mode 100644 support/texlab/src/features/definition.rs delete mode 100644 support/texlab/src/features/definition/command.rs delete mode 100644 support/texlab/src/features/definition/document.rs delete mode 100644 support/texlab/src/features/definition/entry.rs delete mode 100644 support/texlab/src/features/definition/label.rs delete mode 100644 support/texlab/src/features/definition/string.rs delete mode 100644 support/texlab/src/features/folding.rs delete mode 100644 support/texlab/src/features/formatting.rs delete mode 100644 support/texlab/src/features/formatting/bibtex_internal.rs delete mode 100644 support/texlab/src/features/formatting/latexindent.rs delete mode 100644 support/texlab/src/features/forward_search.rs delete mode 100644 support/texlab/src/features/highlight.rs delete mode 100644 support/texlab/src/features/highlight/label.rs delete mode 100644 support/texlab/src/features/hover.rs delete mode 100644 support/texlab/src/features/hover/citation.rs delete mode 100644 support/texlab/src/features/hover/component.rs delete mode 100644 support/texlab/src/features/hover/entry_type.rs delete mode 100644 support/texlab/src/features/hover/field.rs delete mode 100644 support/texlab/src/features/hover/label.rs delete mode 100644 support/texlab/src/features/hover/string_ref.rs delete mode 100644 support/texlab/src/features/inlay_hint.rs delete mode 100644 support/texlab/src/features/inlay_hint/label.rs delete mode 100644 support/texlab/src/features/link.rs delete mode 100644 support/texlab/src/features/link/include.rs delete mode 100644 support/texlab/src/features/reference.rs delete mode 100644 support/texlab/src/features/reference/entry.rs delete mode 100644 support/texlab/src/features/reference/label.rs delete mode 100644 support/texlab/src/features/reference/string.rs delete mode 100644 support/texlab/src/features/rename.rs delete mode 100644 support/texlab/src/features/rename/command.rs delete mode 100644 support/texlab/src/features/rename/entry.rs delete mode 100644 support/texlab/src/features/rename/label.rs delete mode 100644 support/texlab/src/features/symbol.rs delete mode 100644 support/texlab/src/features/symbol/bibtex.rs delete mode 100644 support/texlab/src/features/symbol/latex.rs delete mode 100644 support/texlab/src/features/symbol/project_order.rs delete mode 100644 support/texlab/src/features/symbol/types.rs delete mode 100644 support/texlab/src/features/workspace_command.rs delete mode 100644 support/texlab/src/features/workspace_command/change_environment.rs delete mode 100644 support/texlab/src/features/workspace_command/clean.rs delete mode 100644 support/texlab/src/features/workspace_command/dep_graph.rs delete mode 100644 support/texlab/src/lib.rs delete mode 100644 support/texlab/src/main.rs delete mode 100644 support/texlab/src/parser.rs delete mode 100644 support/texlab/src/parser/bibtex.rs delete mode 100644 support/texlab/src/parser/build_log.rs delete mode 100644 support/texlab/src/parser/latex.rs delete mode 100644 support/texlab/src/parser/latex/lexer.rs delete mode 100644 support/texlab/src/parser/latex/lexer/commands.rs delete mode 100644 support/texlab/src/parser/latex/lexer/types.rs delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@comment.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@issue_809.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@preamble.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__aho_2006.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__aksin_2006.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__almendro_1998.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__averroes_1998.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__betram_1996.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__blom_2021.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__combi_2004.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__erwin_2007.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__jain_1999.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__kastenholz_2006.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__knuth_1984.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__matuz_1990.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__nietzsche_1998.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__bibtex__tests__parse@samples__rivest_1978.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@001.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@002.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@003.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@004.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@005.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@006.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__build_log__tests__parse@007.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@block_comments.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_default.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_default_error.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_figure.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_minimal.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@caption__caption_minimal_error.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_empty.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_missing_brace.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_multiple_keys.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_prenote.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_prenote_postnote.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_redundant_comma.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@citation__citation_star.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_definition_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_reference_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_error1.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_error2.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_error3.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_error4.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@color__color_set_definition_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_no_argc.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_no_impl.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_no_impl_error.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_optional.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__command_definition_with_begin.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__math_operator_no_impl.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@command_definition__math_operator_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_asymptote.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_definition.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_definition_optional_arg.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_nested.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_nested_missing_braces.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@environment__environment_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@equation.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@equation_missing_begin.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@generic_command_args.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@generic_command_empty.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@generic_command_escape.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_declaration.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_definition_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_definition_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_package.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_reference_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__acronym_reference_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__glossary_entry_definition_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__glossary_entry_reference_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@glossary__glossary_entry_reference_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@graphics_path.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@graphics_path_command.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@graphics_path_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__curly_group_missing_end.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__curly_group_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__equation_missing_end.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__escaped_brackets.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__unmatched_braces.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__unmatched_brackets.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@group__unmatched_brackets_with_group.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@hello_world.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__biblatex_include_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__biblatex_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__bibtex_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__class_include_empty.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__class_include_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__class_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__graphics_include_command.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__graphics_include_complicated_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__graphics_include_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__graphics_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__import_incomplete.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__import_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__inkscape_include_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__inkscape_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__latex_include_equality_sign.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__latex_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__latex_input_path_brackets.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__package_include_empty.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__package_include_multiple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__package_include_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__package_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__pgf_library_import_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__svg_include_options.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__svg_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__tikz_library_import_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@include__verbatim_include_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@inline.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@inline_double_dollar.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@issue_745.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@issue_789.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@issue_853.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@issue_857.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_definition_line_break.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_definition_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_number.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_equation.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_incomplete.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_multiple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_range_error.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_range_incomplete.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_range_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@label__label_reference_simple.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@parameter.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@parameter_error.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_enum_item.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_invalid_nesting.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_nested.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@structure__structure_siblings.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_full.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_counter.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_description.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_name_with_description_and_counter.txt.snap delete mode 100644 support/texlab/src/parser/snapshots/texlab__parser__latex__tests__parse@theorem_definition__theorem_definition_only_name.txt.snap delete mode 100644 support/texlab/src/parser/test_data/bibtex/comment.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/issue_809.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/preamble.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/aho_2006.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/aksin_2006.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/almendro_1998.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/averroes_1998.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/betram_1996.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/blom_2021.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/combi_2004.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/erwin_2007.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/jain_1999.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/kastenholz_2006.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/knuth_1984.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/matuz_1990.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/nietzsche_1998.txt delete mode 100644 support/texlab/src/parser/test_data/bibtex/samples/rivest_1978.txt delete mode 100644 support/texlab/src/parser/test_data/build_log/001.txt delete mode 100644 support/texlab/src/parser/test_data/build_log/002.txt delete mode 100644 support/texlab/src/parser/test_data/build_log/003.txt delete mode 100644 support/texlab/src/parser/test_data/build_log/004.txt delete mode 100644 support/texlab/src/parser/test_data/build_log/005.txt delete mode 100644 support/texlab/src/parser/test_data/build_log/006.txt delete mode 100644 support/texlab/src/parser/test_data/build_log/007.txt delete mode 100644 support/texlab/src/parser/test_data/latex/block_comments.txt delete mode 100644 support/texlab/src/parser/test_data/latex/caption/caption_default.txt delete mode 100644 support/texlab/src/parser/test_data/latex/caption/caption_default_error.txt delete mode 100644 support/texlab/src/parser/test_data/latex/caption/caption_figure.txt delete mode 100644 support/texlab/src/parser/test_data/latex/caption/caption_minimal.txt delete mode 100644 support/texlab/src/parser/test_data/latex/caption/caption_minimal_error.txt delete mode 100644 support/texlab/src/parser/test_data/latex/citation/citation_empty.txt delete mode 100644 support/texlab/src/parser/test_data/latex/citation/citation_missing_brace.txt delete mode 100644 support/texlab/src/parser/test_data/latex/citation/citation_multiple_keys.txt delete mode 100644 support/texlab/src/parser/test_data/latex/citation/citation_prenote.txt delete mode 100644 support/texlab/src/parser/test_data/latex/citation/citation_prenote_postnote.txt delete mode 100644 support/texlab/src/parser/test_data/latex/citation/citation_redundant_comma.txt delete mode 100644 support/texlab/src/parser/test_data/latex/citation/citation_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/citation/citation_star.txt delete mode 100644 support/texlab/src/parser/test_data/latex/color/color_definition_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/color/color_reference_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/color/color_set_definition_error1.txt delete mode 100644 support/texlab/src/parser/test_data/latex/color/color_set_definition_error2.txt delete mode 100644 support/texlab/src/parser/test_data/latex/color/color_set_definition_error3.txt delete mode 100644 support/texlab/src/parser/test_data/latex/color/color_set_definition_error4.txt delete mode 100644 support/texlab/src/parser/test_data/latex/color/color_set_definition_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/command_definition/command_definition_no_argc.txt delete mode 100644 support/texlab/src/parser/test_data/latex/command_definition/command_definition_no_impl.txt delete mode 100644 support/texlab/src/parser/test_data/latex/command_definition/command_definition_no_impl_error.txt delete mode 100644 support/texlab/src/parser/test_data/latex/command_definition/command_definition_optional.txt delete mode 100644 support/texlab/src/parser/test_data/latex/command_definition/command_definition_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/command_definition/command_definition_with_begin.txt delete mode 100644 support/texlab/src/parser/test_data/latex/command_definition/math_operator_no_impl.txt delete mode 100644 support/texlab/src/parser/test_data/latex/command_definition/math_operator_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/environment/environment_asymptote.txt delete mode 100644 support/texlab/src/parser/test_data/latex/environment/environment_definition.txt delete mode 100644 support/texlab/src/parser/test_data/latex/environment/environment_definition_optional_arg.txt delete mode 100644 support/texlab/src/parser/test_data/latex/environment/environment_nested.txt delete mode 100644 support/texlab/src/parser/test_data/latex/environment/environment_nested_missing_braces.txt delete mode 100644 support/texlab/src/parser/test_data/latex/environment/environment_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/equation.txt delete mode 100644 support/texlab/src/parser/test_data/latex/equation_missing_begin.txt delete mode 100644 support/texlab/src/parser/test_data/latex/generic_command_args.txt delete mode 100644 support/texlab/src/parser/test_data/latex/generic_command_empty.txt delete mode 100644 support/texlab/src/parser/test_data/latex/generic_command_escape.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/acronym_declaration.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/acronym_definition_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/acronym_definition_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/acronym_package.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/acronym_reference_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/acronym_reference_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/glossary_entry_definition_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/glossary_entry_reference_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/glossary/glossary_entry_reference_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/graphics_path.txt delete mode 100644 support/texlab/src/parser/test_data/latex/graphics_path_command.txt delete mode 100644 support/texlab/src/parser/test_data/latex/graphics_path_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/group/curly_group_missing_end.txt delete mode 100644 support/texlab/src/parser/test_data/latex/group/curly_group_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/group/equation_missing_end.txt delete mode 100644 support/texlab/src/parser/test_data/latex/group/escaped_brackets.txt delete mode 100644 support/texlab/src/parser/test_data/latex/group/unmatched_braces.txt delete mode 100644 support/texlab/src/parser/test_data/latex/group/unmatched_brackets.txt delete mode 100644 support/texlab/src/parser/test_data/latex/group/unmatched_brackets_with_group.txt delete mode 100644 support/texlab/src/parser/test_data/latex/hello_world.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/biblatex_include_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/biblatex_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/bibtex_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/class_include_empty.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/class_include_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/class_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/graphics_include_command.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/graphics_include_complicated_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/graphics_include_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/graphics_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/import_incomplete.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/import_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/inkscape_include_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/inkscape_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/latex_include_equality_sign.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/latex_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/latex_input_path_brackets.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/package_include_empty.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/package_include_multiple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/package_include_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/package_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/pgf_library_import_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/svg_include_options.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/svg_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/tikz_library_import_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/include/verbatim_include_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/inline.txt delete mode 100644 support/texlab/src/parser/test_data/latex/inline_double_dollar.txt delete mode 100644 support/texlab/src/parser/test_data/latex/issue_745.txt delete mode 100644 support/texlab/src/parser/test_data/latex/issue_789.txt delete mode 100644 support/texlab/src/parser/test_data/latex/issue_853.txt delete mode 100644 support/texlab/src/parser/test_data/latex/issue_857.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_definition_line_break.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_definition_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_number.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_reference_equation.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_reference_incomplete.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_reference_multiple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_reference_range_error.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_reference_range_incomplete.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_reference_range_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/label/label_reference_simple.txt delete mode 100644 support/texlab/src/parser/test_data/latex/parameter.txt delete mode 100644 support/texlab/src/parser/test_data/latex/parameter_error.txt delete mode 100644 support/texlab/src/parser/test_data/latex/structure/structure_enum_item.txt delete mode 100644 support/texlab/src/parser/test_data/latex/structure/structure_invalid_nesting.txt delete mode 100644 support/texlab/src/parser/test_data/latex/structure/structure_nested.txt delete mode 100644 support/texlab/src/parser/test_data/latex/structure/structure_siblings.txt delete mode 100644 support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_full.txt delete mode 100644 support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_name_with_counter.txt delete mode 100644 support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_name_with_description.txt delete mode 100644 support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_name_with_description_and_counter.txt delete mode 100644 support/texlab/src/parser/test_data/latex/theorem_definition/theorem_definition_only_name.txt delete mode 100644 support/texlab/src/server.rs delete mode 100644 support/texlab/src/server/dispatch.rs delete mode 100644 support/texlab/src/server/options.rs delete mode 100644 support/texlab/src/server/query.rs delete mode 100644 support/texlab/src/syntax.rs delete mode 100644 support/texlab/src/syntax/bibtex.rs delete mode 100644 support/texlab/src/syntax/latex.rs delete mode 100644 support/texlab/src/syntax/latex/cst.rs delete mode 100644 support/texlab/src/syntax/latex/kind.rs delete mode 100644 support/texlab/src/util.rs delete mode 100644 support/texlab/src/util/capabilities.rs delete mode 100644 support/texlab/src/util/chktex.rs delete mode 100644 support/texlab/src/util/components.rs delete mode 100644 support/texlab/src/util/cursor.rs delete mode 100644 support/texlab/src/util/label.rs delete mode 100644 support/texlab/src/util/lang_data.rs delete mode 100644 support/texlab/src/util/line_index.rs delete mode 100644 support/texlab/src/util/line_index_ext.rs delete mode 100644 support/texlab/src/util/lsp_enums.rs delete mode 100644 support/texlab/src/util/regex_filter.rs delete mode 100644 support/texlab/tests/lsp/fixture.rs delete mode 100644 support/texlab/tests/lsp/main.rs delete mode 100644 support/texlab/tests/lsp/text_document.rs delete mode 100644 support/texlab/tests/lsp/text_document/completion.rs delete mode 100644 support/texlab/tests/lsp/text_document/definition.rs delete mode 100644 support/texlab/tests/lsp/text_document/document_highlight.rs delete mode 100644 support/texlab/tests/lsp/text_document/document_link.rs delete mode 100644 support/texlab/tests/lsp/text_document/document_symbol.rs delete mode 100644 support/texlab/tests/lsp/text_document/folding_range.rs delete mode 100644 support/texlab/tests/lsp/text_document/formatting.rs delete mode 100644 support/texlab/tests/lsp/text_document/hover.rs delete mode 100644 support/texlab/tests/lsp/text_document/inlay_hint.rs delete mode 100644 support/texlab/tests/lsp/text_document/references.rs delete mode 100644 support/texlab/tests/lsp/text_document/rename.rs delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_package_ref.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_empty.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__acronym_ref_simple.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_empty.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__argument_word.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__begin_environment_without_snippet_support.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_acronym.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__citation_open_brace_multiple.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_set_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_set_simple.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_model_definition_simple.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_simple.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__color_word.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_bibtex.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_simple.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_command_simple_package.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_class.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_command_definition.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_simple.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__component_environment_simple_end.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_after_preamble.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_after_string.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_at_empty.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_article.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_preamble.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_before_string.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__entry_type_complete_entry.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_empty_entry_closed.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_empty_entry_open.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_field_name.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_two_fields_name_closed.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__field_entry_two_fields_name_open.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__glossary_ref_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__glossary_ref_simple.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_class_closed_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_class_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_package_closed_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__import_package_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__issue_857_1.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__issue_864.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__label.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__project_resolution_import.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__project_resolution_texlabroot.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__theorem_begin.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__theorem_end.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__tikz_library_closed_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__tikz_library_open_brace.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__user_command.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__completion__user_environment.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_link__document_import.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_link__document_include.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__enumerate_flat.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__enumerate_nested.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__equation_flat.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__equation_nested.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__float_flat.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__float_nested.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__ignored_patterns.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__section_flat.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__section_nested.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__theorem_flat.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__document_symbol__theorem_nested.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__folding_range__bibtex.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__folding_range__latex.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_command.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_insert_braces.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_join_strings.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_multiple_entries.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_parens.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_preamble.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_string.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_trailing_comma.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__formatting__bibtex_internal_wrap_long_lines.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__citation_inside_cite.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__citation_inside_entry.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__component_known_package.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__entry_type_known_type.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__field_known.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__label_theorem_child_file.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__label_theorem_child_file_mumber.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__section.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__hover__string_inside_reference.snap delete mode 100644 support/texlab/tests/lsp/text_document/snapshots/lsp__text_document__inlay_hint__label_definition.snap delete mode 100644 support/texlab/tests/lsp/workspace.rs delete mode 100644 support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_bibtex.snap delete mode 100644 support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_figure.snap delete mode 100644 support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_item.snap delete mode 100644 support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_math.snap delete mode 100644 support/texlab/tests/lsp/workspace/snapshots/lsp__workspace__symbol__filter_type_section.snap delete mode 100644 support/texlab/tests/lsp/workspace/symbol.rs (limited to 'support') diff --git a/support/latexindent/LatexIndent/Document.pm b/support/latexindent/LatexIndent/Document.pm index 4a99721a34..16a01bf209 100644 --- a/support/latexindent/LatexIndent/Document.pm +++ b/support/latexindent/LatexIndent/Document.pm @@ -240,15 +240,7 @@ sub output_indented_text { } elsif ( $switches{outputToFile} ) { - # diacritics in file names (highlighted in https://github.com/cmhughes/latexindent.pl/pull/439) - # - # note, related: - # - # git config --add core.quotePath false - ${$self}{outputToFile} = decode( "utf-8", ${$self}{outputToFile} ); - $logger->info("Outputting to file ${$self}{outputToFile}"); - open( OUTPUTFILE, ">", ${$self}{outputToFile} ); print OUTPUTFILE ${$self}{body}; close(OUTPUTFILE); diff --git a/support/latexindent/LatexIndent/FileExtension.pm b/support/latexindent/LatexIndent/FileExtension.pm index b0f49f246d..b61ffc1bb4 100644 --- a/support/latexindent/LatexIndent/FileExtension.pm +++ b/support/latexindent/LatexIndent/FileExtension.pm @@ -21,6 +21,7 @@ use PerlIO::encoding; use open ':std', ':encoding(UTF-8)'; use File::Basename; # to get the filename and directory path use Exporter qw/import/; +use Encode qw/decode/; use LatexIndent::GetYamlSettings qw/%mainSettings/; use LatexIndent::Switches qw/%switches $is_check_switch_active/; use LatexIndent::LogFile qw/$logger/; @@ -114,7 +115,12 @@ sub file_extension_check { $logger->info("*-o switch active: output file check"); - ${$self}{outputToFile} = $switches{outputToFile}; + # diacritics in file names (highlighted in https://github.com/cmhughes/latexindent.pl/pull/439) + # + # note, related: + # + # git config --add core.quotePath false + ${$self}{outputToFile} = decode( "utf-8", $switches{outputToFile} ); if ( $fileName eq "-" and $switches{outputToFile} =~ m/^\+/ ) { $logger->info("STDIN input mode active, -o switch is removing all + symbols"); @@ -124,7 +130,7 @@ sub file_extension_check { # the -o file name might begin with a + symbol if ( $switches{outputToFile} =~ m/^\+(.*)/ and $1 ne "+" ) { $logger->info("-o switch called with + symbol at the beginning: ${$self}{outputToFile}"); - ${$self}{outputToFile} = ${$self}{baseName} . $1; + ${$self}{outputToFile} = decode( "utf-8", ${$self}{baseName} . $1 ); $logger->info("output file is now: ${$self}{outputToFile}"); } @@ -137,7 +143,8 @@ sub file_extension_check { # if there is no extension, then add the extension from the file to be operated upon if ( !$ext ) { - $logger->info("-o switch called with file name without extension: $switches{outputToFile}"); + $logger->info( + "-o switch called with file name without extension: " . decode( "utf-8", $switches{outputToFile} ) ); ${$self}{outputToFile} = $name . ( $name =~ m/\.\z/ ? q() : "." ) . $strippedFileExtension; $logger->info( "Updated to ${$self}{outputToFile} as the file extension of the input file is $strippedFileExtension"); diff --git a/support/latexindent/LatexIndent/LogFile.pm b/support/latexindent/LatexIndent/LogFile.pm index 93b6ad0930..5847ca42f4 100644 --- a/support/latexindent/LatexIndent/LogFile.pm +++ b/support/latexindent/LatexIndent/LogFile.pm @@ -129,12 +129,9 @@ ENDQUOTE # cruft directory ${$self}{cruftDirectory} = $switches{cruftDirectory} || ( dirname ${$self}{fileName} ); - # diacritics in cruft directory (highlighted in https://github.com/cmhughes/latexindent.pl/pull/439) - ${$self}{cruftDirectory} = decode( "utf-8", ${$self}{cruftDirectory} ); - # if cruft directory does not exist if ( !( -d ${$self}{cruftDirectory} ) ) { - $logger->fatal("*Could not find directory ${$self}{cruftDirectory}"); + $logger->fatal( "*Could not find directory " . decode( "utf-8", ${$self}{cruftDirectory} ) ); $logger->fatal("Exiting, no indentation done."); $self->output_logfile(); exit(6); @@ -143,6 +140,8 @@ ENDQUOTE my $logfileName = ( $switches{cruftDirectory} ? ${$self}{cruftDirectory} . "/" : '' ) . ( $switches{logFileName} || "indent.log" ); + $logfileName = decode( "utf-8", $logfileName ); + # details of the script to log file $logger->info("*$FindBin::Script version $versionNumber, $versionDate, a script to indent .tex files"); $logger->info("$FindBin::Script lives here: $FindBin::RealBin/"); @@ -247,7 +246,7 @@ ENDQUOTE } $logger->info("*Directory for backup files and $logfileName:"); - $logger->info("${$self}{cruftDirectory}"); + $logger->info( $switches{cruftDirectory} ? decode( "utf-8", ${$self}{cruftDirectory} ) : ${$self}{cruftDirectory} ); # output location of modules if ( $FindBin::Script eq 'latexindent.pl' or ( $FindBin::Script eq 'latexindent.exe' and $switches{trace} ) ) { diff --git a/support/latexindent/LatexIndent/Version.pm b/support/latexindent/LatexIndent/Version.pm index 457e9c83bf..998d3dbfe3 100644 --- a/support/latexindent/LatexIndent/Version.pm +++ b/support/latexindent/LatexIndent/Version.pm @@ -20,6 +20,6 @@ use warnings; use Exporter qw/import/; our @EXPORT_OK = qw/$versionNumber $versionDate/; -our $versionNumber = '3.20.5'; -our $versionDate = '2023-04-07'; +our $versionNumber = '3.20.6'; +our $versionDate = '2023-04-11'; 1 diff --git a/support/latexindent/README b/support/latexindent/README index 4a3d96433c..95461bf24f 100644 --- a/support/latexindent/README +++ b/support/latexindent/README @@ -1,5 +1,5 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - latexindent.pl, version 3.20.5, 2023-04-07 + latexindent.pl, version 3.20.6, 2023-04-11 PERL script to indent code within environments, and align delimited environments in .tex files. diff --git a/support/latexindent/bin/linux/latexindent b/support/latexindent/bin/linux/latexindent index 3941080085..b4d88492d7 100644 Binary files a/support/latexindent/bin/linux/latexindent and b/support/latexindent/bin/linux/latexindent differ diff --git a/support/latexindent/bin/macos/latexindent b/support/latexindent/bin/macos/latexindent index ef6d8e84b2..e4d021aaba 100644 Binary files a/support/latexindent/bin/macos/latexindent and b/support/latexindent/bin/macos/latexindent differ diff --git a/support/latexindent/defaultSettings.yaml b/support/latexindent/defaultSettings.yaml index 51a8b22229..309ba003af 100644 --- a/support/latexindent/defaultSettings.yaml +++ b/support/latexindent/defaultSettings.yaml @@ -1,5 +1,5 @@ # -# latexindent.pl, version 3.20.5, 2023-04-07 +# latexindent.pl, version 3.20.6, 2023-04-11 # # defaultSettings.yaml, the default settings for latexindent.pl # diff --git a/support/latexindent/documentation/latexindent-yaml-schema.json b/support/latexindent/documentation/latexindent-yaml-schema.json index f2089565dc..ec760e70ac 100644 --- a/support/latexindent/documentation/latexindent-yaml-schema.json +++ b/support/latexindent/documentation/latexindent-yaml-schema.json @@ -2,7 +2,7 @@ "$schema": "http://json-schema.org/schema", "$id": "latexindent-yaml-schema.json", "title": "latexindent.pl YAML schema", - "description": "latexindent.pl YAML schema helper, V3.20.5 2023-04-07", + "description": "latexindent.pl YAML schema helper, V3.20.6 2023-04-11", "type": "object", "properties": { "fileExtensionPreference": { diff --git a/support/latexindent/documentation/latexindent.pdf b/support/latexindent/documentation/latexindent.pdf index e6d1ead45d..deaf1a130f 100644 Binary files a/support/latexindent/documentation/latexindent.pdf and b/support/latexindent/documentation/latexindent.pdf differ diff --git a/support/latexindent/latexindent.pl b/support/latexindent/latexindent.pl index 90e9408b0a..8a041b5435 100755 --- a/support/latexindent/latexindent.pl +++ b/support/latexindent/latexindent.pl @@ -1,5 +1,5 @@ #!/usr/bin/env perl -# latexindent.pl, version 3.20.5, 2023-04-07 +# latexindent.pl, version 3.20.6, 2023-04-11 # # 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 diff --git a/support/texlab/CHANGELOG.md b/support/texlab/CHANGELOG.md index 39bb7e4e54..557b8ea682 100644 --- a/support/texlab/CHANGELOG.md +++ b/support/texlab/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [5.4.2] - 2023-04-11 + +### Fixed + +- Fix memory leak when editing documents over a long time ([#856](https://github.com/latex-lsp/texlab/issues/856)) +- Fix parsing parentheses in file paths ([#874](https://github.com/latex-lsp/texlab/issues/874)) + ## [5.4.1] - 2023-03-26 ### Fixed diff --git a/support/texlab/Cargo.lock b/support/texlab/Cargo.lock index 7349b26f7d..724266ddb8 100644 --- a/support/texlab/Cargo.lock +++ b/support/texlab/Cargo.lock @@ -8,17 +8,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom", - "once_cell", - "version_check", -] - [[package]] name = "aho-corasick" version = "0.7.20" @@ -44,16 +33,50 @@ dependencies = [ ] [[package]] -name = "anyhow" -version = "1.0.69" +name = "anstream" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800" +checksum = "342258dd14006105c2b75ab1bd7543a03bdf0cfc94383303ac212a04939dff6f" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-wincon", + "concolor-override", + "concolor-query", + "is-terminal", + "utf8parse", +] [[package]] -name = "arc-swap" -version = "1.6.0" +name = "anstyle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ea9e81bd02e310c216d080f6223c179012256e5151c41db88d12c88a1684d2" + +[[package]] +name = "anstyle-parse" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "a7d1bb534e9efed14f3e5f44e7dd1a4f709384023a4165199a4241e18dff0116" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-wincon" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3127af6145b149f3287bb9a0d10ad9c5692dba8c53ad48285e5bec4063834fa" +dependencies = [ + "anstyle", + "windows-sys 0.45.0", +] + +[[package]] +name = "anyhow" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" [[package]] name = "assert_unordered" @@ -81,6 +104,25 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "base-db" +version = "0.0.0" +dependencies = [ + "dirs", + "distro", + "itertools", + "log", + "notify", + "once_cell", + "parser", + "regex", + "rowan", + "rustc-hash", + "syntax", + "text-size", + "url", +] + [[package]] name = "beef" version = "0.5.2" @@ -104,9 +146,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffdb39cb703212f3c11973452c2861b972f757b021158f3516ba10f2fa8b2c1" +checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" dependencies = [ "memchr", "serde", @@ -138,9 +180,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" dependencies = [ "num-integer", "num-traits", @@ -173,6 +215,24 @@ dependencies = [ "half", ] +[[package]] +name = "citeproc" +version = "0.0.0" +dependencies = [ + "chrono", + "human_name", + "insta", + "isocountry", + "itertools", + "parser", + "rowan", + "rustc-hash", + "syntax", + "titlecase", + "unicode-normalization", + "url", +] + [[package]] name = "clap" version = "3.2.23" @@ -187,30 +247,38 @@ dependencies = [ [[package]] name = "clap" -version = "4.1.8" +version = "4.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d7ae14b20b94cb02149ed21a86c423859cbe18dc7ed69845cace50e52b40a5" +checksum = "046ae530c528f252094e4a77886ee1374437744b2bff1497aa898bbddbbb29b3" dependencies = [ - "bitflags", + "clap_builder", "clap_derive", - "clap_lex 0.3.2", - "is-terminal", "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "223163f58c9a40c3b0a43e1c4b50a9ce09f007ea2cb1ec258a687945b4b7929f" +dependencies = [ + "anstream", + "anstyle", + "bitflags", + "clap_lex 0.4.1", "strsim", - "termcolor", ] [[package]] name = "clap_derive" -version = "4.1.8" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bec8e5c9d09e439c4335b1af0abaab56dcf3b94999a936e1bb47b9134288f0" +checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" dependencies = [ "heck", - "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -224,11 +292,23 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.2" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350b9cf31731f9957399229e9b2adc51eeabdfbe9d71d9a0552275fd12710d09" +checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" + +[[package]] +name = "concolor-override" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a855d4a1978dc52fb0536a04d384c2c0c1aa273597f08b77c8c4d3b2eec6037f" + +[[package]] +name = "concolor-query" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d11d52c3d7ca2e6d0040212be9e4dbbcd78b6447f535b6b561f449427944cf" dependencies = [ - "os_str_bytes", + "windows-sys 0.45.0", ] [[package]] @@ -251,9 +331,9 @@ checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "280a9f2d8b3a38871a3c8a46fb80db65e5e5ed97da80c4d08bf27fb63e35e181" dependencies = [ "libc", ] @@ -303,25 +383,11 @@ dependencies = [ "itertools", ] -[[package]] -name = "crossbeam" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" -dependencies = [ - "cfg-if", - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - [[package]] name = "crossbeam-channel" -version = "0.5.7" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", @@ -347,20 +413,10 @@ dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.8.0", + "memoffset", "scopeguard", ] -[[package]] -name = "crossbeam-queue" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.15" @@ -405,22 +461,30 @@ dependencies = [ [[package]] name = "dirs" -version = "4.0.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +checksum = "dece029acd3353e3a58ac2e3eb3c8d6c35827a892edc6cc4138ef9c33df46ecd" dependencies = [ "dirs-sys", ] [[package]] name = "dirs-sys" -version = "0.3.7" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +checksum = "04414300db88f70d74c5ff54e50f9e1d1737d9a5b90f53fcf2e95ca2a9ab554b" dependencies = [ "libc", "redox_users", - "winapi", + "windows-sys 0.45.0", +] + +[[package]] +name = "distro" +version = "0.0.0" +dependencies = [ + "anyhow", + "rustc-hash", ] [[package]] @@ -455,13 +519,13 @@ dependencies = [ [[package]] name = "errno" -version = "0.2.8" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" dependencies = [ "errno-dragonfly", "libc", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -474,16 +538,6 @@ dependencies = [ "libc", ] -[[package]] -name = "eyre" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" -dependencies = [ - "indenter", - "once_cell", -] - [[package]] name = "fastrand" version = "1.9.0" @@ -495,23 +549,23 @@ dependencies = [ [[package]] name = "fern" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdd7b0849075e79ee9a1836df22c717d1eba30451796fdc631b04565dd11e2a" +checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee" dependencies = [ "log", ] [[package]] name = "filetime" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" +checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" dependencies = [ "cfg-if", "libc", - "redox_syscall", - "windows-sys 0.45.0", + "redox_syscall 0.2.16", + "windows-sys 0.48.0", ] [[package]] @@ -524,19 +578,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "flume" -version = "0.10.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" -dependencies = [ - "futures-core", - "futures-sink", - "nanorand", - "pin-project", - "spin", -] - [[package]] name = "fnv" version = "1.0.7" @@ -561,18 +602,6 @@ dependencies = [ "libc", ] -[[package]] -name = "futures-core" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" - -[[package]] -name = "futures-sink" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" - [[package]] name = "fuzzy-matcher" version = "0.3.7" @@ -584,9 +613,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -594,15 +623,13 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi", - "wasm-bindgen", ] [[package]] @@ -629,18 +656,6 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashlink" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69fe1fcf8b4278d860ad0548329f892a3631fb63f82574df68275f34cdbe0ffa" -dependencies = [ - "hashbrown", -] [[package]] name = "heck" @@ -702,17 +717,11 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown", @@ -740,9 +749,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.28.0" +version = "1.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea5b3894afe466b4bcf0388630fc15e11938a6074af0cd637c825ba2ec8a099" +checksum = "9a28d25139df397cbca21408bb742cf6837e04cdbebf1b07b760caf971d6a972" dependencies = [ "console", "globset", @@ -767,24 +776,25 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.6" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfa919a82ea574332e2de6e74b4c36e74d41982b335080fa59d4ef31be20fdf3" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" dependencies = [ + "hermit-abi 0.3.1", "libc", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] name = "is-terminal" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ "hermit-abi 0.3.1", "io-lifetimes", "rustix", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -855,9 +865,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.140" +version = "0.2.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" +checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" [[package]] name = "linked-hash-map" @@ -867,9 +877,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.1.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +checksum = "d59d8c75012853d2e872fb56bc8a2e53718e2cafe1a4c823143141c6d90c322f" [[package]] name = "lock_api" @@ -892,25 +902,34 @@ dependencies = [ [[package]] name = "logos" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf8b031682c67a8e3d5446840f9573eb7fe26efe7ec8d195c9ac4c0647c502f1" +checksum = "c000ca4d908ff18ac99b93a062cb8958d331c3220719c52e77cb19cc6ac5d2c1" dependencies = [ "logos-derive", ] [[package]] -name = "logos-derive" -version = "0.12.1" +name = "logos-codegen" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d849148dbaf9661a6151d1ca82b13bb4c4c128146a88d05253b38d4e2f496c" +checksum = "dc487311295e0002e452025d6b580b77bb17286de87b57138f3b5db711cded68" dependencies = [ "beef", "fnv", "proc-macro2", "quote", "regex-syntax", - "syn", + "syn 2.0.13", +] + +[[package]] +name = "logos-derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbfc0d229f1f42d790440136d941afd806bc9e949e2bcb8faa813b0f00d1267e" +dependencies = [ + "logos-codegen", ] [[package]] @@ -944,15 +963,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - [[package]] name = "memoffset" version = "0.8.0" @@ -983,15 +993,6 @@ dependencies = [ "windows-sys 0.45.0", ] -[[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" -dependencies = [ - "getrandom", -] - [[package]] name = "notify" version = "5.1.0" @@ -1053,9 +1054,9 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" [[package]] name = "parking_lot" @@ -1075,11 +1076,23 @@ checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "windows-sys 0.45.0", ] +[[package]] +name = "parser" +version = "0.0.0" +dependencies = [ + "insta", + "logos", + "once_cell", + "regex", + "rowan", + "syntax", +] + [[package]] name = "percent-encoding" version = "2.2.0" @@ -1088,9 +1101,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.5.6" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cbd939b234e95d72bc393d51788aec68aeeb5d51e748ca08ff3aad58cb722f7" +checksum = "7b1403e8401ad5dedea73c626b99758535b342502f8d1e361f4a2dd952749122" dependencies = [ "thiserror", "ucd-trie", @@ -1098,9 +1111,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.5.6" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a81186863f3d0a27340815be8f2078dd8050b14cd71913db9fbda795e5f707d7" +checksum = "be99c4c1d2fc2769b1d00239431d711d08f6efedcecb8b6e30707160aee99c15" dependencies = [ "pest", "pest_generator", @@ -1108,22 +1121,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.6" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a1ef20bf3193c15ac345acb32e26b3dc3223aff4d77ae4fc5359567683796b" +checksum = "e56094789873daa36164de2e822b3888c6ae4b4f9da555a1103587658c805b1e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] name = "pest_meta" -version = "2.5.6" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3b284b1f13a20dc5ebc90aff59a51b8d7137c221131b52a7260c08cbc1cc80" +checksum = "6733073c7cff3d8459fda0e42f13a047870242aed8b509fe98000928975f359e" dependencies = [ "once_cell", "pest", @@ -1168,26 +1181,6 @@ dependencies = [ "siphasher", ] -[[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "plotters" version = "0.3.4" @@ -1216,44 +1209,20 @@ dependencies = [ "plotters-backend", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro2" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.23" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -1304,6 +1273,15 @@ dependencies = [ "bitflags", ] +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + [[package]] name = "redox_users" version = "0.4.3" @@ -1311,15 +1289,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom", - "redox_syscall", + "redox_syscall 0.2.16", "thiserror", ] [[package]] name = "regex" -version = "1.7.1" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" dependencies = [ "aho-corasick", "memchr", @@ -1328,19 +1306,19 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "rowan" -version = "0.15.10" +version = "0.15.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5811547e7ba31e903fe48c8ceab10d40d70a101f3d15523c847cce91aa71f332" +checksum = "64449cfef9483a475ed56ae30e2da5ee96448789fb2aa240a04beb6a055078bf" dependencies = [ "countme", "hashbrown", - "memoffset 0.6.5", + "memoffset", "rustc-hash", "text-size", ] @@ -1353,60 +1331,24 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustix" -version = "0.36.9" +version = "0.37.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd5c6ff11fecd55b40746d1995a02f2eb375bf8c00d192d521ee09f42bef37bc" +checksum = "85597d61f83914ddeba6a47b3b8ffe7365107221c2e557ed94426489fefb5f77" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] -[[package]] -name = "rustversion" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" - [[package]] name = "ryu" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" -[[package]] -name = "salsa-2022" -version = "0.1.0" -source = "git+https://github.com/salsa-rs/salsa?rev=ef7c0f12c8159e7025316e959c26f6278a576fa5#ef7c0f12c8159e7025316e959c26f6278a576fa5" -dependencies = [ - "arc-swap", - "crossbeam", - "crossbeam-utils", - "dashmap", - "hashlink", - "indexmap", - "log", - "parking_lot", - "rustc-hash", - "salsa-2022-macros", - "smallvec", -] - -[[package]] -name = "salsa-2022-macros" -version = "0.1.0" -source = "git+https://github.com/salsa-rs/salsa?rev=ef7c0f12c8159e7025316e959c26f6278a576fa5#ef7c0f12c8159e7025316e959c26f6278a576fa5" -dependencies = [ - "eyre", - "heck", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "same-file" version = "1.0.6" @@ -1424,29 +1366,29 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "serde" -version = "1.0.154" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cdd151213925e7f1ab45a9bbfb129316bd00799784b174b7cc7bcd16961c49e" +checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.154" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fc80d722935453bcafdc2c9a73cd6fac4dc1938f0346035d84bf99fa9e33217" +checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] name = "serde_json" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" +checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" dependencies = [ "itoa", "ryu", @@ -1465,13 +1407,13 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395627de918015623b32e7669714206363a7fc00382bf477e72c1f7533e8eafc" +checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -1521,15 +1463,6 @@ dependencies = [ "serde", ] -[[package]] -name = "spin" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dccf47db1b41fa1573ed27ccf5e08e3ca771cb994f776668c5ebda893b248fc" -dependencies = [ - "lock_api", -] - [[package]] name = "strsim" version = "0.10.0" @@ -1537,32 +1470,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" +name = "syn" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "heck", "proc-macro2", "quote", - "rustversion", - "syn", + "unicode-ident", ] [[package]] name = "syn" -version = "1.0.109" +version = "2.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec" dependencies = [ "proc-macro2", "quote", @@ -1570,70 +1492,68 @@ dependencies = [ ] [[package]] -name = "tempfile" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af18f7ae1acd354b992402e9ec5864359d693cd8a79dcbef59f76891701c1e95" +name = "syntax" +version = "0.0.0" dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall", - "rustix", - "windows-sys 0.42.0", + "itertools", + "rowan", ] [[package]] -name = "termcolor" -version = "1.2.0" +name = "tempfile" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ - "winapi-util", + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix", + "windows-sys 0.45.0", ] [[package]] name = "texlab" -version = "5.4.1" +version = "5.4.2" dependencies = [ "anyhow", "assert_unordered", - "chrono", - "clap 4.1.8", + "base-db", + "citeproc", + "clap 4.2.1", "criterion", "crossbeam-channel", "dashmap", "dirs", + "distro", "encoding_rs", "encoding_rs_io", "fern", "flate2", - "flume", "fuzzy-matcher", "human_name", "insta", - "isocountry", "itertools", "log", - "logos", "lsp-server", "lsp-types", "notify", "once_cell", + "parking_lot", + "parser", "regex", "rowan", "rustc-hash", - "salsa-2022", "serde", "serde_json", "serde_regex", "serde_repr", "smol_str", - "strum", + "syntax", "tempfile", "thiserror", "threadpool", "titlecase", - "unicode-normalization", ] [[package]] @@ -1650,22 +1570,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ab016db510546d856297882807df8da66a16fb8c4101cb8b30054b0d5b2d9c" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5420d42e90af0c38c3290abcca25b9b3bdf379fc9f55c528f53a269d9c9a267e" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.13", ] [[package]] @@ -1737,9 +1657,9 @@ checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" [[package]] name = "unicode-bidi" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524b68aca1d05e03fdf03fcdce2c6c94b6daf6d16861ddaa7e4f2b6638a9052c" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-case-mapping" @@ -1786,6 +1706,12 @@ dependencies = [ "serde", ] +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "version_check" version = "0.9.4" @@ -1794,12 +1720,11 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] @@ -1830,7 +1755,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-shared", ] @@ -1852,7 +1777,7 @@ checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1910,13 +1835,13 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -1925,65 +1850,131 @@ version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" dependencies = [ - "windows-targets", + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] name = "windows-targets" -version = "0.42.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.1" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.42.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" -version = "0.42.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.42.1" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.42.1" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.1" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.42.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "yaml-rust" diff --git a/support/texlab/Cargo.toml b/support/texlab/Cargo.toml index dfa23f744a..59e182bf20 100644 --- a/support/texlab/Cargo.toml +++ b/support/texlab/Cargo.toml @@ -1,84 +1,14 @@ -[package] -name = "texlab" -description = "LaTeX Language Server" -version = "5.4.1" +[workspace] +members = ["crates/*"] + +[workspace.package] license = "GPL-3.0" -readme = "README.md" authors = [ - "Eric Förster ", - "Patrick Förster ", + "Eric Förster ", + "Patrick Förster ", ] edition = "2021" rust-version = "1.65" -homepage = "https://github.com/latex-lsp/texlab" -repository = "https://github.com/latex-lsp/texlab" -documentation = "https://github.com/latex-lsp/texlab" -keywords = ["lsp", "server", "latex", "bibtex"] -categories = ["development-tools"] -exclude = [ - ".gitattributes", - ".gitignore", - ".github/**", - "tests/it/**", - "*.snap", - "texlab.1", - "texlab.pdf", - "texlab.tex", -] - -[[bin]] -name = "texlab" -test = false - -[lib] -doctest = false - -[dependencies] -anyhow = "1.0.69" -chrono = { version = "0.4.23", default-features = false, features = ["std"] } -clap = { version = "4.1.6", features = ["derive"] } -crossbeam-channel = "0.5.6" -dashmap = "5.4.0" -dirs = "4.0.0" -encoding_rs = "0.8.32" -encoding_rs_io = "0.1.7" -fern = "0.6.1" -flate2 = "1.0.25" -flume = "0.10.14" -fuzzy-matcher = { version = "0.3.7", features = ["compact"] } -human_name = { version = "2.0.1", default-features = false } -isocountry = "0.3.2" -itertools = "0.10.5" -log = "0.4.17" -logos = "0.12.1" -lsp-server = "0.7.0" -lsp-types = "0.94.0" -notify = "5.1.0" -once_cell = "1.17.1" -regex = "1.7.1" -rowan = "0.15.10" -rustc-hash = "1.1.0" -serde = "1.0.152" -serde_json = "1.0.93" -serde_regex = "1.1.0" -serde_repr = "0.1.10" -smol_str = { version = "0.1.24", features = ["serde"] } -strum = { version = "0.24.1", features = ["derive"] } -tempfile = "3.3.0" -thiserror = "1.0.38" -threadpool = "1.8.1" -titlecase = "2.2.1" -unicode-normalization = "0.1.22" - -[dependencies.salsa] -git = "https://github.com/salsa-rs/salsa" -rev = "ef7c0f12c8159e7025316e959c26f6278a576fa5" -package = "salsa-2022" - -[dev-dependencies] -assert_unordered = "0.3.5" -criterion = { version = "0.4.0" } -insta = { version = "1.28.0", features = ["glob", "redactions", "json"] } [profile.release] lto = "thin" @@ -87,8 +17,3 @@ incremental = true [profile.bench] lto = "thin" incremental = true - -[[bench]] -name = "bench_main" -path = "benches/bench_main.rs" -harness = false diff --git a/support/texlab/benches/bench_main.rs b/support/texlab/benches/bench_main.rs deleted file mode 100644 index 196afb1f43..0000000000 --- a/support/texlab/benches/bench_main.rs +++ /dev/null @@ -1,25 +0,0 @@ -use criterion::{black_box, criterion_group, criterion_main, Criterion}; -use lsp_types::{Position, Url}; -use texlab::{ - db::{Language, Owner, Workspace}, - parser::parse_latex, - Database, -}; - -fn criterion_benchmark(c: &mut Criterion) { - c.bench_function("LaTeX/Parser", |b| { - b.iter(|| parse_latex(black_box(include_str!("../texlab.tex")))); - }); - - c.bench_function("LaTeX/Completion/Command", |b| { - let uri = Url::parse("http://example.com/texlab.tex").unwrap(); - let text = include_str!("../texlab.tex").to_string(); - let mut db = Database::default(); - Workspace::get(&db).open(&mut db, uri.clone(), text, Language::Tex, Owner::Client); - b.iter(|| texlab::features::completion::complete(&db, &uri, Position::new(0, 1))); - }); -} - -criterion_group!(benches, criterion_benchmark); - -criterion_main!(benches); diff --git a/support/texlab/crates/base-db/Cargo.toml b/support/texlab/crates/base-db/Cargo.toml new file mode 100644 index 0000000000..2c7efe9ac0 --- /dev/null +++ b/support/texlab/crates/base-db/Cargo.toml @@ -0,0 +1,25 @@ +[package] +name = "base-db" +version = "0.0.0" +license.workspace = true +authors.workspace = true +edition.workspace = true +rust-version.workspace = true + +[dependencies] +dirs = "5.0.0" +distro = { path = "../distro" } +itertools = "0.10.5" +log = "0.4.17" +notify = "5.1.0" +once_cell = "1.17.1" +parser = { path = "../parser" } +regex = "1.7.3" +rowan = "0.15.11" +rustc-hash = "1.1.0" +syntax = { path = "../syntax" } +text-size = "1.1.0" +url = "2.3.1" + +[lib] +doctest = false diff --git a/support/texlab/crates/base-db/src/config.rs b/support/texlab/crates/base-db/src/config.rs new file mode 100644 index 0000000000..56ee5ee237 --- /dev/null +++ b/support/texlab/crates/base-db/src/config.rs @@ -0,0 +1,233 @@ +use std::time::Duration; + +use regex::Regex; +use rustc_hash::FxHashSet; + +#[derive(Debug)] +pub struct Config { + pub root_dir: Option, + pub build: BuildConfig, + pub diagnostics: DiagnosticsConfig, + pub formatting: FormattingConfig, + pub synctex: Option, + pub symbols: SymbolConfig, + pub syntax: SyntaxConfig, +} + +#[derive(Debug)] +pub struct BuildConfig { + pub program: String, + pub args: Vec, + pub on_save: bool, + pub forward_search_after: bool, + pub output_dir: String, +} + +#[derive(Debug)] +pub struct DiagnosticsConfig { + pub allowed_patterns: Vec, + pub ignored_patterns: Vec, + pub chktex: ChktexConfig, + pub delay: Duration, +} + +#[derive(Debug)] +pub struct ChktexConfig { + pub on_open: bool, + pub on_save: bool, + pub on_edit: bool, +} + +#[derive(Debug)] +pub struct SynctexConfig { + pub program: String, + pub args: Vec, +} + +#[derive(Debug)] +pub struct FormattingConfig { + pub tex_formatter: Formatter, + pub bib_formatter: Formatter, + pub latex_indent: LatexIndentConfig, + pub line_length: usize, +} + +#[derive(Debug)] +pub enum Formatter { + Null, + Server, + LatexIndent, +} + +#[derive(Debug)] +pub struct LatexIndentConfig { + pub local: Option, + pub modify_line_breaks: bool, +} + +#[derive(Debug)] +pub struct SymbolConfig { + pub allowed_patterns: Vec, + pub ignored_patterns: Vec, +} + +#[derive(Debug)] +pub struct SyntaxConfig { + pub math_environments: FxHashSet, + pub enum_environments: FxHashSet, + pub verbatim_environments: FxHashSet, +} + +impl Default for Config { + fn default() -> Self { + Self { + root_dir: None, + build: BuildConfig::default(), + diagnostics: DiagnosticsConfig::default(), + formatting: FormattingConfig::default(), + synctex: None, + symbols: SymbolConfig::default(), + syntax: SyntaxConfig::default(), + } + } +} + +impl Default for BuildConfig { + fn default() -> Self { + Self { + program: String::from("latexmk"), + args: ["-pdf", "-interaction=nonstopmode", "-synctex=1", "%f"] + .into_iter() + .map(String::from) + .collect(), + on_save: false, + forward_search_after: false, + output_dir: String::from("."), + } + } +} + +impl Default for DiagnosticsConfig { + fn default() -> Self { + Self { + allowed_patterns: Vec::new(), + ignored_patterns: Vec::new(), + delay: Duration::from_millis(300), + chktex: ChktexConfig::default(), + } + } +} + +impl Default for ChktexConfig { + fn default() -> Self { + Self { + on_open: false, + on_save: false, + on_edit: false, + } + } +} + +impl Default for FormattingConfig { + fn default() -> Self { + Self { + tex_formatter: Formatter::LatexIndent, + bib_formatter: Formatter::Server, + line_length: 80, + latex_indent: LatexIndentConfig::default(), + } + } +} + +impl Default for LatexIndentConfig { + fn default() -> Self { + Self { + local: None, + modify_line_breaks: false, + } + } +} + +impl Default for SymbolConfig { + fn default() -> Self { + Self { + allowed_patterns: Vec::new(), + ignored_patterns: Vec::new(), + } + } +} + +impl Default for SyntaxConfig { + fn default() -> Self { + let math_environments = DEFAULT_MATH_ENVIRONMENTS + .iter() + .copied() + .map(String::from) + .collect(); + + let enum_environments = ["enumerate", "itemize", "description"] + .into_iter() + .map(String::from) + .collect(); + + let verbatim_environments = ["pycode", "minted", "asy", "lstlisting", "verbatim"] + .into_iter() + .map(String::from) + .collect(); + + Self { + math_environments, + enum_environments, + verbatim_environments, + } + } +} + +static DEFAULT_MATH_ENVIRONMENTS: &[&str] = &[ + "align", + "align*", + "alignat", + "alignat*", + "aligned", + "aligned*", + "alignedat", + "alignedat*", + "array", + "array*", + "Bmatrix", + "Bmatrix*", + "bmatrix", + "bmatrix*", + "cases", + "cases*", + "CD", + "CD*", + "eqnarray", + "eqnarray*", + "equation", + "equation*", + "IEEEeqnarray", + "IEEEeqnarray*", + "subequations", + "subequations*", + "gather", + "gather*", + "gathered", + "gathered*", + "matrix", + "matrix*", + "multline", + "multline*", + "pmatrix", + "pmatrix*", + "smallmatrix", + "smallmatrix*", + "split", + "split*", + "subarray", + "subarray*", + "Vmatrix", + "Vmatrix*", + "vmatrix", + "vmatrix*", +]; diff --git a/support/texlab/crates/base-db/src/diagnostics.rs b/support/texlab/crates/base-db/src/diagnostics.rs new file mode 100644 index 0000000000..f5d13400a6 --- /dev/null +++ b/support/texlab/crates/base-db/src/diagnostics.rs @@ -0,0 +1,25 @@ +pub mod bib; +pub mod log; +pub mod tex; + +use rowan::TextRange; +use syntax::BuildError; + +#[derive(Debug, Clone)] +pub struct Diagnostic { + pub range: TextRange, + pub code: ErrorCode, +} + +#[derive(Debug, Clone)] +pub enum ErrorCode { + UnexpectedRCurly, + RCurlyInserted, + MismatchedEnvironment, + ExpectingLCurly, + ExpectingKey, + ExpectingRCurly, + ExpectingEq, + ExpectingFieldValue, + Build(BuildError), +} diff --git a/support/texlab/crates/base-db/src/diagnostics/bib.rs b/support/texlab/crates/base-db/src/diagnostics/bib.rs new file mode 100644 index 0000000000..f931a43c51 --- /dev/null +++ b/support/texlab/crates/base-db/src/diagnostics/bib.rs @@ -0,0 +1,69 @@ +use rowan::{ast::AstNode, TextRange}; +use syntax::bibtex::{self, HasDelims, HasEq, HasName, HasType, HasValue}; + +use crate::{Document, DocumentData}; + +use super::{Diagnostic, ErrorCode}; + +pub fn analyze(document: &mut Document) { + let DocumentData::Bib(data) = &document.data else { return }; + + for node in bibtex::SyntaxNode::new_root(data.green.clone()).descendants() { + if let Some(entry) = bibtex::Entry::cast(node.clone()) { + analyze_entry(document, entry); + } else if let Some(field) = bibtex::Field::cast(node.clone()) { + analyze_field(document, field); + } + } +} + +fn analyze_entry(document: &mut Document, entry: bibtex::Entry) { + if entry.left_delim_token().is_none() { + document.diagnostics.push(Diagnostic { + range: entry.type_token().unwrap().text_range(), + code: ErrorCode::ExpectingLCurly, + }); + + return; + } + + if entry.name_token().is_none() { + document.diagnostics.push(Diagnostic { + range: entry.left_delim_token().unwrap().text_range(), + code: ErrorCode::ExpectingKey, + }); + + return; + } + + if entry.right_delim_token().is_none() { + document.diagnostics.push(Diagnostic { + range: TextRange::empty(entry.syntax().text_range().end()), + code: ErrorCode::ExpectingRCurly, + }); + + return; + } +} + +fn analyze_field(document: &mut Document, field: bibtex::Field) { + if field.eq_token().is_none() { + let code = ErrorCode::ExpectingEq; + document.diagnostics.push(Diagnostic { + range: field.name_token().unwrap().text_range(), + code, + }); + + return; + } + + if field.value().is_none() { + let code = ErrorCode::ExpectingFieldValue; + document.diagnostics.push(Diagnostic { + range: field.name_token().unwrap().text_range(), + code, + }); + + return; + } +} diff --git a/support/texlab/crates/base-db/src/diagnostics/log.rs b/support/texlab/crates/base-db/src/diagnostics/log.rs new file mode 100644 index 0000000000..9e97a4e788 --- /dev/null +++ b/support/texlab/crates/base-db/src/diagnostics/log.rs @@ -0,0 +1,68 @@ +use rowan::{TextLen, TextRange, TextSize}; +use rustc_hash::FxHashMap; +use syntax::BuildError; +use url::Url; + +use crate::{Document, DocumentData, Workspace}; + +use super::{Diagnostic, ErrorCode}; + +pub fn analyze<'a>( + workspace: &'a Workspace, + log_document: &'a Document, +) -> FxHashMap<&'a Document, Vec> { + let mut results = FxHashMap::default(); + + let DocumentData::Log(data) = &log_document.data else { return results }; + + let parents = workspace.parents(log_document); + let Some(root_document) = parents.iter().next() else { return results }; + + let Some(base_path) = root_document.path + .as_deref() + .and_then(|path| path.parent()) else { return results }; + + for error in &data.errors { + let full_path = base_path.join(&error.relative_path); + let Ok(full_path_uri) = Url::from_file_path(&full_path) else { continue }; + let tex_document = workspace.lookup(&full_path_uri).unwrap_or(root_document); + + let range = find_range_of_hint(tex_document, error).unwrap_or_else(|| { + let line = error.line.unwrap_or(0); + let offset = *tex_document + .line_index + .newlines + .get(line as usize) + .unwrap_or(&TextSize::from(0)); + + TextRange::empty(offset) + }); + + let diagnostic = Diagnostic { + range, + code: ErrorCode::Build(error.clone()), + }; + + results.entry(tex_document).or_default().push(diagnostic); + } + + results +} + +fn find_range_of_hint(document: &Document, error: &BuildError) -> Option { + let line = error.line? as usize; + let hint = error.hint.as_deref()?; + let line_index = &document.line_index; + + let line_start = line_index.newlines.get(line).copied()?; + let line_end = line_index + .newlines + .get(line + 1) + .copied() + .unwrap_or((&document.text).text_len()); + + let line_text = &document.text[line_start.into()..line_end.into()]; + let hint_start = line_start + TextSize::try_from(line_text.find(hint)?).unwrap(); + let hint_end = hint_start + hint.text_len(); + Some(TextRange::new(hint_start, hint_end)) +} diff --git a/support/texlab/crates/base-db/src/diagnostics/tex.rs b/support/texlab/crates/base-db/src/diagnostics/tex.rs new file mode 100644 index 0000000000..81b6e4401a --- /dev/null +++ b/support/texlab/crates/base-db/src/diagnostics/tex.rs @@ -0,0 +1,116 @@ +use rowan::{ast::AstNode, NodeOrToken, TextRange}; +use syntax::latex; + +use crate::{Config, Document, DocumentData}; + +use super::{Diagnostic, ErrorCode}; + +pub fn analyze(document: &mut Document, config: &Config) { + if !document.uri.as_str().ends_with(".tex") { + return; + } + + let DocumentData::Tex(data) = &document.data else { return }; + + let mut traversal = latex::SyntaxNode::new_root(data.green.clone()).preorder(); + while let Some(event) = traversal.next() { + match event { + rowan::WalkEvent::Enter(node) => { + if let Some(environment) = latex::Environment::cast(node.clone()) { + if environment + .begin() + .and_then(|begin| begin.name()) + .and_then(|name| name.key()) + .map_or(false, |name| { + config + .syntax + .verbatim_environments + .contains(&name.to_string()) + }) + { + traversal.skip_subtree(); + continue; + } + } + + analyze_environment(document, node.clone()) + .or_else(|| analyze_curly_group(document, node.clone(), config)) + .or_else(|| analyze_curly_braces(document, node)); + } + rowan::WalkEvent::Leave(_) => { + continue; + } + }; + } +} + +fn analyze_environment(document: &mut Document, node: latex::SyntaxNode) -> Option<()> { + let environment = latex::Environment::cast(node)?; + let begin = environment.begin()?.name()?.key()?; + let end = environment.end()?.name()?.key()?; + if begin != end { + document.diagnostics.push(Diagnostic { + range: latex::small_range(&begin), + code: ErrorCode::MismatchedEnvironment, + }); + } + + Some(()) +} + +fn analyze_curly_group( + document: &mut Document, + node: latex::SyntaxNode, + config: &Config, +) -> Option<()> { + if !matches!( + node.kind(), + latex::CURLY_GROUP + | latex::CURLY_GROUP_COMMAND + | latex::CURLY_GROUP_KEY_VALUE + | latex::CURLY_GROUP_WORD + | latex::CURLY_GROUP_WORD_LIST + ) { + return None; + } + + let is_inside_verbatim_environment = node + .ancestors() + .filter_map(latex::Environment::cast) + .filter_map(|env| env.begin()) + .filter_map(|begin| begin.name()) + .filter_map(|name| name.key()) + .any(|name| { + config + .syntax + .verbatim_environments + .contains(&name.to_string()) + }); + + if !is_inside_verbatim_environment + && !node + .children_with_tokens() + .filter_map(NodeOrToken::into_token) + .any(|token| token.kind() == latex::R_CURLY) + { + document.diagnostics.push(Diagnostic { + range: TextRange::empty(node.text_range().end()), + code: ErrorCode::RCurlyInserted, + }); + } + + Some(()) +} + +fn analyze_curly_braces(document: &mut Document, node: latex::SyntaxNode) -> Option<()> { + if node.kind() == latex::ERROR && node.first_token()?.text() == "}" { + document.diagnostics.push(Diagnostic { + range: node.text_range(), + code: ErrorCode::UnexpectedRCurly, + }); + + Some(()) + } else { + None + } +} diff --git a/support/texlab/crates/base-db/src/document.rs b/support/texlab/crates/base-db/src/document.rs new file mode 100644 index 0000000000..39d9ec3cf7 --- /dev/null +++ b/support/texlab/crates/base-db/src/document.rs @@ -0,0 +1,196 @@ +use std::path::PathBuf; + +use distro::Language; +use rowan::TextSize; +use syntax::{bibtex, latex, BuildError}; +use url::Url; + +use crate::{ + diagnostics::{self, Diagnostic}, + line_index::LineIndex, + semantics, Config, +}; + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash)] +pub enum Owner { + Client, + Server, +} + +#[derive(Debug, Clone)] +pub struct Document { + pub uri: Url, + pub dir: Url, + pub path: Option, + pub text: String, + pub line_index: LineIndex, + pub owner: Owner, + pub cursor: TextSize, + pub language: Language, + pub data: DocumentData, + pub diagnostics: Vec, +} + +impl Document { + pub fn parse( + uri: Url, + text: String, + language: Language, + owner: Owner, + cursor: TextSize, + config: &Config, + ) -> Self { + let dir = uri.join(".").unwrap(); + + let path = if uri.scheme() == "file" { + uri.to_file_path().ok() + } else { + None + }; + + let line_index = LineIndex::new(&text); + + let diagnostics = Vec::new(); + let data = match language { + Language::Tex => { + let green = parser::parse_latex(&text); + let mut semantics = semantics::tex::Semantics::default(); + semantics.process_root(&latex::SyntaxNode::new_root(green.clone())); + DocumentData::Tex(TexDocumentData { green, semantics }) + } + Language::Bib => { + let green = parser::parse_bibtex(&text); + DocumentData::Bib(BibDocumentData { green }) + } + Language::Aux => { + let green = parser::parse_latex(&text); + let mut semantics = semantics::auxiliary::Semantics::default(); + semantics.process_root(&latex::SyntaxNode::new_root(green.clone())); + DocumentData::Aux(AuxDocumentData { green, semantics }) + } + Language::Log => { + let errors = parser::parse_build_log(&text).errors; + DocumentData::Log(LogDocumentData { errors }) + } + Language::Root => DocumentData::Root, + Language::Tectonic => DocumentData::Tectonic, + }; + + let mut document = Self { + uri, + dir, + path, + text, + line_index, + owner, + cursor, + language, + data, + diagnostics, + }; + + match language { + Language::Tex => diagnostics::tex::analyze(&mut document, config), + Language::Bib => diagnostics::bib::analyze(&mut document), + Language::Aux | Language::Log | Language::Root | Language::Tectonic => (), + }; + + document + } +} + +impl std::borrow::Borrow for Document { + fn borrow(&self) -> &Url { + &self.uri + } +} + +impl std::borrow::Borrow for Document { + fn borrow(&self) -> &str { + self.uri.as_str() + } +} + +impl PartialEq for Document { + fn eq(&self, other: &Self) -> bool { + self.uri == other.uri + } +} + +impl Eq for Document {} + +impl std::hash::Hash for Document { + fn hash(&self, state: &mut H) { + self.uri.hash(state) + } +} + +#[derive(Debug, Clone)] +pub enum DocumentData { + Tex(TexDocumentData), + Bib(BibDocumentData), + Aux(AuxDocumentData), + Log(LogDocumentData), + Root, + Tectonic, +} + +impl DocumentData { + pub fn as_tex(&self) -> Option<&TexDocumentData> { + if let DocumentData::Tex(data) = self { + Some(data) + } else { + None + } + } + + pub fn as_bib(&self) -> Option<&BibDocumentData> { + if let DocumentData::Bib(data) = self { + Some(data) + } else { + None + } + } + + pub fn as_aux(&self) -> Option<&AuxDocumentData> { + if let DocumentData::Aux(data) = self { + Some(data) + } else { + None + } + } +} + +#[derive(Debug, Clone)] +pub struct TexDocumentData { + pub green: rowan::GreenNode, + pub semantics: semantics::tex::Semantics, +} + +impl TexDocumentData { + pub fn root_node(&self) -> latex::SyntaxNode { + latex::SyntaxNode::new_root(self.green.clone()) + } +} + +#[derive(Debug, Clone)] +pub struct BibDocumentData { + pub green: rowan::GreenNode, +} + +impl BibDocumentData { + pub fn root_node(&self) -> bibtex::SyntaxNode { + bibtex::SyntaxNode::new_root(self.green.clone()) + } +} + +#[derive(Debug, Clone)] +pub struct LogDocumentData { + pub errors: Vec, +} + +#[derive(Debug, Clone)] +pub struct AuxDocumentData { + pub green: rowan::GreenNode, + pub semantics: semantics::auxiliary::Semantics, +} diff --git a/support/texlab/crates/base-db/src/graph.rs b/support/texlab/crates/base-db/src/graph.rs new file mode 100644 index 0000000000..2103aa8a73 --- /dev/null +++ b/support/texlab/crates/base-db/src/graph.rs @@ -0,0 +1,161 @@ +use std::{ffi::OsStr, path::PathBuf}; + +use distro::Language; +use itertools::Itertools; +use once_cell::sync::Lazy; +use rustc_hash::FxHashSet; +use url::Url; + +use crate::{semantics, Document, DocumentData, Workspace}; + +pub static HOME_DIR: Lazy> = Lazy::new(dirs::home_dir); + +#[derive(Debug, PartialEq, Eq, Clone, Hash)] +pub struct Edge<'a> { + pub source: &'a Document, + pub target: &'a Document, + pub weight: Option>, +} + +#[derive(Debug, PartialEq, Eq, Clone, Hash)] +pub struct EdgeWeight<'a> { + pub link: &'a semantics::tex::Link, + pub old_base_dir: Url, + pub new_base_dir: Url, +} + +#[derive(Debug)] +pub struct Graph<'a> { + pub workspace: &'a Workspace, + pub start: &'a Document, + pub edges: Vec>, + pub missing: Vec, +} + +impl<'a> Graph<'a> { + pub fn new(workspace: &'a Workspace, start: &'a Document) -> Self { + let mut graph = Self { + workspace, + start, + edges: Vec::new(), + missing: Vec::new(), + }; + + let base_dir = workspace.current_dir(&start.dir); + let mut stack = vec![(start, base_dir)]; + let mut visited = FxHashSet::default(); + + while let Some((source, base_dir)) = stack.pop() { + let index = graph.edges.len(); + graph.explicit_edges(source, &base_dir); + for edge in &graph.edges[index..] { + let Some(weight) = edge.weight.as_ref() else { continue }; + if visited.insert(&edge.target.uri) { + stack.push((edge.target, weight.new_base_dir.clone())); + } + } + + graph.implicit_edges(source, &base_dir); + } + + graph + } + + pub fn preorder(&self) -> impl DoubleEndedIterator + '_ { + std::iter::once(self.start) + .chain(self.edges.iter().map(|group| group.target)) + .unique_by(|document| &document.uri) + } + + fn explicit_edges(&mut self, source: &'a Document, base_dir: &Url) { + let DocumentData::Tex(data) = &source.data else { return }; + for link in &data.semantics.links { + self.explicit_edge(source, base_dir, link); + } + } + + fn explicit_edge( + &mut self, + source: &'a Document, + base_dir: &Url, + link: &'a semantics::tex::Link, + ) { + let home_dir = HOME_DIR.as_deref(); + + let stem = &link.path.text; + let mut file_names = vec![stem.clone()]; + link.kind + .extensions() + .iter() + .map(|ext| format!("{stem}.{ext}")) + .for_each(|name| file_names.push(name)); + + let file_name_db = &self.workspace.distro().file_name_db; + let distro_files = file_names + .iter() + .filter_map(|name| file_name_db.get(name)) + .filter(|path| home_dir.map_or(false, |dir| path.starts_with(dir))) + .flat_map(Url::from_file_path); + + for target_uri in file_names + .iter() + .flat_map(|file_name| base_dir.join(file_name)) + .chain(distro_files) + { + match self.workspace.lookup(&target_uri) { + Some(target) => { + let new_base_dir = link + .base_dir + .as_deref() + .and_then(|path| base_dir.join(&path).ok()) + .unwrap_or_else(|| base_dir.clone()); + + let weight = Some(EdgeWeight { + link, + old_base_dir: base_dir.clone(), + new_base_dir, + }); + + self.edges.push(Edge { + source, + target, + weight, + }); + } + None => { + self.missing.push(target_uri); + } + }; + } + } + + fn implicit_edges(&mut self, source: &'a Document, base_dir: &Url) { + let uri = source.uri.as_str(); + if source.language == Language::Tex && !uri.ends_with(".aux") { + self.implicit_edge(source, base_dir, "log"); + self.implicit_edge(source, base_dir, "aux"); + } + } + + fn implicit_edge(&mut self, source: &'a Document, base_dir: &Url, extension: &str) { + let Some(target_uri) = source.uri.to_file_path().ok().and_then(|mut path| { + path.set_extension(extension); + path.file_name() + .and_then(OsStr::to_str) + .and_then(|name| self.workspace.output_dir(base_dir).join(&name).ok()) + }) else { return }; + + match self.workspace.lookup(&target_uri) { + Some(target) => { + self.edges.push(Edge { + source, + target, + weight: None, + }); + } + None => { + self.missing.push(target_uri); + } + } + } +} diff --git a/support/texlab/crates/base-db/src/lib.rs b/support/texlab/crates/base-db/src/lib.rs new file mode 100644 index 0000000000..fae6ad5416 --- /dev/null +++ b/support/texlab/crates/base-db/src/lib.rs @@ -0,0 +1,9 @@ +mod config; +pub mod diagnostics; +mod document; +pub mod graph; +mod line_index; +pub mod semantics; +mod workspace; + +pub use self::{config::*, document::*, line_index::*, workspace::*}; diff --git a/support/texlab/crates/base-db/src/line_index.rs b/support/texlab/crates/base-db/src/line_index.rs new file mode 100644 index 0000000000..70e8f8128b --- /dev/null +++ b/support/texlab/crates/base-db/src/line_index.rs @@ -0,0 +1,217 @@ +// The following code has been copied from rust-analyzer. + +//! `LineIndex` maps flat `TextSize` offsets into `(Line, Column)` +//! representation. +use std::iter; + +use rowan::{TextRange, TextSize}; +use rustc_hash::FxHashMap; + +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct LineIndex { + /// Offset the the beginning of each line, zero-based + pub(crate) newlines: Vec, + /// List of non-ASCII characters on each line + pub(crate) utf16_lines: FxHashMap>, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub struct LineColUtf16 { + /// Zero-based + pub line: u32, + /// Zero-based + pub col: u32, +} + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub struct LineCol { + /// Zero-based + pub line: u32, + /// Zero-based utf8 offset + pub col: u32, +} + +#[derive(Clone, Debug, Hash, PartialEq, Eq)] +pub(crate) struct Utf16Char { + /// Start offset of a character inside a line, zero-based + pub(crate) start: TextSize, + /// End offset of a character inside a line, zero-based + pub(crate) end: TextSize, +} + +impl Utf16Char { + /// Returns the length in 8-bit UTF-8 code units. + fn len(&self) -> TextSize { + self.end - self.start + } + + /// Returns the length in 16-bit UTF-16 code units. + fn len_utf16(&self) -> usize { + if self.len() == TextSize::from(4) { + 2 + } else { + 1 + } + } +} + +impl LineIndex { + pub fn new(text: &str) -> LineIndex { + let mut utf16_lines = FxHashMap::default(); + let mut utf16_chars = Vec::new(); + + let mut newlines = vec![0.into()]; + let mut curr_row = 0.into(); + let mut curr_col = 0.into(); + let mut line = 0; + for c in text.chars() { + let c_len = TextSize::of(c); + curr_row += c_len; + if c == '\n' { + newlines.push(curr_row); + + // Save any utf-16 characters seen in the previous line + if !utf16_chars.is_empty() { + utf16_lines.insert(line, utf16_chars); + utf16_chars = Vec::new(); + } + + // Prepare for processing the next line + curr_col = 0.into(); + line += 1; + continue; + } + + if !c.is_ascii() { + utf16_chars.push(Utf16Char { + start: curr_col, + end: curr_col + c_len, + }); + } + + curr_col += c_len; + } + + // Save any utf-16 characters seen in the last line + if !utf16_chars.is_empty() { + utf16_lines.insert(line, utf16_chars); + } + + LineIndex { + newlines, + utf16_lines, + } + } + + pub fn line_col(&self, offset: TextSize) -> LineCol { + let line = partition_point(&self.newlines, |&it| it <= offset) - 1; + let line_start_offset = self.newlines[line]; + let col = offset - line_start_offset; + LineCol { + line: line as u32, + col: col.into(), + } + } + + pub fn offset(&self, line_col: LineCol) -> TextSize { + self.newlines[line_col.line as usize] + TextSize::from(line_col.col) + } + + pub fn to_utf16(&self, line_col: LineCol) -> LineColUtf16 { + let col = self.utf8_to_utf16_col(line_col.line, line_col.col.into()); + LineColUtf16 { + line: line_col.line, + col: col as u32, + } + } + + pub fn to_utf8(&self, line_col: LineColUtf16) -> LineCol { + let col = self.utf16_to_utf8_col(line_col.line, line_col.col); + LineCol { + line: line_col.line, + col: col.into(), + } + } + + pub fn lines(&self, range: TextRange) -> impl Iterator + '_ { + let lo = partition_point(&self.newlines, |&it| it < range.start()); + let hi = partition_point(&self.newlines, |&it| it <= range.end()); + let all = iter::once(range.start()) + .chain(self.newlines[lo..hi].iter().copied()) + .chain(iter::once(range.end())); + + all.clone() + .zip(all.skip(1)) + .map(|(lo, hi)| TextRange::new(lo, hi)) + .filter(|it| !it.is_empty()) + } + + fn utf8_to_utf16_col(&self, line: u32, col: TextSize) -> usize { + let mut res: usize = col.into(); + if let Some(utf16_chars) = self.utf16_lines.get(&line) { + for c in utf16_chars { + if c.end <= col { + res -= usize::from(c.len()) - c.len_utf16(); + } else { + // From here on, all utf16 characters come *after* the character we are mapping, + // so we don't need to take them into account + break; + } + } + } + res + } + + fn utf16_to_utf8_col(&self, line: u32, mut col: u32) -> TextSize { + if let Some(utf16_chars) = self.utf16_lines.get(&line) { + for c in utf16_chars { + if col > u32::from(c.start) { + col += u32::from(c.len()) - c.len_utf16() as u32; + } else { + // From here on, all utf16 characters come *after* the character we are mapping, + // so we don't need to take them into account + break; + } + } + } + + col.into() + } +} + +/// Returns `idx` such that: +/// +/// ```text +/// ∀ x in slice[..idx]: pred(x) +/// && ∀ x in slice[idx..]: !pred(x) +/// ``` +/// +/// https://github.com/rust-lang/rust/issues/73831 +fn partition_point(slice: &[T], mut pred: P) -> usize +where + P: FnMut(&T) -> bool, +{ + let mut left = 0; + let mut right = slice.len(); + + while left != right { + let mid = left + (right - left) / 2; + // SAFETY: + // When left < right, left <= mid < right. + // Therefore left always increases and right always decreases, + // and either of them is selected. + // In both cases left <= right is satisfied. + // Therefore if left < right in a step, + // left <= right is satisfied in the next step. + // Therefore as long as left != right, 0 <= left < right <= len is satisfied + // and if this case 0 <= mid < len is satisfied too. + let value = unsafe { slice.get_unchecked(mid) }; + if pred(value) { + left = mid + 1; + } else { + right = mid; + } + } + + left +} diff --git a/support/texlab/crates/base-db/src/semantics.rs b/support/texlab/crates/base-db/src/semantics.rs new file mode 100644 index 0000000000..94a9c15973 --- /dev/null +++ b/support/texlab/crates/base-db/src/semantics.rs @@ -0,0 +1,17 @@ +pub mod auxiliary; +pub mod tex; + +#[derive(Debug, PartialEq, Eq, Clone, Hash)] +pub struct Span { + pub text: String, + pub range: rowan::TextRange, +} + +impl From<&syntax::latex::Key> for Span { + fn from(key: &syntax::latex::Key) -> Self { + Span { + text: key.to_string(), + range: syntax::latex::small_range(key), + } + } +} diff --git a/support/texlab/crates/base-db/src/semantics/auxiliary.rs b/support/texlab/crates/base-db/src/semantics/auxiliary.rs new file mode 100644 index 0000000000..719953974c --- /dev/null +++ b/support/texlab/crates/base-db/src/semantics/auxiliary.rs @@ -0,0 +1,39 @@ +use rowan::ast::AstNode; +use rustc_hash::FxHashMap; +use syntax::latex; + +#[derive(Debug, Clone, Default)] +pub struct Semantics { + pub label_numbers: FxHashMap, +} + +impl Semantics { + pub fn process_root(&mut self, root: &latex::SyntaxNode) { + for node in root.descendants() { + self.process_node(&node); + } + } + + fn process_node(&mut self, node: &latex::SyntaxNode) { + if let Some(label_number) = latex::LabelNumber::cast(node.clone()) { + self.process_label_number(&label_number); + } + } + + fn process_label_number(&mut self, label_number: &latex::LabelNumber) { + let Some(name) = label_number + .name() + .and_then(|group| group.key()) + .map(|key| key.to_string()) else { return }; + + let Some(text) = label_number + .text() + .map(|node| node.syntax().descendants()) + .into_iter() + .flatten() + .find(|node| node.kind() == latex::TEXT || node.kind() == latex::MIXED_GROUP) + .map(|node| node.text().to_string()) else { return }; + + self.label_numbers.insert(name, text); + } +} diff --git a/support/texlab/crates/base-db/src/semantics/tex.rs b/support/texlab/crates/base-db/src/semantics/tex.rs new file mode 100644 index 0000000000..2b506ee878 --- /dev/null +++ b/support/texlab/crates/base-db/src/semantics/tex.rs @@ -0,0 +1,292 @@ +use rowan::{ast::AstNode, TextLen}; +use rustc_hash::FxHashSet; +use syntax::latex::{self, HasBrack, HasCurly}; +use text_size::TextRange; + +use super::Span; + +#[derive(Debug, Clone, Default)] +pub struct Semantics { + pub links: Vec, + pub labels: Vec