Skip to content

Commit fdd3774

Browse files
Work in progress, cross link between checker and option section
1 parent 6824482 commit fdd3774

File tree

6 files changed

+156
-7
lines changed

6 files changed

+156
-7
lines changed

doc/exts/pylint_extensions.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
from pylint.utils import get_rst_title
2121

2222

23+
def _get_checker_extension_rst_anchor(checker: str) -> str:
24+
return f".. _{checker.capitalize()}:\n\n"
25+
26+
2327
# pylint: disable-next=unused-argument
2428
def builder_inited(app: Optional[Sphinx]) -> None:
2529
"""Output full documentation in ReST format for all extension modules."""
@@ -60,7 +64,7 @@ def builder_inited(app: Optional[Sphinx]) -> None:
6064
)
6165
stream.write("Pylint provides the following optional plugins:\n\n")
6266
for module in modules:
63-
stream.write(f"- :ref:`{module}`\n")
67+
stream.write(f"- {_get_module_reference(module)}\n")
6468
stream.write("\n")
6569
stream.write(
6670
"You can activate any or all of these extensions "
@@ -89,6 +93,10 @@ def builder_inited(app: Optional[Sphinx]) -> None:
8993
)
9094

9195

96+
def _get_module_reference(module: str) -> str:
97+
return f":ref:`{module}`"
98+
99+
92100
def get_plugins_info(linter, doc_files):
93101
by_checker = {}
94102
for checker in linter.get_checkers():

doc/exts/pylint_options.py

+12-2
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,21 @@ def _get_all_options(linter: PyLinter) -> OptionsDataDict:
6363
return all_options
6464

6565

66+
def _get_checker_title(checker: str) -> str:
67+
result = _get_checker_configuration_rst_anchor(checker)
68+
result += get_rst_title(f"``{checker.capitalize()}`` **Checker**", "-")
69+
result += f":ref:`See the description of the checker itself <pylint.extensions.{checker}>`.\n\n"
70+
return result
71+
72+
73+
def _get_checker_configuration_rst_anchor(checker: str) -> str:
74+
return f".. _{checker.capitalize()}_configuration:\n\n"
75+
76+
6677
def _create_checker_section(
6778
checker: str, options: list[OptionsData], linter: PyLinter
6879
) -> str:
69-
checker_string = get_rst_title(f"``{checker.capitalize()}`` **Checker**", "-")
70-
80+
checker_string = _get_checker_title(checker)
7181
toml_doc = tomlkit.document()
7282
pylint_tool_table = tomlkit.table(is_super_table=True)
7383
toml_doc.add(tomlkit.key(["tool", "pylint"]), pylint_tool_table)

doc/user_guide/checkers/extensions.rst

+23
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ Broad Try Clause checker
4141

4242
This checker is provided by ``pylint.extensions.broad_try_clause``.
4343
Verbatim name of the checker is ``broad_try_clause``.
44+
:ref:`See documentation on possible options <broad_try_clause_configuration>`.
4445

4546
Broad Try Clause checker Messages
4647
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -55,6 +56,7 @@ Code Style checker
5556

5657
This checker is provided by ``pylint.extensions.code_style``.
5758
Verbatim name of the checker is ``code_style``.
59+
:ref:`See documentation on possible options <code_style_configuration>`.
5860

5961
Code Style checker Documentation
6062
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -84,6 +86,7 @@ Compare-To-Empty-String checker
8486

8587
This checker is provided by ``pylint.extensions.emptystring``.
8688
Verbatim name of the checker is ``compare-to-empty-string``.
89+
:ref:`See documentation on possible options <compare-to-empty-string_configuration>`.
8790

8891
Compare-To-Empty-String checker Messages
8992
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -98,6 +101,7 @@ Compare-To-Zero checker
98101

99102
This checker is provided by ``pylint.extensions.comparetozero``.
100103
Verbatim name of the checker is ``compare-to-zero``.
104+
:ref:`See documentation on possible options <compare-to-zero_configuration>`.
101105

102106
Compare-To-Zero checker Messages
103107
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -112,6 +116,7 @@ Comparison-Placement checker
112116

113117
This checker is provided by ``pylint.extensions.comparison_placement``.
114118
Verbatim name of the checker is ``comparison-placement``.
119+
:ref:`See documentation on possible options <comparison-placement_configuration>`.
115120

116121
Comparison-Placement checker Messages
117122
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -128,6 +133,7 @@ Confusing Elif checker
128133

129134
This checker is provided by ``pylint.extensions.confusing_elif``.
130135
Verbatim name of the checker is ``confusing_elif``.
136+
:ref:`See documentation on possible options <confusing_elif_configuration>`.
131137

132138
Confusing Elif checker Messages
133139
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -145,6 +151,7 @@ Consider-Using-Any-Or-All checker
145151

146152
This checker is provided by ``pylint.extensions.for_any_all``.
147153
Verbatim name of the checker is ``consider-using-any-or-all``.
154+
:ref:`See documentation on possible options <consider-using-any-or-all_configuration>`.
148155

149156
Consider-Using-Any-Or-All checker Messages
150157
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -160,6 +167,7 @@ Consider Ternary Expression checker
160167

161168
This checker is provided by ``pylint.extensions.consider_ternary_expression``.
162169
Verbatim name of the checker is ``consider_ternary_expression``.
170+
:ref:`See documentation on possible options <consider_ternary_expression_configuration>`.
163171

164172
Consider Ternary Expression checker Messages
165173
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -175,6 +183,7 @@ Deprecated Builtins checker
175183

176184
This checker is provided by ``pylint.extensions.bad_builtin``.
177185
Verbatim name of the checker is ``deprecated_builtins``.
186+
:ref:`See documentation on possible options <deprecated_builtins_configuration>`.
178187

179188
Deprecated Builtins checker Documentation
180189
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -203,6 +212,7 @@ Design checker
203212

204213
This checker is provided by ``pylint.extensions.mccabe``.
205214
Verbatim name of the checker is ``design``.
215+
:ref:`See documentation on possible options <design_configuration>`.
206216

207217
Design checker Documentation
208218
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -258,6 +268,7 @@ Docstyle checker
258268

259269
This checker is provided by ``pylint.extensions.docstyle``.
260270
Verbatim name of the checker is ``docstyle``.
271+
:ref:`See documentation on possible options <docstyle_configuration>`.
261272

262273
Docstyle checker Messages
263274
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -274,6 +285,7 @@ Else If Used checker
274285

275286
This checker is provided by ``pylint.extensions.check_elif``.
276287
Verbatim name of the checker is ``else_if_used``.
288+
:ref:`See documentation on possible options <else_if_used_configuration>`.
277289

278290
Else If Used checker Messages
279291
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -289,6 +301,7 @@ Eq-Without-Hash checker
289301

290302
This checker is provided by ``pylint.extensions.eq_without_hash``.
291303
Verbatim name of the checker is ``eq-without-hash``.
304+
:ref:`See documentation on possible options <eq-without-hash_configuration>`.
292305

293306
Eq-Without-Hash checker Messages
294307
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -304,6 +317,7 @@ Import-Private-Name checker
304317

305318
This checker is provided by ``pylint.extensions.private_import``.
306319
Verbatim name of the checker is ``import-private-name``.
320+
:ref:`See documentation on possible options <import-private-name_configuration>`.
307321

308322
Import-Private-Name checker Messages
309323
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -320,6 +334,7 @@ Multiple Types checker
320334

321335
This checker is provided by ``pylint.extensions.redefined_variable_type``.
322336
Verbatim name of the checker is ``multiple_types``.
337+
:ref:`See documentation on possible options <multiple_types_configuration>`.
323338

324339
Multiple Types checker Messages
325340
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -334,6 +349,7 @@ No Self Use checker
334349

335350
This checker is provided by ``pylint.extensions.no_self_use``.
336351
Verbatim name of the checker is ``no_self_use``.
352+
:ref:`See documentation on possible options <no_self_use_configuration>`.
337353

338354
No Self Use checker Messages
339355
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -349,6 +365,7 @@ Overlap-Except checker
349365

350366
This checker is provided by ``pylint.extensions.overlapping_exceptions``.
351367
Verbatim name of the checker is ``overlap-except``.
368+
:ref:`See documentation on possible options <overlap-except_configuration>`.
352369

353370
Overlap-Except checker Messages
354371
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -363,6 +380,7 @@ Parameter Documentation checker
363380

364381
This checker is provided by ``pylint.extensions.docparams``.
365382
Verbatim name of the checker is ``parameter_documentation``.
383+
:ref:`See documentation on possible options <parameter_documentation_configuration>`.
366384

367385
Parameter Documentation checker Documentation
368386
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -563,6 +581,7 @@ Redefined-Loop-Name checker
563581

564582
This checker is provided by ``pylint.extensions.redefined_loop_name``.
565583
Verbatim name of the checker is ``redefined-loop-name``.
584+
:ref:`See documentation on possible options <redefined-loop-name_configuration>`.
566585

567586
Redefined-Loop-Name checker Messages
568587
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -577,6 +596,7 @@ Refactoring checker
577596

578597
This checker is provided by ``pylint.extensions.empty_comment``.
579598
Verbatim name of the checker is ``refactoring``.
599+
:ref:`See documentation on possible options <refactoring_configuration>`.
580600

581601
Refactoring checker Messages
582602
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -591,6 +611,7 @@ Set Membership checker
591611

592612
This checker is provided by ``pylint.extensions.set_membership``.
593613
Verbatim name of the checker is ``set_membership``.
614+
:ref:`See documentation on possible options <set_membership_configuration>`.
594615

595616
Set Membership checker Messages
596617
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -606,6 +627,7 @@ Typing checker
606627

607628
This checker is provided by ``pylint.extensions.typing``.
608629
Verbatim name of the checker is ``typing``.
630+
:ref:`See documentation on possible options <typing_configuration>`.
609631

610632
Typing checker Documentation
611633
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -639,6 +661,7 @@ While Used checker
639661

640662
This checker is provided by ``pylint.extensions.while_used``.
641663
Verbatim name of the checker is ``while_used``.
664+
:ref:`See documentation on possible options <while_used_configuration>`.
642665

643666
While Used checker Messages
644667
^^^^^^^^^^^^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)