File test/config_altsyntax.py artifact 28af7a5552 part of check-in f03780244f


# type: test
# title: alternative syntaxes
# description: other comment types
# version: 0.7.8
# 
# Kinda have to do snippets here.

import pytest
import re
import textwrap
import pluginconf

def _parse(text):
    text = re.sub(r"\A\n", "", text)
    text = textwrap.dedent(text)
    return pluginconf.plugin_meta(src=text)


def multiline_c():
    c_style= """
    /**
     * api: c
     * title: example
     * version: 3.5.1
     * category: multiline
     *
     * Do we get a comment?
     */
    """
    assert _parse(c_style).version == "3.5.1"
    assert _parse(c_style).doc == "Do we get a comment?"

def multiline_ps1():
    ps1_style= """
    <#
     # api: cpp
     # title: second
    version: 2.1
     # category: nonpython
     #
     # Won't work without hashes
     #>
    """
    print(_parse(ps1_style))
    assert _parse(ps1_style).version == "2.1"
    # requires adapting the continuation line detection (including spaced points)
    # and detecting multiline markers, and stripping them (end up in doc else)

def indent_cpp():
    cpp_style= """
    // api: cpp
    // title: third
    // version: 3.3
    // category: doubleprefix
    //
    // Basically just // instead of #
    """
    assert _parse(cpp_style).version == "3.3"