Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide options to disable some of the TypeScript exclusive features #14

Open
lierdakil opened this issue Nov 20, 2020 · 7 comments
Open
Labels
enhancement New feature or request

Comments

@lierdakil
Copy link

lierdakil commented Nov 20, 2020

Edited by @aminya

Background

Just to clarify all the features (autocomplete, data tips, signature help, outline, diagnostics, etc) except a few (Eslint) come from Typescript.
Disabling Typescript means disabling all the features. This the same for all the other IDEs (e.g. VsCode). JavaScript without Typescript almost has no IDE capabilities.

TODO

With that being said, we can do the following to make the features more customizable:

  • Providing an option for disabling the suggestion for installation of the @types package. To compensate for the lack of @types, I need to implement a feature that automatically installs @types (e.g. @types/node). This will fix Require options #4 as well.
  • Hiding TypeScript version/project/etc from StatusBar making them a unified icon reusable for all the languages. I think a unified status bar icon (which supports all the languages) instead of multiple icons that take space would be more useful.
  • Providing a higher priority for personal snippets
@aminya
Copy link
Member

aminya commented Nov 20, 2020

I can add notifications to the settings that we modify in this package to inform the users.

@aminya aminya added the enhancement New feature or request label Nov 20, 2020
@Zearin
Copy link

Zearin commented Feb 14, 2021

Agreed. I want the features of this package only for JS. My personal preference is to avoid TypeScript, and this package is flooding my editor with TypeScript-related messages.

@GyozaGuy
Copy link

I'd also like to request the ability to turn off TypeScript-specific features. I don't use TypeScript but otherwise love the features of this package.

@aminya
Copy link
Member

aminya commented Mar 16, 2021

Just to clarify all the features (autocomplete, datatips, signature help, outline, diagnostics, etc) except a few (Eslint) come from Typescript.
Disabling Typescript means disabling all the features. This the same for all the other IDEs (e.g. VsCode). JavaScript without Typescript almost has no IDE capabilities.

Could you exactly state what feature do you like to disable, so I can provide a config for that (e.g removing the suggestion for installing @types/package that could result in better IDE features).

@GyozaGuy
Copy link

Sorry, I should be more clear. Needing some of those enabled makes sense. The main things I wish I could disable include:

  • @types suggestions (they seem to have disappeared for me today, I'm not sure why)
  • UI additions such as TypeScript version, project, etc... in the status bar (minor annoyance, but clutters things up a bit)
  • Autocomplete (I don't use it, and it overrides some shortcuts I've gotten used to in Atom, such as typing lo and hitting "tab" to get console.log();)
  • Outline (minor since I can just keep it closed, but disabling it may free up resources? I don't know how these packages work internally)

While using this package I've noticed Atom gets very sluggish with some of my larger files open, which is why I think disabling some features may help. I've also noticed I have three outline panels now: the TypeScript "semantic view", one with colors, and a colorless one with a filter bar at the top. The TypeScript one only pops up if I specifically enable "semantic view", but the other two have the same shortcut so it gets a bit confusing. I thought maybe one came from a previous package I already had, but the only outline package I have installed is atom-ide-outline. Since I can't find where the other one comes from, I can't change its shortcut.

After thinking about this, I guess all I really use is diagnostics and hyperclicking. I don't use the other features, so maybe instead I should use different packages rather than asking for this one to be changed. 😅 I do appreciate all of your work on this though!

@aminya
Copy link
Member

aminya commented Mar 16, 2021

From your message, it seems you have ide-ui installed although it is deprecated. Please disable that package to speed up Atom. @lierdakil and I are working on consolidating Semantics View into Outline. Currently, Semantics View has some performance issues, and it is really heavy (even it takes CPU even if you disable it). So hopefully, by extending Outline, we can merge Semantics View into it.

With that being said:

  • I am fine with providing an option for disabling the suggestion for installation of the @types package. To compensate for the lack of @types, I need to implement a feature that automatically installs @types (e.g. @types/node). This will fix Require options #4 as well.
  • I agree with removing the UI additions. I think a unified status bar icon (which supports all the languages) instead of multiple icons that take space would be more useful.
  • For autocomplete, you should provide a higher priority for your snippets, so they show first.

@aminya aminya changed the title Forcing "enable Atom-TypeScript in JavaScript" is apparently unintuitive Provide options to disable some of the TypeScript exclusive features Mar 16, 2021
@GyozaGuy
Copy link

Thanks for the tip about atom-ide-ui, disabling that got rid of the extra outline and seems to have improved performance. I like the idea of the unified status bar icon. And for the autocomplete, I haven't added any snippets, that was just default behavior in Atom that I've grown used to. But I suppose I can add some snippets to get around that easily enough.

Thanks for your consideration!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants