From ba1ba1f5b052ff3873045fc8e608cc58bab937b7 Mon Sep 17 00:00:00 2001 From: Liam Beguin Date: Sun, 27 Aug 2023 20:14:12 -0400 Subject: docs: refman: add vim syntax file generator Signed-off-by: Liam Beguin --- docs/refman/generatorvim.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/refman/generatorvim.py (limited to 'docs/refman/generatorvim.py') diff --git a/docs/refman/generatorvim.py b/docs/refman/generatorvim.py new file mode 100644 index 000000000..ea725740f --- /dev/null +++ b/docs/refman/generatorvim.py @@ -0,0 +1,37 @@ +# SPDX-License-Identifer: Apache-2.0 +# Copyright 2023 The Meson development team +from __future__ import annotations + +from pathlib import Path + +from .generatorbase import GeneratorBase +from .model import ReferenceManual + + +class GeneratorVim(GeneratorBase): + def __init__(self, manual: ReferenceManual, out_dir: Path) -> None: + super().__init__(manual) + self.out_dir = out_dir + + def generate(self) -> None: + template_dir = Path(__file__).resolve().parent / 'templates' + outname = 'meson.vim' + template_name = f'{outname}.mustache' + template_file = template_dir / template_name + + builtin_funcs = [f.name for f in self.sorted_and_filtered(self.functions)] + data = { + 'builtin_funcs': '\n \\ '.join(builtin_funcs) + } + + # Import here, so that other generators don't also depend on it + import chevron + result = chevron.render( + template=template_file.read_text(encoding='utf-8'), + data=data, + warn=True, + ) + + self.out_dir.mkdir(parents=True, exist_ok=True) + out_file = self.out_dir / outname + out_file.write_text(result, encoding='utf-8') -- cgit v1.2.3