Coder Social home page Coder Social logo

Comments (6)

dvlsg avatar dvlsg commented on May 1, 2024 7

Just some additional insight into why it may be helpful to indent case statements:

// without braces for case
const val = 'bar';
switch (val) {
case 'foo':
  const b = 'bar';
  break;
case 'bar':
  const b = 'baz'; // SyntaxError: Identifier 'b' has already been declared
  console.log(b);
  break;
} // looks okay
// with braces for each case, no indentation
const val = 'bar';
switch (val) {
case 'foo': {
  const b = 'bar';
  break;
}
case 'bar': {
  const b = 'baz'; // works!
  console.log(b);
  break;
}
} // two braces in a row at the same indent looks odd
// with braces for each case, with indentation
const val = 'bar';
switch (val) {
  case 'foo': {
    const b = 'bar';
    break;
  }
  case 'bar': {
    const b = 'baz'; // works!
    console.log(b);
    break;
  }
} // looks "normal" to me

from prettier.

gre avatar gre commented on May 1, 2024 3

I was about to raise a bug that case have an extra indenting level and found that this issue is actually producing this "bug" 😄

Is there an available option to get back to the switch to be aligned with case ?
I'm used to this convention and I thought it was standard? ESlint complaints that the switch is supposed to be aligned with case.

There is a whole debate on internet about this, so I guess it should be made an option?

from prettier.

azz avatar azz commented on May 1, 2024 3

My opinion is that due to case ending in a :, it should be treated the same as a label, and not indented.

from prettier.

mrspeaker avatar mrspeaker commented on May 1, 2024

Yeah, this is annoying (but still, worth it 'cause Prettier is excellent) - I have to run it, then go re-un-indent the case statement, then save the file every time.

Seeing as the original Prettier behavior was "correct" then "fixed" in a PR because of someone's personal preference - it feels like this should be an option.

from prettier.

bakkot avatar bakkot commented on May 1, 2024

You can configure eslint to match prettier.


I strongly suspect the style prettier currently produces is by far the more common, and that most people will not refuse to use prettier because it enforces this style (although of course some people will). It is, for example, the style recommended by AirBnB, Google, and standard-js. As such, this seems like a textbook case where prettier should resist adding configuration. Remember, prettier is supposed to be opinionated!

Try this style; I bet you'll get used to it quick.

from prettier.

mrspeaker avatar mrspeaker commented on May 1, 2024

I could get used to ANY style quickly if I had to - but personally ESLint is my boss and I have to make my tools work around it. I agree it doesn't have to be an option but it should be opinionated that case statements are labels and shouldn't be indented, just as the original author made it.

It's not a big deal though - I try not to use switch statements too often, so it's easy to fix them each time.

from prettier.

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.