🦘 Jump into the repositories (git, mercurial…) of your filesystem with telescope.nvim, without any setup

Hi, it’s Clément! 👋
I’m currently working as a software engineer at Paxos in London, building exciting things with blockchains. Before that, I worked with technologies like eBPF or Rust at Cloudflare. Previously, I worked on non-intrusive performance analysis at the SnT, a lab part of the University of Luxembourg.
In my spare time, I enjoy writing and contributing to open-source programs. Most of that activity is visible on GitHub and Stackoverflow. I blog mainly about performance and tools I use (like NeoVim, Hugo or SQLite). Some pages made it to the front page of HackerNews or Lobsters, sparking fruitful discussions in the comments. I sometimes talk in conferences.
Selected Software Projects
Readme in Static Site
💎 Transform and insert your GitHub readme in your static site.
Rusqlite Migration
↕️ Simple database schema migration library for rusqlite, written with performance in mind.
Gohugo Asciinema
⏯️ Insert the Asciinema Player in your Hugo site with ease.
On the Blog
Generating Snippets with LuaSnip in Neovim
TL;DR When you have many variations of the same snippet, one option is to generate those with Lua code. The complete example is at the end. I’ve recently moved to LuaSnip as my snippets plugin for Neovim. When I first started, I sticked to the simplest features of LuaSnip, in particular the SnipMate-like syntax for snippets. But I have now started to explore the more distinctive features of LuaSnip, like Lua-defined snippets....
Rust Default Values for Maintainability
TL;DR The Default trait can enhance the maintenability of your code. Default values for common types are listed at the end. A PR Review Recently, while reviewing a PR1, I noticed that part of the patch was introducing a new field to a struct: 1diff --git a/src/lib.rs b/src/lib.rs 2index eba9a3a..8619e06 100644 3--- a/src/lib.rs 4+++ b/src/lib.rs 5@@ -106,8 +108,9 @@ use std::{ 6 #[derive(Debug, PartialEq, Clone)] 7 pub struct M<'u> { 8 up: &'u str, 9 down: Option<&'u str>, 10+ foreign_key_check: bool, 11 } 12 13 impl<'u> M<'u> { 14@@ -137,8 +140,9 @@ impl<'u> M<'u> { 15 pub const fn up(sql: &'u str) -> Self { 16 Self { 17 up: sql, 18 down: None, 19+ foreign_key_check: false, 20 } 21 } That prompted me to reflect on the code I had initially written....
From UltiSnips to LuaSnip
TL;DR LuaSnip is fast and doesn’t have to be complicated. Give it a try! Even if that article shows how LuaSnip shines, I have great respect for the work that has gone into UltiSnips. It is still a reliable, reasonably fast plugin given the constraint it operates in (in particular, Vim compatibility requires a fair amount of Vimscript). I’ve written this article shortly after trying LuaSnip and I’m still very much evaluating it....