# Fix logic for default values for task variables \(\#37588\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/74e8afe9a8f72b1ff0a1f5fd62d78f2eb15f7e15)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 74e8afe9a8f72b1ff0a1f5fd62d78f2eb15f7e15

Requested commit: 74e8afe9a8f72b1ff0a1f5fd62d78f2eb15f7e15

Commit: 74e8afe9a8f72b1ff0a1f5fd62d78f2eb15f7e15

Tree: 19d91c91f7290d8ef9e087ab6e827ead1968c3e0

Author: Isaac Hales

Committer: GitHub

## Message

```
Fix logic for default values for task variables (#37588)

This is a small fix for default values in task variables. The
[documentation](https://zed.dev/docs/tasks) states

> You can also use verbose syntax that allows specifying a default if a
given variable is not available: ${ZED_FILE:default_value}

I found, however, that this doesn't actually work. Instead, the Zed
variable and the default value are just appended in the output. For
example, if I run a task `echo ${ZED_ROW:100}` the result I get is
`447:100` (in this case it should just be `447`).

This PR fixes that. I also added a new test case for handling default
values.
I also tested the fix in a dev build and it seems to work.

There are no UI adjustments.

AI disclosure: I used Claude Code to write the code, including the fix
and the tests.

This is actually my first open-source PR ever, so if I did something
wrong, I'd appreciate any tips and I'll make it right!


Release Notes:

- Fixed task variable substitution always appending the default
```

## Parents

- [e30f45cf64dcac1943cf726fad2ff55f8018057b](https://git.cafe/gitcafe/zed/commit/e30f45cf64dcac1943cf726fad2ff55f8018057b?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/74e8afe9a8f72b1ff0a1f5fd62d78f2eb15f7e15?format=markdown)
