A lightweight, embeddable JavaScript code editor built on Ace Editor, designed specifically for the EasyEDA Pro environment. Supports syntax highlighting, intelligent autocompletion, custom dictionaries, and one-click code execution.
- Built-in themes and customization: Primitive styles support customization, all colors can be switched
- JavaScript syntax highlighting & intelligent autocompletion
- Top scrollable function sidebar (reserved for future extensions)
- Custom dictionary support: Internal API can be injected for intelligent hints
- Zero-dependency dynamic loading: All resources are statically referenced, no network requests required
- Responsive layout: Adapted for iframe embedding scenarios
/iframe/
└── script/
└── Ace_Editor/ # Ace core resources (must be deployed to this path)
├── ace.js
├── ext-language_tools.js
├── mode-javascript.js
├── theme-monokai.js
└── worker-javascript.js (optional)
└── main/
└── index.html # Main page of this editor
Ensure that the Ace_Editor/ folder has been fully uploaded to the /iframe/script/ directory of the EDA server.
Add custom completion rules in the initialization script of index.html:
// Example: Add dictionary
editor.completers.push({
getCompletions: function (editor, session, pos, prefix, callback) {
var completions = [
{ name: 'myFunction', value: 'myFunction', score: 1000, meta: 'custom' },
// ... other completion items
];
callback(null, completions);
},
});Supports dynamic dictionary updates, suitable for internal SDKs or platform APIs.
| Library | Version | License | Purpose |
|---|---|---|---|
| Ace Editor | 1.36+ | BSD-3-Clause | Code editor core |
| SweetAlert2 | 11.26.17 | MIT | Modal dialogs |
| JSZip | 3.10.1 | MIT OR GPL-3.0-or-later (MIT chosen here) | Project import/export ZIP |
| highlight.js | 11.9.0 | BSD-3-Clause | AI chat code highlighting |
| marked | 15.0.12 | MIT | Markdown rendering |
| js-beautify | — | MIT | Code formatting |
| Library | Version | License | Purpose |
|---|---|---|---|
| @jlceda/pro-api-types | ^0.1.175 | Apache-2.0 | EDA API type definitions |
| TypeScript | ^5.7.3 | Apache-2.0 | Type checking & compilation |
| esbuild | ^0.24.2 | MIT | Bundling & building |
| ESLint | ^8.57.0 | MIT | Code linting |
| Prettier | ^3.4.2 | MIT | Code formatting |
| husky | ^9.1.7 | MIT | Git hooks |
| lint-staged | ^15.3.0 | MIT | Staged files checking |
| rimraf | ^6.0.1 | ISC | Cross-platform file cleanup |
| ts-node | ^10.9.2 | MIT | TS script execution |
| fs-extra | ^11.3.0 | MIT | Enhanced file operations |
| JSZip | ^3.10.1 | MIT OR GPL-3.0-or-later (MIT chosen) | Build packaging |
| @microsoft/tsdoc | ^0.15.1 | MIT | TSDoc parsing |
| @trivago/prettier-plugin-sort-imports | ^5.2.1 | Apache-2.0 | Import sorting |
| ignore | ^7.0.3 | MIT | .gitignore rule parsing |
All dependencies use permissive open source licenses (MIT / BSD / Apache-2.0 / ISC). There are no GPL or other copyleft licenses with mandatory viral requirements.
JSZip uses a dual license (MIT OR GPL-3.0-or-later), and this project chooses the MIT license.
This project is released under the Apache-2.0 license. The UI and integration code may be freely used for internal development.
Made with ❤️ for EDA developers Happy Coding!






