How to force newlines in Google Apps jsdoc descriptions

17,442

Solution 1

Here are a few ways to control the format of your jsdoc comments in Google Apps Script:

<pre>

/**
 * Converts the prefixed value to the specified base.
 * Requires one of the following prefixes: 
 * <pre>
 *    '0b' Base 2:   binary 
 *    '0q' Base 4:   quaternary 
 *    '0o' Base 8:   octal
 *    '0x' Base 16:  hexadecimal
 * </pre>
 *
 * @param {string} Value The prefixed value to convert.
 * @param {number} To The base to convert to.
 * @return The converted base.
 * @customfunction
 */
function BASEP(Value, To) { }

<p> paragraphs

/**
 * Converts the prefixed value to the specified base.
 * Requires one of the following prefixes: 
 * <p>'0b' Base 2:   binary </p>
 * <p>'0q' Base 4:   quaternary  </p>
 * <p>'0o' Base 8:   octal </p>
 * <p>'0x' Base 16:  hexadecimal </p>
 *
 * @param {string} Value The prefixed value to convert.
 * @param {number} To The base to convert to.
 * @return The converted base.
 * @customfunction
 */
function BASEP2(Value, To) { }

List

/**
 * Converts the prefixed value to the specified base.
 * Requires one of the following prefixes: 
 * <ul style="list-style: none;">
 *  <li> '0b' Base 2:   binary 
 *  <li> '0q' Base 4:   quaternary 
 *  <li> '0o' Base 8:   octal
 *  <li> '0x' Base 16:  hexadecimal
 * </ul>
 *
 * @param {string} Value The prefixed value to convert.
 * @param {number} To The base to convert to.
 * @return The converted base.
 * @customfunction
 */
function BASEP3(Value, To) { }

Table

/**
 * Converts the prefixed value to the specified base.
 * Requires one of the following prefixes: 
 * <table style="width:30%;">
 *  <tr><td>'0b'</td><td>Base 2:</td><td>binary</td></tr>
 *  <tr><td>'0q'</td><td>Base 4:</td><td>quaternary</td></tr>
 *  <tr><td>'0o'</td><td>Base 8:</td><td>octal</td></tr>
 *  <tr><td>'0x'</td><td>Base 16:</td><td>hexadecimal</td></tr>
 * </table>
 *
 * @param {string} Value The prefixed value to convert.
 * @param {number} To The base to convert to.
 * @return The converted base.
 * @customfunction
 */
function BASEP4(Value, To) { }

Solution 2

This method worked for me. In markdown (or in StackOverflow), you need to have two line breaks (ie an additional one) to start new line (or paragraph). same method worked for JSDoc

/**
 * Converts the prefixed value to the specified base.
 * 
 * Requires one of the following prefixes:
 * 
 *    '0b' Base 2:   binary<br> 
 *    '0q' Base 4:   quaternary
 *    '0o' Base 8:   octal<
 *    '0x' Base 16:  hexadecimal
 * 
 */
async function test() {
  return;
}

proof:

original case

original

with additional line:

new

ps

  • Tested on Typescript + tslint + prettier on vscode latest (idk the version, all are updated).
  • This is Loopback 4 project

Solution 3

I'm not sure about the Google Apps part of your question, but JSDoc3 will allow some HTML in descriptions, so one way of getting the output you want would be with the liberal application of some break tags, like so:

/**
 * Converts the prefixed value to the specified base.<br>
 * Requires one of the following prefixes:<br> 
 *    '0b' Base 2:   binary<br> 
 *    '0q' Base 4:   quaternary<br> 
 *    '0o' Base 8:   octal<br>
 *    '0x' Base 16:  hexadecimal
 *

That should get you the output you want. I'm not sure as to the extent of the HTML that JSDoc allows through, but I've used p, br, em etc without any problems.

Solution 4

The <pre> tag did not work for me in VSCode, but @example did;

/**
 * Fn description
 * @example
 * fn(1);
 * fn(3);
 * fn(10000000);
 **/
function fn(a: number): void {
   //...
}
Share:
17,442

Related videos on Youtube

masshuu
Author by

masshuu

Updated on September 16, 2022

Comments

  • masshuu
    masshuu almost 2 years

    I can't figure out how in a Google Apps Script to display this correctly. I need it to display new lines in the jsdoc output(e.g. when the function tooltip window comes up in a Spreadheet functions.) I have tried html like
    however it is just rendered as text and not a line break.

    For example:

    /**
     * Converts the prefixed value to the specified base.
     * Requires one of the following prefixes: 
     *    '0b' Base 2:   binary 
     *    '0q' Base 4:   quaternary 
     *    '0o' Base 8:   octal
     *    '0x' Base 16:  hexadecimal
     *
     * @param {string} Value The prefixed value to convert.
     * @param {number} To The base to convert to.
     * @return The converted base.
     * @customfunction
     */
    function BASEP(Value, To) {
    

    This just renders a text blob like:

    Summary:
      Converts the prefixed value to the specified base. Requires
      one of the following prefixes: 0b Base 2: binary 0q Base 4:
      quaternary 0o Base 8:  octal 0x Base 16:  hexadecimal
    
  • masshuu
    masshuu over 9 years
    I don't think at this time its possible. I tried a bunch of other things and given the 2 week lapse and a lack of answer. As far as I can tell they escape all html and newlines/spaces. It makes sense as they don't want people to stick arbitrary HTML into it, even though the allowed tags defined by JSDoc3 are limited.
  • Max Makhrov
    Max Makhrov over 7 years
    for some reason none of this worked for me. Don't they support HTML anymore?
  • Magne
    Magne about 4 years
  • taylor.2317
    taylor.2317 over 2 years
    This does not provide an answer to the question. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker. - From Review
  • Bruno L.
    Bruno L. over 2 years
    Best answer, it works perfectly with VSC.