This project has a custom lisp interpreter built within kotlin multiplatform, Allowing support for manipulating UI and buffers, opening/splitting windows, writing files and evaluating code and alot more!
This is a Kotlin Multiplatform project targeting Android, iOS, Web, Desktop, Server.
- ./gradlew wasmJsBrowserRun -t (web run)
- ./gradlew kotlinUpgradeYarnLock (yarn upgrade)
You can open the web application by running the `:composeApp:wasmJsBrowserDevelopmentRun` Gradle task.
This is a Kotlin Multiplatform project targeting Android, iOS, Web, Desktop, Server.
It contains several subfolders:
- `commonMain` is for code that’s common for all targets.
- Other folders are for Kotlin code that will be compiled for only the platform indicated in the folder name. For example, if you want to use Apple’s CoreCrypto for the iOS part of your Kotlin app, `iosMain` would be the right folder for such calls.
you need this entry point for your iOS app. This is also where you should add SwiftUI code for your project.
The most important subfolder is `commonMain`. If preferred, you can add code to the platform-specific folders here too.
./gradlew wasmJsBrowserRun -t
Learn more about [Kotlin Multiplatform](https://www.jetbrains.com/help/kotlin-multiplatform-dev/get-started.html), [Compose Multiplatform](https://github.com/JetBrains/compose-multiplatform/#compose-multiplatform), [Kotlin/Wasm](https://kotl.in/wasm/)…
We would appreciate your feedback on Compose/Web and Kotlin/Wasm in the public Slack channel [#compose-web](https://slack-chats.kotlinlang.org/c/compose-web). If you face any issues, please report them on [GitHub](https://github.com/JetBrains/compose-multiplatform/issues).
You can open the web application by running the `:composeApp:wasmJsBrowserDevelopmentRun` Gradle task.
./gradlew kotlinUpgradeYarnLock
./gradlew wasmJsBrowserDistribution
Desktop deb release? composeApp -> Tasks -> compose desktop -> packageReleaseDeb
UI/App
- [ ] add varible hooks into app color scheme
- [ ] the mini-buffer prompt open/close
- [ ] mini-buffer auto complete
- [ ] macro support
- [X] support mutliple windows
- [ ] support split window displaying multiple buffers
- [X] fully impl kelwindow focusing
- [ ] add https://github.com/Animeshz/keyboard-mouse-kt support
- [ ] Add paren match highlighting in minibuffer
- [X] adapt wasmjs build to be able to connect to remote server
- [X] add command history, (as a default buffer?)
- [X] Add selectable/copyable text
- [ ] Convert minibuffer prompt to only have one (regardless of # of windows), it needs to take in an arg EX: (web-mode) -> prompts in minibuffer “URL: ” -> then run “(web-mode %s)”
- [ ] add swipe gesture shortcuts?
- [ ] Add emacs like top menu bar with options for things to do
name space commands
- [X] delete-buffer command
- [X] add read-buffer command (read-buffer “BUFFER-NAME”) => “returns the buffer contents as malstring”
- [X] add write-buffer command (write-buffer “BUFFER-NAME” “contents”) => NIL returns NIL, append writes string to buffer contents
- [ ] add read-remote-file
- [ ] write remote-file
- [ ] repeat-complex-arg
- [X] split-window-right
- [X] eval-buffer
- [ ] save-file command (save-file CURRENT-BUFFER) => NIL (save buffer contents into file)
Buffers
- [ ] add file-path to kelBuffer, allowing name to be more of a display name
- [X] add major-mode to kelbuffer
- [ ] html major mode w/ html render
- [ ] major mode generic syntax highlighting
- [X] Add basic buffer-list mode
- [ ] Add dired mode
- [X] org rendering
- [ ] md rendering
- [X] basic Image render Mode
- [X] editable buffers
MAL
- [ ] finish MAL language
- [ ] Add support for Async functions
- [ ] add safe typing and documentation for functions.
- [ ] add HttpClient with hooks for integrating into MAL
