aboutsummaryrefslogtreecommitdiff
path: root/content/posts/2023-05-22-crafting-stories-in-zed-editor.md
blob: f5240da26a738b31eccd38cb2e137f5655652314 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
---
title: From General Zod to Superman - Crafting Stories in Zed Editor
url: crafting-stories-in-zed-editor.html
date: 2023-05-22T12:00:00+02:00
draft: false
---

Pretentious title! Good start! I have nothing to add to this discussion. I just 
like this editor and wanted to write something here that will remind me to 
use it again in a while when/if it becomes available for Linux.

**TLDR:** I think this code editor is very cool and has a massive potential. 
I hope they don’t mess up with adding a plugin ecosystem to it!

Out of morbid curiosity, I started using the [Zed editor](https://zed.dev/) 
on my Mac. Zed is a high-performance, multiplayer code editor developed by 
the creators of Atom and Tree-sitter. Written in Rust so it has to be 
blazingly fast! 😊 It's a joke, calm down.

Over the past year, I have switched between [Helix editor](https://helix-editor.com/) 
and [VS Code](https://code.visualstudio.com/), but for the last couple of 
months, I have been using Helix exclusively.

I've been genuinely impressed by Zed. When you open a file, it automatically 
detects its type and downloads the corresponding [LSP (language server)](https://en.wikipedia.org/wiki/Language_Server_Protocol). 
The list of supported languages is not extensive, but it's still impressive. 
It's a great example of how to create a product that stays out of your way.

![Zed 1](/assets/zed/zed-1.png?style=bigimg)

For C development it downloaded [clangd](https://clangd.llvm.org/) and setting 
up missing dependencies in code was rather easy. For this project I use 
[SDL2](https://www.libsdl.org/) for rendering terminal emulator. It’s a 
hobby project, don’t worry about it.

If you are going to give this a try and you are using C, I suggest checking 
two files in the root of your project folder. If you don't have them, 
create them.

**compile_flags.txt**

```
-I/opt/homebrew/include
-I/opt/homebrew/include/SDL2
```

Easy way of checking what the appropriate includes for a specific library is 
to use `pkg-config` and in my case `pkg-config SDL2 --cflags-only-I`. But this 
is nothing new to C/C++ devs. Just a noter for people who are using Visual 
Studio.

**.clang-format**

```
ColumnLimit: 220
BasedOnStyle: Mozilla
```

I prefer Mozilla coding style for C so you can set that up.

They really have something special here. Although there is no version available 
for Linux yet, I will stick to Helix. This impressive piece of engineering is, 
above all, an amazing example of craftsmanship.

They have a bunch of amazing integrated functionalities like live desktop 
sharing, code sharing in a live coding session. There is a lot of pretentious 
marketing speak there but the product is still amazing!

For me the speed and the simplicity of the product was the most impressive 
thing. You get that: it just works feeling. A rare thing in 2023.

![Zed 2](/assets/zed/zed-2.png?style=bigimg)

They also managed to add [Github Copilot](https://github.com/features/copilot) 
in a non obtrusive way. To me, everything feels very intentional and 
specifically selected. It's minimal yet maximally effective.

<video src="https://zed.dev/img/post/copilot/copilot-demo.webm" autoplay loop></video>

It is a perfect balance between VS Code, Jetbrains IDE’s and something like 
VIM or Helix.

I just hope they **DON’T** add plugin support and keep it like it is. They as a 
vendor should add stuff to it with great deliberation and thought. And this 
way the product will stay fast and focused. That’s my two cents.

Amazing job!