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

Conrad Irwin

๐Ÿ‘ค Person
459 total appearances

Appearances Over Time

Podcast Appearances

Rust in Production
Zed with Conrad Irwin

One that JetBrains users love, you can double tap shift to bring up the, if you enable the JetBrains keymap, double tap shift brings up the command palette. And that was a fun one that we added recently just to kind of appease those people. I'm actually working on a PR with a contributor right now to try and automatically support non-Latin keyboards.

Rust in Production
Zed with Conrad Irwin

One that JetBrains users love, you can double tap shift to bring up the, if you enable the JetBrains keymap, double tap shift brings up the command palette. And that was a fun one that we added recently just to kind of appease those people. I'm actually working on a PR with a contributor right now to try and automatically support non-Latin keyboards.

Rust in Production
Zed with Conrad Irwin

One that JetBrains users love, you can double tap shift to bring up the, if you enable the JetBrains keymap, double tap shift brings up the command palette. And that was a fun one that we added recently just to kind of appease those people. I'm actually working on a PR with a contributor right now to try and automatically support non-Latin keyboards.

Rust in Production
Zed with Conrad Irwin

So for example, in a macOS, if you do command A on a Russian keyboard, it's obviously going to do the same, select all. But in Vim mode, A in Vim normal mode, it sees the Russian character instead and doesn't do anything. And so I've been trying to figure out how to make that work as well.

Rust in Production
Zed with Conrad Irwin

So for example, in a macOS, if you do command A on a Russian keyboard, it's obviously going to do the same, select all. But in Vim mode, A in Vim normal mode, it sees the Russian character instead and doesn't do anything. And so I've been trying to figure out how to make that work as well.

Rust in Production
Zed with Conrad Irwin

So for example, in a macOS, if you do command A on a Russian keyboard, it's obviously going to do the same, select all. But in Vim mode, A in Vim normal mode, it sees the Russian character instead and doesn't do anything. And so I've been trying to figure out how to make that work as well.

Rust in Production
Zed with Conrad Irwin

Exactly. And actually, one thing that helps us avoid planning is because we own the whole thing from the very top level Swift layer all the way down to the GPI layer, we can control how that works. But handling things like international input and making that work sensibly with keyboard shortcuts, it's not an obvious problem. And so I look forward to fixing all the remaining edge cases.

Rust in Production
Zed with Conrad Irwin

Exactly. And actually, one thing that helps us avoid planning is because we own the whole thing from the very top level Swift layer all the way down to the GPI layer, we can control how that works. But handling things like international input and making that work sensibly with keyboard shortcuts, it's not an obvious problem. And so I look forward to fixing all the remaining edge cases.

Rust in Production
Zed with Conrad Irwin

Exactly. And actually, one thing that helps us avoid planning is because we own the whole thing from the very top level Swift layer all the way down to the GPI layer, we can control how that works. But handling things like international input and making that work sensibly with keyboard shortcuts, it's not an obvious problem. And so I look forward to fixing all the remaining edge cases.

Rust in Production
Zed with Conrad Irwin

But we're a long way there right now.

Rust in Production
Zed with Conrad Irwin

But we're a long way there right now.

Rust in Production
Zed with Conrad Irwin

But we're a long way there right now.

Rust in Production
Zed with Conrad Irwin

Yeah, so starting kind of from the top, macOS gives us an event-based API where they say, hey, someone pressed a key down at this point. We then have to say to them, okay, well, is this part of a multi-key key? So on a US keyboard, if you do option backtick, you get into the mode where you can type A with an acute accent on top. So we then have to integrate with that.

Rust in Production
Zed with Conrad Irwin

Yeah, so starting kind of from the top, macOS gives us an event-based API where they say, hey, someone pressed a key down at this point. We then have to say to them, okay, well, is this part of a multi-key key? So on a US keyboard, if you do option backtick, you get into the mode where you can type A with an acute accent on top. So we then have to integrate with that.

Rust in Production
Zed with Conrad Irwin

Yeah, so starting kind of from the top, macOS gives us an event-based API where they say, hey, someone pressed a key down at this point. We then have to say to them, okay, well, is this part of a multi-key key? So on a US keyboard, if you do option backtick, you get into the mode where you can type A with an acute accent on top. So we then have to integrate with that.

Rust in Production
Zed with Conrad Irwin

And that's just a weird edge case of it has a reentrant callback system. So it gives you the event, then you call back into it, then it calls back into you, which Rust does not like. It's very, very unsafe as far as Rust is concerned. But once we've gone through a few rounds of that, we know, OK, the user pressed this key. This is the character it's going to generate.

Rust in Production
Zed with Conrad Irwin

And that's just a weird edge case of it has a reentrant callback system. So it gives you the event, then you call back into it, then it calls back into you, which Rust does not like. It's very, very unsafe as far as Rust is concerned. But once we've gone through a few rounds of that, we know, OK, the user pressed this key. This is the character it's going to generate.

Rust in Production
Zed with Conrad Irwin

And that's just a weird edge case of it has a reentrant callback system. So it gives you the event, then you call back into it, then it calls back into you, which Rust does not like. It's very, very unsafe as far as Rust is concerned. But once we've gone through a few rounds of that, we know, OK, the user pressed this key. This is the character it's going to generate.

Rust in Production
Zed with Conrad Irwin

This is the key that was pressed. We then send that to the matcher. And we're like, OK, did either the character that was generated or the key that was pressed with the Modifiers or Shift Control command Does that match any of the defined bindings? If it matches the binding, we do the action. If it doesn't, then we input the text.

Rust in Production
Zed with Conrad Irwin

This is the key that was pressed. We then send that to the matcher. And we're like, OK, did either the character that was generated or the key that was pressed with the Modifiers or Shift Control command Does that match any of the defined bindings? If it matches the binding, we do the action. If it doesn't, then we input the text.