Gram 3.4.0 released

61 points by FedericoSchonborn 20 hours ago on lobsters | 11 comments

I switched to Gram when the 1.0 came out and it's such a nice project. I enjoy the editor a lot (especially compared to my neovim setup at the time which was succumbing more and more to entropy), and contributing to it has since become a bit of a hobby project. I really enjoy its focus on code quality and reducing complexity rather than constantly pushing for more and more features.

For this release, I landed a change which just gives you a command to download and install the server binary via ssh if you're trying to do remote editing against a host without a server in the right place, and I rewrote the protocol to use postcard instead of protobuf (for significant complexity and compile time wins). Compared to mega projects like VS Code and Zed, it feels like my contributions actually matter since it's a small team; and my work enriches the community rather than some company.

It's empowering for your tools to be small projects which you can take part in moulding. And it helps that the community is nice.

patchunwrap | 12 hours ago

Thank you for contributing back to it, I've been really thankful that something like gram is available for me to use.

Thank you too! It always annoyed me to have to hunt for mod.rs in some random place in the middle of a long list of files, makes sense to hoist it to the top. I've gone and enabled smart sort now!

patchunwrap | 12 hours ago

Add smart sort for project panel: mod.rs sorts first (#541) by @patchunwrap

I contributed to this one! I've been wanting to contribute to open source projects for a while. It's been a weirdly scary prospect but also quite a fun one.

Gram is such a satisfying editor to use and I very much look forward to a new extension system and an improved language server configuration flow. Currently language server binaries are installed and run through Node/NPM, I wonder if these could be bundled within Gram in some way to prevent additional installation steps

zetashift | 16 hours ago

Gram and flow(-gui) are the two editors that are "new" that I've been enjoying very much whenever I try them out. Both don't have an extension something[0] (yet!), so it'll be interesting to see what kind of approach they'll take. Both have the amp jump feature that I really enjoy using because it made me stop spamming jjjjjjjklll.

[0]: yes Zed/Gram have an extension system, but I think it's so specific to LS/tree-sitter/themes that I don't know what to think of it. Such a cool buffer system and I can't pipe any data to/from other sources!

At least in the case of Gram, a better extension system is something we're thinking about! It'll probably take a while, but it would be cool to let extensions do more than just provide language server commands and tree-sitter grammars.

zetashift | 13 hours ago

it would be cool to let extensions do more than just provide language server commands and tree-sitter grammars.

I think so too! It'll be interesting to see what the maintainers are settling on when the time is right(no rush from me :P).

Some questions that pop up when thinking about the design:

  • will it still be WASM based?
  • will it be Rust or something more script-y like Lisp or Lua.
  • will it be able to modify (little|medium|a lot) of the state of the text editor?

Not asking for answers here, but it is fun to philosophize about it.

So what I personally have been looking into, and what we've very loosely agreed is an interesting direction in the XMPP chat, is to integrate Lua. I have an experimental branch where extensions can provide an LSP command through a Lua script rather than Rust code, and that does work. But replacing current functionality with Lua is a tiny amount of work compared to exposing actual new and interesting functionality to Lua.

zetashift | 12 hours ago

Lua seems like a safe bet, I'll be keeping an eye out for the progress. And meanwhile I can just search for nice XMPP clients, been a while.

hugoarnal | 13 hours ago

Side by side view for Git diffs

Now I’m terribly interested… One of the reasons I’m still so addicted to VSCode is the Git extension. It’s definitely not perfect but it’s really good and intuitive for what I do. I’m going to give Gram another try later when I have time!