sphinx-lua-ls 3.7.0__tar.gz → 3.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/.cl-keeper.yaml +1 -1
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/.github/workflows/ci.yaml +6 -4
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/CHANGELOG.md +15 -5
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/CONTRIBUTING.md +4 -0
- {sphinx_lua_ls-3.7.0/sphinx_lua_ls.egg-info → sphinx_lua_ls-3.8.0}/PKG-INFO +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/conf.py +3 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/example/.emmyrc.json +1 -6
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/settings.rst +13 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/pyproject.toml +3 -3
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/__init__.py +3 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/_version.py +3 -3
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/config.py +16 -3
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/domain.py +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/lua_ls.py +87 -27
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0/sphinx_lua_ls.egg-info}/PKG-INFO +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls.egg-info/SOURCES.txt +1 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls.egg-info/requires.txt +1 -1
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-annotations.html +8 -8
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-annotations.html +8 -8
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-doctype.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-global_tables.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-globals.html +4 -4
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-incongruent_export.html +4 -4
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-member_ordering.html +8 -8
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-nested_modules.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-nesting.html +12 -12
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-nesting_recursive.html +36 -36
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-object_types.html +16 -16
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-relative_resolve.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-signatures.html +46 -46
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-using.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-globals.html +4 -4
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-member_ordering.html +8 -8
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-nested_modules.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-nesting.html +12 -12
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-nesting_recursive.html +36 -36
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-object_types.html +16 -16
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-relative_resolve.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-settings-no-recursion.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-settings-simple.html +4 -4
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/doc-annotations.html +4 -4
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/doc-directives.html +48 -48
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/doc-inherited.html +2 -2
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/doc-refs.html +4 -4
- sphinx_lua_ls-3.8.0/test/test_versions.py +42 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/.github/dependabot.yml +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/.gitignore +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/.pre-commit-config.yaml +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/.readthedocs.yaml +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/LICENSE +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/README.md +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/conftest.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/_extra/robots.txt +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/apidoc.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/autodoc.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/directives.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/example/logging.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/example.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/installation.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/quickstart.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/docs/source/roles.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/setup.cfg +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/apidoc.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/autodoc.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/autoindex.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/inherited.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/intersphinx.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/objtree.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/py.typed +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/pygments.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/static/lua.css +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls/utils.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls.egg-info/dependency_links.txt +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/sphinx_lua_ls.egg-info/top_level.txt +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/conftest.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-apidoc/.gitignore +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-apidoc/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-apidoc/conf.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-apidoc/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-apidoc/lua/mod/inner.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-apidoc/lua/mod.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-apidoc/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/conf.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/annotations.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/globals.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/globals_2.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/member_ordering.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/module_title.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/nested_modules.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/nesting.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/object_types.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/lua/relative_resolve.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/annotations.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/autoindex.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/globals.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/member_ordering.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/module_title.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/nested_modules.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/nesting.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/nesting_recursive.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/object_types.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc/src/relative_resolve.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/conf.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/.emmyrc.json +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/annotations.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/doctype.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/foo/x.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/global_tables.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/globals.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/globals_2.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/incongruent_export.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/member_ordering.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/module_function.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/module_title.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/nested_modules.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/nesting.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/object_types.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/relative_resolve.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/signatures.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/lua/using.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/annotations.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/autoindex.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/doctype.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/global_tables.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/globals.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/incongruent_export.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/member_ordering.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/module_function.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/module_title.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/nested_modules.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/nesting.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/nesting_recursive.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/object_types.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/relative_resolve.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/require.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/signatures.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-emmylua/src/using.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-roots/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-roots/conf.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-roots/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-roots/lua/root_1/autodoc.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-roots/lua/root_2/autodoc.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-roots/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings/conf.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings/lua/autodoc.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings-override/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings-override/conf.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings-override/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings-override/lua/autodoc.lua +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-autodoc-settings-override/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/conf.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/src/annotations.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/src/autoindex.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/src/directives.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/src/inherited.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/src/modules.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-doc/src/refs.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-intersphinx/Makefile +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-intersphinx/conf.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-intersphinx/index.rst +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/roots/test-intersphinx/make.bat +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_parse.py +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/apidoc-md-sep.yml +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/apidoc-md.yml +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/apidoc-rst-sep.yml +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/apidoc-rst.yml +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-autoindex.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-autoindex.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-index.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-module_function.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-module_title.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-emmylua-require.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-module_title.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-roots-default.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-roots-no-roots.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/autodoc-roots-single-root.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/doc-autoindex.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression/doc-modules.html +0 -0
- {sphinx_lua_ls-3.7.0 → sphinx_lua_ls-3.8.0}/test/test_regression.py +0 -0
|
@@ -26,11 +26,11 @@ jobs:
|
|
|
26
26
|
- name: Install dependencies
|
|
27
27
|
run: python -m pip install '.'
|
|
28
28
|
- name: Download LuaLs for Linux
|
|
29
|
-
run: python sphinx_lua_ls/lua_ls.py linux x86_64 --runtime luals ~/lua_ls_release/ubuntu-latest
|
|
29
|
+
run: python sphinx_lua_ls/lua_ls.py linux x86_64 --runtime luals --skip 3.16.0 ~/lua_ls_release/ubuntu-latest
|
|
30
30
|
- name: Download LuaLs for Windows
|
|
31
|
-
run: python sphinx_lua_ls/lua_ls.py win32 amd64 --runtime luals ~/lua_ls_release/windows-latest
|
|
31
|
+
run: python sphinx_lua_ls/lua_ls.py win32 amd64 --runtime luals --skip 3.16.0 ~/lua_ls_release/windows-latest
|
|
32
32
|
- name: Download LuaLs for MacOs
|
|
33
|
-
run: python sphinx_lua_ls/lua_ls.py darwin arm --runtime luals ~/lua_ls_release/macos-latest
|
|
33
|
+
run: python sphinx_lua_ls/lua_ls.py darwin arm --runtime luals --skip 3.16.0 ~/lua_ls_release/macos-latest
|
|
34
34
|
- name: Download EmmyLua for Linux
|
|
35
35
|
run: python sphinx_lua_ls/lua_ls.py linux x86_64 --runtime emmylua ~/lua_ls_release/ubuntu-latest
|
|
36
36
|
- name: Download EmmyLua for Windows
|
|
@@ -79,7 +79,9 @@ jobs:
|
|
|
79
79
|
# Tests
|
|
80
80
|
- name: Install test dependencies
|
|
81
81
|
if: ${{ matrix.type == 'test' }}
|
|
82
|
-
run:
|
|
82
|
+
run: |
|
|
83
|
+
python -m pip install . --group test
|
|
84
|
+
python -m pip install -U sphinx
|
|
83
85
|
- name: Download LuaLs
|
|
84
86
|
if: ${{ matrix.type == 'test' }}
|
|
85
87
|
uses: actions/download-artifact@v4
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [3.8.0] - 2025-12-03
|
|
6
|
+
|
|
7
|
+
- Added support Sphinx 9.
|
|
8
|
+
|
|
9
|
+
- Added `lua_ls_skip_versions` config option to selectively avoid certain language server
|
|
10
|
+
releases.
|
|
11
|
+
|
|
12
|
+
## [3.7.0-post1] - 2025-11-14
|
|
13
|
+
|
|
14
|
+
- Minor documentation tweaks.
|
|
15
|
+
|
|
5
16
|
## [3.7.0] - 2025-11-14
|
|
6
17
|
|
|
7
18
|
- Fixed parsing of `@see` annotations with LuaLs backend.
|
|
@@ -201,8 +212,6 @@ Make sure that you only use `!doctype module` on the top-level tables that can b
|
|
|
201
212
|
via `require`. On other objects, use `!doctype table` instead, otherwise you'll get errors
|
|
202
213
|
that modules are not allowed within other objects.
|
|
203
214
|
|
|
204
|
-
## [2.0.0b0] - 2025-03-16
|
|
205
|
-
|
|
206
215
|
## [1.1.0] - 2025-03-11
|
|
207
216
|
|
|
208
217
|
- Added support for `!doc` and `!doctype` comments.
|
|
@@ -243,8 +252,7 @@ Initial release.
|
|
|
243
252
|
[0.0.4]: https://github.com/sphinx-contrib/lua-ls/compare/v0.0.3...v0.0.4
|
|
244
253
|
[1.0.0]: https://github.com/sphinx-contrib/lua-ls/compare/v0.0.4...v1.0.0
|
|
245
254
|
[1.1.0]: https://github.com/sphinx-contrib/lua-ls/compare/v1.0.0...v1.1.0
|
|
246
|
-
[2.0.0]: https://github.com/sphinx-contrib/lua-ls/compare/
|
|
247
|
-
[2.0.0b0]: https://github.com/sphinx-contrib/lua-ls/compare/v1.1.0...v2.0.0b0
|
|
255
|
+
[2.0.0]: https://github.com/sphinx-contrib/lua-ls/compare/v1.1.0...v2.0.0
|
|
248
256
|
[2.0.1]: https://github.com/sphinx-contrib/lua-ls/compare/v2.0.0...v2.0.1
|
|
249
257
|
[3.0.0]: https://github.com/sphinx-contrib/lua-ls/compare/v2.0.1...v3.0.0
|
|
250
258
|
[3.1.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.0.0...v3.1.0
|
|
@@ -255,6 +263,8 @@ Initial release.
|
|
|
255
263
|
[3.5.0-post1]: https://github.com/sphinx-contrib/lua-ls/compare/v3.5.0...v3.5.0-post1
|
|
256
264
|
[3.6.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.5.0-post1...v3.6.0
|
|
257
265
|
[3.7.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.6.0...v3.7.0
|
|
266
|
+
[3.7.0-post1]: https://github.com/sphinx-contrib/lua-ls/compare/v3.7.0...v3.7.0-post1
|
|
267
|
+
[3.8.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.7.0-post1...v3.8.0
|
|
258
268
|
[@bkoropoff]: https://github.com/bkoropoff
|
|
259
269
|
[emmylua]: https://github.com/EmmyLuaLs/emmylua-analyzer-rust/
|
|
260
|
-
[unreleased]: https://github.com/sphinx-contrib/lua-ls/compare/v3.
|
|
270
|
+
[unreleased]: https://github.com/sphinx-contrib/lua-ls/compare/v3.8.0...HEAD
|
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
```shell
|
|
12
12
|
pip install -e . --group dev
|
|
13
|
+
pip install -U sphinx
|
|
13
14
|
```
|
|
14
15
|
|
|
16
|
+
> *Note:* our tests run with Sphinx 9, but some dependencies are not yet updated
|
|
17
|
+
> for it; that's why you have to update Sphinx after installing it.
|
|
18
|
+
|
|
15
19
|
4. Install pre-commit hooks:
|
|
16
20
|
|
|
17
21
|
```shell
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sphinx-lua-ls
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.8.0
|
|
4
4
|
Summary: Automatic documentation generation via EmmyLua/LuaLs
|
|
5
5
|
Author-email: Tamika Nomara <taminomara@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -24,7 +24,7 @@ Classifier: Typing :: Typed
|
|
|
24
24
|
Requires-Python: >=3.12
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
License-File: LICENSE
|
|
27
|
-
Requires-Dist: sphinx<
|
|
27
|
+
Requires-Dist: sphinx<10.0,>=8.0
|
|
28
28
|
Requires-Dist: PyGithub<3.0,>=1.59
|
|
29
29
|
Requires-Dist: requests~=2.31
|
|
30
30
|
Dynamic: license-file
|
|
@@ -26,6 +26,9 @@ default_role = "lua:obj"
|
|
|
26
26
|
|
|
27
27
|
lua_ls_project_root = "example"
|
|
28
28
|
lua_ls_backend = "emmylua"
|
|
29
|
+
lua_ls_class_default_function_name = "__init"
|
|
30
|
+
lua_ls_class_default_force_non_colon = True
|
|
31
|
+
lua_ls_class_default_force_return_self = True
|
|
29
32
|
|
|
30
33
|
intersphinx_mapping = {
|
|
31
34
|
"python": ("https://docs.python.org/3", None),
|
|
@@ -7,12 +7,7 @@
|
|
|
7
7
|
"requireLikeFunction": [],
|
|
8
8
|
"frameworkVersions": [],
|
|
9
9
|
"extensions": [],
|
|
10
|
-
"requirePattern": []
|
|
11
|
-
"classDefaultCall": {
|
|
12
|
-
"functionName": "__init",
|
|
13
|
-
"forceNonColon": true,
|
|
14
|
-
"forceReturnSelf": true
|
|
15
|
-
}
|
|
10
|
+
"requirePattern": []
|
|
16
11
|
},
|
|
17
12
|
"doc": {
|
|
18
13
|
"knownTags": ["doctype", "doc"]
|
|
@@ -52,6 +52,17 @@ Settings
|
|
|
52
52
|
For LuaLs, default value is ``4.0.0``, for EmmyLua it's ``2.0.0``.
|
|
53
53
|
Use ``None`` to allow any version.
|
|
54
54
|
|
|
55
|
+
.. py:data:: lua_ls_skip_versions
|
|
56
|
+
:type: list[str] | None
|
|
57
|
+
|
|
58
|
+
List of lua analyzer versions that shouldn't be used.
|
|
59
|
+
|
|
60
|
+
For example, if ``lua_ls_skip_versions = ["3.16"]``, language server release
|
|
61
|
+
``3.16`` (including all ``3.16.x`` releases) will not be used.
|
|
62
|
+
|
|
63
|
+
This setting can be used to avoid broken releases without limiting max version
|
|
64
|
+
of the lua analyzer.
|
|
65
|
+
|
|
55
66
|
.. py:data:: lua_ls_default_options
|
|
56
67
|
:type: dict[str, str]
|
|
57
68
|
|
|
@@ -99,12 +110,12 @@ Settings
|
|
|
99
110
|
and :rst:dir:`lua:autoobject:class-signature` options.
|
|
100
111
|
|
|
101
112
|
.. py:data:: lua_ls_class_default_force_non_colon
|
|
102
|
-
:type:
|
|
113
|
+
:type: bool
|
|
103
114
|
|
|
104
115
|
If ``True``, Sphinx-LuaLs will remove ``self`` from class constructor's signature.
|
|
105
116
|
|
|
106
117
|
.. py:data:: lua_ls_class_default_force_return_self
|
|
107
|
-
:type:
|
|
118
|
+
:type: bool
|
|
108
119
|
|
|
109
120
|
If ``True``, Sphinx-LuaLs will replace class constructor's return type with ``self``.
|
|
110
121
|
|
|
@@ -22,7 +22,7 @@ classifiers = [
|
|
|
22
22
|
"Typing :: Typed",
|
|
23
23
|
]
|
|
24
24
|
dependencies = [
|
|
25
|
-
"sphinx>=8.0,<
|
|
25
|
+
"sphinx>=8.0,<10.0",
|
|
26
26
|
"PyGithub>=1.59,<3.0",
|
|
27
27
|
"requests~=2.31",
|
|
28
28
|
]
|
|
@@ -37,14 +37,14 @@ dev = [
|
|
|
37
37
|
lint = [
|
|
38
38
|
"black==25.11.0",
|
|
39
39
|
"isort==7.0.0",
|
|
40
|
-
"pre-commit==4.
|
|
40
|
+
"pre-commit==4.5.0",
|
|
41
41
|
]
|
|
42
42
|
test = [
|
|
43
43
|
"pyright==1.1.407",
|
|
44
44
|
"pytest==9.0.1",
|
|
45
45
|
"sybil==9.2.0",
|
|
46
46
|
"pytest-regressions==2.8.3",
|
|
47
|
-
"beautifulsoup4==4.14.
|
|
47
|
+
"beautifulsoup4==4.14.3",
|
|
48
48
|
"myst-parser==4.0.1"
|
|
49
49
|
]
|
|
50
50
|
doc = [
|
|
@@ -70,6 +70,7 @@ def run_lua_ls(app: sphinx.application.Sphinx):
|
|
|
70
70
|
max_version = "4.0.0"
|
|
71
71
|
else:
|
|
72
72
|
max_version = "2.0.0"
|
|
73
|
+
skip_versions = domain.config.skip_versions
|
|
73
74
|
|
|
74
75
|
cwd = pathlib.Path.cwd()
|
|
75
76
|
try:
|
|
@@ -77,6 +78,7 @@ def run_lua_ls(app: sphinx.application.Sphinx):
|
|
|
77
78
|
backend=domain.config.backend,
|
|
78
79
|
min_version=min_version,
|
|
79
80
|
max_version=max_version,
|
|
81
|
+
skip_versions=skip_versions or [],
|
|
80
82
|
cwd=root_dir,
|
|
81
83
|
reporter=sphinx_lua_ls.lua_ls.SphinxProgressReporter(app.verbosity),
|
|
82
84
|
install=domain.config.auto_install,
|
|
@@ -195,6 +197,7 @@ def setup(app: sphinx.application.Sphinx):
|
|
|
195
197
|
app.add_config_value("lua_ls_auto_install_location", None, rebuild="")
|
|
196
198
|
app.add_config_value("lua_ls_min_version", None, rebuild="env")
|
|
197
199
|
app.add_config_value("lua_ls_max_version", "__auto__", rebuild="env")
|
|
200
|
+
app.add_config_value("lua_ls_skip_versions", None, rebuild="env")
|
|
198
201
|
app.add_config_value("lua_ls_lua_version", None, rebuild="html")
|
|
199
202
|
app.add_config_value("lua_ls_default_options", None, rebuild="env")
|
|
200
203
|
app.add_config_value("lua_ls_apidoc_roots", None, rebuild="")
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '3.
|
|
32
|
-
__version_tuple__ = version_tuple = (3,
|
|
31
|
+
__version__ = version = '3.8.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (3, 8, 0)
|
|
33
33
|
|
|
34
|
-
__commit_id__ = commit_id = '
|
|
34
|
+
__commit_id__ = commit_id = 'g871de2611'
|
|
@@ -14,6 +14,7 @@ import sphinx_lua_ls.domain
|
|
|
14
14
|
_logger = logging.getLogger("sphinx_lua_ls")
|
|
15
15
|
|
|
16
16
|
T = _t.TypeVar("T")
|
|
17
|
+
A = _t.ParamSpec("A")
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
@dataclass
|
|
@@ -25,6 +26,7 @@ class LuaDomainConfig:
|
|
|
25
26
|
auto_install_location: pathlib.Path | None = None
|
|
26
27
|
min_version: str | None = None
|
|
27
28
|
max_version: str | None = None
|
|
29
|
+
skip_versions: list[str] | None = None
|
|
28
30
|
lua_version: str | None = None
|
|
29
31
|
default_options: dict[str, _t.Any] = dataclasses.field(default_factory=dict)
|
|
30
32
|
apidoc_default_options: dict[str, _t.Any] = dataclasses.field(default_factory=dict)
|
|
@@ -73,11 +75,17 @@ def _path(name: str, value, root: str | pathlib.Path) -> pathlib.Path:
|
|
|
73
75
|
raise ConfigError(f"incorrect lua_ls_project_root: {e}") from None
|
|
74
76
|
|
|
75
77
|
|
|
76
|
-
def
|
|
78
|
+
def _list(
|
|
79
|
+
name: str,
|
|
80
|
+
value,
|
|
81
|
+
checker: _t.Callable[_t.Concatenate[str, object, A], T],
|
|
82
|
+
*args: A.args,
|
|
83
|
+
**kwargs: A.kwargs,
|
|
84
|
+
) -> list[T]:
|
|
77
85
|
if value is None:
|
|
78
86
|
value = []
|
|
79
87
|
_type(name, value, list)
|
|
80
|
-
return [
|
|
88
|
+
return [checker(f"{name}[{i}]", v, *args, **kwargs) for i, v in enumerate(value)]
|
|
81
89
|
|
|
82
90
|
|
|
83
91
|
def _options(name: str, value) -> dict[str, _t.Any]:
|
|
@@ -193,9 +201,10 @@ def set_options(app: sphinx.application.Sphinx):
|
|
|
193
201
|
)
|
|
194
202
|
|
|
195
203
|
if config["lua_ls_project_directories"] is not None:
|
|
196
|
-
domain_config.project_directories =
|
|
204
|
+
domain_config.project_directories = _list(
|
|
197
205
|
"lua_ls_project_directories",
|
|
198
206
|
config["lua_ls_project_directories"],
|
|
207
|
+
_path,
|
|
199
208
|
domain_config.project_root,
|
|
200
209
|
)
|
|
201
210
|
|
|
@@ -221,6 +230,10 @@ def set_options(app: sphinx.application.Sphinx):
|
|
|
221
230
|
if config["lua_ls_max_version"] != "__auto__"
|
|
222
231
|
else "__auto__"
|
|
223
232
|
)
|
|
233
|
+
if config["lua_ls_skip_versions"] is not None:
|
|
234
|
+
domain_config.skip_versions = _list(
|
|
235
|
+
"lua_ls_skip_versions", config["lua_ls_skip_versions"], _version
|
|
236
|
+
)
|
|
224
237
|
|
|
225
238
|
if config["lua_ls_lua_version"]:
|
|
226
239
|
domain_config.lua_version = _str_choices(
|
|
@@ -1153,7 +1153,7 @@ class LuaDomain(Domain):
|
|
|
1153
1153
|
|
|
1154
1154
|
name = "lua"
|
|
1155
1155
|
label = "Lua"
|
|
1156
|
-
object_types
|
|
1156
|
+
object_types = {
|
|
1157
1157
|
"function": ObjType(_("function"), "func", "obj", "lua", "_auto"),
|
|
1158
1158
|
"data": ObjType(_("data"), "data", "obj", "lua", "_auto"),
|
|
1159
1159
|
"const": ObjType(_("const"), "attr", "const", "obj", "lua", "_auto"),
|
|
@@ -1225,7 +1225,7 @@ class LuaDomain(Domain):
|
|
|
1225
1225
|
base_lookup_classname: str | None = None
|
|
1226
1226
|
base_lookup_using: list[str] | None = None
|
|
1227
1227
|
|
|
1228
|
-
initial_data
|
|
1228
|
+
initial_data = {
|
|
1229
1229
|
"objects": {}, # fullname -> ObjectEntry
|
|
1230
1230
|
"globals": {}, # modname -> GlobalEntry
|
|
1231
1231
|
"members": {}, # modname -> MemberEntry
|
|
@@ -309,6 +309,7 @@ def resolve(
|
|
|
309
309
|
backend: _t.Literal["emmylua", "luals"],
|
|
310
310
|
min_version: str,
|
|
311
311
|
max_version: str | None,
|
|
312
|
+
skip_versions: list[str],
|
|
312
313
|
cache_path: _PathLike | None = None,
|
|
313
314
|
quiet: bool = True,
|
|
314
315
|
env: dict[str, str] | None = None,
|
|
@@ -332,6 +333,8 @@ def resolve(
|
|
|
332
333
|
minimal LuaLs version required.
|
|
333
334
|
:param max_version:
|
|
334
335
|
maximal LuaLs version required. Version is not limited is `None`.
|
|
336
|
+
:param skip_versions:
|
|
337
|
+
list of known broken versions.
|
|
335
338
|
:param quiet:
|
|
336
339
|
if true (default), any output from the LuaLs binary is hidden.
|
|
337
340
|
:param env:
|
|
@@ -374,6 +377,7 @@ def resolve(
|
|
|
374
377
|
backend,
|
|
375
378
|
min_version,
|
|
376
379
|
max_version,
|
|
380
|
+
skip_versions,
|
|
377
381
|
cache_path,
|
|
378
382
|
_get_path(env),
|
|
379
383
|
install,
|
|
@@ -423,9 +427,15 @@ def _get_path(env: dict[str, str] | None) -> str:
|
|
|
423
427
|
|
|
424
428
|
|
|
425
429
|
def _check_version(
|
|
426
|
-
min_version: str,
|
|
430
|
+
min_version: str,
|
|
431
|
+
max_version: str | None,
|
|
432
|
+
skip_versions: list[str],
|
|
433
|
+
bin_path: _PathLike,
|
|
427
434
|
) -> _t.Tuple[bool, _t.Optional[str]]:
|
|
428
435
|
min_version_tuple = tuple(int(c) for c in min_version.split("."))
|
|
436
|
+
skip_version_tuples = [
|
|
437
|
+
tuple(int(c) for c in version.split(".")) for version in skip_versions
|
|
438
|
+
]
|
|
429
439
|
if max_version:
|
|
430
440
|
max_version_tuple = tuple(int(c) for c in max_version.split("."))
|
|
431
441
|
if max_version_tuple <= min_version_tuple:
|
|
@@ -442,15 +452,19 @@ def _check_version(
|
|
|
442
452
|
if match := re.search(r"(\d+\.\d+\.\d+)", system_version_text):
|
|
443
453
|
system_version = match.group(1)
|
|
444
454
|
system_version_tuple = tuple(int(c) for c in system_version.split("."))
|
|
445
|
-
if
|
|
455
|
+
if (
|
|
456
|
+
min_version_tuple <= system_version_tuple < max_version_tuple
|
|
457
|
+
and not _should_skip(system_version_tuple, skip_version_tuples)
|
|
458
|
+
):
|
|
446
459
|
return True, system_version
|
|
447
460
|
else:
|
|
448
461
|
_logger.debug(
|
|
449
|
-
"%s is outdated (got %s, required %s..%s)",
|
|
462
|
+
"%s is outdated (got %s, required %s..%s, skip=%r)",
|
|
450
463
|
bin_path,
|
|
451
464
|
system_version,
|
|
452
465
|
min_version,
|
|
453
466
|
max_version,
|
|
467
|
+
skip_versions,
|
|
454
468
|
type="lua-ls",
|
|
455
469
|
)
|
|
456
470
|
return False, system_version
|
|
@@ -474,6 +488,7 @@ def _check_and_install(
|
|
|
474
488
|
backend: _t.Literal["emmylua", "luals"],
|
|
475
489
|
min_version: str,
|
|
476
490
|
max_version: str | None,
|
|
491
|
+
skip_versions: list[str],
|
|
477
492
|
cache_path: pathlib.Path,
|
|
478
493
|
path: str,
|
|
479
494
|
install: bool,
|
|
@@ -485,6 +500,7 @@ def _check_and_install(
|
|
|
485
500
|
min_version = min_version[1:]
|
|
486
501
|
if max_version and max_version.startswith("v"):
|
|
487
502
|
max_version = max_version[1:]
|
|
503
|
+
skip_versions = [version.removeprefix("v") for version in skip_versions]
|
|
488
504
|
|
|
489
505
|
if backend == "emmylua":
|
|
490
506
|
bin_name = "emmylua_doc_cli"
|
|
@@ -495,7 +511,7 @@ def _check_and_install(
|
|
|
495
511
|
system_version = None
|
|
496
512
|
if system_bin_path:
|
|
497
513
|
can_use_system_lua_ls, system_version = _check_version(
|
|
498
|
-
min_version, max_version, system_bin_path
|
|
514
|
+
min_version, max_version, skip_versions, system_bin_path
|
|
499
515
|
)
|
|
500
516
|
if can_use_system_lua_ls:
|
|
501
517
|
_logger.debug(
|
|
@@ -526,6 +542,7 @@ def _check_and_install(
|
|
|
526
542
|
return _install_emmylua(
|
|
527
543
|
min_version,
|
|
528
544
|
max_version,
|
|
545
|
+
skip_versions,
|
|
529
546
|
cache_path,
|
|
530
547
|
path,
|
|
531
548
|
install,
|
|
@@ -541,6 +558,7 @@ def _check_and_install(
|
|
|
541
558
|
return _install_lua_ls(
|
|
542
559
|
min_version,
|
|
543
560
|
max_version,
|
|
561
|
+
skip_versions,
|
|
544
562
|
cache_path,
|
|
545
563
|
path,
|
|
546
564
|
install,
|
|
@@ -554,16 +572,22 @@ def _check_and_install(
|
|
|
554
572
|
)
|
|
555
573
|
|
|
556
574
|
|
|
557
|
-
def _make_version_message(
|
|
575
|
+
def _make_version_message(
|
|
576
|
+
min_version: str, max_version: str | None, skip_versions: list[str]
|
|
577
|
+
) -> str:
|
|
558
578
|
if max_version:
|
|
559
|
-
|
|
579
|
+
msg = f"a version between {min_version} and {max_version}"
|
|
560
580
|
else:
|
|
561
|
-
|
|
581
|
+
msg = f"version {min_version} or newer"
|
|
582
|
+
if skip_versions:
|
|
583
|
+
msg += ", and not " + ", ".join(skip_versions)
|
|
584
|
+
return msg
|
|
562
585
|
|
|
563
586
|
|
|
564
587
|
def _install_lua_ls(
|
|
565
588
|
min_version: str,
|
|
566
589
|
max_version: str | None,
|
|
590
|
+
skip_versions: list[str],
|
|
567
591
|
cache_path: pathlib.Path,
|
|
568
592
|
path: str,
|
|
569
593
|
install: bool,
|
|
@@ -589,7 +613,7 @@ def _install_lua_ls(
|
|
|
589
613
|
release_name = release_names.get((platform, machine), None)
|
|
590
614
|
if not install or not release_name:
|
|
591
615
|
if system_bin_path:
|
|
592
|
-
version = _make_version_message(min_version, max_version)
|
|
616
|
+
version = _make_version_message(min_version, max_version, skip_versions)
|
|
593
617
|
raise LuaLsError(
|
|
594
618
|
f"you have lua-language-server {system_version}, "
|
|
595
619
|
f"but {version} is required; "
|
|
@@ -613,7 +637,9 @@ def _install_lua_ls(
|
|
|
613
637
|
bin_path = cache_path / "bin/lua-language-server"
|
|
614
638
|
if bin_path.exists():
|
|
615
639
|
bin_path.chmod(bin_path.stat().st_mode | stat.S_IEXEC)
|
|
616
|
-
can_use_cached_binary, _ = _check_version(
|
|
640
|
+
can_use_cached_binary, _ = _check_version(
|
|
641
|
+
min_version, max_version, skip_versions, bin_path
|
|
642
|
+
)
|
|
617
643
|
if can_use_cached_binary:
|
|
618
644
|
_logger.debug("using cached lua-language-server", type="lua-ls")
|
|
619
645
|
return bin_path, path
|
|
@@ -631,6 +657,7 @@ def _install_lua_ls(
|
|
|
631
657
|
tmp_file = _download_release(
|
|
632
658
|
min_version,
|
|
633
659
|
max_version,
|
|
660
|
+
skip_versions,
|
|
634
661
|
api,
|
|
635
662
|
timeout,
|
|
636
663
|
retry,
|
|
@@ -663,15 +690,20 @@ def _install_lua_ls(
|
|
|
663
690
|
|
|
664
691
|
if verify:
|
|
665
692
|
can_use_cached_lua_ls, cached_version = _check_version(
|
|
666
|
-
min_version, max_version, bin_path
|
|
693
|
+
min_version, max_version, skip_versions, bin_path
|
|
667
694
|
)
|
|
668
695
|
if not can_use_cached_lua_ls:
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
696
|
+
if cached_version is not None:
|
|
697
|
+
version = _make_version_message(min_version, max_version, skip_versions)
|
|
698
|
+
raise LuaLsError(
|
|
699
|
+
f"downloaded lua-language-server printed version {cached_version}, "
|
|
700
|
+
f"but {version} is required; are you sure lua_ls_min_version "
|
|
701
|
+
f"and lua_ls_max_version are correct?",
|
|
702
|
+
)
|
|
703
|
+
else:
|
|
704
|
+
raise LuaLsError(
|
|
705
|
+
"downloaded lua-language-server failed to print its version"
|
|
706
|
+
)
|
|
675
707
|
elif not bin_path.exists():
|
|
676
708
|
raise LuaLsError(
|
|
677
709
|
f"downloaded latest lua-language-server is broken: "
|
|
@@ -684,6 +716,7 @@ def _install_lua_ls(
|
|
|
684
716
|
def _install_emmylua(
|
|
685
717
|
min_version: str,
|
|
686
718
|
max_version: str | None,
|
|
719
|
+
skip_versions: list[str],
|
|
687
720
|
cache_path: pathlib.Path,
|
|
688
721
|
path: str,
|
|
689
722
|
install: bool,
|
|
@@ -707,7 +740,7 @@ def _install_emmylua(
|
|
|
707
740
|
release_name = release_names.get((platform, machine), None)
|
|
708
741
|
if not install or not release_name:
|
|
709
742
|
if system_bin_path:
|
|
710
|
-
version = _make_version_message(min_version, max_version)
|
|
743
|
+
version = _make_version_message(min_version, max_version, skip_versions)
|
|
711
744
|
raise LuaLsError(
|
|
712
745
|
f"you have emmylua_doc_cli {system_version}, but {version} is required; "
|
|
713
746
|
f"see upgrade instructions "
|
|
@@ -730,7 +763,9 @@ def _install_emmylua(
|
|
|
730
763
|
bin_path = cache_path / "emmylua_doc_cli"
|
|
731
764
|
if bin_path.exists():
|
|
732
765
|
bin_path.chmod(bin_path.stat().st_mode | stat.S_IEXEC)
|
|
733
|
-
can_use_cached_binary, _ = _check_version(
|
|
766
|
+
can_use_cached_binary, _ = _check_version(
|
|
767
|
+
min_version, max_version, skip_versions, bin_path
|
|
768
|
+
)
|
|
734
769
|
if can_use_cached_binary:
|
|
735
770
|
_logger.debug("using cached emmylua_doc_cli", type="lua-ls")
|
|
736
771
|
return bin_path, path
|
|
@@ -750,6 +785,7 @@ def _install_emmylua(
|
|
|
750
785
|
tmp_file = _download_release(
|
|
751
786
|
min_version,
|
|
752
787
|
max_version,
|
|
788
|
+
skip_versions,
|
|
753
789
|
api,
|
|
754
790
|
timeout,
|
|
755
791
|
retry,
|
|
@@ -782,15 +818,20 @@ def _install_emmylua(
|
|
|
782
818
|
|
|
783
819
|
if verify:
|
|
784
820
|
can_use_cached_lua_ls, cached_version = _check_version(
|
|
785
|
-
min_version, max_version, bin_path
|
|
821
|
+
min_version, max_version, skip_versions, bin_path
|
|
786
822
|
)
|
|
787
823
|
if not can_use_cached_lua_ls:
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
824
|
+
if cached_version is not None:
|
|
825
|
+
version = _make_version_message(min_version, max_version, skip_versions)
|
|
826
|
+
raise LuaLsError(
|
|
827
|
+
f"downloaded emmylua_doc_cli printed version {cached_version}, "
|
|
828
|
+
f"but {version} is required; are you sure lua_ls_min_version "
|
|
829
|
+
f"and lua_ls_max_version are correct?",
|
|
830
|
+
)
|
|
831
|
+
else:
|
|
832
|
+
raise LuaLsError(
|
|
833
|
+
"downloaded emmylua_doc_cli failed to print its version"
|
|
834
|
+
)
|
|
794
835
|
elif not bin_path.exists():
|
|
795
836
|
raise LuaLsError(
|
|
796
837
|
f"downloaded latest emmylua_doc_cli is broken: " f"can't find {bin_path}",
|
|
@@ -802,6 +843,7 @@ def _install_emmylua(
|
|
|
802
843
|
def _download_release(
|
|
803
844
|
min_version: str,
|
|
804
845
|
max_version: str | None,
|
|
846
|
+
skip_versions: list[str],
|
|
805
847
|
api: github.Github,
|
|
806
848
|
timeout: int,
|
|
807
849
|
retry: urllib3.Retry,
|
|
@@ -814,6 +856,9 @@ def _download_release(
|
|
|
814
856
|
machine: str,
|
|
815
857
|
):
|
|
816
858
|
min_version_tuple = tuple(int(c) for c in min_version.split("."))
|
|
859
|
+
skip_version_tuples = [
|
|
860
|
+
tuple(int(c) for c in version.split(".")) for version in skip_versions
|
|
861
|
+
]
|
|
817
862
|
if max_version:
|
|
818
863
|
max_version_tuple = tuple(int(c) for c in max_version.split("."))
|
|
819
864
|
else:
|
|
@@ -832,7 +877,10 @@ def _download_release(
|
|
|
832
877
|
if match := re.search(r"(\d+\.\d+\.\d+)", release.tag_name):
|
|
833
878
|
release_version = match.group(1)
|
|
834
879
|
release_version_tuple = tuple(int(c) for c in release_version.split("."))
|
|
835
|
-
if not (
|
|
880
|
+
if not (
|
|
881
|
+
min_version_tuple <= release_version_tuple < max_version_tuple
|
|
882
|
+
and not _should_skip(release_version_tuple, skip_version_tuples)
|
|
883
|
+
):
|
|
836
884
|
_logger.debug(
|
|
837
885
|
"release is outside of allowed version range", type="lua-ls"
|
|
838
886
|
)
|
|
@@ -853,7 +901,7 @@ def _download_release(
|
|
|
853
901
|
|
|
854
902
|
break
|
|
855
903
|
else:
|
|
856
|
-
version = _make_version_message(min_version, max_version)
|
|
904
|
+
version = _make_version_message(min_version, max_version, skip_versions)
|
|
857
905
|
raise LuaLsError(f"unable to find {name} release for {version}")
|
|
858
906
|
|
|
859
907
|
_logger.debug("downloading %s from %s", name, browser_download_url, type="lua-ls")
|
|
@@ -892,6 +940,15 @@ def _download_release(
|
|
|
892
940
|
return dest / basename
|
|
893
941
|
|
|
894
942
|
|
|
943
|
+
def _should_skip(version: tuple[int, ...], skip_versions: list[tuple[int, ...]]):
|
|
944
|
+
for skip_version in skip_versions:
|
|
945
|
+
if len(version) < len(skip_version):
|
|
946
|
+
version += (0,) * (len(skip_version) - len(version))
|
|
947
|
+
if skip_version == version[: len(skip_version)]:
|
|
948
|
+
return True
|
|
949
|
+
return False
|
|
950
|
+
|
|
951
|
+
|
|
895
952
|
if __name__ == "__main__":
|
|
896
953
|
|
|
897
954
|
def main():
|
|
@@ -903,6 +960,7 @@ if __name__ == "__main__":
|
|
|
903
960
|
parser.add_argument("machine")
|
|
904
961
|
parser.add_argument("--min", default="0.0.0")
|
|
905
962
|
parser.add_argument("--max", default=None)
|
|
963
|
+
parser.add_argument("--skip", action="append", default=[])
|
|
906
964
|
parser.add_argument("path", type=pathlib.Path)
|
|
907
965
|
|
|
908
966
|
_logger.setLevel("DEBUG")
|
|
@@ -917,6 +975,7 @@ if __name__ == "__main__":
|
|
|
917
975
|
_install_lua_ls(
|
|
918
976
|
args.min,
|
|
919
977
|
args.max,
|
|
978
|
+
args.skip,
|
|
920
979
|
args.path,
|
|
921
980
|
_get_path(None),
|
|
922
981
|
True,
|
|
@@ -933,6 +992,7 @@ if __name__ == "__main__":
|
|
|
933
992
|
_install_emmylua(
|
|
934
993
|
args.min,
|
|
935
994
|
args.max,
|
|
995
|
+
args.skip,
|
|
936
996
|
args.path,
|
|
937
997
|
_get_path(None),
|
|
938
998
|
True,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sphinx-lua-ls
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.8.0
|
|
4
4
|
Summary: Automatic documentation generation via EmmyLua/LuaLs
|
|
5
5
|
Author-email: Tamika Nomara <taminomara@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -24,7 +24,7 @@ Classifier: Typing :: Typed
|
|
|
24
24
|
Requires-Python: >=3.12
|
|
25
25
|
Description-Content-Type: text/markdown
|
|
26
26
|
License-File: LICENSE
|
|
27
|
-
Requires-Dist: sphinx<
|
|
27
|
+
Requires-Dist: sphinx<10.0,>=8.0
|
|
28
28
|
Requires-Dist: PyGithub<3.0,>=1.59
|
|
29
29
|
Requires-Dist: requests~=2.31
|
|
30
30
|
Dynamic: license-file
|