atom / ide-typescript

TypeScript and Javascript language support for Atom-IDE
MIT License
368 stars 63 forks source link

[Feature] Allow using locally installed version of tsserver #154

Closed remagpie closed 3 years ago

remagpie commented 5 years ago

Summary

Allow users to pick the tsserver.js from the node_modules folder at the current project root if it exists.

Motivation

Most of the projects using typescript specifies their own version of the compiler as a dependency. Since the typescript introduces some breaking changes and new features when bumping their versions, it's pretty natural to use the locally installed version of the compiler rather than the global one. However, ide-typescript currently passes the path to the bundled version of the tsserver.js rather than using the project-local one.

One of the solutions for this situation would be providing an option for using a locally installed version of the tsserver if it exists. Maybe the simplest solution would be done by providing a boolean flag to interpret specified path as a relative path from the ide-typescript's installed directory or current project's root directory. Similar approach is implemented by prettier-atom package.

Describe alternatives you've considered

None

Additional context

https://github.com/atom/ide-typescript/blob/962f06acb1a463e86e406299a835516d48f87756/lib/main.js#L19 This line of code decides the path of the tsserver.js to use.

remagpie commented 5 years ago

I found out that if a relative path was provided as an option, this package tries to find tsserver from the path where the package was installed. I think finding it from the current project's path would be a good solution for this.

vlad0337187 commented 3 years ago

Found problem with merged PR:

If to open project without locally specified TS server path, it will show error alert. Also if to open project with locally specified TS server path, it'll show error alert anyway, because project path is not always set.

Added fix: https://github.com/atom/ide-typescript/pull/166