<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Zed on MoskitoHero</title><link>/tags/zed/</link><description>Recent content in Zed on MoskitoHero</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 16 Jun 2026 06:52:46 +0200</lastBuildDate><atom:link href="/tags/zed/index.xml" rel="self" type="application/rss+xml"/><item><title>My Dream Ide Does Not Exist</title><link>/post/2026-06-16-my-dream-ide-does-not-exist/</link><pubDate>Tue, 16 Jun 2026 06:52:46 +0200</pubDate><guid>/post/2026-06-16-my-dream-ide-does-not-exist/</guid><description>Random thoughts about my erratic / frenetic search for the perfect IDE, and why I keep switching between Emacs, Neovim, Zed (and Helix). What do I even want?</description><content:encoded><![CDATA[<div class="paragraph">
<p><a href="https://www.gnu.org/software/emacs/">Emacs</a> is my main IDE. It is powerful, versatile, and very stable. It has a few limitations I can live with,
like the absence of multi-threading, which sometimes gets in the way on rare occasions. Native compilation gave it
wings and the <a href="https://github.com/doomemacs">Doom configuration layer</a> enables an improved UX, great keybindings and sane defaults. Did I mention Org,
and more particularly <a href="https://www.orgroam.com">Org-Roam</a>?</p>
</div>
<div class="paragraph">
<p>On a side note, <code>Elisp (is a (nightmare (of brackets (you) need to (follow through) (and count) (which (I suck at)))))</code> — more on that in another post about programming language UX and why I love Ruby. But in the end, I can live with a few crashes here
and there as I get lost in the bracket maze when editing my <code>config.el</code>. I can count.</p>
</div>
<div class="paragraph">
<p>That said, there is <strong>some</strong> friction involved when using Emacs. MacOS integration is not perfect, especially when it
comes to managing the emacs daemon. I cannot make <a href="https://github.com/svaante/dape">Dape</a> (the DAP mode for emacs) work with ruby. I also find the UI to be
a little slow: typing has a tiny slight delay which kind of gets annoying in a subtle way. And that slaps you in
your face when you open <a href="https://neovim.io">Neovim</a>.</p>
</div>
<div class="paragraph">
<p>I’m a TUI nerd, so Neovim is one of the alternatives I turn to when I get bored or annoyed at Emacs. Like Emacs with Doom,
Neovim has the <a href="https://www.lazyvim.org">LazyVim</a> configuration layer to ease most of that side of things. Lua has a much better UX than Elisp, and
man, the whole beast is <strong>blazing fast</strong>, both in terms of loading time, overall snappiness, and typing rendering. Some
plugins are really better than the Emacs stuff (thinking about
<a href="https://github.com/kristijanhusak/vim-dadbod-ui">vim-dadbod-ui</a> — what a funky name, btw), some less (try to beat
Vertico + Marginalia + Orderless). Debugging ruby stuff works out of the box.</p>
</div>
<div class="paragraph">
<p>I have made my Neovim as similar to my Doom emacs configuration as possible, so switching is close to seamless. But I
miss a good integrated terminal experience - I am not very happy with how <code>:terminal</code> behaves, and it feels kind of odd
to open a terminal inside an IDE which lives in a terminal. I am trying to find a way to overcome this, but for now,
this is where some of the friction comes from.</p>
</div>
<div class="paragraph">
<p>This is usually when I open <a href="https://zed.dev">Zed</a>.</p>
</div>
<div class="paragraph">
<p>(Well, sometimes, I will start a <a href="https://helix-editor.com">Helix</a> session, get excited by the speed and simplicity, and then get frustrated for
 <a href="https://github.com/helix-editor/helix/discussions/3806">the lack of a plugin system</a> — mainly for git/JJ, running tests and that stuff — read the <a href="https://github.com/helix-editor/helix/blob/master/CHANGELOG.md">11-month-old release notes</a> and
related issue/PR threads, realize this is not going anywhere, and <strong>only then</strong>, open Zed.)</p>
</div>
<div class="paragraph">
<p>Zed is cool. It is like VScode stripped of the bloat and all the Microsoft cringe. It is sexy. Its development is
moving fast. It features AI as a first-class citizen, but does not shove it up to your face without asking you first, and you can ignore it altogether. Zed respects
its users by trying to serve them with a good product, not shove <code>&lt;paste the latest hype&gt;</code> junk down their throat to
get ready for the next VC fund. At least for now.</p>
</div>
<div class="paragraph">
<p>Zed is not a TUI, but <a href="https://zed.dev/blog/videogame">it is damn fast</a>. I get all the snappiness of Neovim, along with most keybindings. I get a rich
plugin ecosystem. But it is still somewhat limited compared to Emacs and Neovim — I am not blaming the Zed team,
though, I am comparing a 4-year-old project to IDE veterans (considering Neovim and its ecosystem is built on the
foundations of Vim).</p>
</div>
<div class="paragraph">
<p>Zed is currently lacking a Telescope-like picker (<a href="https://github.com/zed-industries/zed/pull/46478">but it is coming</a>), a merge tool, and a more capable plugin system to
be able to connect to, and manage your database, for instance, or offer the possibility to manage <a href="https://github.com/jj-vcs/jj">Jujutsu</a> natively (you
can do some of that stuff with workarounds, mainly with tasks). But the main friction comes from the Vim keymap
integration: it is good, but it is not available everywhere…​ like, you cannot do some stuff when in menu mode. So
if you want a mouse-less  experience, it just does not cut it.</p>
</div>
<div class="paragraph">
<p>So I launch Emacs…​ Emacs is where I feel at home, wearing my comfy slippers. I am editing the final draft of this post in Emacs right now, actually.</p>
</div>
<div class="paragraph">
<p>But that’s until I get frustrated again and decide to launch Neovim again…​</p>
</div>
<div class="paragraph">
<p>What is wrong with me? 🙄</p>
</div>
]]></content:encoded></item><item><title>Zed Turtle Extension</title><link>/post/2025-05-19-zed-turtle-extension/</link><pubDate>Mon, 19 May 2025 00:00:00 +0000</pubDate><guid>/post/2025-05-19-zed-turtle-extension/</guid><description>I have just released the first version of a Zed extension for the Turtle format.</description><content:encoded><![CDATA[<div class="paragraph">
<p>I have just released the first version of <a href="https://github.com/MoskitoHero/zed-turtle">a Zed extension for the Turtle format</a>.</p>
</div>
<div class="sect1">
<h2 id="zed"><a class="anchor" href="#zed"></a>Zed?</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="https://zed.dev">Zed</a> is a very cool text editor / IDE by the creators of Atom and Tree-Sitter. It is written in Rust and it caught my interest because it is very very lean, it has Vim, JetBrains, VSCode, Helix and Emacs keybindings and a growing extension system. It has multiple advantages (at least in my opinion) over the competition, and I feel it builds upon other IDEs’ strengths while being very pleasant to use. It has pair-programming and remote development baked-in from day one.
Most importantly, it is not owned by a multi-billionnaire-led, fascist-supporting company that will eventually sunset or paywall the product once the whole world is addicted to it. And yes, it features AI, MCP and agentic editing if that’s your thing, but that’s something you can turn off, which I did.
Zed is currently driving me away from Emacs (and that means <em>something</em> if you ask me). You really should give it a try. <a href="https://zed.dev/download">Stop reading and download it</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="turtle"><a class="anchor" href="#turtle"></a>Turtle?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>That’s the RDF file format I use extensively at work. It renders RDF graph triplets in a readable format, making it easier to manage than plain RDF/XML or JSON-LD other semantic web file formats.
This is an sample Turtle file:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="rouge highlight"><code data-lang="turtle"><span class="kd">@prefix</span><span class="w"> </span><span class="nn">rdf:</span><span class="w"> </span><span class="nl">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;</span><span class="w"> </span><span class="p">.</span><span class="w">
</span><span class="kd">@prefix</span><span class="w"> </span><span class="nn">dc:</span><span class="w"> </span><span class="nl">&lt;http://purl.org/dc/elements/1.1/&gt;</span><span class="w"> </span><span class="p">.</span><span class="w">
</span><span class="kd">@prefix</span><span class="w"> </span><span class="nn">ex:</span><span class="w"> </span><span class="nl">&lt;http://example.org/stuff/1.0/&gt;</span><span class="w"> </span><span class="p">.</span><span class="w">

</span><span class="s">&#39;&#39;</span><span class="n">&#39;

</span><span class="nl">&lt;http://www.w3.org/TR/rdf-syntax-grammar&gt;</span><span class="w">
  </span><span class="nn">dc:</span><span class="n">title</span><span class="w"> </span><span class="s">&#34;RDF/XML Syntax Specification (Revised)&#34;</span><span class="w"> </span><span class="p">;</span><span class="w">
  </span><span class="nn">ex:</span><span class="n">editor</span><span class="w"> </span><span class="p">[</span><span class="w">
    </span><span class="nn">ex:</span><span class="n">fullname</span><span class="w"> </span><span class="s">&#34;Dave Beckett&#34;</span><span class="p">;</span><span class="w">
    </span><span class="nn">ex:</span><span class="n">homePage</span><span class="w"> </span><span class="nl">&lt;http://purl.org/net/dajobe/&gt;</span><span class="w">
  </span><span class="p">]</span><span class="w"> </span><span class="p">.</span></code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="extension"><a class="anchor" href="#extension"></a>Extension?</h2>
<div class="sectionbody">
<div class="paragraph">
<p>So why a RDF extension?
As I was editing .ttl files for work in Zed, I started looking for an extension to highlight my code and navigate through it, but didn’t find one. So I decided to create my own!
I looked at the Zed developer documentation, took a little inspiration from existing extensions and started writing my very first Rust lines of code — which was another motivation for starting that endeavor.
All I had to do is gather resources scattered here and there on the internet:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>A <a href="https://github.com/GordianDziwis/tree-sitter-turtle">ready-made tree-sitter project</a> for Turtle</p>
</li>
<li>
<p>A language server available <a href="https://github.com/stardog-union/stardog-language-servers">here</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>…​and write a few lines of code to turn those into usable Zed features.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="the-features"><a class="anchor" href="#the-features"></a>The features</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Here is what the extension does for now:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Code highlighting</p>
</li>
<li>
<p>Symbol navigation</p>
</li>
<li>
<p>LSP — the server is automatically downloaded when you edit your first Turtle document.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>What I plan on adding in a near future is:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Formatting</p>
</li>
<li>
<p>SHACL validation</p>
</li>
<li>
<p>A better LSP with go to definition / implementation (and maybe formatting as part of the LSP)</p>
</li>
</ul>
</div>
<div class="paragraph">
<p><span class="image"><img src="/assets/img/zed-turtle.png" alt="The Zed Turtle extension featuring the symbol navigation"/></span>
<em>The Zed Turtle extension featuring the symbol navigation</em></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="what-you-can-do"><a class="anchor" href="#what-you-can-do"></a>What you can do</h2>
<div class="sectionbody">
<div class="paragraph">
<p>I hope the plugin serves both the Zed and the Semantic Web communities.
If you are interested in this extension, do not hesitate to <a href="https://zed.dev/extensions?query=turtle">give it a try</a>, <a href="https://github.com/MoskitoHero/zed-turtle/issues">report issues or add feature requests</a>, or even <a href="https://github.com/MoskitoHero/zed-turtle/pulls">give me a hand</a> to improve it!</p>
</div>
</div>
</div>
]]></content:encoded></item></channel></rss>