Git Product home page Git Product logo

Comments (5)

randy3k avatar randy3k commented on May 26, 2024

Perhaps we could detect the indentation of the original first line and prepend it to all the lines.

from languageserver.

renkun-ken avatar renkun-ken commented on May 26, 2024

Thanks for the fix!

For the demo code above, if I copy

  x <- rnorm(n)
  y <- 3 + 2 * x + rnorm(n)
  m <- lm(y ~ x)
  coef(m)

which has indentation of 2 spaces.

And start a new line in the body of g, I will automatically get an indentation of 2 spaces, as the following shows where | represents my cursor:

g <- functon(x) {
  |
}

If I paste the code at the cursor, I'll get

g <- functon(x) {
    x <- rnorm(n)
    y <- 3 + 2 * x + rnorm(n)
    m <- lm(y ~ x)
    coef(m)
}

which has 4-space indentation. However, the desired result for me is still 2-space indentation because it fits the indentation of the function body.

I'm wondering if it makes sense that the copied string be styled first (which removes its indentation) and put it to the cursor (which repects the indentation of the cursor as just implemented)?

from languageserver.

randy3k avatar randy3k commented on May 26, 2024

It is a VS code specific behavior. I don’t think we have any control of it.

from languageserver.

renkun-ken avatar renkun-ken commented on May 26, 2024

I'm a bit confused about which behavior is vscode-specific, or provided by vscode extensions. But the latest version is good enough for me. Thanks!

from languageserver.

randy3k avatar randy3k commented on May 26, 2024

The language server is only allowed to return what the protocol is allowed. For range formatting, we could only return a list of text edits (i.e., modified text). We cannot control the extra indentation based on the current cursor. In fact, the language server doesn't know where the cursor is at.

from languageserver.

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.