これはこの質問に似ていますが、その答えは廃止されているようです。
私がレイヤーを使用していて、そのレイヤーが使用している特定のパッケージのコードをハックしたいとしましょう。どうすればいいですか?
一般的に達成したいことをよりよく説明するために、具体的な例を示します。
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)に十分であるべきである