fusionlanguage / fut

Fusion programming language. Transpiling to C, C++, C#, D, Java, JavaScript, Python, Swift, TypeScript and OpenCL C.
https://fusion-lang.org
GNU General Public License v3.0
1.77k stars 55 forks source link

Comments resulting with > and %:lt; strings. #72

Closed urosjarc closed 2 years ago

urosjarc commented 2 years ago

For the following languages, docs comments do not result in the correct format: c, cpp, cs, java, js, ts. For python the docs are correct.

SOURCE

    /// <summary>
    /// Pretvori šteilko v osmiški zapis.
    /// </summary>
    /// <param name="a">Cela številka v desetiškem zapisu.</param>
    /// <returns>Cela številka v osmiškem zapisu.</returns>

c

/**
 * &lt;summary&gt;
 * Pretvori šteilko v osmiški zapis.
 * &lt;/summary&gt;
 * &lt;param name="a"&gt;Cela številka v desetiškem zapisu.&lt;/param&gt;
 * &lt;returns&gt;Cela številka v osmiškem zapisu.&lt;/returns&gt;
 */

cpp

    /**
     * &lt;summary&gt;
     * Pretvori šteilko v osmiški zapis.
     * &lt;/summary&gt;
     * &lt;param name="a"&gt;Cela številka v desetiškem zapisu.&lt;/param&gt;
     * &lt;returns&gt;Cela številka v osmiškem zapisu.&lt;/returns&gt;
     */

cs

    /// <summary>&lt;summary&gt;
    /// Pretvori šteilko v osmiški zapis.</summary>
    /// <remarks>&lt;/summary&gt;
    /// &lt;param name="a"&gt;Cela številka v desetiškem zapisu.&lt;/param&gt;
    /// &lt;returns&gt;Cela številka v osmiškem zapisu.&lt;/returns&gt;</remarks>

java

    /**
     * &lt;summary&gt;
     * Pretvori šteilko v osmiški zapis.
     * &lt;/summary&gt;
     * &lt;param name="a"&gt;Cela številka v desetiškem zapisu.&lt;/param&gt;
     * &lt;returns&gt;Cela številka v osmiškem zapisu.&lt;/returns&gt;
     */

js

/**
 * &lt;summary&gt;
 * Pretvori šteilko v osmiški zapis.
 * &lt;/summary&gt;
 * &lt;param name="a"&gt;Cela številka v desetiškem zapisu.&lt;/param&gt;
 * &lt;returns&gt;Cela številka v osmiškem zapisu.&lt;/returns&gt;
 */

python

        """<summary>
        Pretvori šteilko v osmiški zapis.

        </summary>
        <param name="a">Cela številka v desetiškem zapisu.</param>
        <returns>Cela številka v osmiškem zapisu.</returns>"""

ts

    /**
     * &lt;summary&gt;
     * Pretvori šteilko v osmiški zapis.
     * &lt;/summary&gt;
     * &lt;param name="a"&gt;Cela številka v desetiškem zapisu.&lt;/param&gt;
     * &lt;returns&gt;Cela številka v osmiškem zapisu.&lt;/returns&gt;
     */
pfusik commented 2 years ago

This is expected. You are using C# syntax of XML tags in documentation comments. Use Ć syntax for documentation comments instead.

urosjarc commented 2 years ago

Can you reopen this issue, I'm interested to fixing this in pull request because it seems a simple fix. Maybe if I could make it so that docs comments result in official docs comments for every language like JSDocs, Doxygen etc...

pfusik commented 2 years ago

What would you like to fix here? If you type < in a Ć doc comment, it means you want to see < in the generated documentation and therefore it needs to be escaped in C#, Java and Doxygen syntax.

urosjarc commented 2 years ago

Hmmm, I don't understand you... This is docs comments created for C#, and for me this is wrong...

    /// <summary>&lt;summary&gt;
    /// Pretvori šteilko v osmiški zapis.</summary>
    /// <remarks>&lt;/summary&gt;
    /// &lt;param name="a"&gt;Cela številka v desetiškem zapisu.&lt;/param&gt;
    /// &lt;returns&gt;Cela številka v osmiškem zapisu.&lt;/returns&gt;</remarks>
pfusik commented 2 years ago

Just use Ć syntax, also for documentation comments (see the link above). cito transpiles documentation comments as well.

C:\0\ci>cat ticket72.ci
public class Foo
{
        /// Pretvori šteilko v osmiški zapis.
        /// Returns cela številka v osmiškem zapisu.
        public void Bar(
                /// Cela številka v desetiškem zapisu.
                int a)
        {
        }
}

C:\0\ci>cito -o ticket72.cs ticket72.ci

C:\0\ci>cat ticket72.cs
// Generated automatically with "cito". Do not edit.

public class Foo
{

        /// <summary>Pretvori šteilko v osmiški zapis.</summary>
        /// <remarks>Returns cela številka v osmiškem zapisu.</remarks>
        /// <param name="a">Cela številka v desetiškem zapisu.</param>
        public void Bar(int a)
        {
        }
}
urosjarc commented 2 years ago

Ooooooohhhhhhh I see now what you did there, thank you for clarification, I didn't found this in the docs.

urosjarc commented 2 years ago

Does this works for returning tag? return

pfusik commented 2 years ago

There is no support for the <returns> tag. I'd love to have it added! That could be your first PR. Note that:

  1. It should be supported for all the target languages, not just C#.
  2. I'd prefer lightweight Markdown style and not some XML or JavaDoc tags. How about a doc comment line starting with the "Returns" word?