-
Notifications
You must be signed in to change notification settings - Fork 239
Description
I often use Editors which make use of inline code minings, for example in JDT or LSP4E.
However, I often find myself in a situation, where I think that code minings lead to unintuitive text-selection and cursor behavior.
Example 1 (Cursor Placement):
public class Foo {
public static void bar(final String someReallyLongArgument) {
//
}
public static void bar(final String anotherArgument, final String someReallyLongArgument) {
//
}
}I'm calling this function somewhere and with code minings it is rendered as:
bar(someReallyLongArgument: "abc");
Now I want to switch to the overloaded version of the same method. To do so, I have to add an argument at the first position. Intuitively, I want to position my cursor between bar( and someR..., but I cant. Instead I have to place the cursor after someReallyLongArgument: , which feels really unintuitive.
Example 2 (Text Selection):
Consider the following Python Code used with LSP4E:
foobar = [1, "test"]Using a Python LS with type inference, such as basedpyright, we get the following code, were the added text is a code mining representing an inlay hint from the LS:
foobar: list[int | str] = [1, "test"]Now, If I want to select the variable "foobar" by holding down my left mouse button and moving the mouse, I can at most select "fooba", the remaining character is only included in the selection when I move the mouse further to the right to also include the code mining : list[int | str].
Here is a small video of that situation:
https://github.com/user-attachments/assets/eaddb82d-cdcf-4593-a45c-052b425f9629
In VS Code, neither of the above problems are present, i.e.,
- I can place the cursor directly before or after a code mining, even though that's the same offset in the underlying document
- I can create a text selection including or excluding a code mining, even though the content of the text selection is the same.
I haven't looked at the relevant code, but I'm assuming the underlying problem is that the code minings are fused with the preceding characters to have a unique mapping between document offsets and cursor positions in the document?