# extension_api: Expose preferred_line_length in LanguageSettings \(\#52175\) · gitcafe/zed

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

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

Visibility: public

Requested revision: 7ccef1dd89fdb8f530f7009a0477b09b15f841a6

Requested commit: 7ccef1dd89fdb8f530f7009a0477b09b15f841a6

Commit: 7ccef1dd89fdb8f530f7009a0477b09b15f841a6

Tree: cb907e8935a149812b9fc45d3b64b9d6aff3e48e

Author: Roman Cinis

Committer: GitHub

## Message

```
extension_api: Expose preferred_line_length in LanguageSettings (#52175)

Closes #21822

## Context

Exposes `preferred_line_length` from `AllLanguageSettings` to the
Extension
API's `LanguageSettings` struct. Currently only `tab_size` is available
to
extensions, which prevents language extensions (e.g. Dart) from reading
the
user's preferred line length and forwarding it to their language server
(e.g. as `dart.lineLength`).

Related: https://github.com/zed-extensions/dart/issues/2

## How to Review

Small change — follow how `tab_size` is plumbed through:
1. WIT definition (`language-settings` record)
2. `extension_api` Rust struct
3. Host-side bridge conversion

The new field follows the exact same pattern.

## Self-Review Checklist

<!-- Check before requesting review: -->
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
  - Compile-time verified via WIT bindings; no runtime behavior change
- [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A
```

## Parents

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

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