- Fixed Issue 240, where links in literal blocks where not detected correctly.
- Fixed issue with warning if there is a mismatch between filename and classname, if the classname is a reserved word (like arguments).
- Fixed a problem with PR 230 introduced in solving Issue 204: when more
than one (sub)directory in the project had the same name, a dict was added to
entities_table
that broke autolinking (see also Issue 235).
- Fix issue with parsing of MATLAB files, where keywords were used in
struct
fieldnames. E.g.a = pkg.arguments
. These were mistaken askeyword
tokens and could result in warnings withCheck if valid MATLAB code.
. - Bump copyright to 2024.
- Interpret
matlab_src_dir
relative to the Sphinx source directory to be compatible with sphinx-multiversion.
- Fixed Issue 204, that caused an
AttributeError
to be thrown if a module was named the same as the short name for a class.
- Allow
matlab_src_dir
to be a relative path of theconf.py
file. See PR 224 and PR 225. - Fixed Issue 220. Parsing of property docstring could throw warning if there were blank lines between comments.
- Fixed Issue 221. Using builtin's in class folder defintion for methods defined in other files, threw a parsing warning.
- Fixed Issue 225. Empty
@classfolder
would throw an assertion error.
- Fixed Issue 214 again. Any folder below a
@classfolder
must be ignored.
- Fixed Issue 188 and Issue 189, which caused the extension to crash if
the documentation contained
:exclude-members:
. - Added a new configuration:
matlab_auto_links
. It will automatically convert the names of known entities (e.g. classes, functions, properties, methods) to links! This means that we can write class documentation as MATLAB Class Help suggests. Including property and methods lists in the class docstring. - Fixed Issue 56. MATLAB Folder Class definitions, i.e. prefixed with
@
, are now treated as normal classes. All methods defined in the class defintion and in files in the@
-folder are availble. Further, it can referenced by a shortened name. Before you had to explicity write out the "module", class and methods. Now you can just write the class name. Only caveat is that Issue 44 still applies.
- Fix parsing of classes with trailing
;
afterend
- Fix bug if extension is included, but
matlab_src_dir
is not set.
Added new configuration:
matlab_short_links
. Finally, we are getting closer to render documentation closer to how MathWorks does it. The parsing of MATLAB functions, clasess, etc. was rewritten. We now parse all MATLAB files inmatlab_src_dir
. Further, you can now generate docs for files in the root folder (something that only worked for packages before).We also updated the class rendering to be closer to that of MathWorks. Instead of putting both properties and methods together, they are now grouped by: Constructor Summary, Property Summary and Method Summary. Below is an example of how the
ClassBar
fromtests/roots/test_autodoc/target/+package/ClassBar.m
was rendered before and after.Before
After
Improved rendering of class property default values when
matlab_show_property_default_value = True
. Multiline default values are now truncated to one line. Excessive spacing is removed and values are just shown verbatim as they were parsed instead of in string.
- Fix issue with incorrect parsing of baseclasses with trailing comments. Reported in Issue 172.
- Replace
directive.warn
(deprecated) withlogger.warning
. Reported in Issue 166. - Fix property validation parsing reported in Issue 167.
- Updated Author to Jørgen Cederberg as agreed in Issue 164.
- Add new option,
matlab_show_property_default_value
. Default is now to not show property values. If a property value isNone
, is not shown anymore.
- Fix issue with not parsing property docstrings correctly with Pygments 2.13. Issue 152.
- Fix being unable to document methods with name
get
. Issue 151.
- Pygments >= 2.14.0 is now supported. Pygments tokenization changed to return
Token.Text.WhiteSpace
for newline characters. This resulted in a infinite loop when parsing MATLAB files.
- Fix parsing of overloaded class parameters with validation functions. Issue 145.
- Fix link in readme file.
- Sphinx >= 5.0.0 is now supported. Fixed errors due to deprecated Sphinx API.
- Fixed `https://github.com/sphinx-contrib/matlabdomain/issues/134`_. JupyterBook complains if a domain doesn't support resolve_any_ref.
- Explicit set
parallel_read_safe
toFalse
to avoid error in parallel builds. - Fixed Issue 125.
Finally, we are able to support long docstrings for properties. It works as
the same as MATLAB. Comment lines above a
property
are now treated as docstrings.
Only Sphinx >= 4.0.0 is now supported.
Only Python >= 3.6 is supported.
Fixed numerous warnings due to deprecated Sphinx API. * Use
sphinx.ext.autodoc.directive.DocumenterBridge.record_dependencies
insted of
sphinx.ext.autodoc.directive.DocumenterBridge.filename_set
.- Use
str.rpartition()
insted ofsphinx.util.rpartition()
- Remove use of
sphinx.util.force_decode()
. - Use
inspect.getmembers()
insted ofsphinx.util.inspect.safe_getmembers()
. - Remove use of encoding argument in
autodoc.Documenter.get_doc()
.
- Use
Fixed Issue 101.
CI now tests on Python 3.6, 3.7, 3.8 and 3.9.
- Limit to Sphinx < 4.0.0, due to too many breaking changes.
- Last version to support Python 2.7
- Fixed Issue 117. Parsing errors due to "...". Fix MatObject::_remove_line_continuations to take MATLAB strings into account.
- Fixed Issue 116. Failure on parfor statements in class methods. Fix MatFunction class to also take parfor into account when counting end.
- Fixed Issue 114. NoneType AttributeError in import_object. It was caused by a bug when parsing method names with trailing spaces.
- Remove import of
six
.
- Fixed Issue 108. Quote is not recognized as transpose after a closing curly brace.
- Fixed `Issue 109 <https://github.com/sphinx-contrib/matlabdomain/issues/109`_. Sphinx 3.1.1 changed API causing tests to fail.
- Fixed Issue 111. fnable Function Arguments Support.
- Fixed Issue 103. If a double quoted string was followed by a single qouted string, the lexer would produce incorrect token, causing the a parser warning. Fixed by merging parts from pygments.
- Fixed bug when Python and MATLAB sources are in the same base folder. Reported
by Alec Weiss. Historically we stored parsed MATLAB objects in
sys.modules
. However, this conflicts with Python modules.
- Fixed Issue 93. If a package class inherited from another package class, the link to the base class was incorrect. This is fixed now.
- Merged PR #96,
which adds the option
matlab_keep_package_prefix
. Setting this option, strips the+
from package names. This gives far better rendering of documentation, as now closer resembles the actual usage for the end user. - Merged PR #97,
which adds support for documenting MATLAB application files with a new
directive
application
. They are referenced withapp
- Fixed Issue 63. Finally, documents can have Python and MATLAB sources auto-documented together. Before, the MATLAB autodoc directives shadowed the Python directives, making it impossible for them to co-exist. The MATLAB modules now have their own module index generated.
- Merge PR #92
Fix autodoc parsing error when source matlab file is not encoded as UTF-8.
This adds the option
matlab_src_encoding
, where one can define a different source file encoding. Default is to use utf-8, where unknown characters are replaced with �. This fixes a long time issue with the parser failing with non utf-8 files.
- Fixed Issue 91. Static methods in folder based classes.
- Replaced Pygments MATLAB lexer with own. Removes issues with functions being incorrectly parsed, handles double qouted string correctly.
- Fixed Issue 90. Wrong function name parsed when method escapes first argument with ~.
- Support for Sphinx >=2.0.0. Fixes Issue 89.
- Limit to Sphinx <2.0.0 as a temporary fix, until support for Sphinx 2.0.0 is fixed.
- Fixed Issue 84. Undocumented members are always included regardless of :undoc-members:.
- Fixed Issue 85. Matlab parsing "seems" to hang if code contains a bunch of "%" consecutively. Thanks to GulyasGergelyR for reporting and providing a much better solution.
- Fixed Issue 86. Handles the ``DeprecationWarning: formatargspec is deprecated since Python 3.5. Use signature and the Signature object directly.
- Fixed Issue 87. Strings in double quotes are not parsed correctly by pygments.
- Closed Issue 82. Instead of renaming getter and setter functions to get_whatever, they are not documented anymore. This is in line with MATLAB documentation https://se.mathworks.com/help/matlab/matlab_oop/property-access-methods.html, as these functions cannot be called directly.
- Fixed Issue 69. Autodoc for script header. Thanks to Hugo Leblanc for this contribution.
- Fixed Issue 79. Enumerations and events cause premature end of m-file parsing.
- Adapt to Sphinx 1.8.
- Fixed bug where a line continuation (...) in a string could cause the parser to fail.
- Fixed bug introduced in 0.3.2. The word 'function' was also replaced in docstrings.
- Fixed bug where a MATLAB class method containing a variable starting with 'function' would cause the parser to fail.
- Fixed bug where a MATLAB script with only comments would cause an error.
- Fixed Issue 66. Sphinx 1.7 broke autodoc :members: functionality.
- Changed the requirement to Sphinx >= 1.7.2!
- Fixed Issue 66. Sphinx 1.7 broke autodoc :members: functionality.
- In this release Sphinx is locked to versions below 1.7, the next release will require Sphinx > 1.7.
- Added tests of autodoc capabilities.
- Fixed Issue 13. crashes if filename and classname are different.
- Fixed Issue 19. crashes if classdef docstring is not indented
- Fixed Issue #41. Problem with non ascii characters.
- Fixed Issue #30. Some definition of attributes for the "properties" or "methods" blocks causes Sphinx to crash.
- Fixed Issue #57. Parser fails while parsing new syntax extensions for the class properties.
- Merge PR #60 Dependency fix for Sphinx 1.7.
- Added cleobis to as contributor
- Fix bug when parsing a function without output and no parentheses.
- Better error messages during parsing of functions.
- Fixed Issue #27. An "events" block in a class causes Sphinx to hang.
- Fixed Issue #52. An "enumeration" block in a class causes Sphinx to hang
- Merge PR #51 better exception, when input args contains "..."
- Added Christoph Boeddeker as author.
- Fixed Issue #42. Comment strings after a function docstring are not included in the docstring anymore.
- Fixed Issue #50. Added Lukas Drude as author.
- Add Jørgen Cederberg as maintainer.
- Change bitbucket links to github ditto.
Development migrated to https://github.com/sphinx-contrib/matlabdomain
- Merge PR #1
- merge PR #2 nested functions
- fix issues #30
- fix issues #21
- changeset 8f18a8f adds [+@]? to regular expression for matlab signatures
- add Octave to sphinx-contrib README and link to sphinxcontrib-matlabdomain on PyPI
- update and include CHANGES in README so they're in PyPI documentation
- fix issues #17, #18
- vastly simplify regex used to remove ellipsis from function signatures
- save parsed mat_types in modules that are saved in sys.modules, and retrieve them instead of re-parsing mfiles everytime!
- fix critical bug in class properties, arrays and expressions with ellipsis were incorrectly handled
- fix ellipsis in function in output arg
- fix bases getter method had no default, so crashing build
- add catchall warning if getter fails and no default in MatObject.getter()
- fix local path used to index sys.module, instead of full path, oops!
- fix left-strip dot if in basedir, root_mod is '', so join yields ".test_data"
- allow property defaults to span multiple lines, even w/o ellipsis, and ignore ellipsis comments
- correct Pygments ellipsis not allowed in function signature error
- allow builtin names to be used as property names
- fix keyword-end counter bugs, add group incrementer counter, incl curly-braces
- fix module has no docstring attr bug in MatModuleAnalyzer
- allow empty property block
- allow no function return or empty input args
- add autodoc capabilities for MATLAB domain
- create a Sphinx domain for MATLAB
- override standard domain to remove py modules index