簡體   English   中英

Intellij Scala無法識別運營商

[英]Intellij Scala not recognizing operators

我正在使用Play框架與Scala,使用IntelliJ IDEA社區13開發。我已經從終端運行Play; 一切正常。 但是,IntelliJ無法識別字符串上使用的某些運算符。

這是我的代碼:

package controllers

import play.api.mvc._
import play.api.libs.json._

object Application extends Controller {

  def index = Action {
    Redirect(routes.Application.tasks)
  }

  def tasks = TODO

  def newTask = TODO

  def deleteTask(id: Long) = TODO

  def sayHello = Action(parse.json) { request =>
    (request.body \ "name").asOpt[String].map { name =>
      Ok(Json.toJson(
        Map("status" -> "OK", "message" -> ("Hello " + name)) // this line
      ))
    }.getOrElse {
      BadRequest("Missing parameter [name]")
    }
  }

}

它在Play中編譯並運行良好。 但是,IntelliJ將+->運算符標記為無效,當我懸停時,給我一個“無法解析符號+

我知道這比其他任何事都更不方便,但這真的讓我煩惱。 我需要導入或配置什么才能讓IntelliJ識別這些運算符?

顯然,JetBrains采用了Scala插件的“永遠處於測試階段”的方法,因此請准備好經常看到錯誤。 我每天都會報告,我必須承認,他們確實解決了我發布的問題。 基本上我想說的是每當你遇到Scala插件的任何問題時,只需將它發布在他們的問題跟蹤器上

一旦你確認你有斯卡拉的最新版本和游戲安裝和配置的插件,創建一個新的Play應用程序的IntelliJ與所描述的在這里

@Randall從另一方面解決問題的方法,讓Play生成一個IntelliJ項目,應該可行,但我個人已經發現問題,因為JetBrains對IntelliJ所做的更改導致了落后。 它可能仍適用於你。

Randall在他的評論中給出了答案,你可能沒有正確設置你的項目,或者在添加依賴項之后忘記做了sbt gen-idea (並重新啟動/重新加載Intellij)。 另外我注意到在更新IDE之后,奇怪的Intellij非識別錯誤經常消失。

當我在scala中使用mkString方法時,我遇到了同樣的問題。 並且intellij正在拋出編譯器警報

無法識別符號mkString

但是當我在使用mkString方法之前應用toString方法時。 警報消失了,代碼編譯成功

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM