Tslint: рдЗрдВрдбреЗрдВрдЯ рдирд┐рдпрдо рдЗрдВрдбреЗрдВрдЯ рдЖрдХрд╛рд░ рдЙрд▓реНрд▓рдВрдШрдиреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рдлрд┐рдХреНрд╕ рдирд╣реАрдВ рдХрд░рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдордИ 2017  ┬╖  66рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: palantir/tslint

рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ

  • __TSLint рд╕рдВрд╕реНрдХрд░рдг__: 5.3.2
  • __рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдг__: 2.3.2
  • __TSLint рдХреЗ рдЬрд░рд┐рдП рдЪрд▓ рд░рд╣рд╛ рд╣реИ__: CLI

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдкрдВрдХреНрддрд┐рдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

export function foo() {
  return 123;
}

tslint.json рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде:

{
  "extends": ["tslint:latest"],
  "rules": {
    "indent": {
      "options": ["spaces", 4]
    }
  }
}

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

tslint рд╕рд╛рде рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВред tslint --fix рд╕рд╛рде рдХреЛрдИ рд╕реБрдзрд╛рд░ рдирд╣реАрдВред

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░

tslint рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐рдпрд╛рдВ, tslint --fix рд╕рд╛рде рд▓рд╛рдЧреВ рд╕реБрдзрд╛рд░ рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗ:

export function foo() {
    return 123;
}

2723 рдиреЗ рдореЗрд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдХрд┐ рдЧрд▓рдд рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рд╡рд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реВрдЪрдирд╛ рджреА рдЬрд╛рддреА рд╣реИ, рди рдХрд┐ рдЗрдВрдбреЗрдВрдЯ рдЖрдХрд╛рд░ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ (рдЬреИрд╕реЗ рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ)ред рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕реНрд░реЛрдд ред

Available in ESLint Formatting rule P2 Declined Bug

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рдпрдо рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЯреИрдм рдХреЛ рдкрдХрдбрд╝ рд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЧрд▓рдд рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдкрдХрдбрд╝реЗрдЧрд╛ред рдореИрдВ 2 рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдЕрднреА рднреА рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред рдореИрдВ tslint 5.5.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

"indent": [true, "spaces", 2],

рд╕рднреА 66 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@adidahiya @nchen63 рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВред

@nchen63 рд╕реЗ :

рдпрд╣ рдЯреИрдм рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ -> x рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдФрд░ x рд░рд┐рдХреНрдд рд╕реНрдерд╛рди -> рдЯреИрдм, рд▓реЗрдХрд┐рди x рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ -> y рд░рд┐рдХреНрдд рд╕реНрдерд╛рди

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ x spaces рд╕реЗ y spaces ред

рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ 2 рдФрд░ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдлрд┐рдХреНрд╕ рдирд┐рдпрдо x spaces рд╕реЗ y spaces рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдореИрдВ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдпрд╣ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдпрд╣ рдЖрдХрд╛рд░ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЛ рдареАрдХ рдХрд░реЗрдЧрд╛, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЙрдиреНрд╣реЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ рддрд╛рдХрд┐ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░ рд╕рдХреВрдВред рдлрд┐рд▓рд╣рд╛рд▓ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд▓реЗрдЦрд┐рдд рдЗрдВрдбреЗрдВрдЯ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (https://palantir.github.io/tslint/rules/indent/) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рдБ, рдХреГрдкрдпрд╛ рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░реЗрдВред рдПрдВрдЧреБрд▓рд░ рд╕реАрдПрд▓рдЖрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реНрддрд░ рдХреЗ рд▓рд┐рдП 2 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдЙрджреНрдзрд░рдг рд╕рд┐рдВрдЧрд▓ рдХреЛрдЯреНрд╕ рд╣реИрдВред рдлрд┐рд░ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ tslint.json рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tslint рдЪрд▓рд╛рддрд╛ рд╣реИред рдЙрджреНрдзрд░рдг рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдореЗрд░реА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛), рд▓реЗрдХрд┐рди рдЗрдВрдбреЗрдВрдЯреЗрд╢рди 2 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдкрд░ рд░рд╣рддрд╛ рд╣реИ (рдЬрдмрдХрд┐ рдореИрдВ 4 рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ)ред Tslint рдХреЗрд╡рд▓ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рд╡рд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ TAB рд╡рд░реНрдг рджреЗрдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рднреА рдЬрд╛рдБрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ https://github.com/palantir/tslint/blob/master/src/rules/indentRule.ts рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рдлреА рдЕрдиреБрднрд╡рд╣реАрди рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕реЗ x spaces -> y spaces ред рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЯреИрдм рдХреЗ рд╕рд╛рде рдареАрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред

рдХрд╣реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 2 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдЪреМрдбрд╝рд╛рдИ рдЪреБрдиреА рдЧрдИ рдереА, рдФрд░ рдЗрд╕ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

foo = {
    a: {
  b: {
    c: 'c'
  }
    },
    d: 'd'
}

рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛? рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рдо рд░реЗрдЧреЗрдХреНрд╕ / / ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдо 2 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдЧреБрдгрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмреАрдд рдЬрд╛рдПрдЧрд╛ред рдЗрд╕реА рддрд░рд╣, рдмрд╣реБ-рд╕реНрддрд░реАрдп рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, 4 рдкреНрд░рдореБрдЦ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдПрдХ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдПрдХрд▓ рд╕реНрддрд░ рдХреЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рд╡рд┐рдлрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХреЛ рдПрдПрд╕рдЯреА рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕рд╛ рдХрд┐ рдПрд╕реНрд▓рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ (https://github.com/eslint/eslint/blob/master/lib/rules/indent.js)ред рдЗрд╕рдХрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдо tabs -> spaces рдпрд╛ spaces -> tabs рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рд▓реЗрдВрдЧреЗред рд╣рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЪреБрдирдХрд░ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЯреИрдм рдФрд░ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдПрд╕рдЯреА-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд╕реНрд▓рд┐рдВрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХрд┐рдП рдЧрдП рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдПрдПрд╕рдЯреА рдХрд╛рд░реНрдп рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рд╕реАрдзреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛?

рдЗрд╕рдХреА _рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ_ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред align рдирд┐рдпрдо рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛ред рдЬрд╝рд░реВрд░, рд╣рдо indent рдирд┐рдпрдо рдореЗрдВ рднреА AST рдкрд░ рдЪрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рд╣реИ рдХрд┐ indent рдФрд░ align рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рдореБрдЭреЗ рд╡рд╣ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдореБрджреНрджреЗ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред

рд╕рдВрд░реЗрдЦрдг рдирд┐рдпрдо рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛ред

рдЕрдЪреНрдЫрд╛! рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдЬрдм рдореИрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореИрдВ рд╡рд╣рд╛рдВ рднреА рдЪреЛрдЯреА рд▓реВрдВрдЧрд╛ред рдЯреАрдмреАрдПрдЪ, рдореБрдЭреЗ рджреВрд╕рд░реЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рднреЛрд▓реЗ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдирд┐рдпрдореЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рдпрдо рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЯреИрдм рдХреЛ рдкрдХрдбрд╝ рд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЧрд▓рдд рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рдкрдХрдбрд╝реЗрдЧрд╛ред рдореИрдВ 2 рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдЕрднреА рднреА рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред рдореИрдВ tslint 5.5.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

"indent": [true, "spaces", 2],

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? (рдпрджрд┐ рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ рдХрд┐рд╕реА рд╕реБрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдБред)

@mDibyo рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдВ

@mDibyo рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдХреА рд╣реИ?

рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдВрд╢рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдореЗрдВ рдкреАрдЖрд░ рдХрд░реЗрдВрдЧреЗ

рдмрд╕ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдмрди рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП tslint-plugin-prettier рдХреЗ рд╕рд╛рде рд╕реБрдВрджрд░ рд╕реНрд╡рд░реВрдкрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрд┐рд▓реНрдЯ-рдЗрди рдХреЙрдиреНрдлрд┐рдЧ рдореЗрдВ рдкреНрд░реАрдЯрд┐рдпрд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдЧрдд рд░реВрдк рд╕реЗ рдореБрдЦреНрдп рдирд┐рдпрдореЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рд░реВрдкрдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рджреВрд╕рд░реА рдУрд░, Prettier рд╣рд░ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХреЛрдб рдлрд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдкреНрд░рд┐рдВрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ 120 рдкрд░ рд╕реЗрдЯ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдкреНрд░реАрдЯрд┐рдпрд░ рдЕрддреНрдпрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ, рдпрд╛ рдЕрдиреНрдпрдерд╛ рдЕрд╡рд╛рдВрдЫрдиреАрдп рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╣рдо рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ 120 рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЕрднреА рддрдХ рдПрдХ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдирд┐рдпрдорд┐рдд TSLint рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдирд┐рдпрдорд┐рдд TSLint рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред

@ рдЧреНрд▓реЗрди -84 рд╣рд╛рдБ, рдпрд╣ рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рд╣рдореЗрдВ TSLint рд╕реЗ рд╕рднреА рд╕реНрд╡рд░реВрдкрдг рдирд┐рдпрдореЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░реА рдлреЙрд░реНрдореЗрдЯрд░ рдХреЛ рд╕реМрдВрдкрдирд╛ рдЪрд╛рд╣рд┐рдПред Prettier рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд░рд╛рдпрд╢реБрдорд╛рд░реА рд╣реИ рдФрд░ рд╣рд░ рдХреЛрдИ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдирдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдкреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЦреБрд▓рд╛ рд╣реИред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдореЗрд░рд╛ рдЬрдирд╕рдВрдкрд░реНрдХ рдкреНрд░рдЧрддрд┐ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЕрднреА рднреА рд╕рдордп рдЪрд╛рд╣рд┐рдПред @cyberhck

рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рд╡рд┐рд▓рдп рд╣реЛ рдЬрд╛рдПрдЧрд╛: рдереЛрдбрд╝рд╛_рд╕реНрдорд╛рдЗрд▓рд┐рдВрдЧ_рдлреЗрд╕:

рдпрд╣рд╛рдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рд╢рд╛рдпрдж рд╣рдо рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдлреЙрд░реНрдореЗрдЯрд░ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рд╕реЗ рдХреБрдЫ рдПрдкреАрдЖрдИ рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ? рдкреИрдХреЗрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ tslint.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реИ

рд╣рд╛рд▓рд╛рдВрдХрд┐, TSLint рдХреЗ рдлрд┐рдХреНрд╕рд░ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдорджрдж рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдХрд┐ рд╡рд┐рдлрд▓рддрд╛ рдХреЗрд╡рд▓ рддрднреА рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рдЧрд▓рдд рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рд╡рд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдЗрдВрдбреЗрдВрдЯ рдЖрдХрд╛рд░ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ред

рдпрджрд┐ рдЧрд▓рдд рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╡рд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ @adidahiya рдореИрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ред рдЕрдЧрд░ рдореИрдВ рдирд┐рдпрдо рдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди/4 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ:

export function foo() {
return 123;
}

рдпрд╛

export function foo() {
<tab>return 123;
}

рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреА рдореВрд▓ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ рдпрд╣ рдЧрд▓рдд рд╡реНрд╣рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рд╡рд░реНрдг рд╣реИ?

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдЧреНрд░рд┐рдо? рдмрд╕ рдкреВрдЫ рд░рд╣рд╛ рд╣реВрдБ

рд╕рд▓рд╛рд╣? рд╕реБрдВрджрд░ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ tslint-eslint-рдирд┐рдпрдореЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА

@jscharett tslint-eslint-rules ter-indent рдирд┐рдпрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрд╕рдореЗрдВ JSX рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ ...

рдпрд╣рд╛рдВ рдареАрдХ рд╣реЛрдиреЗ рдХреА рдХреЛрдИ рдЙрдореНрдореАрдж рд╣реИ?

рдпрд╣ рдмрдЧ рдЕрднреА рднреА v5.10.0 . рдореЗрдВ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ TSLint рдХрднреА рднреА JS рдХреЛрдб рдХреЗ рд╕рд╛рде-рд╕рд╛рде Prettier рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдпрд╣ рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдкреНрд░реАрдЯрд┐рдпрд░ рдиреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рдФрд░ рд╕реЗ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП TSLint рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдЕрдХреНрд╕рд░ рджреЛрдиреЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, рдФрд░ рд╕рдВрдШрд░реНрд╖ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкреИрджрд╛ рд╣реЛрдЧреА ...

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: _how_ рдХреЗ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЬрдЯрд┐рд▓ рд╣реИ, рдЗрд╕ рдкреАрдЖрд░ рдХреА рд╕рдореАрдХреНрд╖рд╛

@aervin рдореИрдВ рдпрд╣рд╛рдБ рдЕрд╕рд╣рдордд рд╣реВрдБред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, 2 рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдп рд╣реИрдВред Prettier рд╕реНрд╡рд░реВрдкрдг рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдмрдХрд┐ TSLint рд╕рддреНрдпрд╛рдкрди рдХреЗ рдЕрдиреБрд░реВрдк рдЕрдзрд┐рдХ рд╣реИред рд╣рд╛рдВ, TSLint рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд░реВрдкрдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд▓рд┐рдВрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рдЗрдЪреНрдЫрд┐рдд рдЙрджреНрджреЗрд╢реНрдп, рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВред

Prettier рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд░рд╛рдп рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХреА рд╢реИрд▓реА рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рд╣рдо рд╕рднреА JSLint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗ, рдФрд░ рд╣рдо рд╕рднреА рдиреЗ рд╢рд┐рдХрд╛рдпрдд рдХреА рдереА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрддрдирд╛ рд░рд╛рдп рд╡рд╛рд▓рд╛ рдерд╛ред рдлрд┐рд░ JSHint рдФрд░ JSCS рдЖрдП, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдХреБрдЫ рдирд┐рдпрдВрддреНрд░рдг рдорд┐рд▓рд╛ред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ @eslint рдЬреИрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдкреНрд▓рдЧ-рдПрди-рдкреНрд▓реЗ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ "рдареАрдХ" рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдЬрдмрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдкреНрд░реАрдЯреАрдпрд░ рдПрдХ рдорд╣рд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рдХреА рдУрд░ рджреЗрдЦрддрд╛ рд╣реВрдВред рдЗрд╕рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдореБрдЭрд╕реЗ рджреВрд░ рд▓реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред TSLint рдХреЛ рдХреЛрдб рдХреЛ "рдареАрдХ" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдмрд╕ рдЗрд╕реЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝реНрд▓реИрдЧ рдХрд░реЗрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдПрд╕реНрд▓рд┐рдВрдЯ рдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред рдирд┐рдпрдо рдХрд╛рдо рдХрд░рддрд╛ рдерд╛; рдЗрд╕реЗ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдмрджрд▓рд╛?

@jscharett рдЖрдкрдХреА рдЕрдиреБрдХреВрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдп рд╣реИрдВ, рдпрд╛ _рдЪрд╛рд╣рд┐рдП_ рд╣реИрдВред рдореЗрд░рд╛ рддрд░реНрдХ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЗрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЙрдиреНрд╣реАрдВ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП рдкреНрд░реАрдЯрд┐рдпрд░ рдХреЛ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреЗрдВ, рдФрд░ рдЯреАрдПрд╕рд▓рд┐рдВрдЯ рдХреЛ рддреАрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рд╡рд╛рд▓реЗ рджреЗрд╡реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рднреА рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдкреНрд░реАрдЯрд┐рдпрд░ рдХреА рд░рд╛рдп рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкреНрд░реАрдЯреАрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЕрдм рдореЗрд░реА рдЯреАрдо рдХреЛ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рд╕рдХреА рд╕реНрд╡рд░реВрдкрдг рд░рд╛рдп рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд╣реИред рд╣рдо рд╕рднреА рдкреНрд░реАрдЯрд┐рдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╣рдВрд╕рдирд╛:ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

рдирд┐рдпрдо рдХрд╛рдо рдХрд░рддрд╛ рдерд╛; рдЗрд╕реЗ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдмрджрд▓рд╛?

рд╢реБрд░реБрдЖрддреА рдЕрдВрдХ рдХреА рдЯрд┐рдкреНрдкрдгреА рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рдпрдо рдХрднреА рднреА рдЗрд░рд╛рджрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдЬрдмрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдкреНрд░реАрдЯреАрдпрд░ рдПрдХ рдорд╣рд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдПрдХ рдХрджрдо рдкреАрдЫреЗ рдХреА рдУрд░ рджреЗрдЦрддрд╛ рд╣реВрдВред рдЗрд╕рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдореБрдЭрд╕реЗ рджреВрд░ рд▓реЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рдерд╛ рдХрд┐ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдЬрдм рддрдХ рдореИрдВрдиреЗ рдкреНрд░реАрдЯреАрдпрд░ рдХреЛ рдЬреЛрдбрд╝рд╛, рддрдм рддрдХ рдореБрдЭреЗ рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдкрд░ рдареАрдХ-рдард╛рдХ рдирд┐рдпрдВрддреНрд░рдг рд░рдЦрдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдереА ... рдФрд░ рдЬрд▓реНрдж рд╣реА рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрддрдирд╛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рд╕реНрд╡рд░реВрдкрд┐рдд рдереЗред рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рднрд╛рд░ рд╣реИ рдХрд┐ рдЕрдм рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдореИрдВ рдХреЛрдб рдХреЛ _do_ рдХреИрд╕реЗ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

tslint рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рд░реВрдкрдг рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░ рдирд╛рдореЛрдВ рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд░реЗрдЦрдг, рдмреНрд░реИрдХреЗрдЯ рд╢реИрд▓реА рдпрд╛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд▓рд╛рдЧреВ рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкреНрд░реАрдЯрд┐рдпрд░ рдЬреИрд╕реЗ рд╡рд┐рдЪрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред

рдХрдо рдЪрд░реНрдЪрд╛, рдФрд░ рдЕрдзрд┐рдХ PR'ing рдХреА рдЬрд░реВрд░рдд рд╣реИред ЁЯШЙЁЯШЙ

рдЖрдЧреЗ рдмрдврд╝реЛ @ffxsam

рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдЬреНрдпрд╛рджрд╛рддрд░ рдЬреБрдмрд╛рдиреА рдереАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдирд╛ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╕рд┐рд░реНрдл рд▓рд╛рдЗрдирд┐рдВрдЧ рдмрдирд╛рдо рдкреНрд░реАрдЯреАрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред

@ffxsam рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рд╣реИ рдХрд┐ рдХреНрдпрд╛ tslint ts рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИ рдпрд╛ рд▓рд┐рдВрдЯ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ

рдпрд╣ рдПрдХ рд╡реИрдз рдмрд┐рдВрджреБ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ TSLint/ESLint рдХреЗ рд╕рд╛рде рдХреБрдЫ рдУрд╡рд░рд▓реИрдк рд╣реИред рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЧреИрд░-рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ indent рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдХрд┐ рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрдм рддрдХ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреАрдПрд╕рд▓рд┐рдВрдЯ рдХреЛрдбрдмреЗрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬрд╝/рдЖрд╕рд╛рди рдЪреАрдЬ рд╣реЛрдЧреА ...?

x spaces => y spaces рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░реЗрдВред рдпрд╣ рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдЗрд╕реЗ рдареАрдХ рди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

@ffxsam рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рд╣рд╛рдБ рдпрд╣ рд▓рдВрдмрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рджреЛ рдкреАрдЖрд░ рдкреНрд░рдпрд╛рд╕ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЕрдм рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд┐рддрдирд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╕ рдмрд╣реБрдд рдзреИрд░реНрдп рд╣реИ: рдереЛрдбрд╝рд╛_рдореБрд╕реНрдХреБрд░рд╛рддреЗ рд╣реБрдП_рдлреЗрд╕:

рдЕрднреА рднреА рдЦрд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп
https://github.com/dimaShin/tslint-reproduce-2814

рд╣рд╛рдп @dimaShin , рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднрдВрдбрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЯреАрдо рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрд╡рдЧрдд рд╣реИ, рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрднреА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред

рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╕рдВрднрд╡рдд: рдлрд┐рдХреНрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА рдереА рдХрд┐ рд▓реЛрдЧ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП tslint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реИ, рдореИрдВ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд▓рд┐рдП .editorconfig рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рднреА рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╣рд▓ рд╣реЛрдиреЗ рдкрд░ рдмрд╛рдж рдореЗрдВ tslint рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рджреВрдВрдЧрд╛ред

рджреЛрдмрд╛рд░рд╛, рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)

рдЖрдЗрдП рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рдгрдиреАрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдПрд╕реНрд▓рд┐рдВрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд░рдгрдиреАрддрд┐ рдпрд╣рд╛рдВ рджреА рдЧрдИ рд╣реИ:

  1. рдПрдХ рдСрдлрд╝рд╕реЗрдЯрд╕реНрдЯреЛрд░реЗрдЬ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╡рд╛рдВрдЫрд┐рдд рдСрдлрд╝рд╕реЗрдЯ рдХрд╛ рдирдХреНрд╢рд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЯреЛрдХрди рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреЛрдХрди рдпрд╛ рдкрд╣рд▓реЗ рдХреЙрд▓рдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдСрдлрд╝рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред
  2. рдЬреИрд╕реЗ рд╣реА рдПрдПрд╕рдЯреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЯреЛрдХрди рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рдСрдлрд╕реЗрдЯ рдХреЛ рддрджрдиреБрд╕рд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмреНрд▓реЙрдХрд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╕рдордп, рдмреНрд▓реЙрдХрд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рд╕рднреА рдЯреЛрдХрди рдХреЛ рдмреНрд▓реЙрдХрд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд╢реБрд░реБрдЖрддреА рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕ рд╕реЗ 1 рдЗрдВрдбреЗрдВрдЯ рд╕реНрддрд░ рд╕реЗ рдСрдлрд╕реЗрдЯ рдХрд░реЗрдВред
  3. рдПрдПрд╕рдЯреА рдХреЛ рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдСрдлрд╕реЗрдЯрд╕реНрдЯреЛрд░реЗрдЬ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдЯреЛрдХрди рдХреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реНрддрд░реЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВред
  4. рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдЯреЛрдХрди рдХреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ, рдФрд░ рдпрджрд┐ рджреЛ рдорд╛рди рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЯреЛрдХрди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред

рдпрд╣ рд░рдгрдиреАрддрд┐ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд░рд╛рдп рд╡рд╛рд▓реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдХреИрд╕реЗ рддреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ:

  1. рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЗрдХрд╛рдИ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЯреИрдм рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдЯреИрдм рд╡рд░реНрдг рд╣реИред рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рджреЛ рдпрд╛ рдЪрд╛рд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рд╡рд░реНрдг рд╣реИрдВред
  2. рдлрд╝рд╛рдЗрд▓ рдХреА рдкрд╣рд▓реА рдЧреИрд░-рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рд╢реВрдиреНрдп рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
  3. рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреА рдЧреИрд░-рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐ рдореЗрдВ рдпрд╛ рддреЛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
    рдПред рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдкреВрд░реНрд╡рд╡рд░реНрддреА рдЧреИрд░-рд░рд┐рдХреНрдд рд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛
    рдмреАред рдкреВрд░реНрд╡рд╡рд░реНрддреА рдЧреИрд░-рд░рд┐рдХреНрдд рд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХрдо рдпрд╛
    рд╕реАред рдкреВрд░реНрд╡рд╡рд░реНрддреА рдЧреИрд░-рд░рд┐рдХреНрдд рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдЕрдзрд┐рдХ

рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рддреЗрдВ:

  • рдЖрдХрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЯреИрдм рдХреЗ рд╕рд╛рде рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ (рдХреНрдпреЛрдВ?)
  • рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ size рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛрдИ рдзрдирд╛рддреНрдордХ рдкреВрд░реНрдгрд╛рдВрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛
  • рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдЖрдХрд╛рд░ рдХреЛ рдСрдЯреЛ-рдлрд┐рдХреНрд╕рд┐рдВрдЧ рд╢рд╛рдпрдж рд╕рд┐рдВрдЯреИрдХреНрд╕ рд░рдгрдиреАрддрд┐ рдорд╛рд░реНрдЧ рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

@stifflerus рднреА рдирд┐рдпрдо {} рдмреНрд▓реЙрдХ рдХреЗ рдмрд┐рдирд╛/рдХреЗ рд▓рд┐рдП/рддреАрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

@maximelkin рдХреНрдпрд╛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдкрд░ рдЗрдВрдбреЗрдВрдЯ рдирд╣реАрдВ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд░рдгрдиреАрддрд┐ рдХрд╣рд╛рдБ рд╡рд┐рдлрд▓ рд╣реЛрдЧреА?

if(this) that(); //okay because it's all one line

if(this)
  that(); //also okay because the second line is indented

let x = () => f(); //okay because it's all one line

let y = () =>
  f(); // I have not seen any code but like this but it would be okay

рдмрдврд╝рд┐рдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдореМрд▓рд┐рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рддреЛ, 2018 рдореЗрдВ рдРрд╕реЗ ts-code рдХреЛ рд▓рд┐рдВрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ?

const x = {
  a: 1,
   b: 2,
}

рдореЗрд░реЗ рд▓рд┐рдпреЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ
./.eslintrc.ts.js :

module.exports = {
  'parser': 'typescript-eslint-parser',
  'parserOptions': {
    'ecmaVersion': 6,
    'sourceType': 'module',
    'ecmaFeatures': {
      'jsx': true,
    }
  },
  'plugins': [
    'react',
  ],
  'rules': {
    'indent': ['error', 2],
  },
}

yarn eslint --no-eslintrc --config ./.eslintrc.ts.js --ext .tsx src

https://github.com/eslint/typescript-eslint-parser

рдХреЛрдгреАрдп рдореЗрдВ рдЗрдВрдбреЗрдВрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЬреЛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ рд╡рд╣ рдЕрдЧрд▓реЗ рдЪрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕реБрдВрджрд░ рдЬреЛрдбрд╝рдирд╛ рд╣реИ:
npm рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ --save-dev tslint-plugin-prettier рд╕реБрдВрджрд░ tslint-рдЪрдореЗрд▓реА-рдирд┐рдпрдо
tslint.json рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ ->
` "рдирд┐рдпрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛": [
"рдиреЛрдб_рдореЙрдбреНрдпреВрд▓/рдХреЛрдбрд▓реАрдЬрд╝рд░",
"рдиреЛрдб_рдореЙрдбреНрдпреВрд▓реНрд╕/tslint-рдкреНрд▓рдЧрдЗрди-рдкреНрд░реАрдЯрд┐рдпрд░",
"рдиреЛрдб_рдореЙрдбреНрдпреВрд▓/tslint-рдЪрдореЗрд▓реА-рдирд┐рдпрдо/рдЬрд┐рд▓рд╛"

],
"рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд": "tslint-plugin-prettier",

"рдирд┐рдпрдо": {
"рд╕реБрдВрджрд░": рд╕рдЪ,
// рдпрд╣рд╛рдВ рдЕрдкрдиреЗ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ `

рдФрд░ package.json рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ->
","рд╕реБрдВрджрд░": {
"рдПрдХрд▓ рдЙрджреНрдзрд░рдг": рд╕рдЪ рд╣реИ,
"рдкреНрд░рд┐рдВрдЯрд╡рд┐рдбреНрде": 140,
"рдЕрд░реНрдз": рд╕рдЪ рд╣реИ,
"рдмреНрд░реИрдХреЗрдЯрд╕реНрдкреЗрд╕рд┐рдВрдЧ": рд╕рдЪ,
"рдПрд░реЛрдкреЗрд░реЗрдВрд╕": "рд╣рдореЗрд╢рд╛",
"рдкрд╛рд░реНрд╕рд░": "рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ"
}"

рдпрд╣ рдПрдХ рдРрд╕реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрднрдЧ рд╣рд░ рдХреЛрдИ рджреИрдирд┐рдХ рдЖрдзрд╛рд░ рдкрд░ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред

рджреЛрд╕реНрддреЛрдВ, рдЖрдк tslint-eslint-rules рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП ter-indent рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

"рдЯреЗрд░-рдЗрдВрдбреЗрдВрдЯ": [рд╕рдЪ, рек, {"рд╕реНрд╡рд┐рдЪрдХреЗрд╕": рез }]

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдЪреАрдпрд░реНрд╕!

@hiteshaleriya рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдпрд╣реА рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдЪреБрдк tslint.json :

{
    "extends": "tslint-config-airbnb",
    "rules": {
        "ter-indent": ["error", "spaces", 4],
        "no-unused-vars": ["warn"],
        "no-multi-spaces": false,
        "no-console": false,
        "max-line-length": false,
        "import-name": false
    }
}

рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдпрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреИрджрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛:

function retrieveAndSetConfig(): Promise<any> {
  return new Promise((resolve, _) => {
  // ^ 2 spaces, expected 4
    const ghe = new GHEUtils();
    // ^ 4 spaces, expected 8
    // ...
}

рдЯреИрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рдирд╣реАрдВ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореМрдЬреВрдж рд╣реЛрдВ?)

@SpencerKaiser рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдирд╛ рдЯреЗрд░-рдЗрдВрдбреЗрдВрдЯ рдирд┐рдпрдо рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:

"ter-indent": [true, 4]

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдореЗрд░реЗ рдЕрдВрдд рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ (рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг)ред

@hiteshaleriya рдЗрддрдиреА рдЬрд▓реНрджреА рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ --fix ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

@SpencerKaiser рдХреНрдпрд╛ рдЖрдк --fix рдХрдорд╛рдВрдб рдХреЛ рджреЛ рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдЗрдВрдбреЗрдВрдЯ рдХрд░реЗрдЧрд╛, рдлрд┐рд░ рджреВрд╕рд░реА рдмрд╛рд░ рдпрд╣ рдмрд╛рдХреА рдХреЛ рдЗрдВрдбреЗрдВрдЯ рдХрд░реЗрдЧрд╛ (рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХреЗ рд▓рд┐рдП)ред рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред

@hiteshaleriya рддреЛ рдХреБрдЫ рдЕрд╡рд▓реЛрдХрди ... рдореБрдЭреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдореБрдЭреЗ рдЗрд╕реЗ рд▓рдЧрднрдЧ n/4 рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЬрд╣рд╛рдВ n рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреА рд▓рдВрдмрд╛рдИ рд╣реИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдмрд╕реЗ рджреВрд░ рдХреА рдЗрдВрдбреЗрдВрдЯ рд▓рд╛рдЗрди ┬п\_(уГД)_/

рдЕрдВрдд рдореЗрдВ рдЙрди рд╕рднреА рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ:

class Something {
    function myFunc() {
        const myThing = {
            wat: 1,
         wattt: 5,    // 9 spaces, expected 12
        };
    }
}

рдЕрдЧрд░ рдореИрдВ const (рдкрдВрдХреНрддрд┐ 17) рд╕реЗ 0 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реНрддрд░ рдХреЛ рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рдЬрдм рдореИрдВ --fix рдЫреЛрдбрд╝рддрд╛ рд╣реВрдВ, рддреЛ рдмрд╛рдХреА рдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

ERROR: 17:1  ter-indent  Expected indentation of 8 spaces but found 0.
ERROR: 18:1  ter-indent  Expected indentation of 4 spaces but found 12.
ERROR: 20:1  ter-indent  Expected indentation of 0 spaces but found 8.

--fix , рдпрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдкрд╛рд╕ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

        const myThing = {
    wat: 1,
         wattt: 5,
};

рдФрд░ рджреВрд╕рд░рд╛ рдкрд╛рд╕:

        const myThing = {
            wat: 1,
         wattt: 5,
        };

рд╡рд┐рдЪрд╛рд░ ??

@shubich рдореИрдВ рд╡рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ ...

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

@MaKCbIMKo рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдкреВрд░реА рдЯреАрдо рдПрд╕реНрд▓рд┐рдВрдЯ рд╡рд┐рдЬрд╝рд┐рдЯ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдПрд╕реНрд▓рд┐рдВрдЯ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реА рд╣реИ, рдФрд░ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ tslint рдХреЛ рдкрджрд╛рд╡рдирдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕ рдирд┐рдпрдо рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдЬрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ (рдпрд╛ tslint-config-prettier рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ) )

рдЗрд╕ рдХрд╛рд░реНрдп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдХрд╛рд░рдг рд╕рдорд╛рдкрди: #4534

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ-рдПрд╕рд▓рд┐рдВрдЯ рд╕реЗ ESLint рдирд┐рдпрдо рдореЗрд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ #4534):

module.exports = {
    "env": {
        "browser": true,
    },
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": 2019,
        "sourceType": "module",
        "ecmaFeatures": {
            "jsx": true
        },
        "project": "./tsconfig.json",
    },
    "plugins": ["@typescript-eslint"],
    "rules": {
        "@typescript-eslint/indent": ["error", 2] // or ["error", "tab"]
    }
}

рдмреАрдк рдмреВрдк! TSLint рдкрджрд╛рд╡рдирдд рд╣реИ рдФрд░ рдЖрдкрдХреЛ typescript-eslint рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП! ЁЯдЦ

рдЖрдЧреЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╢реБрдХреНрд░рд┐рдпрд╛! ЁЯСЛ

PS tslint-config-prettier - рдХреГрдкрдпрд╛ _linters_ рдЬреИрд╕реЗ TSLint рд╕реЗ _format_ рдЕрдкрдиреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдж рдХрд░реЗрдВред рдпрд╣ _formatter_ рдЬреИрд╕реЗ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

CSchulz picture CSchulz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rajinder-yadav picture rajinder-yadav  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cretz picture cretz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cateyes99 picture cateyes99  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ