microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
163.18k stars 28.84k forks source link

Virtual Space is not implemented. #13960

Open gregmarr opened 7 years ago

gregmarr commented 7 years ago

https://blogs.msdn.microsoft.com/zainnab/2010/02/28/understanding-virtual-space/

This is a much needed productivity option that has been available in Visual Studio and other editors for many years.

See also the column select issue that requires it: https://github.com/Microsoft/vscode/issues/5402


Addition from @hediet:

This is (still) the current behavior of VS Code. Only text that exists in the text buffer is selected:

recording

However, the column selection mode should support rectangular selection like this (adding whitespace on demand):

recording

This would fix #5940 (which is just about copy&pasting such blocks) and #115559.

roblourens commented 7 years ago

I'm not sure we need a new issue for this if it's just part of #5402. Looks like there's lots of history there already.

gregmarr commented 7 years ago

Completely fixing #5402 requires this, but this can be implemented without the changes to column selection.

roblourens commented 7 years ago

I see. Virtual Space - https://blogs.msdn.microsoft.com/zainnab/2010/02/28/understanding-virtual-space/

eric-777 commented 7 years ago

+1 for this feature. Virtual space is a must-have for me. I really like the editor otherwise, but until this is in I'll have to keep using Visual Studio. I hope it makes it out of the Backlog soon!

Neurochrom commented 7 years ago

+1

itadapter commented 7 years ago

Still no virt space or am I missing something?

eric-777 commented 7 years ago

@itadapter: I don't think you're missing something. The feature isn't there. Looking at related threads about column select features, it appears the stance is that column select doesn't require virtual space. To my knowledge, @alexandrudima hasn't responded directly to anyone about virt space, only to questions about column select.

Virtual space isn't available in Atom or Sublime either. I always thought BRIEF was a common background for programmers looking for a non-IDE experience, but apparently not if all 3 of the modern alternatives do not implement the feature.

ak-hpc commented 7 years ago

It would be very nice to have virtual space feature in vscode.

greggman commented 7 years ago

These are common things I do in my other editor. If there's a way to do them in VSCode that would be great. Seems like they need virtual space

monsters

If you're not a fan of aligning tables many coding standard align comments

comments

Those are maybe minor examples but I find that I'm missing them quite a bit moving to vscode. Here's another example

column

vs VScode

multi

This isn't just about comments, it's about being used to column select with cursors in virtual space. In my editor at least which pre-dates multiple cursors (though it has them now) the main cursor can't go into virtual space (well actually that's configurable), but once column selection is started then it can go through virtual space.

jeffmadison commented 6 years ago

Executing the "Go to Line..." command when specifying a line number past the end of the file (and/or a column number past the end of the line) should also place the cursor into virtual space.

eric-777 commented 6 years ago

Would it be possible for someone on the dev team to comment on whether the virtual space feature is even a good fit for the editor internals? I'm wondering if it's something I should be hopeful about being added at some point, or if it's perhaps unlikely due to large refactoring cost vs minimal benefit (small number of users who really want it).

tksuoran commented 6 years ago

Any progress with this?

BErasmus commented 6 years ago

+1. There are a few things that prevent me from switching to VS Code, but this is a big one.

tkimovski commented 6 years ago

+1. Absolutely a must-have. It's a deal-breaker for me too.

ChrisTuckerNM commented 6 years ago

This is a deal killer! Here I go again opening notepad++ becasue an editor does not have a feature that is part of my daily workflow!

jchatel commented 6 years ago

Seriously guys on the Visual code team, communicate to each other in your company because that's one of the most powerful features and it was there for more than 18 freaking years in Visual Studio.

https://blogs.msdn.microsoft.com/zainnab/2010/02/28/understanding-virtual-space/

That's why we use an editor instead of Word (fixed font size and virtual space) when it comes to write code fast.

eric-777 commented 6 years ago

@jchatel we have to keep in mind that this product is both free and good when asking for new features. I wouldn't call virtual space a particularly powerful feature. I feel like its absence is more of a high barrier to adoption among many of us who formed our editing technique with it.

Also, I use proportional fonts AND virtual space in VS. They are definitely not mutually exclusive.

I'm encouraged that the issue isn't closed. Perhaps the team is committed to adding the feature but is facing some refactoring costs that need to get planned for. I can imagine that adding virtual space after the fact might break a lot of code that can otherwise assume the cursor is always on a physical character.

On the other hand, I've seen the phrase "cursor floating in air" used by a VS Code developer somewhat pejoratively. This discourages me and makes me wonder if the team instead might be considering closing the editor to those who work that way.

Any comment from the dev team on which way this is heading would be pure gold to many of us.

greggman commented 6 years ago

There's multiple issues conflated here.

For example in my editor of choice I have virtual space off. But, my editor (like Visual Studio but unlike VSCode) has a column select mode. The column can go through virtual space and is an extremely powerful feature that I use many times a day and end up being frustrated having to tediously manually edit when in VSCode. (see gifs above).

Column editing solves a host of issues that multiple cursors do not (and vice-versa). Both features are important and powerful but at the moment it seems like column editing can not be added without support for virtual space.

eric-777 commented 6 years ago

Column select discussion is here (I think there are others too): https://github.com/Microsoft/vscode/issues/5402

This thread is about virtual space only, described very well by the link jchatel provided: https://blogs.msdn.microsoft.com/zainnab/2010/02/28/understanding-virtual-space/

Virtual space may be a dependency of fixing 5402 to most people's satisfaction, but they are separate. No need to conflate the two here.

greggman commented 6 years ago

The conflation comes from your previous comment. You basically said virtual space is mostly useless

I wouldn't call virtual space a particularly powerful feature. I feel like its absence is more of a high barrier to adoption among many of us who formed our editing technique with it.

But it's not useless at all. It's required for column editing since you have to be able to move through virtual space to use columns as columns. Column editing is immensely powerful. So please don't go dismissing virtual space as useless.

eric-777 commented 6 years ago

Conflation is taking two separable issues and muddling them together as though they were the same, not from a subjective judgement about how important one of the two issues is. Some of us who want virtual space aren't bothered by the current column select implementation at all.

Virtual space is not useless. There are many of us in this thread who are eagerly anticipating it's possible implementation, and who can't use VS Code without it.

urscion commented 6 years ago

I agree. Not being able to easily get rid of columns of virtual space is a huge deal breaker for me. Was hoping to start using VS Code for work, but i'm going to have to go back to Notepad++.

srgbrito commented 6 years ago

This is an important feature for the editor. I always use it. I would like it implemented.

jrfl commented 5 years ago

To add to the chorus... I do a fair amount of editing like greggman's images above show. This is a deal breaker for me as well. No moving my cursor, let me do it and give me a convenient toggle.

Please! :)

nippur72 commented 5 years ago

I can't believe this otherwise amazing editor hasn't virtual space. I use it very day, and I have to open a separate text editor (PsPad) just for that.

m6502 commented 5 years ago

Thanks for your work on Visual Studio Code but I have to agree with the others. Virtual space should be a must have for any code editor. I can't understand why would anyone not want it enabled. If I change the line and then return to the same line the cursor position should remain at the same position that it was. Without virtual space it's going to be in a random position depending on how long are the lines I traversed. I call that behaviour a bug, to be honest.

paulsmirnov commented 5 years ago

Everybody could just subscribe to the thread and wait until the contributors have anything valueable to say instead of constantly posting the same "arguments" here. Will anybody lock the thread until then?

gregmarr commented 5 years ago

@paulsmirnov That depends on why it hasn't been implemented yet. If it's because there hasn't been enough interest expressed here yet, then additional voices may be helpful. Since we haven't had any feedback here from the VS team in almost 2 years, it's hard to know.

greggman commented 5 years ago

I agree with @gregmarr that more voices = proof of interest = hopefully the team might consider it a priority.

I do wish the comments were a little less entitled feeling. Stuff like "this is deal breaker", like there is no deal. It's a free project. No one owes us anything.

Still hopeful the team will see the utility and decide to add support.

as for @m6502 , I am unable to repo the issue you describe. I made a line with 2 tabs followed by 2 spaces followed by code. Above and below that are lines with 3 tabs. No mater where I put my cursor in the line with spaces going up and down always returns to the same place.

Maybe a gif showing the issue and another showing no issue in some other editor would be helpful to see the issue?

tkimovski commented 5 years ago

Locking the thread might be interpreted by MS as lost interest in the feature and it may never get considered.


From: Paul Smirnov notifications@github.com Sent: Tuesday, 23 October 2018 6:15 AM To: Microsoft/vscode Cc: tkimovski; Comment Subject: Re: [Microsoft/vscode] Virtual Space is not implemented. (#13960)

Everybody could just subscribe to the thread and wait until the contributors have anything valueable to say instead of constantly posting the same "arguments" here. Will anybody lock the thread until then?

— You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode%2Fissues%2F13960%23issuecomment-431942676&data=02%7C01%7C%7C7364612a6cfb4b50f70a08d63852c62b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636758325486729722&sdata=%2FFoCmydGTtl85Ot0T87mxFOeuVh9VYQfn%2B8IApWsxec%3D&reserved=0, or mute the threadhttps://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FANLVXcjyAC8FhMT_BiXT7mmtvCZqqOxqks5unhljgaJpZM4KaQAK&data=02%7C01%7C%7C7364612a6cfb4b50f70a08d63852c62b%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636758325486729722&sdata=iSAcpT1iN6%2BhBM%2BpGodOQBp6klgkV5IXFBxtrNysdJ8%3D&reserved=0.

adam3141 commented 5 years ago

I am in total agreement. Virtual Space should definitely be implemented. I do a lot of embedded development and as such, I use timing diagrams in my comments and without virtual space, it is somewhat painful to use the space bar to get to the columns. I don't know how the below example timing diagrams will appear on your browser but suffice it to say, you get the idea. Edit: Found the code block :-)

It is so much simpler to step through the columns using the cursor keys.

     |--10us--|
     _________
____/         \___________ 

    |------20us-------|
    __________________
___/                  \_________

Anyway, If I was able to add this functionality myself, I wouldn't hesitate.

Takasa commented 5 years ago

Totally agree, I spent a while trying to work out how to enable it, until I found this thread.... Every editor I've used supports virtual space and the lack is the only thing stopping me switching. Is it on the roadmap even? /Mike

msemtd commented 5 years ago

Chipping in to add to the people's voice. It would be nice not to have to switch editors to do decent block editing (includes #5402, etc). There's no "deal breaker" talk from me though - I'm required to use all manner of shoddy software to do my job - there's a lot of eye-rolling goes on though!

justClouds commented 5 years ago

Column editing (which requires some form of support for virtual space) is definitly a 'must have' feature for VS Code. Would be nice to get some feedback from the development team on whether this is considered or not.

maug commented 5 years ago

I like VS Code much and considering switching from Intellij IDEA (which is great but sluggish), but virtual space option is crucial to me, I use it for many years and love it.

EdyJ commented 5 years ago

I currently work in Notepad++. All I need to switch to VS Code is Virtual Space mode.

pedder55655 commented 5 years ago

Wow what a bummer. How can such a fundamental feature be missing? It's like buying your 10th car, but this one surprisingly as no left side indicators because the designer doesn't like left turns.

OldStarchy commented 5 years ago

Can we restrict this thread to contributors or something so we don't keep getting these unproductive comments?

If you agree with this issue, give the OP a thumbs up. If you have some novel information to contribute you can leave a comment.

Everybody already knows that it sucks that this feature is missing, you don't have to keep repeating it.

Silvenga commented 5 years ago

@aNickzz I generally find that issues without any activity are unlikely to ever be completed.

If the thread is restricted to contributors, then no-one can thumb up the issue (or give novel feedback). Restricting also prevents non-contributors from easily attempting work on this feature. IMHO, preventing discussion seems counter productive.

paulsmirnov commented 5 years ago

@Silvenga So let's have a productive discussion instead of useless complaints, shall we? Who knows why this basic feature is still not on the roadmap? What obstacles do you see?

I agree that a dead thread will be of no use. But a thread with such comments is completely useless too. Do you really think that developers will be ashamed and will start working immediately? Evidently there are some crucial problems with developers' time or the project architecture.

It's strange they don't care to answer our cries for help here though.

m6502 commented 5 years ago

@paulsmirnov No one is trying to shame anybody. Everyone here is surely thankful for the work that is put in this software. These complains ARE the discussion and I don't think they are useless at all. At the bare minimum they serve as a gauge to know if there's interest in the feature or not. Looks like there's, so that's useful to know. Now, the developers are in their right to implement this feature or not.

OldStarchy commented 5 years ago

There is a difference between discussion and constant complaining. If you want to gauge the level of interest in an issue, look at the number of 👍 votes. I was subscribed to this issue to get updates about the issue however, the only notifications I get are about people complaining "me too". This kind of complaining is not a good indicator of public interest because of the number of comments !== the number of people.

In any case, my point has been brought up before by others so there's no need to discuss this further.

m6502 commented 5 years ago

If you were subscribed to this issue and only got complaints but no response from the developers, well, I don't think it's the users who you should direct your reply to, and I say this with the utmost respect for the developers who are not in any case under any obligation to make us happy. Although a "we can't or don't want to do it" would be nice.

Also, to be honest, I see 50 upvotes and 43 comments including this one. So, yeah, the number of upvotes is not the same as the people complaining here, in fact it is higher. I'm not sure what you were trying to show with that and how was that related with your point.

jamiefutch commented 5 years ago

This feature really needs to be implemented.

OldStarchy commented 5 years ago

there's no need to discuss this further.

and yet I persist...

@m6502 Yes I agree :)

I don't think it's the users who you should direct your reply to

No, my comment about restricting the thread was intended for any devs that might be around. Although @Silvenga mentioned "If the thread is restricted to contributors, then no-one can thumb up the issue" which I wasn't aware of when making that comment which kinda negates part of the idea behind restricting it. PR for GitHub anyone?

I'm not sure what you were trying to show with that and how was that related with your point.

I mean to say that multiple "me too" comments aren't required for an issue to be deemed important by the devs, and is a less accurate indicator of interest than 👍. Obviously, there's a handful of comments on this thread that aren't even about the issue. A 👍 contains exactly the right amount of information to indicate to the devs that you're interested in seeing the issue resolved. Anything more than that is not only superfluous but compromises the idea of subscribing to the thread to receive relevant updates about the status of the issue.

@jamiefutch thanks for your input 🚯

skataben commented 5 years ago

I installed VS Code for the single purpose of having a text editor that behaves like Visual Studio. Not implementing Virtual Space and Alt+Drag for vertical select is a deal breaker.

Don't call it VS Code if it doesn't behave like Visual Studio.

IanKemp commented 5 years ago

Virtual space is a basic, fundamental feature that any half-decent text editor should support. VS Code should not have been allowed to ship without this capability, and the fact that it's still not present almost 3 years after being requested is a bad joke.

Pull your thumbs out, VS Code dev team, and get this implemented ASAP.

AnrDaemon commented 5 years ago

I can't understand, why would anyone tolerate the absence of this option. It's not even a feature, it's an absolute necessity. The user's frustration, when the cursor suddenly jumps around, worse when editor view scrolls to the side, is greatly taxing on productivity.

antekone commented 5 years ago

Are there any chances of implementing this feature?

benjaminmordaunt commented 5 years ago

I've implemented this feature, but it's closed source proprietary. £12.99 for single-user license. ;)