]>
git.lizzy.rs Git - rust.git/log
Laurențiu Nicola [Sat, 23 Oct 2021 12:07:11 +0000 (15:07 +0300)]
Set MSRV
bors[bot] [Sat, 23 Oct 2021 08:34:51 +0000 (08:34 +0000)]
Merge #10602
10602: Add qualify method call assist r=Veykril a=qepasa
This adds `qualify_method_call` assist that allows to replace a method (or trait) call that resolves with its fully qualified path.
For example, for stuct method:
```rust
struct Foo;
impl Foo {
fn foo(&self) {}
}
```
```
let foo = Foo {};
foo.fo$0o();
```
becomes
```rust
let foo = Foo {};
Foo::foo(&foo);
```
for a trait method:
```rust
struct Foo;
trait FooTrait {
fn foo(&self) {}
}
impl FooTrait for Foo {
fn foo(&self) {}
}
```
following call:
```rust
let foo = Foo {};
foo.fo$0o();
```
becomes:
```rust
let foo = Foo {};
FooTrait::foo(&foo);
```
fixes #10453
Co-authored-by: Paweł Palenica <pawelpalenica11@gmail.com>
bors[bot] [Fri, 22 Oct 2021 09:29:16 +0000 (09:29 +0000)]
Merge #9939
9939: feat: Adding extract_module assist r=Veykril a=feniljain
Should solve https://github.com/rust-analyzer/rust-analyzer/issues/9591
Co-authored-by: vi_mi <fenil.jain2018@vitstudent.ac.in>
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
vi_mi [Fri, 22 Oct 2021 08:55:47 +0000 (08:55 +0000)]
fix: making tests compatible with new trimmed sel_range
bors[bot] [Fri, 22 Oct 2021 07:18:05 +0000 (07:18 +0000)]
Merge #10608
10608: Amend the instruction for rustup. r=lnicola a=jhscheer
The current instruction for installation via rustup are misleading.
Co-authored-by: Jan Scheer <jhscheer@users.noreply.github.com>
Paweł Palenica [Fri, 22 Oct 2021 06:41:43 +0000 (23:41 -0700)]
apply code review suggestions
bors[bot] [Fri, 22 Oct 2021 06:24:17 +0000 (06:24 +0000)]
Merge #10610
10610: minor: Use array `IntoIter` r=lnicola a=lnicola
bors r+
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Laurențiu Nicola [Fri, 22 Oct 2021 06:23:29 +0000 (09:23 +0300)]
Use array IntoIter
Jan Scheer [Thu, 21 Oct 2021 21:04:43 +0000 (23:04 +0200)]
Amend the instruction for rustup.
The current instruction for installation via rustup are misleading.
bors[bot] [Thu, 21 Oct 2021 18:19:22 +0000 (18:19 +0000)]
Merge #10607
10607: Migrate to edition 2021 r=Veykril a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Thu, 21 Oct 2021 15:49:28 +0000 (17:49 +0200)]
Migrate to edition 2021
bors[bot] [Thu, 21 Oct 2021 10:39:26 +0000 (10:39 +0000)]
Merge #10603
10603: fix: Don't resolve attributes to non attribute macros r=Veykril a=Veykril
Also changes `const`s to `static`s for `Limit`s as we have interior mutability in those(though only used with a certain feature flag enabled).
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Thu, 21 Oct 2021 10:21:34 +0000 (12:21 +0200)]
Don't resolve attributes to non attribute macros
Paweł Palenica [Thu, 21 Oct 2021 06:54:22 +0000 (23:54 -0700)]
Add generated docs
Paweł Palenica [Thu, 21 Oct 2021 06:39:25 +0000 (23:39 -0700)]
cleanup qualify_path
Paweł Palenica [Thu, 21 Oct 2021 06:38:28 +0000 (23:38 -0700)]
Remove comment
Paweł Palenica [Thu, 21 Oct 2021 06:37:31 +0000 (23:37 -0700)]
Cleanup - remove unnecessary pub
Paweł Palenica [Thu, 21 Oct 2021 06:35:14 +0000 (23:35 -0700)]
Run cargo fmt
Paweł Palenica [Thu, 21 Oct 2021 06:28:19 +0000 (23:28 -0700)]
Add qualify method call assist
bors[bot] [Wed, 20 Oct 2021 21:02:46 +0000 (21:02 +0000)]
Merge #10563
10563: feat: Make "Generate getter" assist use semantic info r=agluszak a=agluszak
This PR makes "Generate getter" assist use semantic info instead of dealing with types encoded as strings.
Getters for types which are:
- `Copy` no longer return references
- `AsRef<str>` (i.e. `String`) return `&str` (instead of `&String`)
- `AsRef<[T]>` (i.e. `Vec<T>`) return `&[T]` (instead of `&Vec<T>`)
- `AsRef<T>` (i.e. `Box<T>`) return `&T` (instead of `&Box<T>`)
- `Option<T>` return `Option<&T>` (instead of `&Option<T>`)
- `Result<T, E>` return `Result<&T, &E>` (instead of `&Result<T, E>`)
String, Vec, Box and Option were previously handled as special cases.
Closes #10295
Co-authored-by: Andrzej Głuszak <gluszak.andrzej@gmail.com>
bors[bot] [Wed, 20 Oct 2021 20:54:36 +0000 (20:54 +0000)]
Merge #10387
10387: Move `IdxRange` into la-arena r=Veykril a=arzg
Currently, `IdxRange` (named `IdRange`) is located in `hir_def::item_tree`, when really it isn’t specific to `hir_def` and could become part of la-arena. The rename from `IdRange` to `IdxRange` is to maintain consistency with the naming convention used throughout la-arena (`Idx` instead of `Id`, `RawIdx` instead of `RawId`). This PR also adds a few new APIs to la-arena on top of `IdxRange` for convenience, namely:
- indexing into an `Arena` by an `IdxRange` and getting a slice of values back
- creating an `IdxRange` from an inclusive range
Currently this PR also exposes a new `Arena::next_idx` method to make constructing inclusive`IdxRange`s using `IdxRange::new` easier; however, it would in my opinion be better to remove this as it allows for easy creation of out-of-bounds `Idx`s, when `IdxRange::new_inclusive` mostly covers the same use-case while being less error-prone.
I decided to bump the la-arena version to 0.3.0 from 0.2.0 because adding a new `Index` impl for `Arena` turned out to be a breaking change: I had to add a type hint in `crates/hir_def/src/body/scope.rs` when one wasn’t necessary before, since rustc couldn’t work out the type of a closure parameter now that there are multiple `Index` impls. I’m not sure whether this is the right decision, though.
Co-authored-by: Aramis Razzaghipour <aramisnoah@gmail.com>
Andrzej Głuszak [Wed, 20 Oct 2021 20:35:31 +0000 (22:35 +0200)]
Fixes
Andrzej Głuszak [Wed, 20 Oct 2021 19:35:35 +0000 (21:35 +0200)]
Fixes
bors[bot] [Wed, 20 Oct 2021 18:05:31 +0000 (18:05 +0000)]
Merge #10600
10600: minor: Make some functions non-generic r=Veykril a=lnicola
This reduces `text` size by 10192 bytes (0.064% :cry:), with no apparent change in performance.
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Laurențiu Nicola [Wed, 20 Oct 2021 17:20:17 +0000 (20:20 +0300)]
Make some functions non-generic
bors[bot] [Wed, 20 Oct 2021 15:03:36 +0000 (15:03 +0000)]
Merge #10598
10598: minor: Remove obsolete test module r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Wed, 20 Oct 2021 15:03:09 +0000 (17:03 +0200)]
Remove obsolete test module
bors[bot] [Wed, 20 Oct 2021 14:46:28 +0000 (14:46 +0000)]
Merge #10597
10597: fix: Fix standard library doclinks not going to the correct page r=Veykril a=Veykril
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10082
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Wed, 20 Oct 2021 14:21:33 +0000 (16:21 +0200)]
Fix standard library doclinks not going to the correct page
bors[bot] [Wed, 20 Oct 2021 12:05:54 +0000 (12:05 +0000)]
Merge #10594
10594: fix: Generate and complete rustdoc lints r=Veykril a=Veykril
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10572, https://github.com/rust-analyzer/rust-analyzer/issues/8349
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Wed, 20 Oct 2021 12:03:41 +0000 (14:03 +0200)]
Fix qualified lint completions ignoring the qualifier value
Lukas Wirth [Wed, 20 Oct 2021 11:48:05 +0000 (13:48 +0200)]
Generate rustdoc lints
bors[bot] [Tue, 19 Oct 2021 14:53:00 +0000 (14:53 +0000)]
Merge #10589
10589: Fix: expand into {} if the glob import is unused r=lnicola a=rainy-me
close #10524
I think the second `expand into {}` behavior is genuinely better. (maybe this should been labeled with good first issue xd)
Co-authored-by: rainy-me <github@yue.coffee>
rainy-me [Tue, 19 Oct 2021 14:46:43 +0000 (23:46 +0900)]
Fix: remove extra newline
rainy-me [Tue, 19 Oct 2021 14:31:30 +0000 (23:31 +0900)]
Fix: expand glob import to empty braces if the glob is unused
bors[bot] [Tue, 19 Oct 2021 12:57:24 +0000 (12:57 +0000)]
Merge #10568
10568: fix(assist): fix #10566 and #10567 r=bnjjj a=bnjjj
close #10566
close #10567
Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Benjamin Coenen [Tue, 19 Oct 2021 09:21:55 +0000 (11:21 +0200)]
fix(assist): delete trailing whitespaces
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
bors[bot] [Tue, 19 Oct 2021 12:32:30 +0000 (12:32 +0000)]
Merge #10588
10588: internal: Parse const trait bounds r=Veykril a=Veykril
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10582
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Tue, 19 Oct 2021 12:15:47 +0000 (14:15 +0200)]
internal: Parse const trait bounds
bors[bot] [Tue, 19 Oct 2021 12:16:30 +0000 (12:16 +0000)]
Merge #10587
10587: fix: Fix `add_missing_match_arm` panicking on failed upmapping r=Veykril a=Veykril
Closes https://github.com/rust-analyzer/rust-analyzer/issues/10580#issuecomment-
946170475
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Tue, 19 Oct 2021 12:00:24 +0000 (14:00 +0200)]
fix: Fix add_missing_match_arm panicking
bors[bot] [Tue, 19 Oct 2021 11:51:07 +0000 (11:51 +0000)]
Merge #10586
10586: internal: Derive completions work on hir, not names r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Tue, 19 Oct 2021 11:50:08 +0000 (13:50 +0200)]
Derive completions work on hir, not names
bors[bot] [Tue, 19 Oct 2021 11:43:08 +0000 (11:43 +0000)]
Merge #10585
10585: fix: Resolve derive attributes even when shadowed r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Tue, 19 Oct 2021 11:40:27 +0000 (13:40 +0200)]
Resolve derive attributes even when shadowed
bors[bot] [Mon, 18 Oct 2021 12:56:33 +0000 (12:56 +0000)]
Merge #10578
10578: Fix partialord codegen take 2 r=lnicola a=yoshuawuyts
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10576. This reverts "generate `PartialOrd` to our previous match-based design, and in turn uses that to correctly take references for multi-value comparisons. This is a bit more verbose, but it should be more readable and easier to edit by end-users than multiple nested layers of borrows. I also manually verified every example in the Rust playground to ensure it works. Thanks!
cc/ `@WaffleLapkin`
Co-authored-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
Yoshua Wuyts [Mon, 18 Oct 2021 12:45:24 +0000 (14:45 +0200)]
fix Ordering::Equal path
Yoshua Wuyts [Mon, 18 Oct 2021 12:38:53 +0000 (14:38 +0200)]
Revert "Simplify generated PartialOrd code"
This reverts commit
601ed3a10dacc2ba2ee0ca436c23529ae7fde292 .
bors[bot] [Mon, 18 Oct 2021 10:47:04 +0000 (10:47 +0000)]
Merge #10574
10574: fix: Fix PartialOrd codegen r=lnicola a=yoshuawuyts
Closes https://github.com/rust-analyzer/rust-analyzer/issues/10571#issuecomment-
945516462 . Thanks!
r? `@lnicola`
Co-authored-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
Yoshua Wuyts [Mon, 18 Oct 2021 10:43:53 +0000 (12:43 +0200)]
Fix PartialOrd codegen
bors[bot] [Mon, 18 Oct 2021 09:59:10 +0000 (09:59 +0000)]
Merge #10551
10551: Pull in new lsp-types for VS compat r=lnicola a=lnicola
CC #8729
Depends on https://github.com/gluon-lang/lsp-types/pull/218
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Laurențiu Nicola [Fri, 15 Oct 2021 17:28:28 +0000 (20:28 +0300)]
Fix tests
Laurențiu Nicola [Thu, 14 Oct 2021 06:37:57 +0000 (09:37 +0300)]
Pull in new lsp-types for VS compat
bors[bot] [Sun, 17 Oct 2021 21:05:10 +0000 (21:05 +0000)]
Merge #10569
10569: fix: Skip non clippy completions when completing a clippy path r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sun, 17 Oct 2021 21:04:38 +0000 (23:04 +0200)]
Skip non clippy completions when completing a clippy path
Benjamin Coenen [Sun, 17 Oct 2021 18:24:40 +0000 (20:24 +0200)]
fix(assist): fix #10566 and #10567
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Andrzej Głuszak [Wed, 29 Sep 2021 12:04:32 +0000 (14:04 +0200)]
Semantic getter
bors[bot] [Sun, 17 Oct 2021 13:32:35 +0000 (13:32 +0000)]
Merge #10417
10417: feat(assist): add new assist to unwrap the result return type r=bnjjj a=bnjjj
do the opposite of assist "wrap the return type in Result"
Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Co-authored-by: Coenen Benjamin <benjamin.coenen@hotmail.com>
Coenen Benjamin [Sun, 17 Oct 2021 13:24:20 +0000 (15:24 +0200)]
Update crates/ide_assists/src/handlers/unwrap_result_return_type.rs
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
bors[bot] [Sun, 17 Oct 2021 11:30:49 +0000 (11:30 +0000)]
Merge #10562
10562: fix: Fix clippy attribute completions always prefixing inserting `clippy::` r=Veykril a=Veykril
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7144
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sun, 17 Oct 2021 10:58:37 +0000 (12:58 +0200)]
Fix clippy attribute completions always prefixing with `clippy::`
Lukas Wirth [Sun, 17 Oct 2021 10:44:41 +0000 (12:44 +0200)]
Make attribute completions more ast based
Lukas Wirth [Sun, 17 Oct 2021 09:15:56 +0000 (11:15 +0200)]
Reorder CompletionContext functions
bors[bot] [Sun, 17 Oct 2021 09:00:06 +0000 (09:00 +0000)]
Merge #10561
10561: internal: Don't turn local names into strings in CompletionContext r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sun, 17 Oct 2021 08:59:06 +0000 (10:59 +0200)]
Don't turn local names into strings in CompletionContext
bors[bot] [Sat, 16 Oct 2021 21:57:36 +0000 (21:57 +0000)]
Merge #10558
10558: internal: Refactor lifetime completion context fields r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sat, 16 Oct 2021 21:56:43 +0000 (23:56 +0200)]
internal: Refactor lifetime completion context fields
bors[bot] [Sat, 16 Oct 2021 21:33:55 +0000 (21:33 +0000)]
Merge #10557
10557: fix: Fix qualified path completion not completing macros r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Sat, 16 Oct 2021 21:33:09 +0000 (23:33 +0200)]
fix: Fix qualified path completion not completing macros
bors[bot] [Sat, 16 Oct 2021 14:21:35 +0000 (14:21 +0000)]
Merge #10556
10556: minor: more clippy fixes r=Veykril a=Milo123459
just a few more clippy fixes
Co-authored-by: Milo <50248166+Milo123459@users.noreply.github.com>
Milo [Sat, 16 Oct 2021 14:02:56 +0000 (15:02 +0100)]
fix
Milo [Sat, 16 Oct 2021 13:15:17 +0000 (14:15 +0100)]
add a comment
Milo [Sat, 16 Oct 2021 13:13:43 +0000 (14:13 +0100)]
revert
Milo [Sat, 16 Oct 2021 11:32:55 +0000 (12:32 +0100)]
more clippy fixes
Laurențiu Nicola [Sat, 16 Oct 2021 10:39:55 +0000 (13:39 +0300)]
Use trimmed selection range
vi_mi [Tue, 12 Oct 2021 07:58:10 +0000 (07:58 +0000)]
fix: Adding tuple fields in ADT, chore: test action section
unindentation
vi_mi [Tue, 12 Oct 2021 06:00:15 +0000 (06:00 +0000)]
fix: arbitary noop of assist and same file double writes
vi_mi [Mon, 16 Aug 2021 08:15:10 +0000 (13:45 +0530)]
feat: Adding extract_module assist
bors[bot] [Sat, 16 Oct 2021 10:28:46 +0000 (10:28 +0000)]
Merge #10542
10542: Use workspace cargo to fetch rust source's metadata r=lnicola a=Alexendoo
Previously the detected cargo is the global one, as it uses the
directory of the rust source which doesn't pick up the local override
This fixes the case in clippy where the local rust toolchain is a recent
nightly that has a 2021 edition Cargo.toml. The global (stable) cargo
returns an error attempting to parse it
Fixes #10445
Co-authored-by: Alex Macleod <alex@macleod.io>
bors[bot] [Sat, 16 Oct 2021 10:17:15 +0000 (10:17 +0000)]
Merge #10555
10555: minor: Hide private methods in `generate_delegate_methods` r=lnicola a=lnicola
Fixes #10553
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Laurențiu Nicola [Sat, 16 Oct 2021 10:09:53 +0000 (13:09 +0300)]
Hide private methods in `generate_delegate_methods`
bors[bot] [Fri, 15 Oct 2021 17:29:03 +0000 (17:29 +0000)]
Merge #10552
10552: fix: Fix missing_fields diagnostic fix replacing wrong text ranges r=Veykril a=Veykril
Fixes #5393 by replacing the problematic behaviour there with a new "problem"
It replaces the correct range now, but it potentially discards the whitespace in the macro input. This is the best we can do currently until we get a formatter.
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Fri, 15 Oct 2021 17:27:19 +0000 (19:27 +0200)]
Fix missing_fields diagnostic fix replacing wrong text ranges
bors[bot] [Fri, 15 Oct 2021 16:05:15 +0000 (16:05 +0000)]
Merge #10543
10543: Narrow add_missing_match_arms assist range r=Veykril a=antonfirsov
Contributes to #10220 with logic borrowed from #10267.
Note: if anyone has recommendations for further analyzers to check, I'm happy to (hard to do it on my own, I'm completely new to the language).
Co-authored-by: Anton Firszov <antonfir@gmail.com>
Anton Firszov [Fri, 15 Oct 2021 15:53:01 +0000 (17:53 +0200)]
cov_mark for add_missing_match_arms special cases
Anton Firszov [Fri, 15 Oct 2021 12:45:11 +0000 (14:45 +0200)]
undo unnecessary test changes
Anton Firszov [Fri, 15 Oct 2021 12:36:37 +0000 (14:36 +0200)]
cosmetics
Anton Firszov [Fri, 15 Oct 2021 12:30:38 +0000 (14:30 +0200)]
update generated.rs
Anton Firszov [Fri, 15 Oct 2021 12:14:21 +0000 (14:14 +0200)]
fix sample + cosmetics + one more test
Anton Firszov [Fri, 15 Oct 2021 11:19:46 +0000 (13:19 +0200)]
simple implementation
bors[bot] [Fri, 15 Oct 2021 11:16:10 +0000 (11:16 +0000)]
Merge #10549
10549: minor: Update crates r=lnicola a=kjeremy
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
Jeremy Kolb [Fri, 15 Oct 2021 11:12:30 +0000 (07:12 -0400)]
Update crates
Anton Firszov [Fri, 15 Oct 2021 10:15:52 +0000 (12:15 +0200)]
cursor_inside_simple_match_arm_list -- tests
Aramis Razzaghipour [Tue, 5 Oct 2021 03:10:25 +0000 (14:10 +1100)]
Move `IdxRange` into `la_arena`
bors[bot] [Thu, 14 Oct 2021 22:41:06 +0000 (22:41 +0000)]
Merge #10491
10491: Support nested type on replace if let with match r=k-nasa a=k-nasa
## Why
close: https://github.com/rust-analyzer/rust-analyzer/issues/8690
Now, Replacing if-let with match cant't output exhaustive patterns code.
This was because the `else` conversion used specific types (ex. Option, Result) instead of wildcards.
I thought it was more of a problem to generate non-exhaustive patterns than the benefits of using the concrete one.
How about using wildcards in `else`?
Is this change policy acceptable?
## What
- using wildcards on `make_else_arm`
- Change test cases
Co-authored-by: k-nasa <htilcs1115@gmail.com>
bors[bot] [Thu, 14 Oct 2021 20:10:59 +0000 (20:10 +0000)]
Merge #10545
10545: A few clippy fixes r=Veykril a=Milo123459
A few clippy fixes
Co-authored-by: Milo <50248166+Milo123459@users.noreply.github.com>
bors[bot] [Thu, 14 Oct 2021 19:51:34 +0000 (19:51 +0000)]
Merge #10546
10546: feat: Implement promote_local_to_const assist r=Veykril a=Veykril
Fixes #7692, that is now one can invoke the `extract_variable` assist on something and then follow that up with this assist to turn it into a const.
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
Lukas Wirth [Thu, 14 Oct 2021 19:49:46 +0000 (21:49 +0200)]
Implement promotoe_local_to_const assist
Milo [Thu, 14 Oct 2021 18:57:21 +0000 (19:57 +0100)]
a few clippy fixes
Anton Firszov [Thu, 14 Oct 2021 18:45:10 +0000 (20:45 +0200)]
use ctx.selection_trimmed() instead of ctx.frange.range