conao3 / leaf-keywords.el

Additional leaf.el keywords for external packages
GNU General Public License v3.0
33 stars 10 forks source link

Package version using straight.el #74

Open arkhan opened 4 years ago

arkhan commented 4 years ago

Regards,

What a great job with leaf.el, I have migrated all my settings from use-package to leaf.el, and it's great.

Since I use leaf.el + straight.el, and the latter has the possibility of using specific versions of the packages to be installed, this feature could be included in leaf.el through leaf-keywords.el.

Thank you

conao3 commented 4 years ago

Sorry, I am not an English native, I can't grasp your intention. In other words, you want feature to install a specific version of straight via leaf.el? Or, install some packages specific version by straight via :straight keywords?

arkhan commented 4 years ago

Greetings, that is just the intention, but being a characteristic of straight. The idea is to install specific versions of the packages using the keyword :straight

conao3 commented 4 years ago

I've transferred this issue from https://github.com/conao3/leaf.el/issues/368

I am not familiar with straight, but could straight version-specific install via straight-use-package? leaf is just a macro and :straight keyword will expand straight-use-package. So, if straight cant version-specific package install, you cant version-specific install via :straight.

arkhan commented 4 years ago

Greetings, as you check you can specify the version of a package using straight-x.el:

https://github.com/raxod502/straight.el#how-do-i-pin-package-versions-or-use-only-tagged-releases

conao3 commented 4 years ago

Yes, I've read that document. Currently, :straight keyword is expanded like below.

Issue leaf block

(leaf leaf
  :init (leaf-pre-init)
  :straight (zenburn-theme :type git :host github :repo "fake/fake")
  :config (leaf-init))

Expanded sexp via macroexpand-1

(prog1 'leaf
  (straight-use-package
   '(zenburn-theme :type git :host github :repo "fake/fake"))
  (leaf-pre-init)
  (leaf-init))

Specify package version via leaf, maybe below form...?

(prog1 'leaf
  (straight-use-package
   '(zenburn-theme :type git :host github :repo "fake/fake"
     :ref "cd9ec8ab3a380f4270ae90073f61604c1896a5e4"))
  (leaf-pre-init)
  (leaf-init))

Currently, it is an implementation that expands the argument specified in :straight into straight-use-package as it is, and this method is resistant to changes in straight API. If we start interpreting keywords like :ref on our own, it will be very difficult when straight actually introduces the :ref keyword into straight-use-pacakge Will be.

Therefore, expanding the :straight keyword does not solve this issue. It is good to ask the maintainer of straight so that straight-use-package can handle the :ref keyword.

Another way is to introduce another keyword, such as :straight-lock. In this case, please suggest a leaf DSL and its expansion form.


Note: :ref keyword suggested this comment; https://github.com/raxod502/straight.el/issues/246#issuecomment-370200218