Giter Site home page Giter Site logo

Comments (7)

sharwell avatar sharwell commented on July 19, 2024

This is a case where the command did exactly what it said it would do, but not what the user wanted. The selection did not contain a newline after } or a newline before for, so when the code was duplicated it put those two tokens on the same line.

from roslyn.

mstepanov214 avatar mstepanov214 commented on July 19, 2024

I expected behavior similar to VS Code. After all, your file may not contain a newline at the top or bottom.

from roslyn.

sharwell avatar sharwell commented on July 19, 2024

I think it's reasonable to assume that if the last selected line of a multi-line selection is a non-empty line that is fully selected except for the trailing newline, the duplicated code should be placed on the line after it.

  • If the selection does not span multiple lines, the additional end-of-line should not be added, even if the selection is a complete line.
  • If the last line of the selection is fully-selected but empty, it means the preceding end-of-line is already selected and there is no need to add a new one.

from roslyn.

CyrusNajmabadi avatar CyrusNajmabadi commented on July 19, 2024

@sharwell is this us? or editor?

from roslyn.

mstepanov214 avatar mstepanov214 commented on July 19, 2024

@sharwell
After some thought, I agree with this statement:

This is a case where the command did exactly what it said it would do

The command works according to its name. Therefore, I believe that I have not defined the problem quite correctly.

I use the Edit.Duplicate command as an analog to the editor.action.copyLinesDownAction from VS Code. It's not exactly the same thing. Perhaps it would be better to suggest implementing another command with the required functionality. I don't know.

from roslyn.

ToddGrun avatar ToddGrun commented on July 19, 2024

This is implemented by vs-platform in their DuplicateSelectionCommandHandler and the corresponding implementation in EditorOperations.DuplicateSelection. It does feel like there is some room for improvement here. @olegtk -- Do you know if this is a known issue or whether we should create a bug?

from roslyn.

olegtk avatar olegtk commented on July 19, 2024

It's actually by design and VS Code behaves the same way (although I don't remember why).
You are supposed to select the lines including line ending like this, then it would be duplicated as you expect.

Image

I'll reactivate the original ticket and move it to the Editor to continue the discussion, you can close this issue now.

from roslyn.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.