Menu
Sign In Search Podcasts Charts People & Topics Add Podcast API Pricing

Conrad Irwin

๐Ÿ‘ค Speaker
459 total appearances

Appearances Over Time

Podcast Appearances

Rust in Production
Zed with Conrad Irwin

Why is that? Because the people who want Vim Mode can't live without it, and everyone else is like, I don't care about this. So that's true for not every feature we build, but a number of them. We've been working on Jupyter Notebooks, for example, and people who need Jupyter Notebooks, they love that feature. And everyone else is like, yeah, whatever. I don't use that.

Rust in Production
Zed with Conrad Irwin

And so kind of trying to navigate the trade-offs of which features do we build and who do we make happy in what order is a big problem. But that's definitely a text editor problem, not a Rust problem.

Rust in Production
Zed with Conrad Irwin

And so kind of trying to navigate the trade-offs of which features do we build and who do we make happy in what order is a big problem. But that's definitely a text editor problem, not a Rust problem.

Rust in Production
Zed with Conrad Irwin

And so kind of trying to navigate the trade-offs of which features do we build and who do we make happy in what order is a big problem. But that's definitely a text editor problem, not a Rust problem.

Rust in Production
Zed with Conrad Irwin

Yeah, definitely agree. So if you think about a programming text editor, kind of one of the first features you want to build is syntax highlighting. And if you look at really all editors, it's a hand-coded parser for each language that does it. Not going to fly. We don't have time to build a hand-coded parser for every language.

Rust in Production
Zed with Conrad Irwin

Yeah, definitely agree. So if you think about a programming text editor, kind of one of the first features you want to build is syntax highlighting. And if you look at really all editors, it's a hand-coded parser for each language that does it. Not going to fly. We don't have time to build a hand-coded parser for every language.

Rust in Production
Zed with Conrad Irwin

Yeah, definitely agree. So if you think about a programming text editor, kind of one of the first features you want to build is syntax highlighting. And if you look at really all editors, it's a hand-coded parser for each language that does it. Not going to fly. We don't have time to build a hand-coded parser for every language.

Rust in Production
Zed with Conrad Irwin

Then maybe a decade or two ago, people started using regular expressions. Like, cool, here's a regular expression that does it. And in some cases, like the KDE text editor was kind of influential early in this. It's like a half XML language, half regular expression. So you get a bit of recursion, a bit of regular expression, and kind of a mix in there.

Rust in Production
Zed with Conrad Irwin

Then maybe a decade or two ago, people started using regular expressions. Like, cool, here's a regular expression that does it. And in some cases, like the KDE text editor was kind of influential early in this. It's like a half XML language, half regular expression. So you get a bit of recursion, a bit of regular expression, and kind of a mix in there.

Rust in Production
Zed with Conrad Irwin

Then maybe a decade or two ago, people started using regular expressions. Like, cool, here's a regular expression that does it. And in some cases, like the KDE text editor was kind of influential early in this. It's like a half XML language, half regular expression. So you get a bit of recursion, a bit of regular expression, and kind of a mix in there.

Rust in Production
Zed with Conrad Irwin

And these things are all fine, and they work for what they work for. But they only solve the syntax highlighting problem. And so if you want to be able to understand a little bit more about, okay, so this text on the screen is just an array of Unicode bytes. But what does it mean? You need something that can not just look at it byte by byte, but really divide it up into syntax.

Rust in Production
Zed with Conrad Irwin

And these things are all fine, and they work for what they work for. But they only solve the syntax highlighting problem. And so if you want to be able to understand a little bit more about, okay, so this text on the screen is just an array of Unicode bytes. But what does it mean? You need something that can not just look at it byte by byte, but really divide it up into syntax.

Rust in Production
Zed with Conrad Irwin

And these things are all fine, and they work for what they work for. But they only solve the syntax highlighting problem. And so if you want to be able to understand a little bit more about, okay, so this text on the screen is just an array of Unicode bytes. But what does it mean? You need something that can not just look at it byte by byte, but really divide it up into syntax.

Rust in Production
Zed with Conrad Irwin

And one of the Z founders, Max, built TreeSitter to do this in Atom. But it's like, okay, we get syntax highlighting for this for free because it understands the language. But we also get things like jumping to matching brackets or If you want to look at a file and say, what's in this file? We have a thing called the outline view. And so you can just see all the things that are defined in there.

Rust in Production
Zed with Conrad Irwin

And one of the Z founders, Max, built TreeSitter to do this in Atom. But it's like, okay, we get syntax highlighting for this for free because it understands the language. But we also get things like jumping to matching brackets or If you want to look at a file and say, what's in this file? We have a thing called the outline view. And so you can just see all the things that are defined in there.

Rust in Production
Zed with Conrad Irwin

And one of the Z founders, Max, built TreeSitter to do this in Atom. But it's like, okay, we get syntax highlighting for this for free because it understands the language. But we also get things like jumping to matching brackets or If you want to look at a file and say, what's in this file? We have a thing called the outline view. And so you can just see all the things that are defined in there.

Rust in Production
Zed with Conrad Irwin

And that's all powered, again, by TreeSitter. And so it's fundamental to the way that we do programming language stuff, which can all be done instead of having to do it by byte, by tree traversal instead, which is orders of magnitude faster.

Rust in Production
Zed with Conrad Irwin

And that's all powered, again, by TreeSitter. And so it's fundamental to the way that we do programming language stuff, which can all be done instead of having to do it by byte, by tree traversal instead, which is orders of magnitude faster.

Rust in Production
Zed with Conrad Irwin

And that's all powered, again, by TreeSitter. And so it's fundamental to the way that we do programming language stuff, which can all be done instead of having to do it by byte, by tree traversal instead, which is orders of magnitude faster.

Rust in Production
Zed with Conrad Irwin

So TreeSitter, each language in TreeSitter has its own kind of definitions. And then Zed has a couple of things that map from those definitions to our definitions. And so each supported language has a mapping of like, OK, in the TreeSitter grammar, there's a thing called comment. In the Z code highlighting, there's a thing called comment. Those are the same thing.