HackerTrans
TopNewTrendsCommentsPastAskShowJobs

cirwin

no profile record

Submissions

Shell permission errors for busy coding agents

da.vidbuchanan.co.uk
2 points·by cirwin·7 maanden geleden·0 comments

Green Tea Garbage Collector

github.com
108 points·by cirwin·vorig jaar·11 comments

comments

cirwin
·7 maanden geleden·discuss
We'd love to (and, tbh, likely will).

Search had been a blocker, but that's coming soon; beyond that not sure that there's any reason other than inertia. Alacritty is totally fine, but excited for the Ghostty focus on performance (obviously), and the font rendering stuff looks excellent (though TBD how much of that we can "just use" vs needing to copy-pasta)
cirwin
·11 maanden geleden·discuss
You can configure an arbitrary command to connect to ACP in your settings, maybe something like:

{"agent_servers": { "Container Gemini": { "command": "ssh", "arguments": ["hostname", "gemini", "--experimental-acp"] } }

could work?
cirwin
·vorig jaar·discuss
Author here. Seemed like the least bad of the options.

Being able to comment out sections of a config file easily is a prime use-case; and that really implies using newlines as delimiters, and well, you fall into this trap..
cirwin
·vorig jaar·discuss
We currently download node if the system version isn't recent enough (we used to always download it, but I fixed that...).
cirwin
·vorig jaar·discuss
Zed maintainer here.

We use node.js to run a number of language servers and formatters (which are often written in node due to the VSCode ancestry...).

There've been a lot of requests to disable language servers by default; but I think that's not the right default for most users – things should work out of the box.

That said, better control over this is definitely something we will add.
cirwin
·vorig jaar·discuss
I’ve been working on https://conl.dev, which fixes/removes YAMLs problematic features.

Trying to find a tag-line for it I like, maybe “markdown for config”?
cirwin
·vorig jaar·discuss
This inspired me to write https://conl.dev

I agree with his premise that TOML is not user friendly, but INI is not useful enough. CONL attempts to land in the gap
cirwin
·vorig jaar·discuss
`go tool` doesn't require a rebuild, but it does checking that the tool is up-to-date (which requires doing at least a bit of work).

This is one of the main advantages of using `go tool` over the "hope that contributors to have the right version installed" approach. As the version of the tool required by the project evolves, it continues to work.

Interestingly, when I was first working on the proposal, `go run` deliberately did not cache the built binary. That meant that `go tool` was much faster because it only had to do the check instead of re-running the `link` step. In Go 1.24 that was changed (both to support `go tool`, but also for some other work they are planning) so this advantage of `go tool` is not needed anymore.
cirwin
·vorig jaar·discuss
Primary contributor to the feature here.

We went back on forth on this a lot, but it boiled down to wanting only one dependency graph per module instead of two. This simplifies things like security scanners, and other workflows that analyze your dependencies.

A `// tool` comment would be a nice addition, it's probably not impossible to add, but the code is quite fiddly.

Luckily for library authors, although it does impact version selection for projects who use your module; those projects do not get `// indirect` lines in their go.mod because those packages are not required when building their module.
cirwin
·vorig jaar·discuss
For me (maintainer of Zed's vim mode) it comes down to a few things:

1. LSPs differ per-language, and so I'm never sure whether I'll get lucky today or not. It's more reliable for small changes to talk about them in terms of the text.

2. LSPs are also quite slow. For example in Zed I can do a quick local rename with `ga` to multi-cursor onto matching words and then `s new_name` to change it. (For larger or cross-file renames I still use the LSP).

3. I err as a human continually, for example in Rust a string is `"a"` and a char is `'a'`. It's easy for my javascript addled brain to use the wrong quotes. I don't know of any LSP operation that does "convert string literal into char literal" (or vice versa), but in vim, it's easy.

We are slowly pulling in support for various vim plugins; but the tail is long and I am not likely to build a vim-compatible Lua (or VimScript :D) API any time soon.

For example, most of vim-surround already works so you could get the most used parts of mini.surround to work with just a few keybindings `"s a":["vim::PushOperator", { "AddSurrounds": {} }]`, but rebuilding every plugin is a labor of love :D.
cirwin
·2 jaar geleden·discuss
I’ve been working on a configuration format [1] that looks surprisingly similar to this!

That said, the expectation in CONL is that the entire structure is one document. A separate syntax for multiline comments also enables nice things like syntax highlighting the nested portions.

I do like the purity of just a = b, but it seems harder to provide good error messages with so much flexibility

1: https://github.com/ConradIrwin/conl