问题标签 [flymake]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
emacs - flymake和flyspell一键使用
我使用 flymake 和 pyflakes 来检查我的 python 代码和 flyspell 来检查我的字符串和注释。我希望有一个函数可以转到下一个错误,或者如果当前出现错误,将显示有关错误的信息。我将如何编写这个函数?
python - Emacs:Pymacs 不使用 Carbon Emacs 加载ropemacs
我正在尝试使用带有rope/ropemacs的Pymacs进行flymake语法检查,如下所述: http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/
当我“正常”启动 Carbon Emacs 时,它会抛出错误:
错误:Pymacs 加载ropemacs ...失败
我在 OSX 10.5 上使用 Carbon Emacs 进行了这项工作,但在 10.6 中失败了。但是,它在加载“终端”emacs、Aquamacs 或我使用“/Applications/Emacs.app/Contents/MacOS/Emacs”从命令行打开 Carbon Emacs 时有效。我假设这是某种路径错误,但我一生都无法弄清楚。
我的设置是 OSX 10.6.2,我使用的是 macports python 2.6.4。
谢谢!
php - 如何识别 PHP 未使用的变量(在 Emacs 中)?
是否有可能在 Emacs 的 PHP 文件中识别未使用的变量?
对于其他语言,这可以通过使用Flymake等工具来实现。
我已经启用 Flymake 来动态显示我的 PHP 文件的语法错误,但仍然令人沮丧的是,PHP 逻辑错误有时是由于以下情况引起的:
请注意 $ 上的拼写错误,foo
这将导致开发人员的头痛和他/她过度使用咖啡。
在Pascal 和 viam0Zah的提示之后,我在php.ini文件中进行了设置:
当我从命令行运行php
时,我现在可以看到关于未定义变量的通知(带或不带 -l 选项):
这是我目前在.emacs文件中使用的内容。它可以很好地处理解析错误,但是我仍然无法匹配通知:(
我也尝试过 Gabor 的配置,但结果相同。错误很好,但通知不好。
请注意,从命令行,解析错误看起来像:
我不明白为什么通知不匹配。我已经单独尝试了正则表达式,它似乎匹配正确:
(C-x C-e
将跳到行尾)。
最后,我暂时禁用了Xdebug,因为通知最初报告为:
所以,我想我应该稍微改变正则表达式以匹配多行错误。对此有任何提示吗?
c++ - Emacs:烦人的 Flymake 对话框
我有以下几行~/.emacs.d/init.el
当我打开在同一文件夹中具有正确 Makefile 的 C++ 文件时,我会得到即时编译和错误报告(Flymake 将在代码编辑期间检查语法并报告错误和警告)。
Makefile 有一个check-syntax
目标:
问题是,当我打开一个没有相应 Makefile 的 .cc 文件时,我得到一个恼人的对话框,警告我 flymake 被禁用。
因此,如果我emacs *.cc
在一个包含 20 个 C++ 文件的文件夹中启动,我会得到 20 个模式对话框,显示类似No buildfile found for [...] 之类的内容。Flymake 将被关闭。
有什么钩子可以用来禁用该警告吗?您能否提供示例 elisp 代码和说明如何找到合适的钩子?
python - 在 emacs 中使用 flymake 和 tramp 远程运行 pyflakes?
我正在尝试使用 flymake 来运行 pyflakes,正如这里所建议的那样
这适用于本地文件,几乎适用于远程文件,但需要稍作调整,但我遇到了一个问题,即 flymake/pyflakes 在运行时“修改”缓冲区(尽管实际上似乎没有任何变化),它呈现在实践中它有点没用(例如保存文件运行flymake,它会立即再次修改缓冲区)。
这是我几乎让它工作的方法:
- 在远程盒子上安装了 pyflakes。
- 自定义我的
tramp-remote-process-environment
变量,以便可以在其 PATH 中找到 pyflakes - 使用了上面 wiki 链接中的代码变体。显然,我排除了为远程缓冲区禁用它的检查。此外,该
(when (load "flymake" t) ...)
构造似乎没有像我预期的那样工作,但我并不太担心。 - 重新定义(出于测试目的——如果可以使其工作,建议应该没问题)该
flymake-start-syntax-check-process
函数,以便它使用start-file-process
(与tramp一起使用)而不是start-process
(不使用)。
在处理本地文件时,#4 中的更改似乎不会导致任何问题,但是尽管这现在使 flymake 能够为远程文件运行远程 pyflakes(错误按预期突出显示),但在这种情况下,缓冲区已被“修改”每当flymake运行时。
我猜想start-file-process
,对于远程进程,会导致一些额外的返回值/数据,而这些返回值/数据不会出现在本地进程中。
有没有人有任何见解/建议?
- Ubuntu 上的 Emacs 23.1 和 23.2
- Python 2.4.6
- Pyflakes 0.4.0(通过easy_install)
emacs - 如何为 html 模式禁用 Emacs-Flymake
这是我在 .emacs 文件中的 flymake 设置:
我只想将 flymake 用于 .py 文件。其余的禁用它。但它始终处于启用状态。例如,当我打开一个 html 文件时,我总是收到以下错误 Error (flymake): Flymake: Failed to launch syntax check process 'xml' with args (val /home/huseyin/vipsatis/templates/cancellation/base_flymake.html): Searching对于程序:没有这样的文件或目录,xml。Flymake 将关闭
所以我想为除了 py 文件之外的任何东西关闭它。是否可以?
(对于有同样问题的人,我想解释一下错误信息:Flymake 使用 xmlstarlet 进行 xml 和 html 验证。它试图将其称为“xml val ......”但它必须将其称为“xmlstarlet val....”要解决这个问题,您必须找到 flymake.el 文件并使用 xmlstarlet 更改 xml 调用。)
emacs - flymake CFGERR 问题
我正在尝试在 openSuse 11 上的 emacs 22.3.1 上使用 flymake,但出现此错误:
仅当 C++ 代码中存在语法错误时才会出现该错误
我的makefile似乎还可以:
我也尝试清理我的 .emacs
debugging - 在flymake模块中调试emacs elisp中的旋转是否有技巧?
我在 C# flymake 模块中的 emacs elisp 中获得了 CPU 旋转。(Flymake 是 emacs 中定期运行构建的模块,然后突出显示当前缓冲区中的任何语法错误或警告。)
我将涉足代码,寻找可能发生旋转的地方。
当我在做的时候,有人对弄清楚旋转有什么建议吗?emacs 中有什么东西可以让我停止执行并查看它停止的位置吗?
c# - emacs:帮我解决这个使用 flymake 和 csharp 的自动加载排序问题
如何交付一个需要修补 flymake 的模块,同时启动时间最短(=autoload)并且对用户的 emacs.el 影响最小?
我正在研究 flymake-for-csharp 模块。它与 flymake 一起使用,教它如何更灵活地使用 C# 代码文件。例如,除了使用 makefile,flymake-for-csharp 还可以使用 .csproj 文件,或者可以直接调用 csc.exe。
该模块工作正常。我现在正试图让它正确地自动加载。
这就是挑战。
为了定义哪些语言可以使用 flymake,flymake.el 包含一个文件扩展名列表(.java、.cs、.c 等)以及每种语言的初始化和清理例程。在默认的 flymake.el 中有一个 C# 条目,但正如我所说,默认的 C# 行为不够灵活。为了使其更灵活,我需要替换 flymake alist 中的 C# 条目,使其指向 flymake-for-csharp 模块中的新 init/cleanup 逻辑。和我一起吗?
在运行时修补 alist 没有问题。它看起来像这样:
长期的解决方案是说服 flymake 和 emacs 的作者接受目前在 flymake-for-csharp 中的逻辑。然后 alist 将获得更灵活的初始化/清理例程,并且bob 是你的叔叔。
但现在我希望 flymake-for-csharp 与现有的(内置)flymake.el 一起工作。这就是问题所在:我怎样才能使 flymake-for-csharp 自动加载,同时仍然修补 alist?
理想情况下,我希望用户的 emacs.el 看起来像这样:
...可能有一小(eval-after-load ..
部分。
但是你看,只有在flymake alist 被修补以包含 C# 的新条目 后flymake-for-csharp-init
才会调用该函数。
有没有办法解决这种先有鸡还是先有蛋的情况?
我想到的一种方法是(require 'flymake-for-csharp)
使用autoload
. 在该 flymake-for-csharp 模块中,仅运行补丁逻辑,然后以某种方式对其余功能使用自动加载。这是个好主意吗?这需要我在 2 个不同的文件中提供 flymake-for-csharp 吗?
我想到的另一种方法是使用eval-after-load
on flymake.el。我可以提供补丁功能。几个问题:
只有当flymake自动加载时才有效吗?当(外部)eval-after-load 被评估时,对于已经加载的模块,eval-after-load 中的逻辑会发生什么?
我将如何在不影响用户的 emacs.el 的情况下做到这一点?
总而言之,我怎样才能交付一个需要修补 flymake 的模块,同时启动时间最短(=autoload)并且对用户的 emacs.el 影响最小?