1,334 karma · joined July 11, 2013
There are some that does exactly as I mention by mentioning things not in the code like:
```
// Non-generic part of edit, hoisted out to avoid blowing up LLVM IR.
```
Most of the others it does have are even unnecessary. Like this one.
```
/// Returns enclosing bracket ranges containing the given range or returns None if the range is not contained in a single excerpt
pub fn enclosing_bracket_ranges<'a, T: ToOffset>(
```
The description is literally in the function name.
Also this tweet touches on a similar issue - https://twitter.com/transmutrix/status/1750563200708309466
It is extremely important it works fast and fluid, and zed is the only one I've tried that nails it. There are still a few things that needs tweaking wrt. undo history, but I'm sure they'll get that to feel intuitive in the end.
The dictionaries are compiled from large known corpuses, wikipedia and movie subtitles, to ensure most words are available, but it does also mean that some weird words sneak in. That shouldn't matter much since it's very quick to adjust to your usage, and due to the usage sorting the weird words should never come first.
About the punctuation you just need to scroll the symbols window to get to the rest ;)
Wrt. Apple Watch, there is unfortunately no support for custom input support, so it has to be a weird hack where you type in one app and copy paste to another or such shenanigans. At least it was the last time I checked.
I've used this since 2014 when I made the first version, and I have yet to meet anyone typing faster with the stock iPhone qwerty keyboard.
7AMYNPKN63KY EMMHTLRA9399 Y4TPAXMJFHLL 4F3Y4JJ3RHME YREJF6L4TYE7 KWM9LRRXJEXW Y6JJRM99NYLM KRJXYPLE666L 43Y3EANXXW9F 9H99XY3FTT7L
What positions turn you off? I think the only thing I can put a finger on is his flawed view on abortion, but I guess that relates to him being a Catholic.
If you check out the documentation I think you should be able to see if it's worth it for you to switch. My personal top reason is the safe query writing using tagged template literals, and the simpler more concise general usage. Then there's a lot around connection handling which is simpler, but also handles more cases. Then there's the performance. Postgres.js implicitly creates prepared statements which not only makes everything faster, but it also lowers the amount of work your database has to do. Pipelining also happens by default. As you can see by the benchmarks listed elsewhere, Postgres.js is quite a bit faster, so you can either get more oomph out of your current setup, or scale down to save some money ;)
Even so, if pg-promise works for you as it is, it might not make much sense to switch, but if you have the connection slots for it, you can run them side by side to get a feel for it too.
Another thing I remember when starting with pg-promise was the return value helpers, which I used a lot. Now - I think it's much nicer to have the simple API, and simple return value being an array, like Postgres.js does[1]. Especially now that we have destructuring, it just looks like this:
const [user] = await sql`...`
[1] There's a JS Party podcast where we talk about that as well https://changelog.com/jsparty/221If snarky, is this based on something that actually happened to you? If so, I would love to hear how that actually went about, and what it is you are unable to grasp when things aren't bogged down by complexity?
If earnest, I'm glad more people prefer code that isn't littered with premature abstractions, redundant types, and useless comments expressing what can be more clearly read in the actual code.
https://github.com/porsager/postgres/discussions/627#discuss...
Here are two:
The fact that you've also dabbled in this area could lead to a far more interesting discussion. Wouldn't mind seeing your blog post. Who knows, maybe I've already read it at some point?
btw the reason for extending eg Array is to make for a much better surface API when using the library.
Being able to do const [user] = await sql`...` leads to some very readable concise code.