Questions tagged «package-development»

1
在spacemacs中使用本地软件包的最佳方法是什么?
我是spacemacs使用的软件包(ycmd)的开发人员,我也想尝试使用spacemacs。我希望spacemacs使用我程序包的“开发版本”,即我正在本地使用的版本。告诉spacemacs使用该版本的软件包而不是melpa的版本的最佳/正确方法是什么? 现在,我使用了的:load-path参数use-package,但这似乎有点背离。spacemacs是否允许我在某个地方的层配置中为特定软件包指定加载目录?

1
什么是Emacs软件包开发的好工具?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 我们已经有一个专门用于测试的工具的问题,但是实际编写代码又如何呢?您发现哪些软件包可以加快您的开发速度?您使用哪些辅助工具快速轻松地导航和了解您的项目?

6
如何修补Emacs软件包?
我希望更改一个程序包,对其进行测试,并希望以后再提交请求。如何安全有效地做到这一点?这个问题可能太笼统了,我将接受涵盖以下问题的答案: 我希望安装一个单独的程序包分支,并且能够随心所欲地在程序包和稳定分支之间进行切换,并在必要时自动执行重新编译,但package.el似乎并没有提供一种简单的方法。这个关于emacs-SE的答案告诉我们:“如果安装了一个软件包的多个副本,则将加载第一个副本”,所以我猜可能会手动将其弄乱,load-path但这并不稳健。在已安装的软件包中选择特定版本的软件包的标准方法是什么? 即使我设法向Emacs公开了多个分支,也需要进行重大调整,以确保未修补的分支已“卸载”并且其副作用得以隔离。是否unload-feature正确处理此问题,或者它具有多版本软件包的每个测试人员都应该了解的特质? 如何安装和测试本地版本?答案似乎取决于软件包是简单文件(=一个文件)还是多文件包。EmacsWiki关于多文件软件包说:“ MELPA为您构建软件包 ”。我怀疑每次更改defun多文件包中的表单时都必须(或应该)与MELPA进行交谈,但问题仍然存在。至少我需要告诉软件包管理器本地版本,如果是,我该怎么做? 我应该为本地版本的软件包分配什么名称?假设我想同时处理多个功能或错误,这意味着要有多个分支。Emacs不允许以描述性的方式命名版本(沿着20170117.666-somebugorfeature)。我想我可以重命名程序包本身,每个分支都带有一个后缀,但是再说一次,就像load-path在Q1中手动弄乱一样,这是一个丑陋的破解,所以除非打算被广泛接受,否则我不会尝试将其发送给上游。 这些问题可能很幼稚,因为我从未写过既未在git中使用过补丁,也未在类似vcs中使用过的补丁。但是,对于许多Emacs用户而言,修补Emacs程序包可能是他们有史以来的第一个(或者可能是唯一的)社交编程,这就是为什么我认为对此问题的答案仍然有价值的原因。

4
如何仅加载一部分已安装的软件包
我遇到了一个涉及多个程序包之间交互的错误。为了报告该错误,我需要提供一个可复制的配方来说明问题。这需要加载适当的程序包,但从我的init加载的程序没有其他要求,也没有其他包。做这个的最好方式是什么? 更新 要澄清的是,我熟悉在二进制搜索中筛选.emacs来识别引起问题的代码的概念。在这种情况下,我确切地知道哪些软件包已经引起了问题。我不知道的是如何使用package-系统来加载这几个软件包。 (package-initialize)将加载软件包,但也将加载.emacs.d/elpa目录中的其他所有文件。package-load-list允许我指定要加载的软件包的特定版本,或要明确排除的特定软件包。我需要反向操作-如何为Emacs提供要包含的软件包列表,而不在elpa / package系统中加载任何其他软件包。

2
提供外部程序和软件包的正确方法?
我维护了许多elisp软件包(例如codesearch,emacs-ycmd,traad),这些软件包将从能够安装它们使用的外部程序中受益,从而节省了一些用户的时间和精力。例如,使用codesearch.el能够为用户下载,编译和安装codesearch工具(用go编写,而不是elisp编写)会很好。这将消除使用包装的至少一个障碍。 是否有“最佳做法”来做到这一点?例如,我应该将外部程序放在哪里? 如果您没有任何直接的建议,能否将我推荐给做类似事情的软件包(最好是做得很好)?

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是在externa中定义的;库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的任何人迟早都会提到这一点。有人可以分享他们在这一领域的经验吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.