Suboptimal additional indentation for decorated functions
**Prettier 2.2.1**
[Playground link](https://prettier.io/playground/#N4Igxg9gdgLgprEAuEB6VACAvDjcAeAhgLYAOANnBgIzY70ONPMtMYA6U6GMAFlQDMIAJ2KEY8ACYYIAVxil5MgT14BLAM4yoVAO5ry5beQCeGchAgBrDAHNLkztzUrSwuBLVxhGAG4AmADog2k0MWQ04aQxCLTUYHndxLQFZKDAYNWgtPnEnTEJ3DCgSKI4QSTgBNR12EAxJFwFvBATcqBk+by1JWSoYCAwAI1lbDABiagAGABZ-fwwAWnyMSKpeCVINJHRbeN5ZIcDIYlQ3D0zvM-dPK80NPo1Uabn-Tk5IKA0EgGE5WG82AaVRqcAAFAByYgmRaQNLwYQQgA0GDBwE4GAwNXiakI5D+8KBUyRGPMhCGcCMWAwEIJAMRnAAvkgMHSEQAFYQQLYASmwAD4MOiOhhPt8MABtOGwFGRGBsgC6QIicAAyjBxODsZk8WyeaSxQloD9yGowDZqSqfnjyENCOawWC+VhBXK2WD4gKsQkANQ0HkoiUK-Ui0k3WTCDpg0mYgA8Iwk0G0YFN5qwwGNqasjP5McxQvI5MpzKF0pgjLzsdQCYGUFzIr5mKZIZW9DwRDIlAwC1Yvb7-Y4UBWi0FXRikkamSTNUqsHEWQ6NVUghEYgkZTkCnkK3zYXJGgg5HklLMUAgCV0hAB0n47ne6Wyv3+CKBJ1I0FakOhsOf3mRqOFTFtVxfFnyJEkRULCkqRpNk-yZFk4OETluQ0Z1BUA0VH0lMtZQ8RVlUidVNQ9KAcV1Z8Q0xQ1tBNM0LXCSJrUMO0HSdL03WfD0Ehdb0MD9agA0lYNSTDDwIyjSsayTaAU3o9NM3onM80xYAoOLFlgDLCsRTjat5FretMUbQdGRDEAkRAbkpy+ZBQEKLldHZQoEA0ZAQDxS8TDcyyhmEe0rA8VVSHtGpbGQGBhD6Sy4GICkJyiAAZK9bFkQhbDgAAxVdxEyKBwpQQh5AgCyQA2YhyAAdXUeANBCsA1VcnFfHiEx3LADQfJAGpImEGBOXSsRkAEPFIksgArDR8AAIX880gtKRLQWG0a4AmqbVTCygAEVZHPOAVvIMaQBC4RevcmATFIOANDAYQ1FIGBSrcGoYEqtRJD4ZAAA5iROrlIkq-zSHc85et8A7LIARz2+AUK2dzYkWHQoiiUr3BhtR3AG2whqQEajrWkBImINRDuOjQtrgXb9oiqKiY1IZ3s+3hkH8SzIsIAwwr+Yg8ZAM8dFKlUABV93JonfD6ABJKBZxgVU7oemAAEE5fVExKAlxlGSAA)
<!-- prettier-ignore -->
```sh
--parser typescript
--no-semi
--single-quote
--trailing-comma none
```

**Input:**
<!-- prettier-ignore -->
```tsx
// === example 1 ========================================== 
// the formatted output of this one will only look good
// if prettier v2.2.1 is used  as it treats functions that
// are named "define" different than others due to bug #10422 -
// see https://github.com/prettier/prettier/issues/10422

const Counter = define('my-counter', ({
  initialCount = 0,
  label = 'Counter'
}: CounterProps) => {
  const [count, setCount] = useState(initialCount)
  const onClick = useCallback(() => setCount(it => it + 1), [])
  
  return (
    <button onclick={onClick}>
      {label}: {count}
    </button>
  )   
})

// === example 2 ========================================== 

// -> the addition indentation in the formatted output
//    is absolutely not wanted here

const Counter = component('my-counter', ({
  initialCount = 0,
  label = 'Counter'
}: CounterProps) => {
  const [count, setCount] = useState(initialCount)
  const onClick = useCallback(() => setCount(it => it + 1), [])
  
  return (
    <button onclick={onClick}>
      {label}: {count}
    </button>
  )   
})

```

**Output:**
<!-- prettier-ignore -->
```tsx
// === example 1 ==========================================
// the formatted output of this one will only look good
// if prettier v2.2.1 is used  as it treats functions that
// are named "define" different than others due to bug #10422 -
// see https://github.com/prettier/prettier/issues/10422

const Counter = define('my-counter', ({
  initialCount = 0,
  label = 'Counter'
}: CounterProps) => {
  const [count, setCount] = useState(initialCount)
  const onClick = useCallback(() => setCount((it) => it + 1), [])

  return (
    <button onclick={onClick}>
      {label}: {count}
    </button>
  )
})

// === example 2 ==========================================

// -> the addition indentation in the formatted output
//    is absolutely not wanted here

const Counter = component(
  'my-counter',
  ({ initialCount = 0, label = 'Counter' }: CounterProps) => {
    const [count, setCount] = useState(initialCount)
    const onClick = useCallback(() => setCount((it) => it + 1), [])

    return (
      <button onclick={onClick}>
        {label}: {count}
      </button>
    )
  }
)

```

**Expected behavior:**
Would be perfect if the function indentation stays as is (no additional two space indentation) - the  formatting of the argument list is not that important.
Please ignore that the examples above look a bit like React or Preact - it's not about those libraries, it's just about the pattern.
Very often I have the case that special functions have the purpose to transform other functions, often including a bit of meta information (like a string or whatever), like in the examples above, but then the formatting by prettier will be quite ugly.
You may say for the examples above just define first a named function and then call the `component` function afterwards with the function variable as argument ... but in general this may explicitly not wanted and be more complicated (for example if you have `const Counter = component('my-counter', counterOptions, func)` where the type of `func` depends heavily on the type of `counterOptions`). Of course with some aditional lines of code and some utility types this is doable, but will be syntactically ugly and less readable.
Frankly, I have no concrete suggestion what could be a good solution regarding what format should be applied in what concrete cases - but I hoped you may have some ideas.

[Edit] One possibility could be: If all arguments except for the last one are literals or variables and the last argument is a closure and the literals and variables match one line then format as suggested above otherwise format as usual.