Skip to content

Commit 9ff66c2

Browse files
committed
fix private member visibility + :private-members: flag, fix #8
1 parent 87c6fac commit 9ff66c2

File tree

5 files changed

+36
-12
lines changed

5 files changed

+36
-12
lines changed

README.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,14 @@ You can display method source code appending the flag ``show-source``:
111111
112112
.. lua:autoclass:: pl.List
113113
:show-source:
114+
115+
116+
Showing private members
117+
-------------------------------------------------------------------------------
118+
119+
By default, private members are hidden. You can display them by using the flag ``private-members``:
120+
121+
.. code-block:: rst
122+
123+
.. lua:autoclass:: pl.List
124+
:private-members:

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
install_requires=[
3333
'six',
3434
'Jinja2>3.0',
35-
'luadoc>=1.3.0',
35+
'luadoc>=1.3.1',
3636
'sphinxcontrib-luadomain>=1.1.1'
3737
],
3838
classifiers=[

sphinx_lua/templates/class.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,19 @@
2626

2727
{# display class field #}
2828
{% for field in model.fields -%}
29+
{%- if field.visibility == "public" or 'private-members' in options %}
2930
{%- with type=field.type -%}
3031
.. lua:attribute:: {{ field.name }}: {% include "type.rst" %}
3132
3233
{{ field.desc }}
3334

3435
{% endwith -%}
36+
{%- endif %}
3537
{%- endfor %}
3638

3739
{# display public methods first #}
3840
{%- for method in model.methods -%}
39-
{%- if method.visibility == "public" %}
41+
{%- if method.visibility == "public" or 'private-members' in options %}
4042
{% include "method.rst" %}
4143
{%- endif %}
4244
{%- endfor %}

sphinx_lua/test/index.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-
.. lua:autoclass:: MyOrg.Car
1+
.. lua:autoclass:: Class
2+
:show-source:
3+
:private-members:
Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
1-
--- Define a car.
2-
--- @class MyOrg.Car
3-
local cls = class()
1+
---@class Class
2+
---@field public some_public_field string This field is public
3+
---@field private _some_private_field string This field is private
4+
local cls = {}
5+
cls.__index = cls
46

5-
--- @param foo number
6-
function cls:test(foo)
7+
---Create a new Class
8+
---@return Class
9+
function cls.new()
10+
return setmetatable({
11+
some_public_field = "public",
12+
_some_private_field = "private",
13+
}, cls)
714
end
815

9-
--- @param bar number
10-
function cls:_privateMember(bar)
16+
---Append the public field with `public`
17+
function cls:more_public()
18+
self.some_public_field = self.some_public_field .. "public"
1119
end
1220

13-
--- @param bar number
14-
function cls:nn(bar)
21+
---Append the private field with `private`
22+
function cls:_more_private()
23+
self._some_private_field = self._some_private_field .. "private"
1524
end

0 commit comments

Comments
 (0)