mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
Fix expression documentation not displaying parameters
This commit is contained in:
@@ -79,6 +79,7 @@ const extraClassAttributes = {
|
||||
'static Hidden = 2;',
|
||||
],
|
||||
ObjectJsImplementation: ['content: Record<string, any>;'],
|
||||
VectorString: ['toJSArray(): Array<string>;'],
|
||||
};
|
||||
|
||||
const PrimitiveTypes = new Map([
|
||||
|
1
GDevelop.js/types.d.ts
vendored
1
GDevelop.js/types.d.ts
vendored
@@ -115,6 +115,7 @@ export class VectorString extends EmscriptenObject {
|
||||
at(index: number): string;
|
||||
set(index: number, str: string): void;
|
||||
clear(): void;
|
||||
toJSArray(): Array<string>;
|
||||
}
|
||||
|
||||
export class VectorPlatformExtension extends EmscriptenObject {
|
||||
|
@@ -4,6 +4,12 @@ const { generateReadMoreLink } = require('./WikiHelpLink');
|
||||
|
||||
// Types definitions used in this script:
|
||||
|
||||
/** @typedef {import('../../../../GDevelop.js/types').PlatformExtension} PlatformExtension */
|
||||
/** @typedef {import('../../../../GDevelop.js/types').MapStringExpressionMetadata} MapStringExpressionMetadata */
|
||||
/** @typedef {import('../../../../GDevelop.js/types').ExpressionMetadata} ExpressionMetadata */
|
||||
/** @typedef {import('../../../../GDevelop.js/types').ObjectMetadata} ObjectMetadata */
|
||||
/** @typedef {import('../../../../GDevelop.js/types').BehaviorMetadata} BehaviorMetadata */
|
||||
|
||||
/**
|
||||
* @typedef {Object} RawText A text to be shown on a page
|
||||
* @prop {string} text The text to render (in Markdown/Dokuwiki syntax)
|
||||
@@ -17,7 +23,7 @@ const { generateReadMoreLink } = require('./WikiHelpLink');
|
||||
|
||||
/**
|
||||
* @typedef {Object} ObjectReference
|
||||
* @prop {any} objectMetadata The object.
|
||||
* @prop {ObjectMetadata} objectMetadata The object.
|
||||
* @prop {Array<ReferenceText>} actionsReferenceTexts Reference texts for the object actions.
|
||||
* @prop {Array<ReferenceText>} conditionsReferenceTexts Reference texts for the object conditions.
|
||||
* @prop {Array<ReferenceText>} expressionsReferenceTexts Reference texts for the object expressions.
|
||||
@@ -25,7 +31,7 @@ const { generateReadMoreLink } = require('./WikiHelpLink');
|
||||
|
||||
/**
|
||||
* @typedef {Object} BehaviorReference
|
||||
* @prop {any} behaviorMetadata The behavior.
|
||||
* @prop {BehaviorMetadata} behaviorMetadata The behavior.
|
||||
* @prop {Array<ReferenceText>} actionsReferenceTexts Reference texts for the behavior actions.
|
||||
* @prop {Array<ReferenceText>} conditionsReferenceTexts Reference texts for the behavior conditions.
|
||||
* @prop {Array<ReferenceText>} expressionsReferenceTexts Reference texts for the behavior expressions.
|
||||
@@ -33,7 +39,7 @@ const { generateReadMoreLink } = require('./WikiHelpLink');
|
||||
|
||||
/**
|
||||
* @typedef {Object} ExtensionReference
|
||||
* @prop {any} extension The extension.
|
||||
* @prop {PlatformExtension} extension The extension.
|
||||
* @prop {Array<ReferenceText>} freeExpressionsReferenceTexts Reference texts for free expressions.
|
||||
* @prop {Array<ReferenceText>} freeActionsReferenceTexts Reference texts for free actions.
|
||||
* @prop {Array<ReferenceText>} freeConditionsReferenceTexts Reference texts for free conditions.
|
||||
@@ -252,7 +258,10 @@ const generateInstructionReferenceRowsText = ({
|
||||
};
|
||||
};
|
||||
|
||||
/** @returns {ReferenceText} */
|
||||
/**
|
||||
* @param {{ expressionType: string, expressionMetadata: ExpressionMetadata, objectMetadata?: ObjectMetadata, behaviorMetadata?: BehaviorMetadata }} options
|
||||
* @returns {ReferenceText}
|
||||
*/
|
||||
const generateExpressionReferenceRowsText = ({
|
||||
expressionType,
|
||||
expressionMetadata,
|
||||
@@ -261,11 +270,13 @@ const generateExpressionReferenceRowsText = ({
|
||||
}) => {
|
||||
let parameterRows = [];
|
||||
let parameterStrings = [];
|
||||
mapFor(0, expressionMetadata.getParameters(), index => {
|
||||
mapFor(0, expressionMetadata.getParameters().getParametersCount(), index => {
|
||||
if ((!!objectMetadata && index < 1) || (!!behaviorMetadata && index < 2)) {
|
||||
return; // Skip the first (or first twos) parameters by convention.
|
||||
}
|
||||
const parameterMetadata = expressionMetadata.getParameter(index);
|
||||
const parameterMetadata = expressionMetadata
|
||||
.getParameters()
|
||||
.getParameterAt(index);
|
||||
if (parameterMetadata.isCodeOnly()) return;
|
||||
|
||||
const sanitizedDescription = sanitizeExpressionDescription(
|
||||
@@ -345,7 +356,7 @@ const generateInstructionsReferenceRowsTexts = ({
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {{ expressionsMetadata?: any, objectMetadata?: any, behaviorMetadata?: any }} metadata
|
||||
* @param {{ expressionsMetadata: MapStringExpressionMetadata, objectMetadata?: ObjectMetadata, behaviorMetadata?: BehaviorMetadata }} options
|
||||
* @returns {Array<ReferenceText>}
|
||||
*/
|
||||
const generateExpressionsReferenceRowsTexts = ({
|
||||
@@ -387,7 +398,7 @@ const sortReferenceTexts = (referenceText1, referenceText2) => {
|
||||
};
|
||||
|
||||
/**
|
||||
* @type {any} platformExtension
|
||||
* @param {PlatformExtension} extension
|
||||
* @returns {ExtensionReference}
|
||||
*/
|
||||
const generateExtensionReference = extension => {
|
||||
@@ -401,7 +412,8 @@ const generateExtensionReference = extension => {
|
||||
|
||||
// Object expressions
|
||||
/** @type {Array<ObjectReference>} */
|
||||
let objectReferences = objectTypes.map(objectType => {
|
||||
let objectReferences = objectTypes
|
||||
.map(objectType => {
|
||||
const objectMetadata = extension.getObjectMetadata(objectType);
|
||||
if (objectMetadata.isPrivate()) {
|
||||
return null;
|
||||
@@ -436,7 +448,8 @@ const generateExtensionReference = extension => {
|
||||
conditionsReferenceTexts,
|
||||
expressionsReferenceTexts,
|
||||
};
|
||||
}).filter(Boolean);
|
||||
})
|
||||
.filter(Boolean);
|
||||
|
||||
// Behavior expressions
|
||||
/** @type {Array<BehaviorReference>} */
|
||||
|
@@ -1,6 +1,14 @@
|
||||
// @flow
|
||||
// Note: this file does not use export/imports and use Flow comments to allow its usage from Node.js
|
||||
// Note: this file does not use export/imports and use Flow comments *and* JS doc to allow its usage
|
||||
// from both Flow (in the IDE) and TypeScript (in Node.js).
|
||||
|
||||
/**
|
||||
* @template T
|
||||
* @param {number} start
|
||||
* @param {number} end
|
||||
* @param {(i: number) => T} func
|
||||
* @returns {Array<T>}
|
||||
*/
|
||||
const mapFor = /*:: <T> */ (
|
||||
start /*: number */,
|
||||
end /*: number */,
|
||||
@@ -13,6 +21,13 @@ const mapFor = /*:: <T> */ (
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
* @template T
|
||||
* @param {number} start
|
||||
* @param {number} end
|
||||
* @param {(i: number) => T} func
|
||||
* @returns {Array<T>}
|
||||
*/
|
||||
const mapReverseFor = /*:: <T> */ (
|
||||
start /*: number */,
|
||||
end /*: number */,
|
||||
@@ -32,6 +47,17 @@ type CppVector<T> = {
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @template T
|
||||
* @typedef {{size: () => number, at: (i: number) => T}} CppVector
|
||||
*/
|
||||
|
||||
/**
|
||||
* @template T, U
|
||||
* @param {CppVector<T>} start
|
||||
* @param {(item: T, i: number) => U} func
|
||||
* @returns {Array<U>}
|
||||
*/
|
||||
const mapVector = /*:: <T, U> */ (
|
||||
cppVector /*: CppVector<T> */,
|
||||
func /*: (T, number) => U */
|
||||
|
Reference in New Issue
Block a user