これはこの質問に似ていますが、その答えは廃止されているようです。
私がレイヤーを使用していて、そのレイヤーが使用している特定のパッケージのコードをハックしたいとしましょう。どうすればいいですか?
一般的に達成したいことをよりよく説明するために、具体的な例を示します。
spotify
レイヤーを機能させようとしmaster
ましたが、helm-spotify
パッケージの現在のブランチでは非推奨のWeb APIを使用しています。これを修正するためのプルリクエストがあり、私はそれを試し、おそらく何かを貢献したいと思っています。私の問題は、のローカルコピーhelm-spotify
をロードできないことです。
私が試したのは、develop
ブランチに切り替えることでしたspacemacs
:
git branch --track develop origin/develop
git checkout develop
に ~/.emacs.d/layers/spotify/packages.el
から変わった
(setq spotify-packages '(spotify helm-spotify))
に
(setq spotify-packages
'(
spotify
(helm-spotify :location local)
))
そしてhelm-spotify
リポジトリを~/.emacs.d/layers/spotify/local/helm-spotify
spacemacsを再起動すると、
File error: Cannot open load file, no such file or directory, multi
私helm-spotify.el
がそこを見ると:
(require 'multi)
だから私の推測では、依存関係helm-spotify
からインストールするとmelpa
、multi
ロードの前に解決されますhelm-spotify
が、もちろん、のローカルコピーを使用すると解決されませんhelm-spotify
。
だから私の質問は:
- ローカルパッケージの使用時に依存関係を解決するにはどうすればよいですか?
- または、これを私が説明したものとは完全に異なる方法で実行する必要がありますか?
私はまた、成功せずに追加multi
しdotspacemacs-additional-packages
たり追加したりしようとしましたspotify-packages
:
(setq spotify-packages '(
multi ;; I added this
spotify
(helm-spotify :location local) ;; I modified here
))
;; I added this
(defun spotify/init-multi ()
(use-package multi))
;; the rest is as it was
(defun spotify/init-spotify ()
(use-package spotify
:config (spacemacs/set-leader-keys
"amsp" 'spotify-playpause
"amsn" 'spotify-next
"amsN" 'spotify-previous
"amsQ" 'spotify-quit)))
(when (configuration-layer/layer-usedp 'spacemacs-helm)
(defun spotify/init-helm-spotify ()
(use-package helm-spotify
:config (spacemacs/set-leader-keys
"amsg" 'helm-spotify))))
の中でpackages.el
。に追加せずに試してみmulti
ましたdotspacemacs-additional-packages
。
recipe
代わりにを使用できますlocal
。例(helm-spotify :location (recipe <recipe specs>))
multi
にdotspacemacs-additional-packages
成功しません。エラーは同じです。私packages.el
が使用しているものを反映するように質問を更新しました。お疲れ様でした!
recipe
はlocal
(代わりに複数の依存関係を処理する必要があります)の代わりにを使用するか、multi
構成を別のレイヤーに移動してそのレイヤーを確認してください(レイヤリスト)の前spotify
にリストされているdotspacemacs-configuration-layers
package.el
(ローカルのEmacsモジュール)は実際にはlocal/helm-spotify
パッケージとして認識されないため、ローカルパッケージを使用するときに依存関係を自動的に解決する方法はありません。それを解決する方法は手動であり、あなたは正しい方向にあります。追加しようとした方法の詳細を追加できますmulti
か?それはあなたがそれを追加した場合は明確ではないadditional-packages
とspotify-packages
同時に、または別々に試してみました。有するmulti
内spotify-packages
およびspotify/init-multi
関数packages.el
(使用せずadditional-packages
)に十分であるべきである