Comments (7)
If extensions have a JS API, it would be great if they can be standard ESM instead of CJS like Nova requires for its extensions:
https://docs.nova.app/extensions/#javascript-modules
CJS makes it tricky (but not impossible) to author extensions using Deno or other standards-aligned tooling without introducing a build step.
from codeedit.
Hi @jaydenseric.
Thanks for joining the discussion. @austincondiff and I talked about this and it has been brought up in our Discord too.
Since it is early in the development, no decisions have been made in relation to the extension architecture. JavaScript Core (https://developer.apple.com/documentation/javascriptcore) has been mentioned as a possible option for implementing extensions. Unfortunately, as far as I am aware, it does not support ESM.
Having developed some extensions for Nova, I know this has been a frustration shared by other devs too. And, hopefully we can find a final solution that supports ESM. We also have an extensions channel in our Discord if you would like to get involved in the conversation.
from codeedit.
Related: https://github.com/CodeEditApp/CodeEditTextView/issues/40 .
from codeedit.
Whether or not the host environment supports ESM, it should be straightforward to provide a standard bit of boilerplate to make bundling it into a version which handles module scopes etc. easy for end user developers. (I'm happy to provide some input that way if/as you get there; just ping me about it!) Related: please do what Nova has not yet done and build your JS API in TypeScript and shipping types natively. (I'm also happy to advise on that!)
from codeedit.
@chriskrycho That would definitely be ideal for a JS/TS API. We'd love to hear what you had in mind!
from codeedit.
What about an extension system via WebAssembly? You could use WasmKit.
from codeedit.
If extensions have a JS API, it would be great if they can be standard ESM instead of CJS like Nova requires for its extensions:
https://docs.nova.app/extensions/#javascript-modules
CJS makes it tricky (but not impossible) to author extensions using Deno or other standards-aligned tooling without introducing a build step.
How do you plan to run the JS? Cuz if you were using Bun, the whole CJS/ESM thing wouldn’t be such a problem, since Bun supports both, even in the same file.
from codeedit.
Related Issues (20)
- ✨ Enable User to Choose a Selection Color In Themes Settings
- ✨ Enable User to Choose a Cursor Color In Themes Settings
- ✨ Enable User to Choose a Current Line Color In Themes Settings
- ✨ Enable User to Bold and Italicize Text in Theme Settings
- ✨ Standardize Themes HOT 3
- ✨ ^⌘0 should reset font size back to default HOT 3
- 🐞 Autosave broken HOT 3
- 🐞 CodeEdit is hanging when open new window HOT 2
- ✨ Can macOS12 version be supported? HOT 1
- 🐞 Can not close or adjust debug panel after adjust debug panel to maximum height HOT 4
- Support Gitea
- I really wanna see such a perfect app for andriod.😃 HOT 2
- 🐞 Git branches selector doesn't allow to scroll HOT 1
- ✨ Git branches selector quality of life improvements HOT 1
- ✨ Repositories list tags and remotes HOT 1
- 🐞 Problem with the color of the icons HOT 7
- 🐞 Fuzzy Search not working as expected
- 🧐 Research a new solution for file management HOT 1
- ✨ Pull requests section to be able to add a new remote
- 🐞 C++ "<<" attempts to autocomplete even after disabling completing quotations HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from codeedit.