Those aren’t packages, they’re syntaxes that are contained within the JavaScript
package (in your particular example here). Generally because they’re related or extend from one another.
In this example,
-
TSX
extends JSX
and TypeScript
-
JSX
and TypeScript
extend JavaScript
Since Syntaxes are only used to provide editor support for those particular kinds of files, they only ever have any effect on anything if you happen to open such a file, and they are loaded the first time that they’re needed. As such there is no need to remove them other than looking in this menu shows you things you don’t want to see (but by the same token if you’re looking in this menu that frequently, you probably have something set up incorrectly).
In any case, there are only two ways to actually remove such a thing should you actually want to do it, and with all of the caveats outlined above regarding how all of the core packages tend to rely on each other and you can serious bork/destroy/disable Sublime as a whole by trying to mess with them when you don’t understand the consequences (so be warned):
Option 1
Look in the installation folder of Sublime, where the Exectuable lives. You will see a Packages
folder there, and inside some sublime-package
files; these are the packages that ship with Sublime. If you rename them to .zip
and then modify the contents, then rename them back to sublime-package
, the files will no longer be present.
Note however that the files in the installation directory are intended to be hands off by the user because Sublime updates itself by discarding the entire installation folder and replacing it with a new one (hence why your user configuration is not there).
As such every time Sublime upgrades itself, your change will be discarded without warning, which is why you should never, ever do this unless your life is too boring and you want or crave ongoing woe.
Option 2
Similar to option one, except you take that sublime-package
file, copy it out, edit it as desired, and then instead of replacing it in the installation folder, drop it into the Installed Packages
folder in your user configuration area (NOT Packages
!).
When Sublime loads the shipped packages, if a sublime-package
with the same name exists in Installed Packages
then it will completely ignore the one it ships with and use that one instead.
In this case, when Sublime upgrades itself, your change remains in place because it’s not in the installation folder.
However, this locks you into that particular version of that package, forever, with no direct warning. So, if a future version of Sublime adds new features or fixes bugs or otherwise enhances that package, you will not receive those benefits.
Further, if any of the other core packages rely on those changes, those packages will break for mysterious reasons, as will any third party package that does the same.
Thus, things are still dire, but perhaps less so in the short term, and things just sort of tend to get a bit rickety as time goes on.
If you want to go this route, I would recommend the OverrideAudit
package mentioned above, which if nothing else will warn you if the shipped version of the package is newer than your version, so you can decide if you want to take action.
OverrideAudit
's support for this is purely informational, unlike regular overrides where it can tell you what is different to help you edit them. To my knowledge, in the 8 years that the package has existed I’m the only person that has ever exercised its ability to tell you about this, and that’s only because I wrote the thing and needed to test it.
Probably worth noting that making changes such as these can make diagnosing problems quite difficult, particularly for people that don’t know the depth or scopes of the changes you made, which likely greatly constrains your ability to get help from the community in general.