Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to force newlines in Google Apps jsdoc descriptions

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
like image 865
masshuu Avatar asked Jan 30 '15 22:01

masshuu


4 Answers

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) { }
like image 129
Mogsdad Avatar answered Nov 09 '22 18:11

Mogsdad


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
like image 26
Salitha Avatar answered Nov 09 '22 17:11

Salitha


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.

like image 8
BinarySolo Avatar answered Nov 09 '22 17:11

BinarySolo


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 {
   //...
}
like image 8
Ivan Koshelev Avatar answered Nov 09 '22 18:11

Ivan Koshelev