TypeStrong / atom-typescript

The only TypeScript package you will ever need
https://atom.io/packages/atom-typescript
MIT License
1.13k stars 205 forks source link

Autocomplete parentheses, arrow functions #1574

Open cedrikaagaard opened 3 years ago

cedrikaagaard commented 3 years ago

The "Autocomplete parentheses" option doesn't work for arrow functions and this would be a nice feature to have.

lierdakil commented 3 years ago

It would be, but I don't know how to fix this. TSServer reports bound array functions as const, which they are. And parsing the info it returns about type is probably not very robust. Here's an example:

{
  "name": "test",
  "kindModifiers": "",
  "kind": "const",
  "displayParts": [
    {
      "text": "const",
      "kind": "keyword"
    },
    {
      "text": " ",
      "kind": "space"
    },
    {
      "text": "test",
      "kind": "localName"
    },
    {
      "text": ":",
      "kind": "punctuation"
    },
    {
      "text": " ",
      "kind": "space"
    },
    {
      "text": "(",
      "kind": "punctuation"
    },
    {
      "text": ")",
      "kind": "punctuation"
    },
    {
      "text": " ",
      "kind": "space"
    },
    {
      "text": "=>",
      "kind": "punctuation"
    },
    {
      "text": " ",
      "kind": "space"
    },
    {
      "text": "void",
      "kind": "keyword"
    }
  ],
  "documentation": []
}

That's pretty much all we can coax out of tsserver. I don't know how to decide whether we need to add parentheses or not based off this. If anyone has suggestions -- feel free to chime in.