sphinx-lua-ls 3.10.0__tar.gz → 3.11.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.
Files changed (210) hide show
  1. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/.cl-keeper.yaml +2 -0
  2. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/.github/dependabot.yml +8 -0
  3. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/.github/workflows/ci.yaml +15 -30
  4. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/.pre-commit-config.yaml +7 -15
  5. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/CHANGELOG.md +13 -1
  6. sphinx_lua_ls-3.11.0/CONTRIBUTING.md +106 -0
  7. {sphinx_lua_ls-3.10.0/sphinx_lua_ls.egg-info → sphinx_lua_ls-3.11.0}/PKG-INFO +1 -1
  8. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/conftest.py +2 -0
  9. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/conf.py +1 -0
  10. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/index.rst +12 -9
  11. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/settings.rst +7 -0
  12. sphinx_lua_ls-3.11.0/docs/source/troubleshooring.rst +78 -0
  13. sphinx_lua_ls-3.11.0/poe_tasks.toml +31 -0
  14. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/pyproject.toml +50 -11
  15. sphinx_lua_ls-3.11.0/scripts/resolve_venv.sh +9 -0
  16. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/__init__.py +18 -2
  17. sphinx_lua_ls-3.11.0/sphinx_lua_ls/_version.py +24 -0
  18. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/apidoc.py +17 -6
  19. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/autodoc.py +37 -18
  20. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/autoindex.py +2 -0
  21. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/config.py +17 -0
  22. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/domain.py +5 -1
  23. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/inherited.py +2 -0
  24. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/intersphinx.py +6 -2
  25. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/lua_ls.py +17 -17
  26. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/nodes.py +2 -0
  27. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/objtree.py +21 -87
  28. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/pygments.py +3 -1
  29. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/utils.py +2 -0
  30. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0/sphinx_lua_ls.egg-info}/PKG-INFO +1 -1
  31. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls.egg-info/SOURCES.txt +6 -0
  32. sphinx_lua_ls-3.11.0/test/__init__.py +0 -0
  33. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_parse.py +3 -3
  34. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression.py +2 -2
  35. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_versions.py +1 -1
  36. sphinx_lua_ls-3.11.0/tox.toml +40 -0
  37. sphinx_lua_ls-3.11.0/uv.lock +1519 -0
  38. sphinx_lua_ls-3.10.0/CONTRIBUTING.md +0 -77
  39. sphinx_lua_ls-3.10.0/sphinx_lua_ls/_version.py +0 -34
  40. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/.gitignore +0 -0
  41. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/.readthedocs.yaml +0 -0
  42. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/LICENSE +0 -0
  43. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/README.md +0 -0
  44. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/Makefile +0 -0
  45. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/make.bat +0 -0
  46. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/_extra/robots.txt +0 -0
  47. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/apidoc.rst +0 -0
  48. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/autodoc.rst +0 -0
  49. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/directives.rst +0 -0
  50. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/example/.emmyrc.json +0 -0
  51. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/example/logging.lua +0 -0
  52. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/example.rst +0 -0
  53. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/installation.rst +0 -0
  54. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/quickstart.rst +0 -0
  55. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/docs/source/roles.rst +0 -0
  56. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/setup.cfg +0 -0
  57. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/py.typed +0 -0
  58. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls/static/lua.css +0 -0
  59. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls.egg-info/dependency_links.txt +0 -0
  60. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls.egg-info/requires.txt +0 -0
  61. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/sphinx_lua_ls.egg-info/top_level.txt +0 -0
  62. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/conftest.py +0 -0
  63. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-apidoc/.gitignore +0 -0
  64. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-apidoc/Makefile +0 -0
  65. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-apidoc/conf.py +0 -0
  66. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-apidoc/index.rst +0 -0
  67. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-apidoc/lua/mod/inner.lua +0 -0
  68. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-apidoc/lua/mod.lua +0 -0
  69. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-apidoc/make.bat +0 -0
  70. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/Makefile +0 -0
  71. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/conf.py +0 -0
  72. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/index.rst +0 -0
  73. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/annotations.lua +0 -0
  74. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/globals.lua +0 -0
  75. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/globals_2.lua +0 -0
  76. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/member_ordering.lua +0 -0
  77. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/module_title.lua +0 -0
  78. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/nested_modules.lua +0 -0
  79. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/nesting.lua +0 -0
  80. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/object_types.lua +0 -0
  81. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/lua/relative_resolve.lua +0 -0
  82. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/make.bat +0 -0
  83. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/annotations.rst +0 -0
  84. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/autoindex.rst +0 -0
  85. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/globals.rst +0 -0
  86. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/member_ordering.rst +0 -0
  87. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/module_title.rst +0 -0
  88. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/nested_modules.rst +0 -0
  89. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/nesting.rst +0 -0
  90. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/nesting_recursive.rst +0 -0
  91. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/object_types.rst +0 -0
  92. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/relative_resolve.rst +0 -0
  93. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc/src/unknown_object.rst +0 -0
  94. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-disabled/Makefile +0 -0
  95. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-disabled/conf.py +0 -0
  96. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-disabled/index.rst +0 -0
  97. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-disabled/make.bat +0 -0
  98. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/Makefile +0 -0
  99. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/conf.py +0 -0
  100. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/index.rst +0 -0
  101. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/.emmyrc.json +0 -0
  102. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/annotations.lua +0 -0
  103. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/doctype.lua +0 -0
  104. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/foo/x.lua +0 -0
  105. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/global_tables.lua +0 -0
  106. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/globals.lua +0 -0
  107. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/globals_2.lua +0 -0
  108. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/incongruent_export.lua +0 -0
  109. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/member_ordering.lua +0 -0
  110. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/module_function.lua +0 -0
  111. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/module_title.lua +0 -0
  112. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/nested_modules.lua +0 -0
  113. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/nesting.lua +0 -0
  114. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/object_types.lua +0 -0
  115. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/relative_resolve.lua +0 -0
  116. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/signatures.lua +0 -0
  117. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/lua/using.lua +0 -0
  118. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/make.bat +0 -0
  119. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/annotations.rst +0 -0
  120. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/autoindex.rst +0 -0
  121. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/doctype.rst +0 -0
  122. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/global_tables.rst +0 -0
  123. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/globals.rst +0 -0
  124. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/incongruent_export.rst +0 -0
  125. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/member_ordering.rst +0 -0
  126. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/module_function.rst +0 -0
  127. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/module_title.rst +0 -0
  128. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/nested_modules.rst +0 -0
  129. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/nesting.rst +0 -0
  130. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/nesting_recursive.rst +0 -0
  131. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/object_types.rst +0 -0
  132. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/relative_resolve.rst +0 -0
  133. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/require.rst +0 -0
  134. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/signatures.rst +0 -0
  135. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-emmylua/src/using.rst +0 -0
  136. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-roots/Makefile +0 -0
  137. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-roots/conf.py +0 -0
  138. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-roots/index.rst +0 -0
  139. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-roots/lua/root_1/autodoc.lua +0 -0
  140. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-roots/lua/root_2/autodoc.lua +0 -0
  141. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-roots/make.bat +0 -0
  142. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings/Makefile +0 -0
  143. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings/conf.py +0 -0
  144. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings/index.rst +0 -0
  145. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings/lua/autodoc.lua +0 -0
  146. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings/make.bat +0 -0
  147. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings-override/Makefile +0 -0
  148. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings-override/conf.py +0 -0
  149. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings-override/index.rst +0 -0
  150. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings-override/lua/autodoc.lua +0 -0
  151. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-autodoc-settings-override/make.bat +0 -0
  152. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/Makefile +0 -0
  153. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/conf.py +0 -0
  154. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/index.rst +0 -0
  155. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/make.bat +0 -0
  156. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/src/annotations.rst +0 -0
  157. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/src/autoindex.rst +0 -0
  158. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/src/directives.rst +0 -0
  159. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/src/inherited.rst +0 -0
  160. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/src/modules.rst +0 -0
  161. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-doc/src/refs.rst +0 -0
  162. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-intersphinx/Makefile +0 -0
  163. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-intersphinx/conf.py +0 -0
  164. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-intersphinx/index.rst +0 -0
  165. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/roots/test-intersphinx/make.bat +0 -0
  166. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/apidoc-md-sep.yml +0 -0
  167. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/apidoc-md.yml +0 -0
  168. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/apidoc-rst-sep.yml +0 -0
  169. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/apidoc-rst.yml +0 -0
  170. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-annotations.html +0 -0
  171. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-autoindex.html +0 -0
  172. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-disabled-index.html +0 -0
  173. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-annotations.html +0 -0
  174. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-autoindex.html +0 -0
  175. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-doctype.html +0 -0
  176. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-global_tables.html +0 -0
  177. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-globals.html +0 -0
  178. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-incongruent_export.html +0 -0
  179. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-index.html +0 -0
  180. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-member_ordering.html +0 -0
  181. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-module_function.html +0 -0
  182. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-module_title.html +0 -0
  183. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-nested_modules.html +0 -0
  184. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-nesting.html +0 -0
  185. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-nesting_recursive.html +0 -0
  186. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-object_types.html +0 -0
  187. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-relative_resolve.html +0 -0
  188. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-require.html +0 -0
  189. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-signatures.html +0 -0
  190. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-emmylua-using.html +0 -0
  191. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-globals.html +0 -0
  192. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-member_ordering.html +0 -0
  193. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-module_title.html +0 -0
  194. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-nested_modules.html +0 -0
  195. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-nesting.html +0 -0
  196. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-nesting_recursive.html +0 -0
  197. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-object_types.html +0 -0
  198. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-relative_resolve.html +0 -0
  199. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-roots-default.html +0 -0
  200. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-roots-no-roots.html +0 -0
  201. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-roots-single-root.html +0 -0
  202. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-settings-no-recursion.html +0 -0
  203. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-settings-simple.html +0 -0
  204. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/autodoc-unknown_object.html +0 -0
  205. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/doc-annotations.html +0 -0
  206. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/doc-autoindex.html +0 -0
  207. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/doc-directives.html +0 -0
  208. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/doc-inherited.html +0 -0
  209. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/doc-modules.html +0 -0
  210. {sphinx_lua_ls-3.10.0 → sphinx_lua_ls-3.11.0}/test/test_regression/doc-refs.html +0 -0
@@ -5,3 +5,5 @@ extra_change_categories_map:
5
5
  '(?i)migrating': "migrating"
6
6
  extra_change_categories:
7
7
  migrating: ""
8
+ severity:
9
+ ReleaseHasNoChangeCategories: none
@@ -24,3 +24,11 @@ updates:
24
24
  - "black"
25
25
  - "isort"
26
26
  - "pre-commit"
27
+ - package-ecosystem: "github-actions"
28
+ directory: "/"
29
+ schedule:
30
+ interval: "weekly"
31
+ groups:
32
+ gh-actions:
33
+ patterns:
34
+ - "*"
@@ -14,11 +14,11 @@ jobs:
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
16
  - name: Checkout source
17
- uses: actions/checkout@v4
17
+ uses: actions/checkout@v6
18
18
  with:
19
19
  fetch-depth: 0
20
20
  - name: Set up python ${{ matrix.python-version }}
21
- uses: actions/setup-python@v4
21
+ uses: actions/setup-python@v6
22
22
  with:
23
23
  python-version: "3.12"
24
24
  - name: Update pip
@@ -38,7 +38,7 @@ jobs:
38
38
  - name: Download EmmyLua for MacOs
39
39
  run: python -m sphinx_lua_ls.lua_ls darwin arm --runtime emmylua ~/lua_ls_release/macos-latest
40
40
  - name: Upload artifact
41
- uses: actions/upload-artifact@v4
41
+ uses: actions/upload-artifact@v7
42
42
  with:
43
43
  name: lua_ls_release
44
44
  path: ~/lua_ls_release
@@ -55,9 +55,6 @@ jobs:
55
55
  - ubuntu-latest
56
56
  - macos-latest
57
57
  - windows-latest
58
- python-version:
59
- - "3.12"
60
- - "3.13"
61
58
  type:
62
59
  - test
63
60
  include:
@@ -67,42 +64,30 @@ jobs:
67
64
  runs-on: ${{ matrix.os }}
68
65
  steps:
69
66
  - name: Checkout source
70
- uses: actions/checkout@v4
67
+ uses: actions/checkout@v6
71
68
  with:
72
69
  fetch-depth: 0
73
- - name: Set up python ${{ matrix.python-version }}
74
- uses: actions/setup-python@v4
75
- with:
76
- python-version: ${{ matrix.python-version }}
77
- - name: Update pip
78
- run: python -m pip install --upgrade pip
79
- # Tests
80
- - name: Install test dependencies
81
- if: ${{ matrix.type == 'test' }}
70
+ - name: Install UV
71
+ uses: astral-sh/setup-uv@v7
72
+ - name: Install dependencies
82
73
  run: |
83
- python -m pip install . --group test
84
- python -m pip install -U sphinx
74
+ uv tool install poethepoet
75
+ # Tests
85
76
  - name: Download LuaLs
86
77
  if: ${{ matrix.type == 'test' }}
87
- uses: actions/download-artifact@v4
78
+ uses: actions/download-artifact@v8
88
79
  with:
89
80
  name: lua_ls_release
90
81
  path: ~/lua_ls_release
91
- - name: Check types
92
- if: ${{ matrix.type == 'test' }}
93
- run: pyright
94
82
  - name: Test package
95
83
  if: ${{ matrix.type == 'test' }}
96
- run: pytest -vv --showlocals --tb=short --color=yes --junit-xml=test-results.xml
84
+ run: poe ci
97
85
  env:
98
86
  LUA_LS_CACHE_PATH: ~/lua_ls_release/${{ matrix.os }}
99
87
  # Lint
100
- - name: Install lint dependencies
101
- if: ${{ matrix.type == 'code style' }}
102
- run: python -m pip install . --group lint
103
88
  - name: Check code style
104
89
  if: ${{ matrix.type == 'code style' }}
105
- run: pre-commit run -a
90
+ run: poe lint --color always
106
91
  publish_to_pypi:
107
92
  name: Publish package to PyPi
108
93
  needs:
@@ -117,7 +102,7 @@ jobs:
117
102
  id-token: write
118
103
  steps:
119
104
  - name: Checkout source
120
- uses: actions/checkout@v4
105
+ uses: actions/checkout@v6
121
106
  with:
122
107
  fetch-depth: 0
123
108
  - name: Generate release metadata
@@ -129,11 +114,11 @@ jobs:
129
114
  echo "link=${link}" >> $GITHUB_OUTPUT
130
115
  - name: Parse Changelog
131
116
  id: changelog
132
- uses: taminomara/cl-keeper@v0
117
+ uses: taminomara/cl-keeper@v1
133
118
  with:
134
119
  version: ${{ github.ref }}
135
120
  - name: Set up python 3.12
136
- uses: actions/setup-python@v4
121
+ uses: actions/setup-python@v6
137
122
  with:
138
123
  python-version: 3.12
139
124
  - name: Install build
@@ -1,32 +1,24 @@
1
1
  repos:
2
2
  - repo: local
3
3
  hooks:
4
- - id: black
5
- name: black
4
+ - id: ruff-check
5
+ name: ruff check
6
6
  language: system
7
- entry: black
7
+ entry: scripts/resolve_venv.sh ruff check --force-exclude
8
8
  types_or: [python, pyi]
9
9
  require_serial: true
10
- - id: isort
11
- name: isort
10
+ - id: ruff-format
11
+ name: ruff format
12
12
  language: system
13
- entry: isort --filter-files
13
+ entry: scripts/resolve_venv.sh ruff format --force-exclude
14
14
  types_or: [python, pyi]
15
15
  require_serial: true
16
16
  - id: clk
17
17
  name: changelog keeper
18
18
  language: system
19
- entry: clk pre-commit-check
19
+ entry: scripts/resolve_venv.sh clk pre-commit-check
20
20
  require_serial: true
21
21
  types_or: [toml, yaml, markdown]
22
- - id: clk-tags
23
- name: changelog keeper (check tags)
24
- language: system
25
- entry: clk pre-commit-check-tag
26
- always_run: true
27
- pass_filenames: false
28
- require_serial: true
29
- stages: [pre-push]
30
22
  - repo: https://github.com/pre-commit/pre-commit-hooks
31
23
  rev: v6.0.0
32
24
  hooks:
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [3.11.0] - 2026-03-29
6
+
7
+ - Added config option to print debug logs: `lua_ls_verbose`.
8
+ - Improved error messages related to object lookup errors and added a troubleshooting
9
+ guide.
10
+
11
+ ## [3.10.1] - 2026-03-29
12
+
13
+ - Fiexd broken cross-references on the search page.
14
+
5
15
  ## [3.10.0] - 2026-01-29
6
16
 
7
17
  - Added option to disable running lua-ls (`lua_ls_backend = "disable"`) for cases when
@@ -272,6 +282,8 @@ Initial release.
272
282
  [3.0.0]: https://github.com/sphinx-contrib/lua-ls/compare/v2.0.1...v3.0.0
273
283
  [3.1.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.0.0...v3.1.0
274
284
  [3.10.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.9.0...v3.10.0
285
+ [3.10.1]: https://github.com/sphinx-contrib/lua-ls/compare/v3.10.0...v3.10.1
286
+ [3.11.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.10.1...v3.11.0
275
287
  [3.2.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.1.0...v3.2.0
276
288
  [3.3.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.2.0...v3.3.0
277
289
  [3.4.0]: https://github.com/sphinx-contrib/lua-ls/compare/v3.3.0...v3.4.0
@@ -287,4 +299,4 @@ Initial release.
287
299
  [@pieterlexis]: https://github.com/pieterlexis
288
300
  [emmylua]: https://github.com/EmmyLuaLs/emmylua-analyzer-rust/
289
301
  [luals#3301]: https://github.com/LuaLS/lua-language-server/issues/3301
290
- [unreleased]: https://github.com/sphinx-contrib/lua-ls/compare/v3.10.0...HEAD
302
+ [unreleased]: https://github.com/sphinx-contrib/lua-ls/compare/v3.11.0...HEAD
@@ -0,0 +1,106 @@
1
+ # Contributing to Sphinx-LuaLs
2
+
3
+ ## Set up your environment
4
+
5
+ We use [`uv`] and [`poe`] to run tasks, but it is possible to use pure pip as well.
6
+
7
+ [`uv`]: https://docs.astral.sh/uv/
8
+ [`poe`]: https://poethepoet.natn.io/index.html
9
+
10
+ ### Using pip
11
+
12
+ 1. Create a virtual environment with python `3.12` or newer.
13
+
14
+ 2. Make sure your pip is up to date:
15
+
16
+ ```shell
17
+ pip install -U pip
18
+ ```
19
+
20
+ 2. Install package in development mode, and install dev dependencies:
21
+
22
+ ```shell
23
+ pip install -e . --group dev
24
+ ```
25
+
26
+ 3. Install pre-commit hooks:
27
+
28
+ ```shell
29
+ prek install
30
+ ```
31
+
32
+ 4. [Install `poe`], either globally or in virtual environment:
33
+
34
+ ```shell
35
+ pip install poethepoet
36
+ ```
37
+
38
+ [Install `poe`]: https://poethepoet.natn.io/installation.html
39
+
40
+ 5. If you're not on linux, install [EmmyLua Doc Cli].
41
+
42
+ [EmmyLua Doc Cli]: https://github.com/EmmyLuaLs/emmylua-analyzer-rust/?tab=readme-ov-file#-installation
43
+
44
+ ### Using uv
45
+
46
+ 1. Sync your virtual environment:
47
+
48
+ ```shell
49
+ uv sync
50
+ ```
51
+
52
+ 2. Install pre-commit hooks:
53
+
54
+ ```shell
55
+ uv run prek install
56
+ ```
57
+
58
+ 3. [Install `poe`] if you don't have it already:
59
+
60
+ ```shell
61
+ uv tool install poethepoet
62
+ ```
63
+
64
+ 5. If you're not on linux, install [EmmyLua Doc Cli].
65
+
66
+
67
+ ## Run tests
68
+
69
+ We use `poe` for most of the tasks:
70
+
71
+ ```shell
72
+ poe lint # Lint and fix code style.
73
+ poe test # Run tests.
74
+ poe test-all # Run tests for all pythons.
75
+ ```
76
+
77
+ You can see all commands in `poe`'s help:
78
+
79
+ ```shell
80
+ poe --help
81
+ ```
82
+
83
+
84
+ ## Build docs
85
+
86
+ Just run `sphinx` as usual, nothing special is required:
87
+
88
+ ```shell
89
+ cd docs/
90
+ make html
91
+ ```
92
+
93
+ Sphinx-LuaLs will download the latest version of Lua Language Server for you.
94
+
95
+
96
+ ## Release
97
+
98
+ 1. Make sure that "Unreleased" section in `changelog.md` is up to date.
99
+
100
+ 2. Run `poe release major|minor|patch` to bump version in changelog
101
+ and create a release tag.
102
+
103
+ 3. Push a git tag. You'll need a repository admin role to do so.
104
+
105
+ 4. From here, release happens automatically. PyPi package will be uploaded from
106
+ CI job, and documentation will be updated by Read the Docs build.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sphinx-lua-ls
3
- Version: 3.10.0
3
+ Version: 3.11.0
4
4
  Summary: Automatic documentation generation via EmmyLua/LuaLs
5
5
  Author-email: Tamika Nomara <taminomara@gmail.com>
6
6
  License-Expression: MIT
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import sys
2
4
 
3
5
  from sybil import Sybil
@@ -29,6 +29,7 @@ lua_ls_backend = "emmylua"
29
29
  lua_ls_class_default_function_name = "__init"
30
30
  lua_ls_class_default_force_non_colon = True
31
31
  lua_ls_class_default_force_return_self = True
32
+ lua_ls_verbose = True
32
33
 
33
34
  intersphinx_mapping = {
34
35
  "python": ("https://docs.python.org/3", None),
@@ -11,19 +11,22 @@ based on `EmmyLua`_ or `LuaLs`_ language servers.
11
11
  See an example output: `logging`.
12
12
 
13
13
  .. toctree::
14
- :maxdepth: 1
14
+ :maxdepth: 1
15
15
 
16
- installation
17
- quickstart
18
- directives
19
- roles
20
- autodoc
21
- apidoc
22
- settings
23
- example
16
+ installation
17
+ quickstart
18
+ directives
19
+ roles
20
+ autodoc
21
+ apidoc
22
+ settings
23
+ example
24
+ troubleshooring
24
25
 
25
26
  .. toctree::
26
27
  :hidden:
27
28
  :caption: Links
28
29
 
29
30
  GitHub <https://github.com/sphinx-contrib/lua-ls/>
31
+ Issues <https://github.com/sphinx-contrib/lua-ls/issues>
32
+ Changelog <https://github.com/sphinx-contrib/lua-ls/blob/main/CHANGELOG.md>
@@ -244,3 +244,10 @@ Settings
244
244
  to use Sphinx's global setting ``maximum_signature_line_length``.
245
245
  If ``maximum_signature_line_length`` is also ``None``,
246
246
  signature wrapping will be disabled.
247
+
248
+ .. py:data:: lua_ls_verbose
249
+ :type: bool
250
+
251
+ Prints debug logs from sphinx-lua-ls without raising verbosity level
252
+ of other Sphinx loggers. Set to ``True`` to see object tree discovered
253
+ by lua analyzer.
@@ -0,0 +1,78 @@
1
+ Troubleshooring
2
+ ===============
3
+
4
+
5
+ Autodoc can't fund a module or object
6
+ -------------------------------------
7
+
8
+ 1. Set ``lua_ls_verbose = True`` in ``conf.py`` and run build with ``-E`` (``make html O="-E"``).
9
+
10
+ #. Search build log for record ``Lua analysis finished. Found objects:`` and see
11
+ if object that can't be found appears in the object tree.
12
+
13
+ #. If it's there, check spelling and full path of the object. Error message will contain
14
+ all candidate paths that Sphinx-LuaLs tried when resolving it.
15
+
16
+ #. If it's not there, check your documentation markup, EmmyLua/LuaLs settings,
17
+ and project paths and directories:
18
+
19
+ .. tab-set::
20
+ :sync-group: backend
21
+
22
+ .. tab-item:: EmmyLua
23
+ :sync: emmylua
24
+
25
+ a. Check that :py:data:`lua_ls_project_root` and :py:data:`lua_ls_project_directories`
26
+ point to the right places.
27
+
28
+ You can see how Sphinx-LuaLs launched language server by grepping build
29
+ log for message ``running lua-language-server with args``.
30
+
31
+ #. Make sure that you have an explicit return at the end of a module.
32
+
33
+ If your module only sets global variables, return an empty table from it:
34
+
35
+ .. code-block:: lua
36
+
37
+ -- mod.lua
38
+
39
+ --- Module documentation.
40
+ return {}
41
+
42
+ #. Alternatively, if your module exports a global variable with the same name,
43
+ make sure to set its doctype:
44
+
45
+ .. code-block:: lua
46
+
47
+ -- mod.lua
48
+
49
+ --- Module documentation.
50
+ ---
51
+ --- @doctype module
52
+ mod = {
53
+ -- Module contents.
54
+ }
55
+
56
+ #. Make sure that your project directories are listed in ``.emmyrc.json``
57
+ under ``workspace.workspaceRoots`` and not ``workspace.library``.
58
+
59
+ .. tab-item:: LuaLs
60
+ :sync: luals
61
+
62
+ a. Check that :py:data:`lua_ls_project_root` and :py:data:`lua_ls_project_directories`
63
+ point to the right places.
64
+
65
+ You can see how Sphinx-LuaLs launched language server by grepping build
66
+ log for message ``running lua-language-server with args``.
67
+
68
+ #. Make sure that you've created a class named after your module, and set its
69
+ doctype:
70
+
71
+ .. code-block:: lua
72
+
73
+ -- mod.lua
74
+
75
+ --- Module documentation.
76
+ ---
77
+ --- !doctype module
78
+ --- @class mod
@@ -0,0 +1,31 @@
1
+ [executor]
2
+ type = "uv"
3
+
4
+ [tasks.lint]
5
+ help = "Run pre-commit linters"
6
+ cmd = "prek run --all-files"
7
+
8
+ [tasks.test]
9
+ help = "Run tests"
10
+ cmd = "tox -e 3.14"
11
+
12
+ [tasks.test-all]
13
+ help = "Run tests for all pythons"
14
+ cmd = "tox p --"
15
+
16
+ [tasks.doc]
17
+ help = "Build HTML docs"
18
+ cmd = "sphinx-build -b html docs/source docs/build/html -d docs/build/doctrees -j 12 -n"
19
+
20
+ [tasks.doc-watch]
21
+ help = "Start documentation server and rebuild HTML docs on every change"
22
+ cmd = "sphinx-autobuild docs/source docs/build/html -d docs/build/doctrees --watch . -j 12 -n"
23
+
24
+ [tasks.release]
25
+ help = "Bump version, create release commit and tag"
26
+ cmd = "clk bump --commit"
27
+ use_exec = true
28
+
29
+ [tasks.ci]
30
+ help = "For CI job"
31
+ cmd = "tox --colored yes p --skip-env lint --"
@@ -25,30 +25,32 @@ dependencies = ["sphinx>=8.0,<10.0", "PyGithub>=1.59,<3.0", "requests~=2.31"]
25
25
 
26
26
  [dependency-groups]
27
27
  dev = [
28
- "pytest-cov==7.0.0",
28
+ "pytest-cov==7.1.0",
29
29
  { include-group = "test" },
30
30
  { include-group = "lint" },
31
31
  { include-group = "doc" },
32
32
  ]
33
33
  lint = [
34
- "black==26.1.0",
35
- "isort==7.0.0",
36
- "pre-commit==4.5.1",
37
- "cl-keeper==0.0.0-b6",
34
+ "cl-keeper==1.0.0",
35
+ "prek==0.3.8",
36
+ "ruff==0.15.8",
38
37
  ]
39
38
  test = [
40
39
  "pyright==1.1.408",
41
40
  "pytest==9.0.2",
42
- "sybil==9.3.0",
43
- "pytest-regressions==2.9.1",
41
+ "sybil==10.0.1",
42
+ "pytest-regressions==2.10.0",
44
43
  "beautifulsoup4==4.14.3",
45
44
  "myst-parser==5.0.0",
45
+ "tox==4.34.1",
46
+ "tox-uv==1.29.0",
46
47
  ]
47
48
  doc = [
48
- "sybil==9.3.0",
49
+ "sybil==10.0.1",
49
50
  "furo==2025.12.19",
50
51
  "sphinx_design==0.7.0",
51
52
  "myst-parser==5.0.0",
53
+ "sphinx-autobuild==2025.8.25",
52
54
  ]
53
55
 
54
56
  [project.urls]
@@ -89,6 +91,43 @@ reportUnnecessaryIsInstance = "none"
89
91
  reportConstantRedefinition = "none"
90
92
  reportRedeclaration = "none"
91
93
 
92
- [tool.isort]
93
- profile = "black"
94
- skip_gitignore = true
94
+ [tool.ruff]
95
+ exclude = ["examples/docs/*", "test/roots/*"]
96
+ target-version = "py312"
97
+
98
+ [tool.ruff.lint]
99
+ extend-select = ["I", "INP", "T20", "PT", "RET", "SIM", "SLOT", "RUF022"]
100
+ ignore = [
101
+ "E402", # Module level import not at top of file
102
+ "E722", # Do not use bare `except`
103
+ "E741", # Ambiguous variable name
104
+ "E731", # Do not assign a `lambda` expression, use a `def`
105
+ "PT015", # Assertion is always `False`
106
+ "PT011", # Too broad error type
107
+ "PT012", # `pytest.raises()` block should contain a single simple statement
108
+ "PT017", # Found assertion on exception `e` in `except` block
109
+ "RET505", # Unnecessary `else` after `return` statement
110
+ "RET506", # Unnecessary `else` after `raise` statement
111
+ "RET507", # Unnecessary `else` after `continue` statement
112
+ "RET508", # Unnecessary `else` after `break` statement
113
+ "SIM103", # Return the negated condition directly
114
+ "SIM105", # Use `contextlib.suppress` instead of `try`-`except`-`pass`
115
+ "SIM108", # Use ternary operator instead of `if`-`else`-block
116
+ "SIM114", # Combine `if` branches using logical `or` operator
117
+ "SIM118", # Use `key in dict` instead of `key in dict.keys()`
118
+ ]
119
+ extend-safe-fixes = [
120
+ "RUF022", # Sort `__all__`.
121
+ "PT006", # Rewrite arguments for `pytest.mark.parametrize`.
122
+ ]
123
+ future-annotations = true
124
+
125
+ [tool.ruff.lint.per-file-ignores]
126
+ "test/**/*" = ["T20", "I002", "SIM102", "SIM117"]
127
+ "docs/**/*" = ["T20", "I002", "INP001"]
128
+
129
+ [tool.ruff.lint.isort]
130
+ required-imports = ["from __future__ import annotations"]
131
+
132
+ [tool.ruff.format]
133
+ docstring-code-format = true
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ if [[ -z $VIRTUAL_ENV && -f .venv/bin/activate ]]; then
6
+ source .venv/bin/activate
7
+ fi
8
+
9
+ $@
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import fnmatch
2
4
  import pathlib
3
5
  import re
@@ -10,6 +12,7 @@ import sphinx.builders.html
10
12
  import sphinx.domains
11
13
  import sphinx.errors
12
14
  from sphinx.util import logging
15
+ from sphinx.util.console import get_terminal_width
13
16
  from sphinx.util.display import progress_message
14
17
  from sphinx.util.fileutil import copy_asset_file
15
18
 
@@ -24,7 +27,7 @@ import sphinx_lua_ls.lua_ls
24
27
  import sphinx_lua_ls.nodes
25
28
  import sphinx_lua_ls.objtree
26
29
  import sphinx_lua_ls.utils
27
- from sphinx_lua_ls._version import __version__, __version_tuple__
30
+ from sphinx_lua_ls._version import __version__, __version_tuple__ # noqa: F401
28
31
  from sphinx_lua_ls.pygments import LuaLexer
29
32
 
30
33
  logger = logging.getLogger("sphinx_lua_ls")
@@ -34,6 +37,7 @@ def run_lua_ls(app: sphinx.application.Sphinx):
34
37
  domain: sphinx_lua_ls.domain.LuaDomain = app.env.get_domain("lua") # type: ignore
35
38
 
36
39
  if domain.config.backend == "disable":
40
+ logger.debug("skipping lua-ls run: backend is 'disabled'")
37
41
  return
38
42
 
39
43
  root_dir = domain.config.project_root
@@ -60,6 +64,9 @@ def run_lua_ls(app: sphinx.application.Sphinx):
60
64
  modified = True
61
65
  break
62
66
  if not modified:
67
+ logger.debug(
68
+ "skipping lua-ls run: lua files were not modified since previous run"
69
+ )
63
70
  return
64
71
 
65
72
  cwd = pathlib.Path.cwd()
@@ -74,7 +81,7 @@ def run_lua_ls(app: sphinx.application.Sphinx):
74
81
  install=domain.config.auto_install,
75
82
  cache_path=domain.config.auto_install_location,
76
83
  )
77
- except sphinx_lua_ls.lua_ls.LuaLsError as e:
84
+ except sphinx_lua_ls.lua_ls.LuaLsError:
78
85
  raise
79
86
  except Exception as e:
80
87
  raise sphinx.errors.ExtensionError(str(e)) from e
@@ -128,6 +135,12 @@ def run_lua_ls(app: sphinx.application.Sphinx):
128
135
  if parser.runtime_version and not domain.config.lua_version:
129
136
  domain.config.lua_version = parser.runtime_version
130
137
 
138
+ logger.debug("Lua analysis finished. Found objects:")
139
+ logger.debug("-" * get_terminal_width())
140
+ objtree_s = str(domain.objtree)
141
+ logger.debug("%s", "<globals>\n" + objtree_s if objtree_s else "<empty>")
142
+ logger.debug("-" * get_terminal_width())
143
+
131
144
 
132
145
  def run_apidoc(
133
146
  app: sphinx.application.Sphinx,
@@ -181,6 +194,8 @@ def suppress_auto_ref_warnings(
181
194
  ):
182
195
  if node["refdomain"] == "lua" and node["reftype"] == "_auto":
183
196
  return True
197
+ else:
198
+ return None
184
199
 
185
200
 
186
201
  def setup(app: sphinx.application.Sphinx):
@@ -206,6 +221,7 @@ def setup(app: sphinx.application.Sphinx):
206
221
  app.add_config_value("lua_ls_class_default_force_non_colon", None, rebuild="env")
207
222
  app.add_config_value("lua_ls_class_default_force_return_self", None, rebuild="env")
208
223
  app.add_config_value("lua_ls_maximum_signature_line_length", 50, rebuild="env")
224
+ app.add_config_value("lua_ls_verbose", False, rebuild="")
209
225
 
210
226
  app.add_directive_to_domain(
211
227
  "lua", "autoobject", sphinx_lua_ls.autodoc.AutoObjectDirective