diff options
author | Jongwook Choi <wookayin@gmail.com> | 2023-12-29 06:32:37 -0500 |
---|---|---|
committer | Jongwook Choi <wookayin@gmail.com> | 2024-01-02 11:35:34 -0500 |
commit | 765729a145d3d8204ff68b1da0b5bb45c70262e2 (patch) | |
tree | 047b974a8c5129a4fcff82d9fbd88971227c144a /scripts/gen_vimdoc.py | |
parent | f74f52a1a5ff668187bf12c397319972764a9704 (diff) | |
download | rneovim-765729a145d3d8204ff68b1da0b5bb45c70262e2.tar.gz rneovim-765729a145d3d8204ff68b1da0b5bb45c70262e2.tar.bz2 rneovim-765729a145d3d8204ff68b1da0b5bb45c70262e2.zip |
fix(gen_vimdoc): INCLUDE_DEPRECATED not generating docs for deprecateds
Since some point INCLUDE_DEPRECATED stopped working as it is usually
turned off when generating an actual vimdoc. This commit fixes this
hidden feature back again (used for devel purposes only).
Diffstat (limited to 'scripts/gen_vimdoc.py')
-rwxr-xr-x | scripts/gen_vimdoc.py | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/scripts/gen_vimdoc.py b/scripts/gen_vimdoc.py index e5f2e61dfd..804f0fd198 100755 --- a/scripts/gen_vimdoc.py +++ b/scripts/gen_vimdoc.py @@ -89,8 +89,8 @@ else: # DEBUG = ('DEBUG' in os.environ) -INCLUDE_C_DECL = ('INCLUDE_C_DECL' in os.environ) -INCLUDE_DEPRECATED = ('INCLUDE_DEPRECATED' in os.environ) +INCLUDE_C_DECL = os.environ.get('INCLUDE_C_DECL', '0') != '0' +INCLUDE_DEPRECATED = os.environ.get('INCLUDE_DEPRECATED', '0') != '0' log = logging.getLogger(__name__) @@ -168,7 +168,7 @@ CONFIG: Dict[str, Config] = { mode = 'c', filename = 'api.txt', # Section ordering. - section_order=[ + section_order=[x for x in [ 'vim.c', 'vimscript.c', 'command.c', @@ -180,7 +180,8 @@ CONFIG: Dict[str, Config] = { 'tabpage.c', 'autocmd.c', 'ui.c', - ], + 'deprecated.c' if INCLUDE_DEPRECATED else '' + ] if x], files=['src/nvim/api'], file_patterns = '*.h *.c', fn_name_prefix = 'nvim_', @@ -1287,18 +1288,21 @@ def fmt_doxygen_xml_as_vimhelp(filename, target) -> Tuple[Docstring, Docstring]: deprecated_fns_txt = {} # Map of func_name:vim-help-text. fns: Dict[FunctionName, FunctionDoc] - fns, _ = extract_from_xml(filename, target, - width=text_width, fmt_vimhelp=True) + deprecated_fns: Dict[FunctionName, FunctionDoc] + fns, deprecated_fns = extract_from_xml( + filename, target, width=text_width, fmt_vimhelp=True) - for fn_name, fn in fns.items(): + def _handle_fn(fn_name: FunctionName, fn: FunctionDoc, + fns_txt: Dict[FunctionName, Docstring], deprecated=False): # Generate Vim :help for parameters. # Generate body from FunctionDoc, not XML nodes doc = fn.render() if not doc and fn_name.startswith("nvim__"): - continue + return if not doc: - doc = 'TODO: Documentation' + doc = ('TODO: Documentation' if not deprecated + else 'Deprecated.') # Annotations: put before Parameters annotations: str = '\n'.join(fn.annotations) @@ -1356,6 +1360,11 @@ def fmt_doxygen_xml_as_vimhelp(filename, target) -> Tuple[Docstring, Docstring]: and fn_name != "nvim_error_event"): fns_txt[fn_name] = func_doc + for fn_name, fn in fns.items(): + _handle_fn(fn_name, fn, fns_txt) + for fn_name, fn in deprecated_fns.items(): + _handle_fn(fn_name, fn, deprecated_fns_txt, deprecated=True) + return ( '\n\n'.join(list(fns_txt.values())), '\n\n'.join(list(deprecated_fns_txt.values())), @@ -1508,7 +1517,8 @@ class Section: def __bool__(self) -> bool: """Whether this section has contents. Used for skipping empty ones.""" - return bool(self.doc or self.functions_text) + return bool(self.doc or self.functions_text or + (INCLUDE_DEPRECATED and self.deprecated_functions_text)) def main(doxygen_config, args): @@ -1606,8 +1616,11 @@ def main(doxygen_config, args): fail(f'no sections for target: {target} (look for errors near "Preprocessing" log lines above)') if len(sections) > len(config.section_order): raise RuntimeError( - 'found new modules "{}"; update the "section_order" map'.format( - set(sections).difference(config.section_order))) + '{}: found new modules {}; ' + 'update the "section_order" map'.format( + target, + set(sections).difference(config.section_order)) + ) first_section_tag = sections[config.section_order[0]].helptag docs = '' |