0:00 / 0:00
nvim + vim9script: how Rust made it happen
TJ DeVries
119K subscribers • 4 videos on Hallway
- Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
- Presented by TJ DeVries
- Linked in the descriptiontjdevries/vim9jitneovim/neovim
Intermediate. Assumes working knowledge.
49K views3 years ago2 recommendations
Systems programmingProgramming languagesCompilers and interpretersRustLanguage design and type systems
TJ DeVries explains how they built a compiler in Rust to translate Vim9script into Lua for Neovim.
In this crazy show and tell episode, I tell you about how we made #vim's new vim9script language compile to #lua inside of #neovim using #rust. Pretty exciting day for me :) Project: - github.com/tjdevries/vim9jit Thorsten Book: interpreterbook.com/ PRs Linked: - github.com/neovim/neovim/pull/21623 - github.com/neovim/neovim/pull/21662 Neovim - Instant IDE: youtu.be/stqUbv-5u2s PDE Video: youtu.be/QMVIJhC9Veg ### Twitch We're always live streamin on twitch!Twitch : twitch.tv/teej_dv Discord: discord.gg/h2yeg4wrSK ### Links Twitch: twitch.tv/teej_dv Twitter: twitter.com/teej_dv Github: github.com/tjdevries ### Editor All my videos are edited by Flip. Give him a follow! twitter.com/flipmediaprod #coding #neovim #typescript #programming #vim #softwareengineering #codinglife #webdesign #webdevelopment #webdev #javascript #rustlang #rust #twitch #twitchstreamer #programmerhumor #codinghumor #software #softwareengineer #softwaredeveloper #softwaredevelopment #rust #rustlangWhy it's here
2 people recommend thisWhat people say. Recommended for its interesting breakdown of lexing, parsing, and testing a compiler written in Rust.
glacambreon Lobsters • Recommends
nvim + vim9script: how Rust made it happen
This video contains multiple topics that I found interesting:
- 00:00 - 06:36: problem, constraints and solution
- 06:36 - 08:30: lexer
- 08:30 - 11:55: lexer "snapshot" or "golden" testing leveraging `cargo test` and `cargo insta review`
- 11:55 - 14:45: parser
- 14:45 - 16:15: testing the generated code
- 16:15 - 19:20: what the generated code looks like, how it integrates with neovim's vimscript runtime