【问题标题】:Error in Emacs flycheck mode with rubocoprubocop 在 Emacs flycheck 模式下出错
【发布时间】:2016-01-03 05:44:07
【问题描述】:

我将 flycheck 模式与 rubocop 检查器一起使用。

当我打开一些 rb 文件时,

Checker ruby-rubocop returned non-zero exit code 1, but no errors from output: /Users/abc/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2157:in `method_missing': undefined method `this' for #<Gem::Specification:0x3fc38c8edb10 rubocop-0.35.1> (NoMethodError)
    from /Users/abc/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:1056:in `find_active_stub_by_path'
    from /Users/abc/.rvm/rubies/ruby-2.2.3/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:63:in `require'
    from /Users/abc/.rvm/gems/ruby-2.2.3/gems/rubocop-0.35.1/bin/rubocop:6:in `<top (required)>'
    from /Users/abc/.rvm/gems/ruby-2.2.3/bin/rubocop:23:in `load'
    from /Users/abc/.rvm/gems/ruby-2.2.3/bin/rubocop:23:in `<main>'
    from /Users/abc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
    from /Users/abc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'

Checker definition probably flawed.

并且flycheck模式不起作用

我也使用弹丸/弹丸轨道模式。但是某些项目的 rb 文件不会引发错误。某个项目发生错误。

【问题讨论】:

  • rubocop 从命令行运行是否正常?通常它的发生有两种原因,1)rubocop.yml 有一些问题 2)你正在使用 rvm,如果它是一个 rubocop.yml 问题,你可以很容易地通过从命令行运行 rubocop 来查看它,如果它是 rvm,那么你可能需要 rvm-use (github.com/senny/rvm.el)

标签: ruby-on-rails emacs rubocop flycheck


【解决方案1】:

如果没有看到它在命令行上运行,很难告诉你发生了什么。

我遇到了同样的错误,结果发现我使用的是旧版本的 Rubocop,并且 FlyCheck 调用了 rubocop 可执行文件,并带有一个它不理解的选项 (--display-cop-names)。

所以从命令行运行它,并发布结果,然后我们可以尝试诊断问题。

【讨论】:

    【解决方案2】:

    对于它的价值,我看到了这个:

    /Users/alexmoore-niemi/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:2158:in `method_missing': undefined method `this' for #<Gem::Specification:0x3fce0dc538dc rubocop-0.47.1> (NoMethodError)
        from /Users/alexmoore-niemi/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:1057:in `find_active_stub_by_path'
        from /Users/alexmoore-niemi/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:64:in `require'
        from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/gems/rubocop-0.47.1/bin/rubocop:6:in `<top (required)>'
        from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/bin/rubocop:23:in `load'
        from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/bin/rubocop:23:in `<main>'
        from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
        from /Users/alexmoore-niemi/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
    

    但这个问题只出现在我的一个项目中;rubocop 在另一个项目中执行得很好!

    所以我卸载了 rubocop,运行了gem update --system,然后重新安装了它,它在两个项目中都再次运行。

    【讨论】:

      【解决方案3】:

      我不知道为什么,但之后:

      $ rubocop --auto-gen-config
      

      在我的 Rails APP_ROOT 中,现在一切正常。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-21
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        • 1970-01-01
        • 1970-01-01
        • 2012-11-05
        • 2023-04-09
        相关资源
        最近更新 更多