5 ms·
As an extension writer... Writing extensions in Lua is huge. (Same as OBS) Looks very simple and productive. It's one of the main reasons I've stuck to Sublim
by geenat 2y ago
As an extension writer...
Writing extensions in Lua is huge. (Same as OBS) Looks very simple and productive.
It's one of the main reasons I've stuck to Sublime... extending with Python is very easy and works everywhere.
Even if both Zed and VSCode are strong in other areas.. Rust extensions makes me cringe (a build toolchain? ugh..) VSCode's inconsistent undocumented Javascript API is a pain in the butt (paste & pray driven development).
Will be keeping an eye on this.
- ta8645 2y agoFor what it's worth, NeoVim's extension language is Lua as well.
- srik 2y agoYup. I've paradoxically found it more convenient to write my neovim plugins+configuration in lua than in python with vanilla vim's python api.
- coliveira 2y agoVim also has support for Lua scripts.
- maleldil 2y agoNot to the same extent. Neovim has extensive Lua support, to the point where you can do _almost_ anything in Lua, whereas in Vim, it's, AFAIK, a second-class citizen. For example, my nvim config is written entirely in Lua with no vimscript files, except for a few vim.cmd's that run one-line vimscript commands. (exactly three, and they're all highlighting/colorscheme–related).
- coliveira 2y agoI believe you can do the same in vim, however I agree that there is more friction in vim because Lua is not the main scripting language. Moreover, vim is not guaranteed to be compiled with Lua, so you only want to do this if you can control the installation of the vim binaries.
- throwup238 2y ago> VSCode's inconsistent undocumented Javascript API is a pain in the butt (paste & pray driven development). It's so bad they have a whole Github Copilot mode specifically dedicated to it. Pay and pray driven development.
- lukan 2y agoOh and I kind of finally decided to give those shiny modern tools a serious try. Paste (pay) and pray does not sound too good on the other hand.
- p4bl0 2y agoThat's what I really love with Kate (and actually the KTextEditor component of KDE Frameworks): you can build heavy plugins in C++ but there is also a very good JavaScript API that you can write new editing commands with for example.
- rd07 2y agoLite XL (which is a project Pragtical forked on) is my first experience writing a plugin for code editor and coding in Lua, and I am surprised on how easy is it. I don't know about other editors, but in Lite XL and Pragtical I can extend or overwrite almost anything the core plugin is doing. I can even start writing the plugin in my user module file (init.lua), and see the change on the fly.
- kqr 2y agoThis is inspired by Emacs which works the same way. It, in turn, takes inspiration from how Lisp systems have worked since time immemorial. You're meant to open a REPL directly into the running system as a way to evolve it.
- hprotagonist 2y agoand the circle is complete: https://fennel-lang.org https://fennel-lang.org
- pjmlp 2y agoYeah, I always complain about Python lack of JIT, but being extension language is actually a good use for it. Or Tcl, which I used 20 years ago as for our in-house proxy module for Apache/IIS, extensible in C and Tcl. Unfortunely out of fashion for anyone besides EDA tooling.
- theshrike79 2y agoWezterm is configured with Lua, Hammerspoon configs are also Lua. Both are super easy to sync to multiple computers with chezmoi and the configs themselves can be smart enough to behave differently on different machines. I wish more software used Lua for config.
- daelon 2y agoI'm a VSCode extension author and I don't really know what you mean by "inconsistent undocumented API". Do you have any examples?
- golergka 2y agoI haven't written much vscode extensions, but I've worked professionally on editors that use Monaco (the text editor library used and developed by vscode team). There's almost no documentation whatsoever.