Skip to content

Latest commit

 

History

History
315 lines (202 loc) · 10.5 KB

File metadata and controls

315 lines (202 loc) · 10.5 KB

Changelog

3.12.1 - 2026-09-08

  • Fixed encoding while reading doc.json (#100 by @vlazed).

3.12.0 - 2026-05-12

  • Bumped dependencies.
  • Hardened build and publishing process to lower risk of supply-chain attacks.

3.11.0 - 2026-03-29

  • Added config option to print debug logs: lua_ls_verbose.
  • Improved error messages related to object lookup errors and added a troubleshooting guide.

3.10.1 - 2026-03-29

  • Fiexd broken cross-references on the search page.

3.10.0 - 2026-01-29

  • Added option to disable running lua-ls (lua_ls_backend = "disable") for cases when only manual documentation is required (#47 by @pieterlexis).

3.9.0 - 2026-01-23

  • Fixed LaTeX build and improved rendering of multiline signatures in LaTeX (#46).

3.8.1 - 2025-12-08

  • Added LuaLs 3.16.0 to the list of known broken releases (LuaLS#3301).

3.8.0 - 2025-12-03

  • Added support for Sphinx 9.

  • Added lua_ls_skip_versions config option to selectively avoid certain language server releases.

3.7.0-post1 - 2025-11-14

  • Minor documentation tweaks.

3.7.0 - 2025-11-14

  • Fixed parsing of @see annotations with LuaLs backend.

  • Fixed parsing of EmmyLua output after they removed classDefaultCall setting.

3.6.0 - 2025-10-17

  • Adjusted styles for links in object signatures to match those produced by python domain.

  • Releases are no longer uploaded to test version of PyPi.

3.5.0-post1 - 2025-10-03

  • Migrated documentation to Read the Docs.

  • Moved repository to sphinx-contrib organization.

3.5.0 - 2025-10-03

  • Added autodata, autoattribute, autoclass, and other auto* directives.

    They work like autoobject, but apply their doctype to the documented object (if !doctype was set in source code, it shouldn't conflict with the used directive).

    They also allow overriding object's signature, which may be useful when automatically generated signature is too long.

  • Added lua_ls_max_version config option to safeguard against incompatible changes to documentation export format.

  • Fixed a few more minor bugs in highlighting of Lua types.

3.4.0 - 2025-09-28

  • Potential breaking change: use confdir instead of srcdir as base path for lua_ls_project_root.

    Prior to this change, lua_ls_project_root was resolved relative to the directory containing source .rst files. Documentation, however, was saying that it's resolved relative to the directory with conf.py.

    This is not an issue, because in most projects conf.py and source .rst files are located in the same directory. Still, I've decided to be consistent with other Sphinx extensions and use confdir instead of srcdir.

    This is a breaking change, but I don't believe there are any projects that use separate confdir and srcdir (the only reason to do this is if you're hosting multiple documentation sites in the same repo.) For this reason, this change is released as a minor version change.

3.3.0 - 2025-09-28

  • Added an option to extend list options (like :exclude-members:) without overriding defaults:

    .. lua:autoobject::
       :exclude-members: +foo

    Also added :no-*: options to ignore defaults.

  • Improved display of members which use types instead of names, i.e. [<type>] (#19 by @bkoropoff).

  • Added a warning for situations when lua_ls_project_directories contains directories outside of the current VCS root.

3.2.0 - 2025-09-02

  • Updated a few dependencies. Most notably, restricted sphinx to <9.

  • Fixed dashes in types being parsed as type names (#18 by @bkoropoff).

  • Added normalization for function syntax (fun() -> T is converted to fun(): T).

  • Done some internal refactorings.

3.1.0 - 2025-08-21

  • Added pygments lexer for Lua that highlights documentation tags.

  • Added option to control maximum signature length before wrapping.

  • Sphinx's nitpicky mode will no longer emit warnings for cross-references in signatures.

  • Fixed generation of URL anchors to avoid duplicates.

  • Fixed some edge cases in parsing of type expressions.

3.0.0 - 2025-07-26

  • Breaking change: changed how apidoc generates file names to avoid collisions.

  • Supported EmmyLua as an alternative backend for documentation export.

    EmmyLua was recently re-implemented in Rust, and its new language server provides some substantial benefits:

    • it has stronger and more flexible type system,
    • it handles aliases and enums way better than LuaLs,
    • it supports namespaces,
    • it exports way more metadata, including function overloads and class constructors,
    • you don't have to annotate modules with @class and !doctype anymore.

    I plan to use EmmyLua as the default language server since v4.0.0.

  • Long object signatures are now broken into multiple lines.

  • Supported using arbitrary types as object names, i.e.:

    .. lua:data:: [integer]: string
  • Added :globals: flag for the lua:autoobject directive. It will allow automatically documenting global variables defined in a module.

  • The lua:autoindex directive now lists globals defined in a module.

  • Added support for documenting class constructors:

    .. lua:class:: Foo(a, b, ...)
  • Added directive for enums.

  • Supported generic parameters for functions, classes, aliases and enums:

    .. lua:class:: Foo<T>
  • Improved linking to Lua language documentation to take into account whether an item is supported for the given Lua version.

  • Added the lua:lua role to compensate for MySt not supporting default roles.

    If Lua is your primary domain cross-referencing from markdown can be done like this:

    Reference to a {lua}`logging.Logger.info`.
  • Added the lua:other-inherited-members directive and :inherited-members-table: flag for the lua:autoobject directive.

    These allow listing all members that were inherited by a class but weren't documented within the class body (see #3).

  • Supported markdown output for apidoc.

  • Added option to separate module members into their own files for apidoc.

Migrating to 3.0.0

  • If you're using apidoc, you'll need to update links to your documentation.

  • You'll need to explicitly specify which language server to use by including lua_ls_backend to your conf.py.

2.0.1 - 2025-04-12

  • Fixed documentation not being rebuilt after changing lua source code.

2.0.0 - 2025-03-16

  • Breaking change: don't implicitly convert classes that're derived from table to modules. Users should use a !doctype comment instead.

  • Breaking change: disallow nesting modules inside classes.

  • Added autoindex directive.

  • Added apidoc functionality.

  • Improved test coverage and fixed found bugs.

Migrating to 2.0.0

In your Lua code base, perform global replace by regexp:

^(\s*)---\s*@class\s*(.+): table$

to

$1--- !doctype module
$1--- @class $2

Make sure that you only use !doctype module on the top-level tables that can be imported via require. On other objects, use !doctype table instead, otherwise you'll get errors that modules are not allowed within other objects.

1.1.0 - 2025-03-11

  • Added support for !doc and !doctype comments.

  • Added :include-protected: and :include-package: options for lua:autoobject.

  • Allowed referring lua:const objects from lua:attr role.

  • Fixed a bug when default options would not properly propagate when using lua:autoobject with :recurse:.

  • Fixed a bug when lua:autoobject would deduce incorrect module paths when applied to non-toplevel modules.

  • Fixed a bug when docstring for a class would be used for undocumented function parameters that have this class as their type.

  • Fixed types when lua:autoobject would infer incorrect types for data.

1.0.0 - 2025-03-09

Initial release.

0.0.4 - 2025-03-09

0.0.3 - 2025-03-09

0.0.2 - 2025-03-09

0.0.1 - 2025-03-09