![]() ![]() ![]() I say mostly 'cause well, I'm fairly pragmatic about it. It quickly got me on my way to build an experimental dynamic module introducing a native context menu for sharing files from my beloved editor. While I'm new to Savchenko's emacs-swift-module, the project has wonderful documentation. Native extensions written in Swift can open up some some neat integrations using native macOS UX/APIs. While I wish I had done it earlier, I also wish emacs-swift-module had gotten more visibility. I also happen to have an iOS dev background, so when Valeriy Savchenko announced his project bringing Emacs dynamic modules powered by Swift, I added it to my never-ending list of things to try out.įast-forward to a year later, and Roife's introduction to emt finally gave me that much-needed nudge to give emacs-swift-module a try. Most of my Emacs-bending adventures have been powered by elisp, primarily on macOS. Emacs 25 enabled us to further extend things by loading native dynamic modules, back in 2016. I say almost, as there's a comparatively small native core, that would typically require recompiling if you wanted to make further (native) mods. ![]() Throw some elisp at it, and you can customize or extend almost anything to your heart's content. A live playground of sorts, where almost everything is up for grabs at runtime. Once you learn a little elisp, Emacs becomes this hyper malleable editor/platform. While I don't typically resort to macros, we get a little syntatic sugar here, so we can invoke like so: Most of the snippet styles our new frame and invokes the body parameter. :background "#2a2a2a" :foreground 'unspecified) (set-face-attribute 'ivy-current-match frame `( let* ((buffer (get-buffer-create (generate-new-buffer-name "*present*"))) ![]() "Create a buffer with BUFFER-NAME and eval BODY in a basic frame." ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |