タグ付けされた質問 「package-development」

1
spacemacsでローカルパッケージを使用する最良の方法は何ですか?
私はspacemacsで使用されるパッケージ(ycmd)の開発者であり、spacemacsも使用してみたいと思います。spacemacsにパッケージの「開発バージョン」、つまりローカルでハッキングしているパッケージを使用してほしい。melpaのパッケージではなく、そのバージョンのパッケージを使用するようにspacemacsに指示する最良/適切な方法は何ですか? 現時点では、の:load-path引数を使用していますがuse-package、これは少し矛盾しているようです。spacemacsでは、レイヤー構成の特定のパッケージのロードディレクトリをどこかに指定できますか?

1
Emacsパッケージ開発に適したツールは何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 テストに特に役立つツールについてはすでに質問がありますが、実際にコードを書くことについてはどうでしょうか?どのパッケージが開発をスピードアップしていますか?プロジェクトをすばやく簡単にナビゲートして理解するには、どの支援を使用しますか?

6
Emacsパッケージにパッチを適用するにはどうすればよいですか?
パッケージを変更してテストし、その後プルリクエストを送信したいです。安全で効率的な方法でそれを行うにはどうすればよいですか?質問は広すぎると感じるかもしれませんが、私は次の問題をカバーする答えを受け入れます。 パッケージの別のブランチをインストールし、気まぐれに安定したブランチを切り替えることができると期待しています。必要なときに自動的に再コンパイルが実行されますが、それpackage.elを行う簡単な方法は提供されていないようです。emacs-SEに関するこの回答は、「パッケージの複数のコピーがインストールされている場合、最初のコピーがロードされる」ことを教えてくれるので、手動で混乱させることができると思いますload-pathが、これは堅牢ではありません。インストールされているパッケージの中から特定のバージョンのパッケージを選択する標準的な方法は何ですか? いくつかのブランチをEmacsに公開できたとしても、大幅な調整のために、パッチを当てていないブランチを「アンロード」し、その副作用を分離する必要があります。unload-featureそれはマルチバージョンのパッケージのすべてのテスターが知っておくべきことの特異性を持って適切にまたは多分これを処理しますか? ローカルバージョンをインストールしてテストするにはどうすればよいですか?答えは、パッケージがシンプル(= 1ファイル)かマルチファイルかによって異なります。EmacsWikiは、マルチファイルパッケージについて次のように述べています。「MELPAはパッケージをビルドします」。defunマルチファイルパッケージのフォームを変更するたびにMELPAと話す必要がある(またはすべき)とは思いませんが、疑問は残ります。少なくとも、ローカルバージョンについてパッケージマネージャーに伝える必要があります。その場合、どのようにすればよいですか? パッケージのローカルバージョンにどのような名前を割り当てる必要がありますか?複数の機能やバグを同時に処理したい場合、つまり複数のブランチを作成したいとします。Emacsでは、記述的な方法でバージョンに名前を付けることはできません(の行に沿って20170117.666-somebugorfeature)。パッケージごとにサフィックスをブランチごとに名前変更できると思いますが、load-pathQ1 で手動で混乱させるのと同様に、これはいハックなので、広く受け入れられている慣行でない限り、アップストリームに送信するものでそれを試しません。 gitや同様のvcを適用したパッチを作成したことがないため、質問はおそらく単純です。しかし、多くのEmacsユーザーにとって、Emacsパッケージへのパッチ適用は彼らにとって初めての(あるいはおそらく唯一の)ソーシャルプログラミングの試みかもしれません。そのため、この質問に対する答えはまだ価値があると思います。

4
インストール済みパッケージのサブセットのみをロードする方法
複数のパッケージ間の相互作用に関係するバグに遭遇しました。バグを報告するには、問題を説明する再現可能なレシピを提供する必要があります。これには適切なパッケージをロードする必要がありますが、私のinitからは何もロードせず、他のパッケージもロードしません。これを行う最良の方法は何ですか? 更新 明確にするために、問題の原因となっているコードを特定するために、バイナリ検索で.emacsを選別する概念に精通しています。この状況では、どのパッケージが問題を引き起こしているのかを正確に把握しています。私が知らないのは、package-システムを使用してこれらの少数のパッケージだけをロードする方法です。 (package-initialize)パッケージをロードしますが、.emacs.d/elpaディレクトリ内の他のすべてもロードします。package-load-listロードするパッケージの特定のバージョン、または明示的に除外する特定のパッケージを指定できます。私は逆が必要です-elpa / packageシステムに他のパッケージをロードせずに、含めるパッケージのリストをEmacsに提供する方法。

2
パッケージとともに外部プログラムを提供する適切なアプローチ
私は、使用する外部プログラムをインストールできることで恩恵を受ける多くのelispパッケージ(codesearch、emacs-ycmd、traadなど)を維持し、一部のユーザーの時間と労力を節約しています。たとえば、codesearch.elを使用すると、ユーザー向けにコード検索ツール(elispではなくgoで記述)をダウンロード、コンパイル、インストールできると便利です。これにより、パッケージを使用するための少なくとも1つの障壁が削除されます。 これを行うための「ベストプラクティス」はありますか?たとえば、外部プログラムはどこに置くべきですか? 直接的なアドバイスがない場合は、このようなことをする(理想的にはうまくいく)パッケージを紹介してもらえますか?

1
特定のライブラリーが意図的に欠落している可能性がある場合の「警告:自由変数への割り当て」の処理
私のモードのバイトコンパイル: (defun dict-setup-expansions () "Add `dict-mode' specific expansions." (set (make-local-variable 'er/try-expand-list) (list #'dict-mark-article))) 警告を出します: Warning: assignment to free variable `er/try-expand-list' er/try-expand-list外部で定義されているため、これは正常な状況です。図書館expand-regionにあるhttp://elpa.gnu.org expand-regionライブラリへのモードレジスタ拡張ですが、モードなしでexpand-regionモードを実行しても問題ありません。 警告に対処する適切な方法は宣言を追加することだと思います: (defvar er/try-expand-list) defvar ドキュメントは言う: The `defvar' form also declares the variable as "special", so that it is always dynamically bound even if `lexical-binding' is t. 使用します-*- lexical-binding: …

1
パッケージの変更をリポジトリユーザーに伝える方法は?
MELPAで利用可能なGRASS GISプロセスと対話するためのパッケージがあります。開発率とユーザー数はどちらも非常に低いため、メーリングリストやユーザーとの正式なコミュニケーションは必要ありません。 ただし、構成オプションにいくつかの変更を加えただけで、ユーザーの注意が必要になります。ほとんどのユーザーがMELPAからの更新されたパッケージを受け取っているだけなので、これをどのようにユーザーに伝えることができますか?特定の変更が行われた後、初めてコードを実行したときにユーザーに表示されるメッセージをユーザーに渡す方法はありますか?この点でベストプラクティスは何ですか?

3
ローカルパッケージのオートロードを生成してアクティブにする方法は?
すべてのローカル/カスタム/個人用パッケージが正式にリリースされるべきではないことは明らかであり、組み込みのパッケージ管理サポートから利益を得るためだけにそれを行うのはばかげているでしょう。ローカルパッケージのオートロードを生成してアクティブ化する方法を知りたいですか?これはpackage.el、ELPAからインストールされたパッケージの場合と同様です。ホイールの再発明を回避するために、一部のローカルディレクトリ(それぞれがローカル/カスタム/個人用パッケージであるサブディレクトリを含む)がELPAであるように "偽装"する方法はありますか?またel-get、そのようなシナリオが、たとえばカスタムレシピを介してサポートできるかどうかについても私はオープンに思っています。 このタスクはかなり一般的であり、Emacsを上級レベルで使用する人ならだれでもその時点に到達するでしょう。誰かがこの分野での経験を共有できますか?

1
Elispコードの検証/リンティング
現在私は使用しています: (checkdoc) (byte-compile-file (buffer-file-name)) (package-buffer-info) Elispコードを検証します。これは私にいくつかの愚かなエラーを取り、それらを解決するのは簡単です。 C-x h C-M-\ C-x C-s M-x vc-diffVCSの下にあるifファイルを介して、意図するコードをチェックできます。 一般的なエラーについてElispコードを検証するには、どの方法を使用すればよいですか?

1
spacemacsでパッケージのローカルバージョンを使用する方法
これはこの質問に似ていますが、その答えは廃止されているようです。 私がレイヤーを使用していて、そのレイヤーが使用している特定のパッケージのコードをハックしたいとしましょう。どうすればいいですか? 一般的に達成したいことをよりよく説明するために、具体的な例を示します。 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。 だから私の質問は: ローカルパッケージの使用時に依存関係を解決するにはどうすればよいですか? …

4
emacsパッケージのフィードバック/レビューをお探しですか?
それはメタっぽい質問ですが、この場合、グーグルは役に立ちません。 彼/彼女の新しいemacsパッケージに関するフィードバックを探す場所/方法/場所の標準化された習慣はありますか?特に-それを公開する前に。 私の特定のケースは、.emacsのより長く、おそらく再利用可能な部分の抽出とパッケージ化を開始したことです(最初の項目はテーマスイッチャーですが、いくつかのアイデアがあります)。他の誰かがこのコードの恩恵を受ける可能性がある(そしておそらく改善を提供する)可能性があるので、それをmelpaに公開することを検討します。それでも、私のelispの知識は非常に基本的なものであるため、スクリーニングなしでパッケージを提供することをためらっています。残念ながら、elispを知っている同僚はいません。 ここに投稿できる場所は私のパッケージですが、質問を確認できますか?このstackexchangeは正しい場所ですか?それとも、ニュースグループやメーリングリストでしょうか。

3
マルチファイルパッケージを「elpa /」に手動でインストールする
新しいパッケージを書いているとき、を発行するだけでインストールをテストできるのは素晴らしいことM-x package-install-from-bufferです。これにより、でパッケージがインストールされpackage.el、その下に入り "~/.emacs.d/elpa"ます。ただし、これはマルチファイルパッケージでは機能しません。 .el現在のディレクトリにあるすべてのファイルを単一のマルチファイルパッケージとしてインストールする手順は何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.