Build extension plugins for EasyEDA Pro. Provides a complete API query workflow, code generation standards, and debugging toolchain.
index.d.ts first; if not found = does not existgrepSearch; no results = do not useedalocalStorage, window, document; allowed inside iframeApplicable:
@jlceda/pro-api-typesextension.json, locales i18n files, or build processeseext-dev-mcp MCP toolsNot applicable:
extension.json and user did not request initializationAPI type definition location: the index.d.ts file bundled with this Skill (sourced from @jlceda/pro-api-types). Always search in this file; do not look in node_modules.
bash
grepSearch "SCH_PrimitiveComponent" # Schematic component class
grepSearch "PCB_PrimitiveVia" # PCB via class
bash
grepSearch "sch_PrimitiveComponent:" # Note the colon
grepSearch "dmt_SelectControl:" # Verify mount path
bash
grepSearch "getCurrentDocumentInfo"
Then use readFile to read the full signature and confirm parameter types and return type.
bash
# Search the returned interface type to confirm it has the needed methods
grepSearch "ISCH_PrimitiveComponent$1" # Interfaces with $1 suffix usually have more methods
No search results = does not exist. Do not use!
try/catchgrepSearch found the method name; confirmed return typereadFile read the full signature; confirmed all parameter types and countseda.xxx_YYY class exists in the class EDA property listgetAllPrimitiveId, must use a concrete type (not an abstract class)documentType valuesRequirement❌ Forbidden✅ RecommendedGet user input-eda.sys_Dialog.showInputDialog()User selection-eda.sys_Dialog.showSelectDialog()Show messagealert()``eda.sys_Dialog.showInformationMessage()Confirm actionconfirm()``eda.sys_Dialog.showConfirmationMessage()Toast notificationDOM manipulationeda.sys_Message.showToastMessage()Store datalocalStorage (main process)eda.sys_Storage.setExtensionUserConfig(key, value)Custom UIManipulate host DOMeda.sys_IFrame.openIFrame()Show HTMLshowInformationMessage(html)Must use iframeOpen linkwindow.open()``eda.sys_Window.open()Browser hardware APIUse in main processAvailable in iframe ( navigator.serial, etc.)IFrame data passing(window as any).__xxx = data (main process and iframe window are isolated); window.parent.eda✅ Option A (recommended): Store with eda.sys_Storage.setExtensionUserConfig(key, value), read in iframe with getExtensionUserConfig(key); ✅ Option B: Call eda API directly from iframe (both main process and iframe can access the eda object; just use eda directly)
When extension.json does not exist in the workspace:
bash
git clone https://github.com/easyeda/pro-api-sdk.git <project-name>
cd <project-name>
npm install
npm run compile
eda.sys_* alternativesmy-plugin-home, my-plugin-sch)resources/api-reference.mdresources/experience.mdresources/api-reference.md