问题标签 [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.

0 投票
1 回答
708 浏览

emacs - flymake和flyspell一键使用

我使用 flymake 和 pyflakes 来检查我的 python 代码和 flyspell 来检查我的字符串和注释。我希望有一个函数可以转到下一个错误,或者如果当前出现错误,将显示有关错误的信息。我将如何编写这个函数?

0 投票
1 回答
1407 浏览

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。

谢谢!

0 投票
3 回答
2260 浏览

php - 如何识别 PHP 未使用的变量(在 Emacs 中)?

是否有可能在 Emacs 的 PHP 文件中识别未使用的变量?

对于其他语言,这可以通过使用Flymake等工具来实现。

我已经启用 Flymake 来动态显示我的 PHP 文件语法错误,但仍然令人沮丧的是,PHP 逻辑错误有时是由于以下情况引起的:

请注意 $ 上的拼写错误,foo这将导致开发人员的头痛和他/她过度使用咖啡。

在Pascal 和 viam0Zah的提示之后,我在php.ini文件中进行了设置:

当我从命令行运行php时,我现在可以看到关于未定义变量的通知(带或不带 -l 选项):

这是我目前在.emacs文件中使用的内容。它可以很好地处理解析错误,但是我仍然无法匹配通知:(

我也尝试过 Gabor 的配置,但结果相同。错误很好,但通知不好。

请注意,从命令行,解析错误看起来像:

我不明白为什么通知不匹配。我已经单独尝试了正则表达式,它似乎匹配正确:

C-x C-e将跳到行尾)。

最后,我暂时禁用了Xdebug,因为通知最初报告为:

所以,我想我应该稍微改变正则表达式以匹配多行错误。对此有任何提示吗?

0 投票
2 回答
2743 浏览

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 代码和说明如何找到合适的钩子?

0 投票
1 回答
394 浏览

javascript - Flymake 在使用 js2-mode 加载后立即退出

打开 .js 文件时,会自动加载 js2-mode 以及随后的 flymake-js。但是flymake会立即卸载消息

关闭flymake模式;最好传递一个明确的论点。

但是,当手动启用它时,使用M-x flymake-mode,它会保持激活状态。有没有人遇到过类似的行为并已解决?

我的设置: 我按照 emacswiki 上的说明设置Flymake 以使用最新的js2 模式并稍作修改:

代替

0 投票
2 回答
1805 浏览

python - 在 emacs 中使用 flymake 和 tramp 远程运行 pyflakes?

我正在尝试使用 flymake 来运行 pyflakes,正如这里所建议的那样

这适用于本地文件,几乎适用于远程文件,但需要稍作调整,但我遇到了一个问题,即 flymake/pyflakes 在运行时“修改”缓冲区(尽管实际上似乎没有任何变化),它呈现在实践中它有点没用(例如保存文件运行flymake,它会立即再次修改缓冲区)。

这是我几乎让它工作的方法:

  1. 在远程盒子上安装了 pyflakes。
  2. 自定义我的tramp-remote-process-environment变量,以便可以在其 PATH 中找到 pyflakes
  3. 使用了上面 wiki 链接中的代码变体。显然,我排除了为远程缓冲区禁用它的检查。此外,该(when (load "flymake" t) ...)构造似乎没有像我预期的那样工作,但我并不太担心。
  4. 重新定义(出于测试目的——如果可以使其工作,建议应该没问题)该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)
0 投票
4 回答
4341 浏览

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 调用。)

0 投票
2 回答
894 浏览

emacs - flymake CFGERR 问题

我正在尝试在 openSuse 11 上的 emacs 22.3.1 上使用 flymake,但出现此错误:

当 C++ 代码中存在语法错误时才会出现该错误

我的makefile似乎还可以:

我也尝试清理我的 .emacs

0 投票
4 回答
379 浏览

debugging - 在flymake模块中调试emacs elisp中的旋转是否有技巧?

我在 C# flymake 模块中的 emacs elisp 中获得了 CPU 旋转。(Flymake 是 emacs 中定期运行构建的模块,然后突出显示当前缓冲区中的任何语法错误或警告。)

我将涉足代码,寻找可能发生旋转的地方。

当我在做的时候,有人对弄清楚旋转有什么建议吗?emacs 中有什么东西可以让我停止执行并查看它停止的位置吗?

0 投票
1 回答
342 浏览

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-loadon flymake.el。我可以提供补丁功能。几个问题:

  • 只有当flymake自动加载时才有效吗?当(外部)eval-after-load 被评估时,对于已经加载的模块,eval-after-load 中的逻辑会发生什么?

  • 我将如何在不影响用户的 emacs.el 的情况下做到这一点?


总而言之,我怎样才能交付一个需要修补 flymake 的模块,同时启动时间最短(=autoload)并且对用户的 emacs.el 影响最小?