diff --git a/client/modules/IDE/components/Editor.jsx b/client/modules/IDE/components/Editor.jsx index 8040146b02..e07ac4ed22 100644 --- a/client/modules/IDE/components/Editor.jsx +++ b/client/modules/IDE/components/Editor.jsx @@ -269,7 +269,7 @@ class Editor extends React.Component { if (this.props.autocompleteHinter !== prevProps.autocompleteHinter) { if (!this.props.autocompleteHinter) { // close the hinter window once the preference is turned off - CodeMirror.showHint(this._cm, () => {}); + CodeMirror.showHint(this._cm, () => {}, {}); } } @@ -352,7 +352,7 @@ class Editor extends React.Component { showHint(_cm) { if (!this.props.autocompleteHinter) { - CodeMirror.showHint(_cm, () => {}); + CodeMirror.showHint(_cm, () => {}, {}); return; } @@ -425,7 +425,9 @@ class Editor extends React.Component { const c = _cm.getCursor(); const token = _cm.getTokenAt(c); - const hints = this.hinter.search(token.string); + const hints = this.hinter + .search(token.string) + .filter((h) => h.item.text[0] === token.string[0]); return { list: hints, diff --git a/client/modules/IDE/components/show-hint.js b/client/modules/IDE/components/show-hint.js index ab51a85899..8482299137 100644 --- a/client/modules/IDE/components/show-hint.js +++ b/client/modules/IDE/components/show-hint.js @@ -275,15 +275,70 @@ } } - function displayHint(name, type) { + function displayHint(name, type, p5) { return `
\ ${name}\ , \ ${type}\ , \ -\ +${ + p5 + ? `\ open ${name} reference\ -
`; + ` + : `no reference for ${name}` +}`; + } + + function getInlineHintSuggestion(focus, tokenLength) { + const suggestionItem = focus.item; + const baseCompletion = `${suggestionItem.text.slice( + tokenLength + )}`; + if (suggestionItem.type !== 'fun') return baseCompletion; + + // for functions + return ( + baseCompletion + + '(' + + (suggestionItem.params && suggestionItem.params.length + ? suggestionItem.params.map(({ p, o }) => (o ? `[${p}]` : p)).join(', ') + : '') + + ')' + ); + } + + function removeInlineHint(cm) { + if (cm.state.inlineHint) { + cm.state.inlineHint.clear(); + cm.state.inlineHint = null; + } + } + + function changeInlineHint(cm, focus) { + // Copilot-style inline suggestion for autocomplete feature + removeInlineHint(cm); + + const cursor = cm.getCursor(); + const token = cm.getTokenAt(cursor); + + if (token && focus.item) { + const suggestionHTML = getInlineHintSuggestion( + focus, + token.string.length + ); + + const widgetElement = document.createElement('span'); + widgetElement.className = 'autocomplete-inline-hinter'; + widgetElement.innerHTML = suggestionHTML; + + const widget = cm.setBookmark(cursor, { widget: widgetElement }); + cm.state.inlineHint = widget; + + cm.setCursor(cursor); + } } function Widget(completion, data) { @@ -306,6 +361,9 @@ hints.className = 'CodeMirror-hints ' + theme; this.selectedHint = data.selectedHint || 0; + // Show inline hint + changeInlineHint(cm, data.list[this.selectedHint]); + var completions = data.list; for (var i = 0; i < completions.length; ++i) { @@ -325,7 +383,7 @@ const name = getText(cur); if (cur.item && cur.item.type) { - cur.displayText = displayHint(name, cur.item.type); + cur.displayText = displayHint(name, cur.item.type, cur.item.p5); } elt.appendChild(e); @@ -431,10 +489,10 @@ cm.addKeyMap( (this.keyMap = buildKeyMap(completion, { moveFocus: function (n, avoidWrap) { - widget.changeActive(widget.selectedHint + n, avoidWrap); + return widget.changeActive(widget.selectedHint + n, avoidWrap); }, setFocus: function (n) { - widget.changeActive(n); + return widget.changeActive(n); }, menuSize: function () { return widget.screenAmount(); @@ -540,6 +598,8 @@ cm.off('focus', this.onFocus); } cm.off('scroll', this.onScroll); + + removeInlineHint(cm); }, disable: function () { @@ -561,7 +621,12 @@ if (i >= this.data.list.length) i = avoidWrap ? this.data.list.length - 1 : 0; else if (i < 0) i = avoidWrap ? 0 : this.data.list.length - 1; - if (this.selectedHint == i) return; + + if (this.selectedHint == i) { + changeInlineHint(this.completion.cm, this.data.list[this.selectedHint]); + return this.data.list[this.selectedHint]; + } + var node = this.hints.childNodes[this.selectedHint]; if (node) { node.className = node.className.replace( @@ -583,6 +648,9 @@ this.data.list[this.selectedHint], node ); + + changeInlineHint(this.completion.cm, this.data.list[this.selectedHint]); + return this.data.list[this.selectedHint]; }, scrollToActive: function () { diff --git a/client/styles/abstracts/_variables.scss b/client/styles/abstracts/_variables.scss index 26da9d6530..be66d69f52 100644 --- a/client/styles/abstracts/_variables.scss +++ b/client/styles/abstracts/_variables.scss @@ -123,11 +123,13 @@ $themes: ( hint-item-border-bottom-color: $white, hint-fun-text-color: #0B7CA9, hint-var-text-color: #D52889, + hint-keyword-text-color: #7A5A3A, hint-type-text-color: $medium-dark, hint-arrow-color: $lightest, hint-arrow-background-color: #ed225ddd, hint-arrow-background-active-color: $p5js-active-pink, hint-arrow-focus-outline-color: $middle-dark, + hint-no-link-background-color: $medium-light, hint-item-hover-background-color: #f4f4f4, hint-item-active-text-color: $white, hint-item-active-background-color: $middle-gray, @@ -135,7 +137,9 @@ $themes: ( hint-var-active-border-bottom-color: #D52889, hint-item-active-type-text-color: $white, hint-item-active-outline: none, - hint-item-active-outline-offset: 0 + hint-item-active-outline-offset: 0, + hint-inline-text-color-light: $middle-light, + hint-inline-text-color: $middle-gray, ), dark: ( logo-color: $p5js-pink, @@ -222,11 +226,13 @@ $themes: ( hint-item-border-bottom-color: $darker, hint-fun-text-color: #0F9DD7, hint-var-text-color: #DE4A9B, + hint-keyword-text-color: #B58318, hint-type-text-color: $light, hint-arrow-color: $lightest, hint-arrow-background-color: #ed225ddd, hint-arrow-background-active-color: $p5js-active-pink, hint-arrow-focus-outline-color: #cfcfcf, + hint-no-link-background-color: $medium-dark, hint-item-hover-background-color: $medium-dark, hint-item-active-text-color: $darker, hint-item-active-background-color: #cfcfcf, @@ -234,7 +240,9 @@ $themes: ( hint-var-active-border-bottom-color: #DE4A9B, hint-item-active-type-text-color: $darker, hint-item-active-outline: none, - hint-item-active-outline-offset: 0 + hint-item-active-outline-offset: 0, + hint-inline-text-color-light: $middle-gray, + hint-inline-text-color: #cfcfcf, ), contrast: ( logo-color: $yellow, @@ -321,11 +329,13 @@ $themes: ( hint-item-border-bottom-color: $medium-dark, hint-fun-text-color: #00FFFF, hint-var-text-color: #FFA9D9, + hint-keyword-text-color: #F5DC23, hint-type-text-color: $middle-light, hint-arrow-color: $darker, hint-arrow-background-color: #F5DC23DD, hint-arrow-background-active-color: #F5DC23, hint-arrow-focus-outline-color: $lighter, + hint-no-link-background-color: $medium-dark, hint-item-hover-background-color: $dark, hint-item-active-text-color: $lighter, hint-item-active-background-color: unset, @@ -333,7 +343,9 @@ $themes: ( hint-var-active-border-bottom-color: none, hint-item-active-type-text-color: $lighter, hint-item-active-outline: 2px solid $lighter, - hint-item-active-outline-offset: -2px + hint-item-active-outline-offset: -2px, + hint-inline-text-color-light: $middle-gray, + hint-inline-text-color: #cfcfcf, ) ); diff --git a/client/styles/components/_hints.scss b/client/styles/components/_hints.scss index 1eabbcfeef..4503a44f24 100644 --- a/client/styles/components/_hints.scss +++ b/client/styles/components/_hints.scss @@ -31,13 +31,17 @@ height: 100%; } - .fun-name { + .fun-name, .obj-name { color: getThemifyVariable('hint-fun-text-color'); } - .var-name { + .var-name, .boolean-name { color: getThemifyVariable('hint-var-text-color'); } + + .keyword-name { + color: getThemifyVariable('hint-keyword-text-color'); + } .hint-type { color: getThemifyVariable('hint-type-text-color'); @@ -57,6 +61,11 @@ outline-offset: #{-3 / $base-font-size}rem; } } + + .no-link-placeholder { + background: getThemifyVariable('hint-no-link-background-color'); + pointer-events: none; + } li.CodeMirror-hint-active:not(.unfocused) { background: getThemifyVariable('hint-item-active-background-color'); @@ -75,13 +84,17 @@ color: getThemifyVariable('hint-item-active-text-color'); } - .fun-name { + .fun-name, .obj-name { background-color: getThemifyVariable('hint-fun-text-color'); } - .var-name { + .var-name, .boolean-name { background-color: getThemifyVariable('hint-var-text-color'); } + + .keyword-name { + background-color: getThemifyVariable('hint-keyword-text-color'); + } .hint-type, .plain-hint-item { color: getThemifyVariable('hint-item-active-type-text-color'); @@ -140,7 +153,7 @@ @extend %hidden-element; } - a { + a, .no-link-placeholder { position: absolute; top: 0; right: 0; @@ -160,3 +173,31 @@ } } } + +// Inline hinter +.CodeMirror-widget { + line-height: inherit; + + @include themify() { + .autocomplete-inline-hinter { + // make the border left look like a cursor and animate like a cursor + // border-left: #{1.2 / $base-font-size}rem solid getThemifyVariable(hint-inline-text-color); + // animation: inline-hint-caret-blink 1s step-end infinite; + pointer-events: none; + + .inline-hinter-suggestion { + color: getThemifyVariable(hint-inline-text-color); + font-style: italic; + } + + .inline-hinter-suggestion-light { + color: getThemifyVariable(hint-inline-text-color-light); + font-style: italic; + } + } + } +} + +@keyframes inline-hint-caret-blink { + 50% { border-color: transparent; } +} diff --git a/client/utils/p5-hinter.js b/client/utils/p5-hinter.js index 62110ba879..99f16c7036 100644 --- a/client/utils/p5-hinter.js +++ b/client/utils/p5-hinter.js @@ -1,3 +1,3 @@ /* eslint-disable */ /* generated: do not edit! helper file for hinter. generated by update-p5-hinter script */ -exports.p5Hinter = [{"text":"describe","type":"fun"},{"text":"describeElement","type":"fun"},{"text":"textOutput","type":"fun"},{"text":"gridOutput","type":"fun"},{"text":"alpha","type":"fun"},{"text":"blue","type":"fun"},{"text":"brightness","type":"fun"},{"text":"color","type":"fun"},{"text":"green","type":"fun"},{"text":"hue","type":"fun"},{"text":"lerpColor","type":"fun"},{"text":"lightness","type":"fun"},{"text":"red","type":"fun"},{"text":"saturation","type":"fun"},{"text":"background","type":"fun"},{"text":"clear","type":"fun"},{"text":"colorMode","type":"fun"},{"text":"fill","type":"fun"},{"text":"noFill","type":"fun"},{"text":"noStroke","type":"fun"},{"text":"stroke","type":"fun"},{"text":"erase","type":"fun"},{"text":"noErase","type":"fun"},{"text":"arc","type":"fun"},{"text":"ellipse","type":"fun"},{"text":"circle","type":"fun"},{"text":"line","type":"fun"},{"text":"point","type":"fun"},{"text":"quad","type":"fun"},{"text":"rect","type":"fun"},{"text":"square","type":"fun"},{"text":"triangle","type":"fun"},{"text":"ellipseMode","type":"fun"},{"text":"noSmooth","type":"fun"},{"text":"rectMode","type":"fun"},{"text":"smooth","type":"fun"},{"text":"strokeCap","type":"fun"},{"text":"strokeJoin","type":"fun"},{"text":"strokeWeight","type":"fun"},{"text":"bezier","type":"fun"},{"text":"bezierDetail","type":"fun"},{"text":"bezierPoint","type":"fun"},{"text":"bezierTangent","type":"fun"},{"text":"curve","type":"fun"},{"text":"curveDetail","type":"fun"},{"text":"curveTightness","type":"fun"},{"text":"curvePoint","type":"fun"},{"text":"curveTangent","type":"fun"},{"text":"beginContour","type":"fun"},{"text":"beginShape","type":"fun"},{"text":"bezierVertex","type":"fun"},{"text":"curveVertex","type":"fun"},{"text":"endContour","type":"fun"},{"text":"endShape","type":"fun"},{"text":"quadraticVertex","type":"fun"},{"text":"vertex","type":"fun"},{"text":"normal","type":"fun"},{"text":"VERSION","type":"var"},{"text":"P2D","type":"var"},{"text":"WEBGL","type":"var"},{"text":"ARROW","type":"var"},{"text":"CROSS","type":"var"},{"text":"HAND","type":"var"},{"text":"MOVE","type":"var"},{"text":"TEXT","type":"var"},{"text":"WAIT","type":"var"},{"text":"HALF_PI","type":"var"},{"text":"PI","type":"var"},{"text":"QUARTER_PI","type":"var"},{"text":"TAU","type":"var"},{"text":"TWO_PI","type":"var"},{"text":"DEGREES","type":"var"},{"text":"RADIANS","type":"var"},{"text":"CORNER","type":"var"},{"text":"CORNERS","type":"var"},{"text":"RADIUS","type":"var"},{"text":"RIGHT","type":"var"},{"text":"LEFT","type":"var"},{"text":"CENTER","type":"var"},{"text":"TOP","type":"var"},{"text":"BOTTOM","type":"var"},{"text":"BASELINE","type":"var"},{"text":"POINTS","type":"var"},{"text":"LINES","type":"var"},{"text":"LINE_STRIP","type":"var"},{"text":"LINE_LOOP","type":"var"},{"text":"TRIANGLES","type":"var"},{"text":"TRIANGLE_FAN","type":"var"},{"text":"TRIANGLE_STRIP","type":"var"},{"text":"QUADS","type":"var"},{"text":"QUAD_STRIP","type":"var"},{"text":"TESS","type":"var"},{"text":"CLOSE","type":"var"},{"text":"OPEN","type":"var"},{"text":"CHORD","type":"var"},{"text":"PIE","type":"var"},{"text":"PROJECT","type":"var"},{"text":"SQUARE","type":"var"},{"text":"ROUND","type":"var"},{"text":"BEVEL","type":"var"},{"text":"MITER","type":"var"},{"text":"RGB","type":"var"},{"text":"HSB","type":"var"},{"text":"HSL","type":"var"},{"text":"AUTO","type":"var"},{"text":"ALT","type":"var"},{"text":"BACKSPACE","type":"var"},{"text":"CONTROL","type":"var"},{"text":"DELETE","type":"var"},{"text":"DOWN_ARROW","type":"var"},{"text":"ENTER","type":"var"},{"text":"ESCAPE","type":"var"},{"text":"LEFT_ARROW","type":"var"},{"text":"OPTION","type":"var"},{"text":"RETURN","type":"var"},{"text":"RIGHT_ARROW","type":"var"},{"text":"SHIFT","type":"var"},{"text":"TAB","type":"var"},{"text":"UP_ARROW","type":"var"},{"text":"BLEND","type":"var"},{"text":"REMOVE","type":"var"},{"text":"ADD","type":"var"},{"text":"DARKEST","type":"var"},{"text":"LIGHTEST","type":"var"},{"text":"DIFFERENCE","type":"var"},{"text":"SUBTRACT","type":"var"},{"text":"EXCLUSION","type":"var"},{"text":"MULTIPLY","type":"var"},{"text":"SCREEN","type":"var"},{"text":"REPLACE","type":"var"},{"text":"OVERLAY","type":"var"},{"text":"HARD_LIGHT","type":"var"},{"text":"SOFT_LIGHT","type":"var"},{"text":"DODGE","type":"var"},{"text":"BURN","type":"var"},{"text":"THRESHOLD","type":"var"},{"text":"GRAY","type":"var"},{"text":"OPAQUE","type":"var"},{"text":"INVERT","type":"var"},{"text":"POSTERIZE","type":"var"},{"text":"DILATE","type":"var"},{"text":"ERODE","type":"var"},{"text":"BLUR","type":"var"},{"text":"NORMAL","type":"var"},{"text":"ITALIC","type":"var"},{"text":"BOLD","type":"var"},{"text":"BOLDITALIC","type":"var"},{"text":"CHAR","type":"var"},{"text":"WORD","type":"var"},{"text":"LINEAR","type":"var"},{"text":"QUADRATIC","type":"var"},{"text":"BEZIER","type":"var"},{"text":"CURVE","type":"var"},{"text":"STROKE","type":"var"},{"text":"FILL","type":"var"},{"text":"TEXTURE","type":"var"},{"text":"IMMEDIATE","type":"var"},{"text":"IMAGE","type":"var"},{"text":"NEAREST","type":"var"},{"text":"REPEAT","type":"var"},{"text":"CLAMP","type":"var"},{"text":"MIRROR","type":"var"},{"text":"LANDSCAPE","type":"var"},{"text":"PORTRAIT","type":"var"},{"text":"GRID","type":"var"},{"text":"AXES","type":"var"},{"text":"LABEL","type":"var"},{"text":"FALLBACK","type":"var"},{"text":"CONTAIN","type":"var"},{"text":"COVER","type":"var"},{"text":"print","type":"fun"},{"text":"frameCount","type":"var"},{"text":"deltaTime","type":"var"},{"text":"focused","type":"var"},{"text":"cursor","type":"fun"},{"text":"frameRate","type":"fun"},{"text":"getTargetFrameRate","type":"fun"},{"text":"noCursor","type":"fun"},{"text":"displayWidth","type":"var"},{"text":"displayHeight","type":"var"},{"text":"windowWidth","type":"var"},{"text":"windowHeight","type":"var"},{"text":"windowResized","type":"fun"},{"text":"width","type":"var"},{"text":"height","type":"var"},{"text":"fullscreen","type":"fun"},{"text":"pixelDensity","type":"fun"},{"text":"displayDensity","type":"fun"},{"text":"getURL","type":"fun"},{"text":"getURLPath","type":"fun"},{"text":"getURLParams","type":"fun"},{"text":"preload","type":"fun"},{"text":"setup","type":"fun"},{"text":"draw","type":"fun"},{"text":"remove","type":"fun"},{"text":"disableFriendlyErrors","type":"var"},{"text":"createCanvas","type":"fun"},{"text":"resizeCanvas","type":"fun"},{"text":"noCanvas","type":"fun"},{"text":"createGraphics","type":"fun"},{"text":"blendMode","type":"fun"},{"text":"drawingContext","type":"var"},{"text":"noLoop","type":"fun"},{"text":"loop","type":"fun"},{"text":"isLooping","type":"fun"},{"text":"push","type":"fun"},{"text":"pop","type":"fun"},{"text":"redraw","type":"fun"},{"text":"p5","type":"fun"},{"text":"applyMatrix","type":"fun"},{"text":"resetMatrix","type":"fun"},{"text":"rotate","type":"fun"},{"text":"rotateX","type":"fun"},{"text":"rotateY","type":"fun"},{"text":"rotateZ","type":"fun"},{"text":"scale","type":"fun"},{"text":"shearX","type":"fun"},{"text":"shearY","type":"fun"},{"text":"translate","type":"fun"},{"text":"storeItem","type":"fun"},{"text":"getItem","type":"fun"},{"text":"clearStorage","type":"fun"},{"text":"removeItem","type":"fun"},{"text":"createStringDict","type":"fun"},{"text":"createNumberDict","type":"fun"},{"text":"select","type":"fun"},{"text":"selectAll","type":"fun"},{"text":"removeElements","type":"fun"},{"text":"changed","type":"fun"},{"text":"input","type":"fun"},{"text":"createDiv","type":"fun"},{"text":"createP","type":"fun"},{"text":"createSpan","type":"fun"},{"text":"createImg","type":"fun"},{"text":"createA","type":"fun"},{"text":"createSlider","type":"fun"},{"text":"createButton","type":"fun"},{"text":"createCheckbox","type":"fun"},{"text":"createSelect","type":"fun"},{"text":"createRadio","type":"fun"},{"text":"createColorPicker","type":"fun"},{"text":"createInput","type":"fun"},{"text":"createFileInput","type":"fun"},{"text":"createVideo","type":"fun"},{"text":"createAudio","type":"fun"},{"text":"createCapture","type":"fun"},{"text":"createElement","type":"fun"},{"text":"deviceOrientation","type":"var"},{"text":"accelerationX","type":"var"},{"text":"accelerationY","type":"var"},{"text":"accelerationZ","type":"var"},{"text":"pAccelerationX","type":"var"},{"text":"pAccelerationY","type":"var"},{"text":"pAccelerationZ","type":"var"},{"text":"rotationX","type":"var"},{"text":"rotationY","type":"var"},{"text":"rotationZ","type":"var"},{"text":"pRotationX","type":"var"},{"text":"pRotationY","type":"var"},{"text":"pRotationZ","type":"var"},{"text":"turnAxis","type":"var"},{"text":"setMoveThreshold","type":"fun"},{"text":"setShakeThreshold","type":"fun"},{"text":"deviceMoved","type":"fun"},{"text":"deviceTurned","type":"fun"},{"text":"deviceShaken","type":"fun"},{"text":"keyIsPressed","type":"var"},{"text":"key","type":"var"},{"text":"keyCode","type":"var"},{"text":"keyPressed","type":"fun"},{"text":"keyReleased","type":"fun"},{"text":"keyTyped","type":"fun"},{"text":"keyIsDown","type":"fun"},{"text":"movedX","type":"var"},{"text":"movedY","type":"var"},{"text":"mouseX","type":"var"},{"text":"mouseY","type":"var"},{"text":"pmouseX","type":"var"},{"text":"pmouseY","type":"var"},{"text":"winMouseX","type":"var"},{"text":"winMouseY","type":"var"},{"text":"pwinMouseX","type":"var"},{"text":"pwinMouseY","type":"var"},{"text":"mouseButton","type":"var"},{"text":"mouseIsPressed","type":"var"},{"text":"mouseMoved","type":"fun"},{"text":"mouseDragged","type":"fun"},{"text":"mousePressed","type":"fun"},{"text":"mouseReleased","type":"fun"},{"text":"mouseClicked","type":"fun"},{"text":"doubleClicked","type":"fun"},{"text":"mouseWheel","type":"fun"},{"text":"requestPointerLock","type":"fun"},{"text":"exitPointerLock","type":"fun"},{"text":"touches","type":"var"},{"text":"touchStarted","type":"fun"},{"text":"touchMoved","type":"fun"},{"text":"touchEnded","type":"fun"},{"text":"createImage","type":"fun"},{"text":"saveCanvas","type":"fun"},{"text":"saveFrames","type":"fun"},{"text":"loadImage","type":"fun"},{"text":"saveGif","type":"fun"},{"text":"image","type":"fun"},{"text":"tint","type":"fun"},{"text":"noTint","type":"fun"},{"text":"imageMode","type":"fun"},{"text":"pixels","type":"var"},{"text":"blend","type":"fun"},{"text":"copy","type":"fun"},{"text":"filter","type":"fun"},{"text":"get","type":"fun"},{"text":"loadPixels","type":"fun"},{"text":"set","type":"fun"},{"text":"updatePixels","type":"fun"},{"text":"loadJSON","type":"fun"},{"text":"loadStrings","type":"fun"},{"text":"loadTable","type":"fun"},{"text":"loadXML","type":"fun"},{"text":"loadBytes","type":"fun"},{"text":"httpGet","type":"fun"},{"text":"httpPost","type":"fun"},{"text":"httpDo","type":"fun"},{"text":"createWriter","type":"fun"},{"text":"save","type":"fun"},{"text":"saveJSON","type":"fun"},{"text":"saveStrings","type":"fun"},{"text":"saveTable","type":"fun"},{"text":"abs","type":"fun"},{"text":"ceil","type":"fun"},{"text":"constrain","type":"fun"},{"text":"dist","type":"fun"},{"text":"exp","type":"fun"},{"text":"floor","type":"fun"},{"text":"lerp","type":"fun"},{"text":"log","type":"fun"},{"text":"mag","type":"fun"},{"text":"map","type":"fun"},{"text":"max","type":"fun"},{"text":"min","type":"fun"},{"text":"norm","type":"fun"},{"text":"pow","type":"fun"},{"text":"round","type":"fun"},{"text":"sq","type":"fun"},{"text":"sqrt","type":"fun"},{"text":"fract","type":"fun"},{"text":"createVector","type":"fun"},{"text":"noise","type":"fun"},{"text":"noiseDetail","type":"fun"},{"text":"noiseSeed","type":"fun"},{"text":"randomSeed","type":"fun"},{"text":"random","type":"fun"},{"text":"randomGaussian","type":"fun"},{"text":"acos","type":"fun"},{"text":"asin","type":"fun"},{"text":"atan","type":"fun"},{"text":"atan2","type":"fun"},{"text":"cos","type":"fun"},{"text":"sin","type":"fun"},{"text":"tan","type":"fun"},{"text":"degrees","type":"fun"},{"text":"radians","type":"fun"},{"text":"angleMode","type":"fun"},{"text":"textAlign","type":"fun"},{"text":"textLeading","type":"fun"},{"text":"textSize","type":"fun"},{"text":"textStyle","type":"fun"},{"text":"textWidth","type":"fun"},{"text":"textAscent","type":"fun"},{"text":"textDescent","type":"fun"},{"text":"textWrap","type":"fun"},{"text":"loadFont","type":"fun"},{"text":"text","type":"fun"},{"text":"textFont","type":"fun"},{"text":"append","type":"fun"},{"text":"arrayCopy","type":"fun"},{"text":"concat","type":"fun"},{"text":"reverse","type":"fun"},{"text":"shorten","type":"fun"},{"text":"shuffle","type":"fun"},{"text":"sort","type":"fun"},{"text":"splice","type":"fun"},{"text":"subset","type":"fun"},{"text":"float","type":"fun"},{"text":"int","type":"fun"},{"text":"str","type":"fun"},{"text":"boolean","type":"fun"},{"text":"byte","type":"fun"},{"text":"char","type":"fun"},{"text":"unchar","type":"fun"},{"text":"hex","type":"fun"},{"text":"unhex","type":"fun"},{"text":"join","type":"fun"},{"text":"match","type":"fun"},{"text":"matchAll","type":"fun"},{"text":"nf","type":"fun"},{"text":"nfc","type":"fun"},{"text":"nfp","type":"fun"},{"text":"nfs","type":"fun"},{"text":"split","type":"fun"},{"text":"splitTokens","type":"fun"},{"text":"trim","type":"fun"},{"text":"day","type":"fun"},{"text":"hour","type":"fun"},{"text":"minute","type":"fun"},{"text":"millis","type":"fun"},{"text":"month","type":"fun"},{"text":"second","type":"fun"},{"text":"year","type":"fun"},{"text":"plane","type":"fun"},{"text":"box","type":"fun"},{"text":"sphere","type":"fun"},{"text":"cylinder","type":"fun"},{"text":"cone","type":"fun"},{"text":"ellipsoid","type":"fun"},{"text":"torus","type":"fun"},{"text":"orbitControl","type":"fun"},{"text":"debugMode","type":"fun"},{"text":"noDebugMode","type":"fun"},{"text":"ambientLight","type":"fun"},{"text":"specularColor","type":"fun"},{"text":"directionalLight","type":"fun"},{"text":"pointLight","type":"fun"},{"text":"lights","type":"fun"},{"text":"lightFalloff","type":"fun"},{"text":"spotLight","type":"fun"},{"text":"noLights","type":"fun"},{"text":"loadModel","type":"fun"},{"text":"model","type":"fun"},{"text":"loadShader","type":"fun"},{"text":"createShader","type":"fun"},{"text":"shader","type":"fun"},{"text":"resetShader","type":"fun"},{"text":"texture","type":"fun"},{"text":"textureMode","type":"fun"},{"text":"textureWrap","type":"fun"},{"text":"normalMaterial","type":"fun"},{"text":"ambientMaterial","type":"fun"},{"text":"emissiveMaterial","type":"fun"},{"text":"specularMaterial","type":"fun"},{"text":"shininess","type":"fun"},{"text":"camera","type":"fun"},{"text":"perspective","type":"fun"},{"text":"ortho","type":"fun"},{"text":"frustum","type":"fun"},{"text":"createCamera","type":"fun"},{"text":"setCamera","type":"fun"},{"text":"setAttributes","type":"fun"},{"text":"getAudioContext","type":"fun"},{"text":"userStartAudio","type":"fun"},{"text":"getOutputVolume","type":"fun"},{"text":"outputVolume","type":"fun"},{"text":"soundOut","type":"var"},{"text":"sampleRate","type":"fun"},{"text":"freqToMidi","type":"fun"},{"text":"midiToFreq","type":"fun"},{"text":"soundFormats","type":"fun"},{"text":"saveSound","type":"fun"},{"text":"loadSound","type":"fun"},{"text":"createConvolver","type":"fun"},{"text":"setBPM","type":"fun"}]; +exports.p5Hinter = [{"text":"describe","type":"fun","params":[{"p":"text","o":false},{"p":"display","o":true}],"p5":true},{"text":"describeElement","type":"fun","params":[{"p":"name","o":false},{"p":"text","o":false},{"p":"display","o":true}],"p5":true},{"text":"textOutput","type":"fun","params":[{"p":"display","o":true}],"p5":true},{"text":"gridOutput","type":"fun","params":[{"p":"display","o":true}],"p5":true},{"text":"alpha","type":"fun","params":[{"p":"color","o":false}],"p5":true},{"text":"blue","type":"fun","params":[{"p":"color","o":false}],"p5":true},{"text":"brightness","type":"fun","params":[{"p":"color","o":false}],"p5":true},{"text":"color","type":"fun","p5":true},{"text":"green","type":"fun","params":[{"p":"color","o":false}],"p5":true},{"text":"hue","type":"fun","params":[{"p":"color","o":false}],"p5":true},{"text":"lerpColor","type":"fun","params":[{"p":"c1","o":false},{"p":"c2","o":false},{"p":"amt","o":false}],"p5":true},{"text":"lightness","type":"fun","params":[{"p":"color","o":false}],"p5":true},{"text":"red","type":"fun","params":[{"p":"color","o":false}],"p5":true},{"text":"saturation","type":"fun","params":[{"p":"color","o":false}],"p5":true},{"text":"background","type":"fun","p5":true},{"text":"clear","type":"fun","params":[{"p":"r","o":false},{"p":"g","o":false},{"p":"b","o":false},{"p":"a","o":false}],"p5":true},{"text":"colorMode","type":"fun","p5":true},{"text":"fill","type":"fun","p5":true},{"text":"noFill","type":"fun","p5":true},{"text":"noStroke","type":"fun","p5":true},{"text":"stroke","type":"fun","p5":true},{"text":"erase","type":"fun","params":[{"p":"strengthFill","o":true},{"p":"strengthStroke","o":true}],"p5":true},{"text":"noErase","type":"fun","p5":true},{"text":"arc","type":"fun","params":[{"p":"x","o":false},{"p":"y","o":false},{"p":"w","o":false},{"p":"h","o":false},{"p":"start","o":false},{"p":"stop","o":false},{"p":"mode","o":true},{"p":"detail","o":true}],"p5":true},{"text":"ellipse","type":"fun","p5":true},{"text":"circle","type":"fun","params":[{"p":"x","o":false},{"p":"y","o":false},{"p":"d","o":false}],"p5":true},{"text":"line","type":"fun","p5":true},{"text":"point","type":"fun","p5":true},{"text":"quad","type":"fun","p5":true},{"text":"rect","type":"fun","p5":true},{"text":"square","type":"fun","params":[{"p":"x","o":false},{"p":"y","o":false},{"p":"s","o":false},{"p":"tl","o":true},{"p":"tr","o":true},{"p":"br","o":true},{"p":"bl","o":true}],"p5":true},{"text":"triangle","type":"fun","params":[{"p":"x1","o":false},{"p":"y1","o":false},{"p":"x2","o":false},{"p":"y2","o":false},{"p":"x3","o":false},{"p":"y3","o":false}],"p5":true},{"text":"ellipseMode","type":"fun","params":[{"p":"mode","o":false}],"p5":true},{"text":"noSmooth","type":"fun","p5":true},{"text":"rectMode","type":"fun","params":[{"p":"mode","o":false}],"p5":true},{"text":"smooth","type":"fun","p5":true},{"text":"strokeCap","type":"fun","params":[{"p":"cap","o":false}],"p5":true},{"text":"strokeJoin","type":"fun","params":[{"p":"join","o":false}],"p5":true},{"text":"strokeWeight","type":"fun","params":[{"p":"weight","o":false}],"p5":true},{"text":"bezier","type":"fun","p5":true},{"text":"bezierDetail","type":"fun","params":[{"p":"detail","o":false}],"p5":true},{"text":"bezierPoint","type":"fun","params":[{"p":"a","o":false},{"p":"b","o":false},{"p":"c","o":false},{"p":"d","o":false},{"p":"t","o":false}],"p5":true},{"text":"bezierTangent","type":"fun","params":[{"p":"a","o":false},{"p":"b","o":false},{"p":"c","o":false},{"p":"d","o":false},{"p":"t","o":false}],"p5":true},{"text":"curve","type":"fun","p5":true},{"text":"curveDetail","type":"fun","params":[{"p":"resolution","o":false}],"p5":true},{"text":"curveTightness","type":"fun","params":[{"p":"amount","o":false}],"p5":true},{"text":"curvePoint","type":"fun","params":[{"p":"a","o":false},{"p":"b","o":false},{"p":"c","o":false},{"p":"d","o":false},{"p":"t","o":false}],"p5":true},{"text":"curveTangent","type":"fun","params":[{"p":"a","o":false},{"p":"b","o":false},{"p":"c","o":false},{"p":"d","o":false},{"p":"t","o":false}],"p5":true},{"text":"beginContour","type":"fun","p5":true},{"text":"beginShape","type":"fun","params":[{"p":"kind","o":true}],"p5":true},{"text":"bezierVertex","type":"fun","p5":true},{"text":"curveVertex","type":"fun","p5":true},{"text":"endContour","type":"fun","p5":true},{"text":"endShape","type":"fun","params":[{"p":"mode","o":true}],"p5":true},{"text":"quadraticVertex","type":"fun","p5":true},{"text":"vertex","type":"fun","p5":true},{"text":"normal","type":"fun","p5":true},{"text":"VERSION","type":"var","params":[],"p5":true},{"text":"P2D","type":"var","params":[],"p5":true},{"text":"WEBGL","type":"var","params":[],"p5":true},{"text":"ARROW","type":"var","params":[],"p5":true},{"text":"CROSS","type":"var","params":[],"p5":true},{"text":"HAND","type":"var","params":[],"p5":true},{"text":"MOVE","type":"var","params":[],"p5":true},{"text":"TEXT","type":"var","params":[],"p5":true},{"text":"WAIT","type":"var","params":[],"p5":true},{"text":"HALF_PI","type":"var","params":[],"p5":true},{"text":"PI","type":"var","params":[],"p5":true},{"text":"QUARTER_PI","type":"var","params":[],"p5":true},{"text":"TAU","type":"var","params":[],"p5":true},{"text":"TWO_PI","type":"var","params":[],"p5":true},{"text":"DEGREES","type":"var","params":[],"p5":true},{"text":"RADIANS","type":"var","params":[],"p5":true},{"text":"CORNER","type":"var","params":[],"p5":true},{"text":"CORNERS","type":"var","params":[],"p5":true},{"text":"RADIUS","type":"var","params":[],"p5":true},{"text":"RIGHT","type":"var","params":[],"p5":true},{"text":"LEFT","type":"var","params":[],"p5":true},{"text":"CENTER","type":"var","params":[],"p5":true},{"text":"TOP","type":"var","params":[],"p5":true},{"text":"BOTTOM","type":"var","params":[],"p5":true},{"text":"BASELINE","type":"var","params":[],"p5":true},{"text":"POINTS","type":"var","params":[],"p5":true},{"text":"LINES","type":"var","params":[],"p5":true},{"text":"LINE_STRIP","type":"var","params":[],"p5":true},{"text":"LINE_LOOP","type":"var","params":[],"p5":true},{"text":"TRIANGLES","type":"var","params":[],"p5":true},{"text":"TRIANGLE_FAN","type":"var","params":[],"p5":true},{"text":"TRIANGLE_STRIP","type":"var","params":[],"p5":true},{"text":"QUADS","type":"var","params":[],"p5":true},{"text":"QUAD_STRIP","type":"var","params":[],"p5":true},{"text":"TESS","type":"var","params":[],"p5":true},{"text":"CLOSE","type":"var","params":[],"p5":true},{"text":"OPEN","type":"var","params":[],"p5":true},{"text":"CHORD","type":"var","params":[],"p5":true},{"text":"PIE","type":"var","params":[],"p5":true},{"text":"PROJECT","type":"var","params":[],"p5":true},{"text":"SQUARE","type":"var","params":[],"p5":true},{"text":"ROUND","type":"var","params":[],"p5":true},{"text":"BEVEL","type":"var","params":[],"p5":true},{"text":"MITER","type":"var","params":[],"p5":true},{"text":"RGB","type":"var","params":[],"p5":true},{"text":"HSB","type":"var","params":[],"p5":true},{"text":"HSL","type":"var","params":[],"p5":true},{"text":"AUTO","type":"var","params":[],"p5":true},{"text":"ALT","type":"var","params":[],"p5":true},{"text":"BACKSPACE","type":"var","params":[],"p5":true},{"text":"CONTROL","type":"var","params":[],"p5":true},{"text":"DELETE","type":"var","params":[],"p5":true},{"text":"DOWN_ARROW","type":"var","params":[],"p5":true},{"text":"ENTER","type":"var","params":[],"p5":true},{"text":"ESCAPE","type":"var","params":[],"p5":true},{"text":"LEFT_ARROW","type":"var","params":[],"p5":true},{"text":"OPTION","type":"var","params":[],"p5":true},{"text":"RETURN","type":"var","params":[],"p5":true},{"text":"RIGHT_ARROW","type":"var","params":[],"p5":true},{"text":"SHIFT","type":"var","params":[],"p5":true},{"text":"TAB","type":"var","params":[],"p5":true},{"text":"UP_ARROW","type":"var","params":[],"p5":true},{"text":"BLEND","type":"var","params":[],"p5":true},{"text":"REMOVE","type":"var","params":[],"p5":true},{"text":"ADD","type":"var","params":[],"p5":true},{"text":"DARKEST","type":"var","params":[],"p5":true},{"text":"LIGHTEST","type":"var","params":[],"p5":true},{"text":"DIFFERENCE","type":"var","params":[],"p5":true},{"text":"SUBTRACT","type":"var","params":[],"p5":true},{"text":"EXCLUSION","type":"var","params":[],"p5":true},{"text":"MULTIPLY","type":"var","params":[],"p5":true},{"text":"SCREEN","type":"var","params":[],"p5":true},{"text":"REPLACE","type":"var","params":[],"p5":true},{"text":"OVERLAY","type":"var","params":[],"p5":true},{"text":"HARD_LIGHT","type":"var","params":[],"p5":true},{"text":"SOFT_LIGHT","type":"var","params":[],"p5":true},{"text":"DODGE","type":"var","params":[],"p5":true},{"text":"BURN","type":"var","params":[],"p5":true},{"text":"THRESHOLD","type":"var","params":[],"p5":true},{"text":"GRAY","type":"var","params":[],"p5":true},{"text":"OPAQUE","type":"var","params":[],"p5":true},{"text":"INVERT","type":"var","params":[],"p5":true},{"text":"POSTERIZE","type":"var","params":[],"p5":true},{"text":"DILATE","type":"var","params":[],"p5":true},{"text":"ERODE","type":"var","params":[],"p5":true},{"text":"BLUR","type":"var","params":[],"p5":true},{"text":"NORMAL","type":"var","params":[],"p5":true},{"text":"ITALIC","type":"var","params":[],"p5":true},{"text":"BOLD","type":"var","params":[],"p5":true},{"text":"BOLDITALIC","type":"var","params":[],"p5":true},{"text":"CHAR","type":"var","params":[],"p5":true},{"text":"WORD","type":"var","params":[],"p5":true},{"text":"LINEAR","type":"var","params":[],"p5":true},{"text":"QUADRATIC","type":"var","params":[],"p5":true},{"text":"BEZIER","type":"var","params":[],"p5":true},{"text":"CURVE","type":"var","params":[],"p5":true},{"text":"STROKE","type":"var","params":[],"p5":true},{"text":"FILL","type":"var","params":[],"p5":true},{"text":"TEXTURE","type":"var","params":[],"p5":true},{"text":"IMMEDIATE","type":"var","params":[],"p5":true},{"text":"IMAGE","type":"var","params":[],"p5":true},{"text":"NEAREST","type":"var","params":[],"p5":true},{"text":"REPEAT","type":"var","params":[],"p5":true},{"text":"CLAMP","type":"var","params":[],"p5":true},{"text":"MIRROR","type":"var","params":[],"p5":true},{"text":"LANDSCAPE","type":"var","params":[],"p5":true},{"text":"PORTRAIT","type":"var","params":[],"p5":true},{"text":"GRID","type":"var","params":[],"p5":true},{"text":"AXES","type":"var","params":[],"p5":true},{"text":"LABEL","type":"var","params":[],"p5":true},{"text":"FALLBACK","type":"var","params":[],"p5":true},{"text":"CONTAIN","type":"var","params":[],"p5":true},{"text":"COVER","type":"var","params":[],"p5":true},{"text":"print","type":"fun","params":[{"p":"contents","o":false}],"p5":true},{"text":"frameCount","type":"var","params":[],"p5":true},{"text":"deltaTime","type":"var","params":[],"p5":true},{"text":"focused","type":"var","params":[],"p5":true},{"text":"cursor","type":"fun","params":[{"p":"type","o":false},{"p":"x","o":true},{"p":"y","o":true}],"p5":true},{"text":"frameRate","type":"fun","p5":true},{"text":"getTargetFrameRate","type":"fun","p5":true},{"text":"noCursor","type":"fun","p5":true},{"text":"displayWidth","type":"var","params":[],"p5":true},{"text":"displayHeight","type":"var","params":[],"p5":true},{"text":"windowWidth","type":"var","params":[],"p5":true},{"text":"windowHeight","type":"var","params":[],"p5":true},{"text":"windowResized","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"width","type":"var","params":[],"p5":true},{"text":"height","type":"var","params":[],"p5":true},{"text":"fullscreen","type":"fun","params":[{"p":"val","o":true}],"p5":true},{"text":"pixelDensity","type":"fun","p5":true},{"text":"displayDensity","type":"fun","p5":true},{"text":"getURL","type":"fun","p5":true},{"text":"getURLPath","type":"fun","p5":true},{"text":"getURLParams","type":"fun","p5":true},{"text":"preload","type":"fun","p5":true},{"text":"setup","type":"fun","p5":true},{"text":"draw","type":"fun","p5":true},{"text":"remove","type":"fun","p5":true},{"text":"disableFriendlyErrors","type":"var","params":[],"p5":true},{"text":"createCanvas","type":"fun","params":[{"p":"w","o":false},{"p":"h","o":false},{"p":"renderer","o":true}],"p5":true},{"text":"resizeCanvas","type":"fun","params":[{"p":"w","o":false},{"p":"h","o":false},{"p":"noRedraw","o":true}],"p5":true},{"text":"noCanvas","type":"fun","p5":true},{"text":"createGraphics","type":"fun","params":[{"p":"w","o":false},{"p":"h","o":false},{"p":"renderer","o":true}],"p5":true},{"text":"blendMode","type":"fun","params":[{"p":"mode","o":false}],"p5":true},{"text":"drawingContext","type":"var","params":[],"p5":true},{"text":"noLoop","type":"fun","p5":true},{"text":"loop","type":"fun","p5":true},{"text":"isLooping","type":"fun","p5":true},{"text":"push","type":"fun","p5":true},{"text":"pop","type":"fun","p5":true},{"text":"redraw","type":"fun","params":[{"p":"n","o":true}],"p5":true},{"text":"p5","type":"fun","params":[{"p":"sketch","o":false},{"p":"node","o":false}],"p5":true},{"text":"applyMatrix","type":"fun","p5":true},{"text":"resetMatrix","type":"fun","p5":true},{"text":"rotate","type":"fun","params":[{"p":"angle","o":false},{"p":"axis","o":true}],"p5":true},{"text":"rotateX","type":"fun","params":[{"p":"angle","o":false}],"p5":true},{"text":"rotateY","type":"fun","params":[{"p":"angle","o":false}],"p5":true},{"text":"rotateZ","type":"fun","params":[{"p":"angle","o":false}],"p5":true},{"text":"scale","type":"fun","p5":true},{"text":"shearX","type":"fun","params":[{"p":"angle","o":false}],"p5":true},{"text":"shearY","type":"fun","params":[{"p":"angle","o":false}],"p5":true},{"text":"translate","type":"fun","p5":true},{"text":"storeItem","type":"fun","params":[{"p":"key","o":false},{"p":"value","o":false}],"p5":true},{"text":"getItem","type":"fun","params":[{"p":"key","o":false}],"p5":true},{"text":"clearStorage","type":"fun","p5":true},{"text":"removeItem","type":"fun","params":[{"p":"key","o":false}],"p5":true},{"text":"createStringDict","type":"fun","p5":true},{"text":"createNumberDict","type":"fun","p5":true},{"text":"select","type":"fun","params":[{"p":"selectors","o":false},{"p":"container","o":true}],"p5":true},{"text":"selectAll","type":"fun","params":[{"p":"selectors","o":false},{"p":"container","o":true}],"p5":true},{"text":"removeElements","type":"fun","p5":true},{"text":"changed","type":"fun","params":[{"p":"fxn","o":false}],"p5":true},{"text":"input","type":"fun","params":[{"p":"fxn","o":false}],"p5":true},{"text":"createDiv","type":"fun","params":[{"p":"html","o":true}],"p5":true},{"text":"createP","type":"fun","params":[{"p":"html","o":true}],"p5":true},{"text":"createSpan","type":"fun","params":[{"p":"html","o":true}],"p5":true},{"text":"createImg","type":"fun","p5":true},{"text":"createA","type":"fun","params":[{"p":"href","o":false},{"p":"html","o":false},{"p":"target","o":true}],"p5":true},{"text":"createSlider","type":"fun","params":[{"p":"min","o":false},{"p":"max","o":false},{"p":"value","o":true},{"p":"step","o":true}],"p5":true},{"text":"createButton","type":"fun","params":[{"p":"label","o":false},{"p":"value","o":true}],"p5":true},{"text":"createCheckbox","type":"fun","params":[{"p":"label","o":true},{"p":"value","o":true}],"p5":true},{"text":"createSelect","type":"fun","p5":true},{"text":"createRadio","type":"fun","p5":true},{"text":"createColorPicker","type":"fun","params":[{"p":"value","o":true}],"p5":true},{"text":"createInput","type":"fun","p5":true},{"text":"createFileInput","type":"fun","params":[{"p":"callback","o":false},{"p":"multiple","o":true}],"p5":true},{"text":"createVideo","type":"fun","params":[{"p":"src","o":false},{"p":"callback","o":true}],"p5":true},{"text":"createAudio","type":"fun","params":[{"p":"src","o":true},{"p":"callback","o":true}],"p5":true},{"text":"createCapture","type":"fun","params":[{"p":"type","o":false},{"p":"callback","o":true}],"p5":true},{"text":"createElement","type":"fun","params":[{"p":"tag","o":false},{"p":"content","o":true}],"p5":true},{"text":"deviceOrientation","type":"var","params":[],"p5":true},{"text":"accelerationX","type":"var","params":[],"p5":true},{"text":"accelerationY","type":"var","params":[],"p5":true},{"text":"accelerationZ","type":"var","params":[],"p5":true},{"text":"pAccelerationX","type":"var","params":[],"p5":true},{"text":"pAccelerationY","type":"var","params":[],"p5":true},{"text":"pAccelerationZ","type":"var","params":[],"p5":true},{"text":"rotationX","type":"var","params":[],"p5":true},{"text":"rotationY","type":"var","params":[],"p5":true},{"text":"rotationZ","type":"var","params":[],"p5":true},{"text":"pRotationX","type":"var","params":[],"p5":true},{"text":"pRotationY","type":"var","params":[],"p5":true},{"text":"pRotationZ","type":"var","params":[],"p5":true},{"text":"turnAxis","type":"var","params":[],"p5":true},{"text":"setMoveThreshold","type":"fun","params":[{"p":"value","o":false}],"p5":true},{"text":"setShakeThreshold","type":"fun","params":[{"p":"value","o":false}],"p5":true},{"text":"deviceMoved","type":"fun","p5":true},{"text":"deviceTurned","type":"fun","p5":true},{"text":"deviceShaken","type":"fun","p5":true},{"text":"keyIsPressed","type":"var","params":[],"p5":true},{"text":"key","type":"var","params":[],"p5":true},{"text":"keyCode","type":"var","params":[],"p5":true},{"text":"keyPressed","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"keyReleased","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"keyTyped","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"keyIsDown","type":"fun","params":[{"p":"code","o":false}],"p5":true},{"text":"movedX","type":"var","params":[],"p5":true},{"text":"movedY","type":"var","params":[],"p5":true},{"text":"mouseX","type":"var","params":[],"p5":true},{"text":"mouseY","type":"var","params":[],"p5":true},{"text":"pmouseX","type":"var","params":[],"p5":true},{"text":"pmouseY","type":"var","params":[],"p5":true},{"text":"winMouseX","type":"var","params":[],"p5":true},{"text":"winMouseY","type":"var","params":[],"p5":true},{"text":"pwinMouseX","type":"var","params":[],"p5":true},{"text":"pwinMouseY","type":"var","params":[],"p5":true},{"text":"mouseButton","type":"var","params":[],"p5":true},{"text":"mouseIsPressed","type":"var","params":[],"p5":true},{"text":"mouseMoved","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"mouseDragged","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"mousePressed","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"mouseReleased","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"mouseClicked","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"doubleClicked","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"mouseWheel","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"requestPointerLock","type":"fun","p5":true},{"text":"exitPointerLock","type":"fun","p5":true},{"text":"touches","type":"var","params":[],"p5":true},{"text":"touchStarted","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"touchMoved","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"touchEnded","type":"fun","params":[{"p":"event","o":true}],"p5":true},{"text":"createImage","type":"fun","params":[{"p":"width","o":false},{"p":"height","o":false}],"p5":true},{"text":"saveCanvas","type":"fun","p5":true},{"text":"saveFrames","type":"fun","params":[{"p":"filename","o":false},{"p":"extension","o":false},{"p":"duration","o":false},{"p":"framerate","o":false},{"p":"callback","o":true}],"p5":true},{"text":"loadImage","type":"fun","params":[{"p":"path","o":false},{"p":"successCallback","o":true},{"p":"failureCallback","o":true}],"p5":true},{"text":"saveGif","type":"fun","params":[{"p":"filename","o":false},{"p":"duration","o":false},{"p":"options","o":false}],"p5":true},{"text":"image","type":"fun","p5":true},{"text":"tint","type":"fun","p5":true},{"text":"noTint","type":"fun","p5":true},{"text":"imageMode","type":"fun","params":[{"p":"mode","o":false}],"p5":true},{"text":"pixels","type":"var","params":[],"p5":true},{"text":"blend","type":"fun","p5":true},{"text":"copy","type":"fun","p5":true},{"text":"filter","type":"fun","params":[{"p":"filterType","o":false},{"p":"filterParam","o":true}],"p5":true},{"text":"get","type":"fun","p5":true},{"text":"loadPixels","type":"fun","p5":true},{"text":"set","type":"fun","params":[{"p":"x","o":false},{"p":"y","o":false},{"p":"c","o":false}],"p5":true},{"text":"updatePixels","type":"fun","params":[{"p":"x","o":true},{"p":"y","o":true},{"p":"w","o":true},{"p":"h","o":true}],"p5":true},{"text":"loadJSON","type":"fun","p5":true},{"text":"loadStrings","type":"fun","params":[{"p":"filename","o":false},{"p":"callback","o":true},{"p":"errorCallback","o":true}],"p5":true},{"text":"loadTable","type":"fun","params":[{"p":"filename","o":false},{"p":"extension","o":true},{"p":"header","o":true},{"p":"callback","o":true},{"p":"errorCallback","o":true}],"p5":true},{"text":"loadXML","type":"fun","params":[{"p":"filename","o":false},{"p":"callback","o":true},{"p":"errorCallback","o":true}],"p5":true},{"text":"loadBytes","type":"fun","params":[{"p":"file","o":false},{"p":"callback","o":true},{"p":"errorCallback","o":true}],"p5":true},{"text":"httpGet","type":"fun","p5":true},{"text":"httpPost","type":"fun","p5":true},{"text":"httpDo","type":"fun","p5":true},{"text":"createWriter","type":"fun","params":[{"p":"name","o":false},{"p":"extension","o":true}],"p5":true},{"text":"save","type":"fun","params":[{"p":"objectOrFilename","o":true},{"p":"filename","o":true},{"p":"options","o":true}],"p5":true},{"text":"saveJSON","type":"fun","params":[{"p":"json","o":false},{"p":"filename","o":false},{"p":"optimize","o":true}],"p5":true},{"text":"saveStrings","type":"fun","params":[{"p":"list","o":false},{"p":"filename","o":false},{"p":"extension","o":true},{"p":"isCRLF","o":true}],"p5":true},{"text":"saveTable","type":"fun","params":[{"p":"Table","o":false},{"p":"filename","o":false},{"p":"options","o":true}],"p5":true},{"text":"abs","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"ceil","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"constrain","type":"fun","params":[{"p":"n","o":false},{"p":"low","o":false},{"p":"high","o":false}],"p5":true},{"text":"dist","type":"fun","p5":true},{"text":"exp","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"floor","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"lerp","type":"fun","params":[{"p":"start","o":false},{"p":"stop","o":false},{"p":"amt","o":false}],"p5":true},{"text":"log","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"mag","type":"fun","params":[{"p":"a","o":false},{"p":"b","o":false}],"p5":true},{"text":"map","type":"fun","params":[{"p":"value","o":false},{"p":"start1","o":false},{"p":"stop1","o":false},{"p":"start2","o":false},{"p":"stop2","o":false},{"p":"withinBounds","o":true}],"p5":true},{"text":"max","type":"fun","p5":true},{"text":"min","type":"fun","p5":true},{"text":"norm","type":"fun","params":[{"p":"value","o":false},{"p":"start","o":false},{"p":"stop","o":false}],"p5":true},{"text":"pow","type":"fun","params":[{"p":"n","o":false},{"p":"e","o":false}],"p5":true},{"text":"round","type":"fun","params":[{"p":"n","o":false},{"p":"decimals","o":true}],"p5":true},{"text":"sq","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"sqrt","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"fract","type":"fun","params":[{"p":"num","o":false}],"p5":true},{"text":"createVector","type":"fun","params":[{"p":"x","o":true},{"p":"y","o":true},{"p":"z","o":true}],"p5":true},{"text":"noise","type":"fun","params":[{"p":"x","o":false},{"p":"y","o":true},{"p":"z","o":true}],"p5":true},{"text":"noiseDetail","type":"fun","params":[{"p":"lod","o":false},{"p":"falloff","o":false}],"p5":true},{"text":"noiseSeed","type":"fun","params":[{"p":"seed","o":false}],"p5":true},{"text":"randomSeed","type":"fun","params":[{"p":"seed","o":false}],"p5":true},{"text":"random","type":"fun","p5":true},{"text":"randomGaussian","type":"fun","params":[{"p":"mean","o":true},{"p":"sd","o":true}],"p5":true},{"text":"acos","type":"fun","params":[{"p":"value","o":false}],"p5":true},{"text":"asin","type":"fun","params":[{"p":"value","o":false}],"p5":true},{"text":"atan","type":"fun","params":[{"p":"value","o":false}],"p5":true},{"text":"atan2","type":"fun","params":[{"p":"y","o":false},{"p":"x","o":false}],"p5":true},{"text":"cos","type":"fun","params":[{"p":"angle","o":false}],"p5":true},{"text":"sin","type":"fun","params":[{"p":"angle","o":false}],"p5":true},{"text":"tan","type":"fun","params":[{"p":"angle","o":false}],"p5":true},{"text":"degrees","type":"fun","params":[{"p":"radians","o":false}],"p5":true},{"text":"radians","type":"fun","params":[{"p":"degrees","o":false}],"p5":true},{"text":"angleMode","type":"fun","p5":true},{"text":"textAlign","type":"fun","p5":true},{"text":"textLeading","type":"fun","p5":true},{"text":"textSize","type":"fun","p5":true},{"text":"textStyle","type":"fun","p5":true},{"text":"textWidth","type":"fun","params":[{"p":"theText","o":false}],"p5":true},{"text":"textAscent","type":"fun","p5":true},{"text":"textDescent","type":"fun","p5":true},{"text":"textWrap","type":"fun","params":[{"p":"wrapStyle","o":false}],"p5":true},{"text":"loadFont","type":"fun","params":[{"p":"path","o":false},{"p":"callback","o":true},{"p":"onError","o":true}],"p5":true},{"text":"text","type":"fun","params":[{"p":"str","o":false},{"p":"x","o":false},{"p":"y","o":false},{"p":"x2","o":true},{"p":"y2","o":true}],"p5":true},{"text":"textFont","type":"fun","p5":true},{"text":"append","type":"fun","params":[{"p":"array","o":false},{"p":"value","o":false}],"p5":true},{"text":"arrayCopy","type":"fun","p5":true},{"text":"concat","type":"fun","params":[{"p":"a","o":false},{"p":"b","o":false}],"p5":true},{"text":"reverse","type":"fun","params":[{"p":"list","o":false}],"p5":true},{"text":"shorten","type":"fun","params":[{"p":"list","o":false}],"p5":true},{"text":"shuffle","type":"fun","params":[{"p":"array","o":false},{"p":"bool","o":true}],"p5":true},{"text":"sort","type":"fun","params":[{"p":"list","o":false},{"p":"count","o":true}],"p5":true},{"text":"splice","type":"fun","params":[{"p":"list","o":false},{"p":"value","o":false},{"p":"position","o":false}],"p5":true},{"text":"subset","type":"fun","params":[{"p":"list","o":false},{"p":"start","o":false},{"p":"count","o":true}],"p5":true},{"text":"float","type":"fun","params":[{"p":"str","o":false}],"p5":true},{"text":"int","type":"fun","p5":true},{"text":"str","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"boolean","type":"fun","params":[{"p":"n","o":false}],"p5":true},{"text":"byte","type":"fun","p5":true},{"text":"char","type":"fun","p5":true},{"text":"unchar","type":"fun","p5":true},{"text":"hex","type":"fun","p5":true},{"text":"unhex","type":"fun","p5":true},{"text":"join","type":"fun","params":[{"p":"list","o":false},{"p":"separator","o":false}],"p5":true},{"text":"match","type":"fun","params":[{"p":"str","o":false},{"p":"regexp","o":false}],"p5":true},{"text":"matchAll","type":"fun","params":[{"p":"str","o":false},{"p":"regexp","o":false}],"p5":true},{"text":"nf","type":"fun","p5":true},{"text":"nfc","type":"fun","p5":true},{"text":"nfp","type":"fun","p5":true},{"text":"nfs","type":"fun","p5":true},{"text":"split","type":"fun","params":[{"p":"value","o":false},{"p":"delim","o":false}],"p5":true},{"text":"splitTokens","type":"fun","params":[{"p":"value","o":false},{"p":"delim","o":true}],"p5":true},{"text":"trim","type":"fun","p5":true},{"text":"day","type":"fun","p5":true},{"text":"hour","type":"fun","p5":true},{"text":"minute","type":"fun","p5":true},{"text":"millis","type":"fun","p5":true},{"text":"month","type":"fun","p5":true},{"text":"second","type":"fun","p5":true},{"text":"year","type":"fun","p5":true},{"text":"plane","type":"fun","params":[{"p":"width","o":true},{"p":"height","o":true},{"p":"detailX","o":true},{"p":"detailY","o":true}],"p5":true},{"text":"box","type":"fun","params":[{"p":"width","o":true},{"p":"height","o":true},{"p":"depth","o":true},{"p":"detailX","o":true},{"p":"detailY","o":true}],"p5":true},{"text":"sphere","type":"fun","params":[{"p":"radius","o":true},{"p":"detailX","o":true},{"p":"detailY","o":true}],"p5":true},{"text":"cylinder","type":"fun","params":[{"p":"radius","o":true},{"p":"height","o":true},{"p":"detailX","o":true},{"p":"detailY","o":true},{"p":"bottomCap","o":true},{"p":"topCap","o":true}],"p5":true},{"text":"cone","type":"fun","params":[{"p":"radius","o":true},{"p":"height","o":true},{"p":"detailX","o":true},{"p":"detailY","o":true},{"p":"cap","o":true}],"p5":true},{"text":"ellipsoid","type":"fun","params":[{"p":"radiusx","o":true},{"p":"radiusy","o":true},{"p":"radiusz","o":true},{"p":"detailX","o":true},{"p":"detailY","o":true}],"p5":true},{"text":"torus","type":"fun","params":[{"p":"radius","o":true},{"p":"tubeRadius","o":true},{"p":"detailX","o":true},{"p":"detailY","o":true}],"p5":true},{"text":"orbitControl","type":"fun","params":[{"p":"sensitivityX","o":true},{"p":"sensitivityY","o":true},{"p":"sensitivityZ","o":true}],"p5":true},{"text":"debugMode","type":"fun","p5":true},{"text":"noDebugMode","type":"fun","p5":true},{"text":"ambientLight","type":"fun","p5":true},{"text":"specularColor","type":"fun","p5":true},{"text":"directionalLight","type":"fun","p5":true},{"text":"pointLight","type":"fun","p5":true},{"text":"lights","type":"fun","p5":true},{"text":"lightFalloff","type":"fun","params":[{"p":"constant","o":false},{"p":"linear","o":false},{"p":"quadratic","o":false}],"p5":true},{"text":"spotLight","type":"fun","p5":true},{"text":"noLights","type":"fun","p5":true},{"text":"loadModel","type":"fun","p5":true},{"text":"model","type":"fun","params":[{"p":"model","o":false}],"p5":true},{"text":"loadShader","type":"fun","params":[{"p":"vertFilename","o":false},{"p":"fragFilename","o":false},{"p":"callback","o":true},{"p":"errorCallback","o":true}],"p5":true},{"text":"createShader","type":"fun","params":[{"p":"vertSrc","o":false},{"p":"fragSrc","o":false}],"p5":true},{"text":"shader","type":"fun","params":[{"p":"s","o":false}],"p5":true},{"text":"resetShader","type":"fun","p5":true},{"text":"texture","type":"fun","params":[{"p":"tex","o":false}],"p5":true},{"text":"textureMode","type":"fun","params":[{"p":"mode","o":false}],"p5":true},{"text":"textureWrap","type":"fun","params":[{"p":"wrapX","o":false},{"p":"wrapY","o":true}],"p5":true},{"text":"normalMaterial","type":"fun","p5":true},{"text":"ambientMaterial","type":"fun","p5":true},{"text":"emissiveMaterial","type":"fun","p5":true},{"text":"specularMaterial","type":"fun","p5":true},{"text":"shininess","type":"fun","params":[{"p":"shine","o":false}],"p5":true},{"text":"camera","type":"fun","params":[{"p":"x","o":true},{"p":"y","o":true},{"p":"z","o":true},{"p":"centerX","o":true},{"p":"centerY","o":true},{"p":"centerZ","o":true},{"p":"upX","o":true},{"p":"upY","o":true},{"p":"upZ","o":true}],"p5":true},{"text":"perspective","type":"fun","params":[{"p":"fovy","o":true},{"p":"aspect","o":true},{"p":"near","o":true},{"p":"far","o":true}],"p5":true},{"text":"ortho","type":"fun","params":[{"p":"left","o":true},{"p":"right","o":true},{"p":"bottom","o":true},{"p":"top","o":true},{"p":"near","o":true},{"p":"far","o":true}],"p5":true},{"text":"frustum","type":"fun","params":[{"p":"left","o":true},{"p":"right","o":true},{"p":"bottom","o":true},{"p":"top","o":true},{"p":"near","o":true},{"p":"far","o":true}],"p5":true},{"text":"createCamera","type":"fun","p5":true},{"text":"setCamera","type":"fun","params":[{"p":"cam","o":false}],"p5":true},{"text":"setAttributes","type":"fun","p5":true},{"text":"getAudioContext","type":"fun","p5":true},{"text":"userStartAudio","type":"fun","params":[{"p":"elements","o":true},{"p":"callback","o":true}],"p5":true},{"text":"getOutputVolume","type":"fun","p5":true},{"text":"outputVolume","type":"fun","params":[{"p":"volume","o":false},{"p":"rampTime","o":true},{"p":"timeFromNow","o":true}],"p5":true},{"text":"soundOut","type":"var","params":[],"p5":true},{"text":"sampleRate","type":"fun","p5":true},{"text":"freqToMidi","type":"fun","params":[{"p":"frequency","o":false}],"p5":true},{"text":"midiToFreq","type":"fun","params":[{"p":"midiNote","o":false}],"p5":true},{"text":"soundFormats","type":"fun","params":[{"p":"formats","o":true}],"p5":true},{"text":"saveSound","type":"fun","params":[{"p":"soundFile","o":false},{"p":"fileName","o":false}],"p5":true},{"text":"loadSound","type":"fun","params":[{"p":"path","o":false},{"p":"successCallback","o":true},{"p":"errorCallback","o":true},{"p":"whileLoading","o":true}],"p5":true},{"text":"createConvolver","type":"fun","params":[{"p":"path","o":false},{"p":"callback","o":true},{"p":"errorCallback","o":true}],"p5":true},{"text":"setBPM","type":"fun","params":[{"p":"BPM","o":false},{"p":"rampTime","o":false}],"p5":true},{"text":"true","type":"boolean","p5":"boolean"},{"text":"false","type":"boolean","p5":"boolean"},{"text":"await","type":"keyword","p5":false},{"text":"break","type":"keyword","p5":false},{"text":"case","type":"keyword","p5":false},{"text":"catch","type":"keyword","p5":false},{"text":"class","type":"keyword","p5":"class"},{"text":"const","type":"keyword","p5":"const"},{"text":"continue","type":"keyword","p5":false},{"text":"debugger","type":"keyword","p5":false},{"text":"default","type":"keyword","p5":false},{"text":"delete","type":"keyword","p5":false},{"text":"do","type":"keyword","p5":false},{"text":"else","type":"keyword","p5":"if-else"},{"text":"export","type":"keyword","p5":false},{"text":"extends","type":"keyword","p5":false},{"text":"finally","type":"keyword","p5":false},{"text":"for","type":"keyword","p5":"for"},{"text":"function","type":"keyword","p5":"function"},{"text":"if","type":"keyword","p5":"if-else"},{"text":"import","type":"keyword","p5":false},{"text":"in","type":"keyword","p5":false},{"text":"instanceof","type":"keyword","p5":false},{"text":"new","type":"keyword","p5":false},{"text":"return","type":"keyword","p5":"return"},{"text":"super","type":"keyword","p5":false},{"text":"switch","type":"keyword","p5":false},{"text":"this","type":"keyword","p5":false},{"text":"throw","type":"keyword","p5":false},{"text":"try","type":"keyword","p5":false},{"text":"typeof","type":"keyword","p5":false},{"text":"var","type":"keyword","p5":false},{"text":"void","type":"keyword","p5":false},{"text":"while","type":"keyword","p5":"while"},{"text":"with","type":"keyword","p5":false},{"text":"yield","type":"keyword","p5":false},{"text":"let","type":"keyword","p5":"let"},{"text":"Array","type":"obj","p5":false},{"text":"Boolean","type":"obj","p5":false},{"text":"Date","type":"obj","p5":false},{"text":"Error","type":"obj","p5":false},{"text":"Function","type":"obj","p5":false},{"text":"JSON","type":"obj","p5":"JSON"},{"text":"Math","type":"obj","p5":false},{"text":"Number","type":"obj","p5":false},{"text":"Object","type":"obj","p5":false},{"text":"RegExp","type":"obj","p5":false},{"text":"String","type":"obj","p5":false},{"text":"Promise","type":"obj","p5":false},{"text":"Set","type":"obj","p5":false},{"text":"Map","type":"obj","p5":false},{"text":"Symbol","type":"obj","p5":false},{"text":"WeakMap","type":"obj","p5":false},{"text":"WeakSet","type":"obj","p5":false},{"text":"ArrayBuffer","type":"obj","p5":false},{"text":"DataView","type":"obj","p5":false},{"text":"Int32Array","type":"obj","p5":false},{"text":"Uint32Array","type":"obj","p5":false},{"text":"Float32Array","type":"obj","p5":false},{"text":"window","type":"obj","p5":false},{"text":"document","type":"obj","p5":false},{"text":"navigator","type":"obj","p5":false},{"text":"console","type":"obj","p5":"console"},{"text":"localStorage","type":"obj","p5":false},{"text":"sessionStorage","type":"obj","p5":false},{"text":"history","type":"obj","p5":false},{"text":"location","type":"obj","p5":false}]; diff --git a/server/scripts/update-p5-hinter.js b/server/scripts/update-p5-hinter.js index b563c8a8cc..a6a667eac4 100644 --- a/server/scripts/update-p5-hinter.js +++ b/server/scripts/update-p5-hinter.js @@ -6,6 +6,77 @@ const axios = require('axios'); // return d.split('\n')[0].replace('', ''); // }; +const reservedKeywords = [ + { name: 'await', p5DocPath: false }, + { name: 'break', p5DocPath: false }, + { name: 'case', p5DocPath: false }, + { name: 'catch', p5DocPath: false }, + { name: 'class', p5DocPath: 'class' }, + { name: 'const', p5DocPath: 'const' }, + { name: 'continue', p5DocPath: false }, + { name: 'debugger', p5DocPath: false }, + { name: 'default', p5DocPath: false }, + { name: 'delete', p5DocPath: false }, + { name: 'do', p5DocPath: false }, + { name: 'else', p5DocPath: 'if-else' }, + { name: 'export', p5DocPath: false }, + { name: 'extends', p5DocPath: false }, + { name: 'finally', p5DocPath: false }, + { name: 'for', p5DocPath: 'for' }, + { name: 'function', p5DocPath: 'function' }, + { name: 'if', p5DocPath: 'if-else' }, + { name: 'import', p5DocPath: false }, + { name: 'in', p5DocPath: false }, + { name: 'instanceof', p5DocPath: false }, + { name: 'new', p5DocPath: false }, + { name: 'return', p5DocPath: 'return' }, + { name: 'super', p5DocPath: false }, + { name: 'switch', p5DocPath: false }, + { name: 'this', p5DocPath: false }, + { name: 'throw', p5DocPath: false }, + { name: 'try', p5DocPath: false }, + { name: 'typeof', p5DocPath: false }, + { name: 'var', p5DocPath: false }, + { name: 'void', p5DocPath: false }, + { name: 'while', p5DocPath: 'while' }, + { name: 'with', p5DocPath: false }, + { name: 'yield', p5DocPath: false }, + { name: 'let', p5DocPath: 'let' } +]; + +const reservedObjects = [ + { name: 'Array', p5DocPath: false }, + { name: 'Boolean', p5DocPath: false }, + { name: 'Date', p5DocPath: false }, + { name: 'Error', p5DocPath: false }, + { name: 'Function', p5DocPath: false }, + { name: 'JSON', p5DocPath: 'JSON' }, + { name: 'Math', p5DocPath: false }, + { name: 'Number', p5DocPath: false }, + { name: 'Object', p5DocPath: false }, + { name: 'RegExp', p5DocPath: false }, + { name: 'String', p5DocPath: false }, + { name: 'Promise', p5DocPath: false }, + { name: 'Set', p5DocPath: false }, + { name: 'Map', p5DocPath: false }, + { name: 'Symbol', p5DocPath: false }, + { name: 'WeakMap', p5DocPath: false }, + { name: 'WeakSet', p5DocPath: false }, + { name: 'ArrayBuffer', p5DocPath: false }, + { name: 'DataView', p5DocPath: false }, + { name: 'Int32Array', p5DocPath: false }, + { name: 'Uint32Array', p5DocPath: false }, + { name: 'Float32Array', p5DocPath: false }, + { name: 'window', p5DocPath: false }, + { name: 'document', p5DocPath: false }, + { name: 'navigator', p5DocPath: false }, + { name: 'console', p5DocPath: 'console' }, + { name: 'localStorage', p5DocPath: false }, + { name: 'sessionStorage', p5DocPath: false }, + { name: 'history', p5DocPath: false }, + { name: 'location', p5DocPath: false } +]; + axios .get('https://p5js.org/reference/data.json') .then((response) => { @@ -22,17 +93,51 @@ axios obj.itemtype ) { let type; - if (obj.itemtype === 'method') type = 'fun'; - else if (obj.itemtype === 'property') type = 'var'; - else type = 'attr'; + let params = []; + if (obj.itemtype === 'method') { + type = 'fun'; + + params = obj.params?.map((param) => ({ + p: param.name, // param name + o: param.optional ?? false // optional + })); + } else if (obj.itemtype === 'property') { + type = 'var'; + } else type = 'attr'; p5Keywords.push({ text: obj.name, - type + type, + params, + p5: true }); } }); + ['true', 'false'].forEach((bol) => { + p5Keywords.push({ + text: bol, + type: 'boolean', + p5: 'boolean' + }); + }); + + reservedKeywords.forEach((keyword) => { + p5Keywords.push({ + text: keyword.name, + type: 'keyword', + p5: keyword.p5DocPath + }); + }); + + reservedObjects.forEach((keyword) => { + p5Keywords.push({ + text: keyword.name, + type: 'obj', + p5: keyword.p5DocPath + }); + }); + const keywords = JSON.stringify(p5Keywords); let generatedCode = '/* eslint-disable */\n';