【问题标题】:Clojure in Intelij IDEAIntellij IDEA 中的 Clojure
【发布时间】:2019-04-13 02:36:36
【问题描述】:

我在 Intelij IDEA 中打开了一个 Clojure 项目,一切都运行良好,直到我创建了新的 Clojure 工作区并在其中编写了一些 Clojure 代码。当我尝试在 REPL 中执行这段代码时,我总是遇到同样的错误。无论我写什么,我都会遇到同样的错误。例如,当我尝试执行 (+ 1 1_ 我得到以下错误:

Syntax error compiling at (test.clj:4:1).
Unable to resolve symbol: + in this context

有人遇到过这个问题吗?

这是我的项目.clj

(defproject test-app "0.1.0-SNAPSHOT"

  :description "FIXME: write description"
  :url "http://example.com/FIXME"

  :dependencies [[cheshire "5.8.1"]
                 [clojure.java-time "0.3.2"]
                 [cprop "0.1.13"]
                 [funcool/struct "1.3.0"]
                 [luminus-immutant "0.2.5"]
                 [luminus-transit "0.1.1"]
                 [luminus/ring-ttl-session "0.3.2"]
                 [markdown-clj "1.0.7"]
                 [metosin/muuntaja "0.6.4"]
                 [metosin/reitit "0.3.1"]
                 [metosin/ring-http-response "0.9.1"]
                 [mount "0.1.16"]
                 [nrepl "0.6.0"]
                 [org.clojure/clojure "1.10.0"]
                 [org.clojure/tools.cli "0.4.2"]
                 [org.clojure/tools.logging "0.4.1"]
                 [org.webjars.npm/bulma "0.7.4"]
                 [org.webjars.npm/material-icons "0.3.0"]
                 [org.webjars/webjars-locator "0.36"]
                 [org.webjars/webjars-locator-jboss-vfs "0.1.0"]
                 [ring-webjars "0.2.0"]
                 [ring/ring-core "1.7.1"]
                 [ring/ring-defaults "0.3.2"]
                 [selmer "1.12.12"]]

  :min-lein-version "2.0.0"

  :source-paths ["src/clj"]
  :test-paths ["test/clj"]
  :resource-paths ["resources"]
  :target-path "target/%s/"
  :main ^:skip-aot test-app.core

  :plugins [[lein-immutant "2.1.0"]]

  :profiles
  {:uberjar {:omit-source true
             :aot :all
             :uberjar-name "test-app.jar"
             :source-paths ["env/prod/clj"]
             :resource-paths ["env/prod/resources"]}

   :dev           [:project/dev :profiles/dev]
   :test          [:project/dev :project/test :profiles/test]

   :project/dev  {:jvm-opts ["-Dconf=dev-config.edn"]
                  :dependencies [[expound "0.7.2"]
                                 [pjstadig/humane-test-output "0.9.0"]
                                 [prone "1.6.1"]
                                 [ring/ring-devel "1.7.1"]
                                 [ring/ring-mock "0.3.2"]]
                  :plugins      [[com.jakemccrary/lein-test-refresh "0.24.1"]]

                  :source-paths ["env/dev/clj"]
                  :resource-paths ["env/dev/resources"]
                  :repl-options {:init-ns user}
                  :injections [(require 'pjstadig.humane-test-output)
                               (pjstadig.humane-test-output/activate!)]}
   :project/test {:jvm-opts ["-Dconf=test-config.edn"]
                  :resource-paths ["env/test/resources"]}
   :profiles/dev {}
   :profiles/test {}})

当我在命名空间 test-app.routes.home 中编写代码时一切正常,但是当我在同一个路由文件夹中创建新的 Clojure 命名空间 test.clj 时,我无法评估 REPL 中的代码。当我按 ctrl+Enter 时出现此错误:

Syntax error compiling at (test.clj:4:1).
Unable to resolve symbol: + in this context

【问题讨论】:

  • 听起来你搞砸了你的project.clj。在此处发布,或者尝试创建一个新项目。

标签: intellij-idea clojure read-eval-print-loop


【解决方案1】:

(也许)在尝试评估任何其他表达式之前,您需要评估您的命名空间 (ns ....)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多