# editor: Preserve the selection granularity when extending a selection \(\#39759\) · gitcafe/zed

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

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

Visibility: public

Requested revision: 7a8a328d3c668b412abb5d15c3810cab003d75a8

Requested commit: 7a8a328d3c668b412abb5d15c3810cab003d75a8

Commit: 7a8a328d3c668b412abb5d15c3810cab003d75a8

Tree: 11b90ec4b3039e07caf00b31d5bcf2e837358d28

Author: Tim Vermeulen

Committer: GitHub

## Message

```
editor: Preserve the selection granularity when extending a selection (#39759)

Currently when extending a selection using shift-click, the selection
granularity (or `SelectMode`) is based on the click count when extending
the selection, not on the click count of the initial selection. For
example, selecting a word with double-click followed by shift-click uses
a character granularity:


https://github.com/user-attachments/assets/13c78bb9-9c31-45d4-97de-99c30c7425a7

This PR changes this behavior to be more in line with other editors that
I'm familiar with by preserving the granularity of the initial selection
(unless the extension has a higher click count, i.e. the behavior of a
single click selection by a shift-double-click extension is unchanged):


https://github.com/user-attachments/assets/92e69e95-7ea2-4f76-b0a4-e4b9efa1947b

Release Notes:

- Extending a selection using shift-click now preserves the
character/word/line granularity of the initial selection

---------

Co-authored-by: Lukas Wirth <lukas@zed.dev>
```

## Parents

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

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