Install theme dependencies before its activation


#1

Hello there,

I try to install automatically my theme dependencies (which is basically a atom package). Thus, as for a package I use the “package-deps” feature and set the name of the package dependence.

However, when I download my atom theme nothing is installed and an error is raised when I activate it (saying that the dependence is not found).

I opened an issue into “package-deps”:

Resulting on :

The problem is that Atom is designed to only activate themes when they are selected as active.

Is it possible to enable a theme’s package activation even before it’s activated, to be able to install its dependencies automatically ?


Import package inside theme
#2

It isn’t possible to do this the way that Atom is currently built, no. Additionally, I’m not sure that we would want to change the way that themes are activated unless this was a more common use case. Why does your theme need dependencies?


#3

We would like to use a parser for creating specific keywords to our language. However, we don’t want to impose a theme, so we thought to separate these two steps by:

  • A package parsing and creating keywords
  • A theme using these keywords to an user’s highlighting purpose.

However, use the theme without the package doesn’t make sense and we would like to install the package automatically to prevent this to happen.


#4

If you’re designing something for a custom language, users will need to download the language package anyway in order to get highlighting. It would be better for your users if you made both your language package and your theme follow the conventions that other languages and themes follow, so that users can use them without each other.


#5

Yes, however, the convention is to create a language package and a theme separately, isn’t it ?

We remarked that most of our users downloaded just the theme since the package is not imposed by the common way (our users may not be confirmed atom users) and we tried to install the package automatically.
However, it may be easier to implement the package in the theme and so the problem is avoided.

Is it exist another solution ?


#6

Your users should be downloading the language package on their own (because they’re working in a language that Atom doesn’t support by default). You shouldn’t force them to use a theme that they might not want to use.


#7

Yes, but the point is when they download the theme but they did not download the package.
However, it appears that it works but we have to restart atom (or at least open a new window) to install the package dependencies.
Then, the error is solved.

Thank you for your answers.


#8

This seems like a failure in communication.