【问题标题】:Arg cannot be resolved when using defresource使用 defresource 时无法解析 Arg
【发布时间】:2019-05-25 17:44:00
【问题描述】:

我正在尝试使用 liberator 宏 defresource,但 intellij IDE 不断返回错误“(arg) 无法解析”

我正在使用 clojure、ring 和 liberator 做一个项目,在这个项目中我有依赖项

:dependencies [[org.clojure/clojure "1.10.0"]
                 [liberator "0.15.3"]
                 [compojure "1.6.0"]
                 [ring/ring-core "1.7.1"]]

在代码中

(:require [liberator.core :refer [defresource resource]]
           [ring.middleware.params :refer [wrap-params]]
           [compojure.core :refer [defroutes ANY]]))
(defresource ok
             :available-media-types ["text/html"]
             :handle-ok "This is iia")
(defroutes app
           (ANY "/test" [] ok))
(def handler
  (-> app
      wrap-params))

当使用defresource ok 时,“ok 无法解决”的消息不断显示

【问题讨论】:

  • “intellij IDE 不断返回错误”是什么意思?这是intellij内部的一个特定问题吗?你什么时候得到它等等?

标签: intellij-idea clojure ring liberator


【解决方案1】:

如果您使用 Cursive,您应该能够告诉 IntelliJ 将 defresource 视为 def

查看 Cursive 的宏 docs

【讨论】:

  • 能否请您从该链接或其中的一些要点添加解决您的问题的内容?
  • 应该是Resolve liberator.core/defresource as def
【解决方案2】:

我猜你正在使用IntelliJ+Cursive

  1. 将光标放在defresource
  2. 键盘上的Alt+Enter(或弹出菜单中的Show Context Actions)。
  3. 您应该会看到包含两个项目的弹出菜单,单击Resolve liberator.core/defresource as...
  4. 你应该会看到一些建议,点击defn

此后,IntelliJ 应将代码中的所有defresource 视为defn,并且相关警告应消失。

【讨论】:

    猜你喜欢
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多