Π Π°Π·Π½ΠΎΠ΅

Ide scala: Scala IDE for Eclipse

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Eclipse Scala IDE β€” ΠΎΡ‚ ΠΌΠ΅Ρ€Ρ‚Π²ΠΎΠ³ΠΎ осла ΡƒΡˆΠΈβ€¦ / Π₯Π°Π±Ρ€

Scala β€” это ΠΈΠ·ΡƒΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ я наслаТдался Π³ΠΎΠ΄Π° 4 Π½Π°Π·Π°Π΄. Π―, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π±Ρ‹Π» Π΅Π³ΠΎ Ρ„Π°Π½Π°Ρ‚ΠΎΠΌ: ΠΏΠΎΠΊΡƒΠΏΠ°Π» ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ курсы Π½Π° Coursera, использовал Π² pet- ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… et cetera, et cetera, et cetera.

Scala ΠΎΡ‚ΠΊΡ€Ρ‹Π» для мСня ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования, Π²Π΅Ρ€Π½ΡƒΠ» Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π° студСнчСства со «сфСричСскими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Π² Π²Π°ΠΊΡƒΡƒΠΌΠ΅Β» ΠΎΡ‚ Martin’a Odersky…

Но Π²ΠΎΡ‚ ΠΎΠ½ ΡƒΠΆΠ΅ Π³ΠΎΠ΄Π° Π΄Π²Π° ΠΊΠ°ΠΊ Scala для мСня ΠΌΠ΅Ρ€Ρ‚Π²Π°. Π’ΠΈΠ½ΠΎΠΉ этому…


НСт, Π½Π΅ Java 8 ΠΈ Π΄Π°ΠΆΠ΅, скорСС всСго, Π½Π΅ SBT с Π΅Π³ΠΎ Π·Π°Π³Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ компиляциСй, Π° Eclipse Scala IDE.

К Scala, ΠΊΠ°ΠΊ ΠΊ экосистСмС, Ρƒ мСня Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΈ: Π½Π΅ΠΏΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ врСмя компиляции ΠΈ ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ tool’ΠΈΠ½Π³.

Если со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ компиляции я Π΅Ρ‰Π΅ Ρ…ΡƒΠ΄ΠΎ Π±Π΅Π΄Π½ΠΎ ΠΌΠΎΠ³Ρƒ ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ, Ρ‚ΠΎ tool’инг…

Но ΠΎΠ±ΠΎ всСм ΠΏΠΎ порядку.

ΠœΡ‹, силою ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π², ΠΏΠ»ΠΎΡ‚Π½ΠΎ (ΠΈ Π½Π°Π²Π΅Ρ‡Π½ΠΎ?) ΠΏΡ€ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ ΠΊ Eclipse IDE. Как-Ρ‚ΠΎ Ρ‚Π°ΠΊ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ΄ Eclipse ΠΈ ΠΈΡ… Π½Π΅Ρ‚ (ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚) ΠΏΠΎΠ΄ IntelliJ IDEA (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΡ‚ ΠΆΠ΅ BIRT).

Π”Π°, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΌΠ½Π΅ для pet project’ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Scala ΠΈ IntelliJ IDEA, Π½ΠΎ это ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Π°ΠΊ интСрСсно ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ приятнСС Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ с IntelliJ IDEA ΠΈ Clojure (я, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΎ Cursive).

Π§Ρ‚ΠΎ ΠΆΠ΅ Π½Π΅ Ρ‚Π°ΠΊ с Eclipse Scala IDE?

Π’ Π΄Π²ΡƒΡ… словах β€” это самая Π³Π»ΡŽΡ‡Π½Π°Ρ, Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ ΠΈ загадочная Β«Ρ…Ρ€Π΅Π½ΡŒΒ» ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² XXI Π²Π΅ΠΊΠ΅. ΠŸΠΎΠΏΡ€ΠΎΡΡ‚Ρƒ говоря Ρ‚Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ знаСшь Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Ρ‚Π²ΠΎΠΉ scala code ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Scala IDE, Scala, Eclipse’a, crash’Π΅ workspace’a ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠ΄ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρƒ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ, ΠΈ Π² ΠΊΠ°ΠΊΠΈΠ΅ Π±ΡƒΠ±Π½Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π±ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎΠ±Ρ‹ это всС снова Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

Π—Π΄Π΅ΡΡŒ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π° уточнСния: я Π³ΠΎΠ²ΠΎΡ€ΡŽ ΠΎ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… Java+Scala ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ Scala 2.11.x (это вСрсия Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ «сдались» ΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ дальшС ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ со Scala Π½Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ).

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Eclipse Scala IDE ΠΈΠ΄Π΅Π°Π»Π΅Π½ для Β«pure ScalaΒ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ для слоТных ΠΈ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ наш β€” это уТас ΠΈ ΠΊΠΎΡˆΠΌΠ°Ρ€ ΠΏΠΎΡ‡ΠΈΡ‰Π΅ Π°Ρ‚ΠΎΠΌΠ½ΠΎΠΉ Π²ΠΎΠΉΠ½Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‡Π΅Ρ€Π°ΡˆΠ½Π΅Π³ΠΎ дня. Π”Π²Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° с Eclipse Oxygen.2 (4.7.2) с OSX.

package com.XXX
import java.util.{List=>JList}
import scala.collection.JavaConversions._
...
abstract class REScalaVariablesConfiguration {
	def calculateVariables (runtimeObject: GBObject): JList[Variable] = {
	    val result = for {(name, result) <- variables(runtimeObject)
	    				  if result != null
	      			 } yield result match {
	      case x:LWDecimal => new NumberVariable(name, x.getJavaDecimal, runtimeObject)
	      case x:Number => new NumberVariable(name, x, runtimeObject)
	      case x:String => new StringVariable(name, x, runtimeObject)
	      case x:Boolean => new BooleanVariable(name, x, runtimeObject)
	      case x:LWDate => new DateVariable(name, x.getJavaDate, runtimeObject)
	      case _ => throw new IllegalStateException("Not supported result type for rule engine variable: " + name)
	    }
	    new ArrayList[Variable](result)
	}
	
	protected def variables(runtimeObject: GBObject): Map[String, Any]
}

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ вСрсии всСго (ΠΊΡ€ΠΎΠΌΠ΅ JVM ΠΈ вСрсий OSX) ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΡ€ΠΈ компиляции Eclipse:

  1. SBT builder crashed while compiling. The error message is ‘Could not create directory /XYZ/lib/print’.
  2. Error in Scala compiler: REScalaVariablesConfiguration

Π‘Π»Π΅Π³ΠΊΠ° ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΠ² исходный ΠΊΠΎΠ΄ (ΠΏΡ€ΠΈ этом Β«Ρ€ΠΎΠ΄Π½Ρ‹ΠΌΒ» SBT ΠΎΠ½ компилируСтся Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ)

package com.XXX
import scala.collection.JavaConversions._
...
abstract class REScalaVariablesConfiguration {
	def calculateVariables (runtimeObject: GBObject): java.util.List[Variable] = {
...

МнС удаСтся ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ошибок, Π½ΠΎ лишь Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· MacBook’ΠΎΠ².

Π’Π°ΠΊΠΎΠ΅ Π²ΠΎΠ»ΡˆΠ΅Π±ΡΡ‚Π²ΠΎ происходит постоянно. НапримСр, Ρƒ мСня Π±Ρ‹Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π³Π΄Π΅ autocompletion ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ» ΠΊ crash’Ρƒ всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π² Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»Π° ссылка Π½Π° scala code).

КоллСги, это снова Ρƒ мСня Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ Ρƒ Вас ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ общСния со Scala?

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС Scala / Π₯Π°Π±Ρ€

Π’ этом нСбольшом постС я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ с Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния для Android Π½Π° языкС Scala с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SBT ΠΈ IntelliJ Idea, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. ВсС Π±ΡƒΠ΄Π΅Ρ‚ довольно просто, стоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°ΠΏΠ°ΡΡ‚ΠΈΡΡŒ Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅ΠΌ. Π’Π΅ΡΡŒ процСсс описываСтся для unix like систСм, Π½Π° Windows Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ»ΠΎΡΡŒ, Π½ΠΎ Ссли ΠΎΡ‡Π΅Π½ΡŒ хочСтся, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС Ρ‡Π΅Ρ€Π΅Π· cygwin. Π˜Ρ‚Π°ΠΊβ€¦

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

ΠŸΡ€ΠΈ Π±Π΅Π³Π»ΠΎΠΌ Π³ΡƒΠ³Π»Π΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‚ΠΊΠ½ΡƒΡ‚ΡŒΡΡ Π½Π° эти Ρ‚Ρ€ΠΈ (Ρ€Π°Π·, Π΄Π²Π°, Ρ‚Ρ€ΠΈ) Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² красках поэтапно ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΈ тСрнистый ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΡΠ²Π΅Ρ‚Π»Π΅Π½ΠΈΡŽ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ SBT ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Android Π² Idea. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ устарСл, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ описываСтся процСсс для SBT 0.7.4, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Ρ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚ дальнСйшСго изучСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°. НС смотря Π½Π° это, я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡ… ΠΊ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ прСдставлСниС с Ρ‡Π΅ΠΌ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π΄Π΅Π»ΠΎ.

МногиС Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ Eclipse Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Scala, Π½ΠΎ ΠΎΠ½ находится Π² Π²Π΅Ρ‡Π½ΠΎΠΉ Π±Π΅Ρ‚Π΅ ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅Π³ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊ использованию Π²Π²ΠΈΠ΄Ρƒ постоянных Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΎΠ² ΠΈ скудности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹

  • ItelliJ Idea community edition с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Android β€” самая друТСствСнная ΠΊ Scala IDE Π½Π° сСгодняшний дСнь (Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ensime, Π½ΠΎ это ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Ρ‹).
  • JDK 6 для linux/mac os. ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ JDK Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ JAVA_HOME (ΠΌΠΎΠΆΠ½ΠΎ Π² ~/.bashrc).
  • Android SDK для linux/mac os. ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ SDK Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Π΄Π°Π½ Ρ‡Π΅Ρ€Π΅Π· Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ANDROID_SDK_HOME, Π½ΠΎ, Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, для видимости всСй систСмой, поэтому ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ строго Π² /etc/environment. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°.
  • Simple Build Tool (SBT) 0.10.1 β€” инструмСнт для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ сборки Scala ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². НСдавно ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ смСнил имя Π½Π° XSBT ΠΈ ΠΏΠ΅Ρ€Π΅Π΅Ρ…Π°Π» Π½Π° github, Ρ‡Ρ‚ΠΎ вСсьма ΡƒΠ΄ΠΎΠ±Π½ΠΎ.
  • Android ΠΏΠ»Π°Π³ΠΈΠ½ для SBT β€” для ознакомлСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ ставится автоматичСски.
  • giter8 (g8) β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· шаблонов, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° github.
  • Мой шаблон g8 для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Idea ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².
  • НастроСнный Android Emulator ΠΈΠ»ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ смартфон с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ USB ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ.
Установка SBT

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ sbt-launch.jar послСднСй вСрсии ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΏΠ°ΠΏΠΊΡƒ ~/bin, Π·Π°Ρ‚Π΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ пустой Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ sbt со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым

java -Xmx512M -jar `dirname $0`/sbt-launch.jar "$@"

ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΡƒ ~/bin. Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» sbt исполняСмым ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ ~/bin ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ $PATH, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ доступ ΠΊ Π΅Π΅ исполняСмым Ρ„Π°ΠΉΠ»Π°ΠΌ Π±Π΅Π· явного указания ΠΏΡƒΡ‚ΠΈ:

$ chmod u+x ~/bin/sbt
$ echo 'PATH=$PATH:~/bin' >> ~/.bashrc    

ПослС этого слСдуСт ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°Π» Ρ„Π°ΠΉΠ» ~/.bashrc.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ giter8 (g8). ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ прост β€” ΠΎΠ½ скачиваСт с github ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ шаблон ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ подставляСт вмСсто ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ default.properties свойства. Π­Ρ‚ΠΎ справСдливо ΠΊΠ°ΠΊ для содСрТимого Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊ ΠΈ для ΠΈΡ… ΠΈΠΌΠ΅Π½. НапримСр, Π² этом ΠΊΠΎΠ΄Π΅

class $main_activity$ extends Activity { ... }

$main_activity$ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ свойство. ВсС значСния свойств Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‡Π΅Ρ€Π΅Π· g8. Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· этого, Π±Ρ‹Π» создан шаблон, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ Π² сСбя стандартныС для Idea ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π° этапС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ спСцифичСскиС для Π½Π΅Π³ΠΎ свойства.

ГСнСрация ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π‘ΠΏΠ΅Ρ€Π²Π° слСдуСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ giter8. Π‘Π°ΠΌΠΎΠ΅ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠΉ малСнький скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сдСлаСт это сам:

curl https://raw.github.com/mbektimirov/android-app-idea.g8/master/install.sh | sh

Если всС ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Ρ‚ΠΎ g8 установится Π² ΠΏΠ°ΠΏΠΊΡƒ ~/bin. О Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… смотритС Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ.
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг β€” собствСнно, созданиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ· шаблона. БлоТностСй Π½ΠΈΠΊΠ°ΠΊΠΈΡ…, Π² процСссС установки g8 Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ свойства. Если значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ вас ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ (ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках), Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ.

mbektimirov@mbektimirov-pc:~$ g8 mbektimirov/android-app-idea

Template for Android apps in Scala 

package [my.android.project]: ru.my.first.android.scala.project
name [My Android Project]: my super project
main_activity [MainActivity]: MyActivity
api_level [10]: 8
project_scala_version [2.9.1]: 

Applied mbektimirov/android-app-idea.g8 in my-super-project

ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΡ†Π΅Π·Ρ€Π΅Ρ‚ΡŒ сгСнСрированный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΏΠ°ΠΏΠΊΠ΅ my-super-project, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ Π½Π° устройство. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sbt start-device.

Настройка IDE

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ скачали ΠΈ установили Idea, Π΅Π΅ Π½Π°Π΄ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Scala ΠΈ SBT, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Π½Π΅ отходя ΠΎΡ‚ кассы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π½Π° консоль ΠΈ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ/Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚Ρ‚ΡƒΠ΄Π°. ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ доступны ΠΈΠ· самой Idea Π² plugin manager’Π΅:

ПослС установки ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² слСдуСт ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ IDE, Π·Π°Ρ‚Π΅ΠΌ Π² настройках ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π» SBT ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ sbt-launch.jar:

ПослС этих дСйствий ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ наш сгСнСрированный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² IDE Ρ‡Π΅Ρ€Π΅Π· Β«File -> Open project…Β».

ΠŸΠΎΡ‡Ρ‚ΠΈ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ, ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ для запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° с использованиСм SBT. Для этого Π² мСню Β«RunΒ» слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ Β«Edit configurationsΒ». Π’ появившСмся ΠΎΠΊΠ½Π΅ Π½Π°Π΄ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, Π² нашСм случаС это Π±ΡƒΠ΄Π΅Ρ‚ Android Application, ΠΈ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΅Π΅ StartDevice. Π’ ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ΡΡ настройках Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Β«android-moduleΒ», ΡΠ½ΡΡ‚ΡŒ Π³Π°Π»ΠΎΡ‡ΠΊΡƒ с Β«makeΒ» ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² Β«Run SBT ActionΒ». Π’ SBT Action, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Β«start-deviceΒ». Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Π½ΠΈΠΆΠ΅ поясняСт всС ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ дСйствия:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎ Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΊΠ΅ΡŽ. ВсС Π»ΠΎΠ³ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π² SBT консоль, которая являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½Π° SBT для Idea:

Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

  • ΠŸΡ€ΠΈ установкС g8 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€ΡƒΠ³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Apache httpclient. Для этого слСдуСт ΠΏΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ кэш Π² ΠΏΠ°ΠΏΠΊΠ°Ρ… ~/.ivy2/cache/org.apache.httpcomponents ΠΈ ~/.m2/cache/org/apache/httpcomponents.
  • Π Π°Π·ΠΌΠ΅Ρ€ стандартного Hello world apk Ρ„Π°ΠΉΠ»Π° составляСт 680 Кб. ВСроятнСС всСго эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° связана с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ proguard, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Ρ‡Π»Π΅Π½ΡΡ‚ΡŒ ΠΈΠ· apk Ρ„Π°ΠΉΠ»Π° Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Scala Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ классы. Π’ блиТайшСС врСмя я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Ρƒ ΠΏΠ»Π°Π³ΠΈΠ½Π° Android для SBT для выяснСния ΠΏΡƒΡ‚Π΅ΠΉ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.
  • Плагин для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android Π½Π° Idea Π½Π΅ поддСрТиваСтся ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google, поэтому Π² Π½Π΅ΠΉ Π½Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° возмоТностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставляСт Eclipse.
Π§Ρ‚ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Scala: ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ с языком Scala: установкой, запуском ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠ»ΡŽΡΠ°Ρ… использования IntelliJ IDEA Π² качСствС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Scala β€” ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅Π½Π½Ρ‹ΠΉ язык, спроСктированный ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ, элСгантным, ΠΈ типобСзопасным для простого ΠΈ быстрого программирования. Π’ Π½Π΅ΠΌ ΠΎΡ€Π³Π°Π½ΠΈΡ‡Π½ΠΎ ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ возмоТности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

Π­Ρ‚ΠΎΡ‚ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ… Ρ‚Π°ΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΊΠ°ΠΊ Twitter, ЯндСкс, LinkedIn, Sony, Qiwi, PayPal ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ….

http://www.slideshare.net/remeniuk/scala-kazachonak

  • http://www.scala-lang.orgΒ β€” ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт
  • https://www.coursera.org/course/progfunΒ β€” ΠšΡƒΡ€ΡΡ‹ ΠœΠ°Ρ€Ρ‚ΠΈΠ½Π° ΠžΠ΄Π΅Ρ€ΡΠΊΠΎΠ³ΠΎ создатСля языка Scala ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования Π½Π° Scala.

Код Π½Π° Scala компилируСтся Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Java, ΠΈ это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ:

  • Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ мноТСство ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ;
  • язык ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ GC ΠΈ JIT-компилятор;
  • Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Scala ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, написанныС Π½Π° Java;
  • ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, написанныС Π½Π° Scala, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΈΠ· ΠΊΠΎΠ΄Π° Π½Π° Java.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для установки Scala ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java.

Установка Java

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Java Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

java -version

Если Π²Ρ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅:

java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

Ρ‚ΠΎ устанавливаСм Java SE Development Kit 8, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎ ссылкС http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ для вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

На этом установка Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°.

Установка IntelliJ IDEA 15.0

Мой Π²Ρ‹Π±ΠΎΡ€ остановился Π½Π° Π΄Π°Π½Π½ΠΎΠΉ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Она ΡƒΠ΄ΠΎΠ±Π½Π°, соврСмСнна, способна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ большоС количСство языков программирования, ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ являСтся нСобходимая Π½Π°ΠΌ Scala. Удобная навигация ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ. ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ интСграция с систСмами контроля вСрсий, Ρ‡Ρ‚ΠΎ сдСлаСт Π½Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅.

Бсылка Π½Π° скачиваниС с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта β€”Β https://www.jetbrains.com/idea/ ПослС установки IDEA Π½Π°ΠΌ слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с языком Scala.

ДСлаСтся это Ρ‚Π°ΠΊ: ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΏΠΎ строкС ConfigureΒ ΠΈ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΒ Plugins.

Π”Π°Π»Π΅Π΅, ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ Π½Π°Β Install jetBrains plugins.

ПишСм Π² поисковой строкС Β«ScalaΒ», ΠΆΠΌΠ΅ΠΌ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅Β InstallΒ ΠΈ ΠΆΠ΄Π΅ΠΌ ΠΏΠΎΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½ установится. ПослС установки ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ запуску ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Scala.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Scala

НаТимаСм Π½Π°Β Create New ProjectΒ ΠΈ Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Β«ScalaΒ»

Π”Π°Π΅ΠΌ имя нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌΒ Finish.

Π’ созданном ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ создадим исполняСмый Ρ„Π°ΠΉΠ», для этого ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΏΠΎ свойствам ΠΏΠ°ΠΏΠΊΠΈΒ src β†’ New β†’ Scala ClassΒ Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π΄Π°Π΅ΠΌ имя Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ, ΠΈ мСняСм Kind с «Scala Class» на «ObjectΒ»

Написав ΠΊΠΎΠ΄, выводящий Π½Π° экран Ρ„Ρ€Π°Π·Ρƒ Β«Goodbye WorldΒ», запускаСм Run β†’ Run

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅

Π Π°Π±ΠΎΡ‚Π° с GitHub

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, IntelliJ IDEA Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с систСмами контроля вСрсий. Рассмотрим ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· рСпозитория. Для этого сначала Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ написанный Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° Scala ΠΊ сСбС Π² Git, Π·Π°Ρ‚Π΅ΠΌ Π΅Π³ΠΎ ΠΆΠ΅ склонируСм.

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ ΠΏΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅Β VCS β†’ Import into Version Control β†’ Share Project on GitHub

Логинимся ΠΈ Π΄Π°Π΅ΠΌ имя Π½Π°ΡˆΠ΅ΠΌΡƒ Π½ΠΎΠ²ΠΎΠΌΡƒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡŽ.

Π“ΠΎΡ‚ΠΎΠ²ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ написанный ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ хранится Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

Для клонирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΠ· рСпозитория Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги File β†’ New β†’ Project from Version Control β†’ GitHub

Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌΒ Β«CloneΒ»

На этом собствСнно ΠΈ всС. Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π³ΠΎΡ‚ΠΎΠ² ΠΊ запуску. Π£Π΄Π°Ρ‡ΠΈ!

«ΠΈΠ½Π΄Π΅ΠΊΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°…
[10 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²]

Π― создал ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с play 2.3.7

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° я запустил activator ΠΈ запустил ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ eclipse для создания Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° eclipse.

Когда я ΠΈΠ΄Ρƒ ΠΊ eclipse (я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Scala IDE ΠΈΠ· typesafe Build id: 4.0.0-vfinal-20150119-1023-Typesafe, Π΅ΡΡ‚ΡŒ ошибка Π² ΠΌΠΎΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π΅ Application.scala:

object index is not a member of package views.html

Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ Ρ‚Π°ΠΊ с ΠΌΠΎΠ΅ΠΉ установкой? ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° я Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽ run Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС консоли Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ.

Бпасибо!

EDIT: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ΄

package controllers

import play.api._
import play.api.mvc._

object Application extends Controller {

  def index = Action {
    Ok(views.html.index("Your new application is ready."))
  }

} 

Ошибка находится Π½Π° ‘Ok..’ линия.

Π’ прСдставлСниях Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ index.scala.html, ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСт Ρ„Π°ΠΉΠ», ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ Π΅Π³ΠΎ ΠΈΠ· Π°ΠΊΡ‚ΠΈΠ²Π°Ρ‚ΠΎΡ€Π°..

eclipse

scala

playframework-2.0

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ


user384842 Β  Β 

11 фСвраля 2015 Π² 15:50

10 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²




25

Иногда послС добавлСния Π²ΠΈΠ΄Π° Π² Play 2.4.x, IntelliJ IDEA ΠΈΠ½ΠΎΠ³Π΄Π° путаСтся ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ отказываСтся ΠΎΡ‚ сборки. Π”Π°ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ удаСтся:

enter image description here

Π­Ρ‚ΠΎ всС Π΅Ρ‰Π΅ происходит с time-to-time ΠΏΠΎ IDEA 15. И ΠΊΠΎΠ³Π΄Π° это происходит, командная строка обСспСчиваСт самоС быстроС ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ исправлСниС:

sbt ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ; sbt ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π’ΠΎΡ‚ ΠΈ всС! IDEA Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠ°ΠΊ ΠΈ оТидалось.

ОбновлСниС:

Π’ Ρ‚ΠΎΠΌ Ρ€Π΅Π΄ΠΊΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° sbt compile ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π½ΠΎ IntelliJ IDEA 15 всС Π΅Ρ‰Π΅ Π΄Π°Π΅Ρ‚ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ «object x is not a member», Ρ‚ΠΎ это Ρ€Π΅ΡˆΠΈΠ»ΠΎ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ IDEA:

МСню Ѐайл:

enter image description here

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Brent Faust Β  Β 

26 января 2016 Π² 23:55



12

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для мСня Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ. НСкоторыС Π΄Π°Π»ΠΈ Π±Ρ‹ ΠΌΠ½Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ошибки, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ очистили Π±Ρ‹ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ оставили Π±Ρ‹ мСня с красной Π·Π°ΠΊΠΎΡ€ΡŽΡ‡ΠΊΠΎΠΉ ΠΏΠΎΠ΄ views.html.index , ΠΈ Π°Π²Ρ‚ΠΎΠ·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π±Ρ‹ с шаблонами scala.html.

Π§Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅ сработало, Ρ‚Π°ΠΊ это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ свойства ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Java Build Path > Source ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠ±Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°:

target/scala-2.11/src_managed/main
target/scala-2.11/twirl/main

Если Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ target/scala-2.11/twirl/main , Ρ‚ΠΎ Π²Ρ‹ пропуститС Ρ„Π°ΠΉΠ»Ρ‹ классов, созданныС ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° conf .

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


einnocent Β  Β 

23 ΠΌΠ°Ρ€Ρ‚Π° 2015 Π² 02:13


ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Luis Rodero-Merino Β  Β 

16 фСвраля 2015 Π² 22:49


  • Scala IDE: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ scalatest Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

    Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Scala IDE. Π― ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Scala. HelloSpec.scala: import org.scalatest._ class HelloSpec extends FlatSpec with Matchers { The Hello object should say hello in { Hello.greeting shouldEqual hello } } import org.scalatest._ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½ΠΎ ошибкой: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ scalatest Π½Π΅ являСтся…

  • Ошибка: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ seq Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° slick.dbio.DBIO

    Π― ΠΏΠΈΡˆΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² play framework. Π― Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ slick (FRM) для запроса Π² ΠΌΠΎΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (postgre). Π― Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² slick, поэтому я Π½Π°Ρ‡Π°Π» ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ slick для пСрСсмотра 3.0.0 http://slick.typesafe.com/doc/3.0.0/gettingstarted.html Богласно Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, я Π΄ΠΎΠ±Π°Π²ΠΈΠ»…



4

Π£ мСня Π±Ρ‹Π»Π° Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» target/scala-2.x/classes ΠΈ target/scala-2.x/classes_managed ΠΊ своСму ΠΏΡƒΡ‚ΠΈ сборки Java, ΠΈ Eclipse пСрСстал ΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Chip France Β  Β 

16 фСвраля 2015 Π² 22:21



2

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ target/scala-2.11/twirl/main , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ views.html ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΊ исходному ΠΊΠΎΠ΄Ρƒ исправлСно для мСня.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Surya Prabhakar Β  Β 

30 апрСля 2015 Π² 05:40



2

Π£ мСня Π±Ρ‹Π»Π° Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с запуском Play 2.4.0-RC1, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ°ΠΊΠ΅Ρ‚ default SBT (disablePlugins(PlayLayoutPlugin) ) , ΠΈ я Ρ€Π΅ΡˆΠΈΠ» Π΅Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΠΊ build.sbt :

sourceDirectories in (Compile, TwirlKeys.compileTemplates) :=
    (unmanagedSourceDirectories in Compile).value

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Lera Β  Β 

25 апрСля 2015 Π² 22:57



1

ΠžΡ‚Π²Π΅Ρ‚ @brent-foust сработал для мСня, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° я пСрСстраивал ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ IDEA, я ΠΏΠΎΠ»ΡƒΡ‡Π°Π» «not found: routes» ошибки ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ target\scala-2.11\twirl\main\views\html\main.template.scala , ΠΏΠΎΠΊΠ° снова Π½Π΅ выполнял ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ Π‘Ρ€Π΅Π½Ρ‚Π°.

Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ строки Π² Ρ„Π°ΠΉΠ»Π΅ .iml с

<excludeFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" />

ΠΊ

<sourceFolder url="file://$MODULE_DIR$/target/scala-2.11/src_managed/main" isTestSource="false" />

Π― Π½Π΅ знаю, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ долгосрочныС послСдствия этого, Π½ΠΎ это исправило эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. НСкоторыС ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, упомянутых Π²Ρ‹ΡˆΠ΅, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ исправлСны ΠΏΡƒΡ‚Π΅ΠΌ примСнСния Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ измСнСния ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠ°ΠΏΠΊΠ°ΠΌ, пСрСчислСнным Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ .Π˜ΠœΠ›.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


David Hinson Β  Β 

03 января 2017 Π² 23:57



0

Для мСня ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² intellij ΡƒΠ±Π΅Π΄ΠΈΠ²ΡˆΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ я «checked» «auto import» checkbox сдСлал Ρ‚Ρ€ΡŽΠΊ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Tomer Ben David Β  Β 

18 июля 2015 в 10:32



0

1) Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку Π² ваш Ρ„Π°ΠΉΠ» sbt.build:

EclipseKeys.preTasks := Seq(compile in Compile)

2) Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ строку follwing Π² Ρ„Π°ΠΉΠ» plugins.sbt Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.1.0")

3) Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «eclipse» ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ sbt

ΠΊΠ°ΠΊ поясняСтся Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌΡƒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΡƒ:

Настройка ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ IDE

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


user2038596 Β  Β 

17 мая 2017 в 23:06



0

Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ способ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ скомпилированныС классы Π½Π° ΠΏΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ.

Π― сдСлал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ это.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ target .
Π― пошСл ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ сборки Project Properties — > Java ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» нСсколько ΠΏΠ°ΠΏΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выглядят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ,

target/scala-2.12/routes/main
target/scala-2.12/twirl
target/scala-2.12/twirl/main

Π’Π΅ΠΏΠ΅Ρ€ΡŒ я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρƒ вас Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ эти Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ°ΠΏΠΊΠΈ. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ настройки вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
Но Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ target/scala-2.x.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Som Bhattacharyya Β  Β 

09 ноября 2017 Π² 14:28


ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ вопросы:

Scala ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ являСтся

Π― Π·Π°Π±Ρ‹Π» ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Scala, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для скрипта Scala. Но послС компиляции этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ scala всС Π΅Ρ‰Π΅ Таловался, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°!

Squeryl — «CustomTypesMode Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° org.squeryl.customtypes»?

Π― построил squeryl framework с SBT ΠΈ ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Scala 2.8 ΠΈ NetBeans 6.9. Π― ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ» модСль сущности, ΠΊΠ°ΠΊ ΠΎΠ½Π° описана Π² squeryl intro , Π½ΠΎ IDE ΠΈ компилятор ΠΆΠ°Π»ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ…

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ hbase Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° org.apache.hadoop ΠΏΡ€ΠΈ компиляции scala

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ HBase API Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ scala, Π½ΠΎ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡΡŒ с ошибкой компиляции ΠΏΡ€ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅ hbase import org.apache.hadoop.hbase Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ компиляции Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ hbase Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ…

Scala IDE 4.0.0 считаСт, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ошибки Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ out-of-the-box Play Framework 2.3.7

Π― создал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Play Framework с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Typesafe Activator (поэтому ΠΎΠ½Π° Ρ‚ΠΎΡ‡Π½ΠΎ слСдуСт ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ). Π― использовал sbteclipse-plugin Π²Π΅Ρ€ΡΠΈΡŽ 3.0.0 для создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Eclipse ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» Π΅Π³ΠΎ Π²…

Ошибка Play framework only: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ httpclient Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° org.apache.commons

Π£ мСня Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π² scala Π½Π° play framework. Однако ΠΈΠ³Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΌΠ½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ httpclient Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° org.apache.commons. Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» commons-httplclient.jar ΠΊΠ°ΠΊ…

Scala IDE: ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ scalatest Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Scala IDE. Π― ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Scala. HelloSpec.scala: import org.scalatest._ class HelloSpec extends FlatSpec with Matchers { The Hello object should say hello in {…

Ошибка: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ seq Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° slick.dbio.DBIO

Π― ΠΏΠΈΡˆΡƒ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² play framework. Π― Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ slick (FRM) для запроса Π² ΠΌΠΎΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… (postgre). Π― Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² slick, поэтому я Π½Π°Ρ‡Π°Π» ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρƒ slick для…

Scala Play: индСкс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° views.html

Π― ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ object index is not a member of package views.html Π½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Π½Π° эту Ρ‚Π΅ΠΌΡƒ, Моя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° каТСтся ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ связанной с IDE. Π― ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈΠ·…

Scala — Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π― ΡƒΡ‡ΡƒΡΡŒ Scala Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠΈΡ‚Π΅ мСня, Ссли это Π³Π»ΡƒΠΏΡ‹ΠΉ вопрос. Π£ мСня Π΅ΡΡ‚ΡŒ этот ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ класс (Ρ€Π°Π·ΠΎΡ€Π²Π°Π» Π΅Π³ΠΎ Π΄ΠΎ самой ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠΉ вСрсии): package Foo { class Bar {} } Ρ‚ΠΎΠ³Π΄Π° Π² Ρ„Π°ΠΉΠ»Π΅ main.scala Ρƒ мСня…

индСкс ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° spass Π½Π΅ являСтся Ρ‡Π»Π΅Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° views.html

git clone https://github.com/spass/spass.git Π—Π°Ρ‚Π΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ( sbt ) Π² intellij . Когда я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ Rebuild Project я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ: app/io/spass/controllers/Application.scala Error:(9, 19)…

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ для сСбя Intellij IDEA для Scala β€” IntelliJ IDEA

УстановитС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Scala

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ со Scala Π² IntelliJ IDEA, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Scala. Если Π²Ρ‹ запускаСтС IntelliJ IDEA Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ Scala, ΠΊΠΎΠ³Π΄Π° IntelliJ IDEA ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ страницу ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для установки. Plugin page ПослС установки IntelliJ IDEA Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ обновлСния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ модуля ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΊΠΎΠ³Π΄Π° станСт доступна новая вСрсия.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π» обновлСния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ модуля Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Updates , располоТСнной Ρ‚Π°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Scala nightly, EAP ΠΈΠ»ΠΈ сборок выпуска.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ Scala, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Alt + S , ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ страницу ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², просмотритС Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ Scala, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΒ» ΠΈ пСрСзапуститС IntelliJ IDEA.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ· VCS, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Scala.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс для Scala ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, Ссли Π²Ρ‹ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ sbt, Π² этом случаС становятся доступными sbt projects tool window ΠΈ sbt Shell .

Π’Π°ΠΊΠΆΠ΅ IntelliJ IDEA позволяСт ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· ошибок Π½Π° основС систСмы Ρ‚ΠΈΠΏΠΎΠ² Scala с использованиСм выдСлСния Ρ‚ΠΈΠΏΠΎΠ² Scala. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΎΠΊ, располоТСнный Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΎΠΊ ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Ctrl + Alt + Shift + E , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.

Бамая интСрСсная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса — это Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ IntelliJ IDEA Editor, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ позволяСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ практичСски Π»ΡŽΠ±ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ IDE, Π½Π΅ выходя ΠΈΠ· Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρƒ вас большС мСста Π½Π° экранС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты управлСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΈ ΠΎΠΊΠ½Π°, скрыты.

Доступ ΠΊ ΠΎΠΊΠ½Ρƒ инструмСнта Ρ‡Π΅Ρ€Π΅Π· Π΅Π³ΠΎ ярлык ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ фокус Π²Π²ΠΎΠ΄Π° Π½Π° Π½Π΅Π³ΠΎ, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π² Π΅Π³ΠΎ контСкстС.Когда Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Escape .

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список ярлыков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΎΠΊΠ½Π° инструмСнтов:

Окно инструмСнтов Π―Ρ€Π»Ρ‹ΠΊ
Project Alt + 1
ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий Alt + 9
Run Alt + 4
ΠžΡ‚Π»Π°Π΄ΠΊΠ° Alt + 5
Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π» Alt + F12
Editor Escape

Окно инструмСнтов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Shell доступны Ρ‡Π΅Ρ€Π΅Π· Π³Π»Π°Π²Π½ΠΎΠ΅ мСню () ΠΈΠ»ΠΈ Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Ctrl + Shift + A для быстрого поиска этих элСмСнтов.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠ΄Π΅, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ². Он удаляСт всС ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов, ΠΎΠΊΠ½Π° инструмСнтов ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π² этот Ρ€Π΅ΠΆΠΈΠΌ, Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ View | Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ | Π’ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· ΠΎΡ‚Π²Π»Π΅ΠΊΠ°ΡŽΡ‰ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ².

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌΡƒ Π±Π΅Π· отвлСчСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скрытиС всСх ΠΎΠΊΠΎΠ½ инструмСнтов, Π½Π°ΠΆΠ°Π² Ctrl + Shift + F12 . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π°ΠΆΠ°Π² этот ярлык Π΅Ρ‰Π΅ Ρ€Π°Π·.

ПанСль Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ — это компактная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠΎΠΊΠ½Ρƒ инструмСнта Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Β». Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Home .

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² IntelliJ IDEA (ΠΊΠ°ΠΊ ΠΎΠΊΠ½Π° инструмСнтов, Ρ‚Π°ΠΊ ΠΈ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π°) ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ быстрый поиск. Π­Ρ‚Π° функция позволяСт Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ список ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ элСмСнту с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ поискового запроса.

Если Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ярлык для дСйствия, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ «Найти дСйствиС», Π½Π°ΠΆΠ°Π² Ctrl + Shift + A .НачнитС Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ дСйствиС ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π³ΠΎ ярлык ΠΈΠ»ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свСдСний см. ΠžΠ±Π·ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ свСдСния ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ Окна инструмСнтов.

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² IntelliJ IDEA Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΡΡ‚ΡŒ измСнСния ΠΈΠ· локальной истории, Π½Π΅Ρ‚ смысла ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ вас ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ измСнСния.

НаиболСС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ сочСтания клавиш Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°:

ДСйствиС ОписаниС
ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строки ΠΊΠΎΠ΄Π° Ctrl + Shift + Up Ctrl + Shift + Down
Π”ΡƒΠ±Π»ΠΈΡ€ΡƒΠΉΡ‚Π΅ строку ΠΊΠΎΠ΄Π° Ctrl + D
Π£Π΄Π°Π»ΠΈΡ‚Π΅ строку ΠΊΠΎΠ΄Π° Ctrl + Y
ΠŸΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΠ»ΠΈ раскоммСнтируйтС строку ΠΊΠΎΠ΄Π° Ctrl + /
ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Ctrl + Shift + /
Найти Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Ctrl + F
Найти ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ„Π°ΠΉΠ»Π΅ Ctrl + R
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ событиС F3
ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ появлСниС Shift + F3 9001 1
ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠ°ΠΌΠΈ Alt + Right Alt + Left
ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π°Π·Π°Π΄ / Π²ΠΏΠ΅Ρ€Π΅Π΄ Ctrl + Alt + Left Ctrl + Alt + Right
Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Ctrl + NumPad + Ctrl + NumPad -
Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Alt + Insert
Surround с Ctrl + Alt + T
Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ использованиС символа Ctrl + F7

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° основС Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + W .Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Shift + W .

IntelliJ IDEA ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° Π·Π° Ρ€Π°Π·. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Alt + J ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€, Π½Π°ΠΆΠ°Π² Alt + Shift + J . Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ всС вхоТдСния сразу, Π½Π°ΠΆΠ°Π² Ctrl + Alt + Shift + J .

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ.

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈ доступС ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ, Π½Π°ΠΆΠ°Π² Ctrl + ΠŸΡ€ΠΎΠ±Π΅Π» , Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ прСдлоТСния для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΈΠΏΠΎΠ², ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, для ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ прСдлоТСния ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.Когда Π²Ρ‹ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅, отобраТаСтся большС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Ѐункция ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ контСксту. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Shift + ΠŸΡ€ΠΎΠ±Π΅Π» . Когда Π²Ρ‹ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Smart Completion, ΠΎΠ½ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ большС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ΅, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ просто Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Tab . Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ имя Ρ„Π°ΠΉΠ»Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ IntelliJ IDEA Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π·Π° вас ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Shift + Enter . Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° автоматичСски Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, скобки, Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для любого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ конструктора, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + P .IntelliJ IDEA ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΠ»ΠΈ конструктора ΠΈ выдСляСт Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠ΅Π΅ соотвСтствиС для ΡƒΠΆΠ΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Ѐункция Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ постфикса позволяСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π½Π°Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π° основС постфикса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ послС Ρ‚ΠΎΡ‡ΠΊΠΈ.

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свСдСний см. Код автозаполнСния.

Навигация

ПослСдниС Ρ„Π°ΠΉΠ»Ρ‹

Π‘ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ быстро ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.ΠΠ°ΡΡ‚ΠΎΡΡ‰ΡƒΡŽ экономию Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ здСсь прСдставляСт дСйствиС ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ «ПослСдниС Ρ„Π°ΠΉΠ»Ρ‹Β», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ вызываСтся Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ Ctrl + E . По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ фокус находится Π½Π° послСднСм доступном Ρ„Π°ΠΉΠ»Π΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ любоС ΠΎΠΊΠ½ΠΎ инструмСнта с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого дСйствия:

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ классу доступно ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Ctrl + N ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ слоТныС выраТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²Π΅Ρ€Π±Π»ΡŽΠΆΡŒΠΈ нСровности, ΠΏΡƒΡ‚ΠΈ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ строкС, сопоставлСниС отчСства ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.Если Π²Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚Π΅ Π΅Π³ΠΎ Π΄Π²Π°ΠΆΠ΄Ρ‹, ΠΎΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Π½Π΅ классов ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Β«ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»ΡƒΒ» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Ctrl + Shift + N , Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅, Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ своС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠΌ Slash .

ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ символу ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π½Π°ΠΆΠ°Π² Ctrl + Alt + Shift + N , ΠΈ позволяСт Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅ ΠΏΠΎ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

Окно инструмСнта Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Β» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для исслСдования Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структуры Ρ„Π°ΠΉΠ»Π°. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΈ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ спискС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ участников.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°

Когда Π²Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ΡΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π²Ρ‹, скорСС всСго, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°. Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это - Π½Π°ΠΆΠ°Ρ‚ΡŒ Ctrl + F12 . Π’ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ структуру Ρ„Π°ΠΉΠ»Π° ΠΈ позволяСт быстро ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ…:

Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π²

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ инструмСнта (ΠΈΠ»ΠΈ Finder / Explorer), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это. с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² дСйствии, Π½Π°ΠΆΠ°Π² Alt + F1 :

Select in

Π―Ρ€Π»Ρ‹ΠΊΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

ДСйствиС Π―Ρ€Π»Ρ‹ΠΊ
Π˜ΡΠΊΠ°Ρ‚ΡŒ Π²Π΅Π·Π΄Π΅ Π”Π²ΠΎΠΉΠ½ΠΎΠΉ Shift
ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² класс Ctrl + N
ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Ctrl + Shift + N
ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ символу Ctrl + Alt + Shift + N
ПослСдниС Ρ„Π°ΠΉΠ»Ρ‹ Ctrl + E
Ѐайловая структура Ctrl + F12
Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² Alt + F1
ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Ctrl + B
ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Ctrl + H
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ UML Ctrl + Alt + U

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Навигация ΠΏΠΎ исходному ΠΊΠΎΠ΄Ρƒ.

БыстрыС Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, связанной с символом Π² ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ΅. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ слСдуСт Π·Π½Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎ:

ДСйствиС Π―Ρ€Π»Ρ‹ΠΊ
Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΈΠΏΠ΅ Alt + Ρ€Π°Π²Π½ΠΎ
ДокумСнтация Ctrl + Q
БыстроС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ctrl + Shift + I
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ использованиС Ctrl + Alt + F7
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ctrl + Alt + B
НСявныС прСобразования Ctrl + Shift + Q
НСявныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ctrl + Shift + P

Для символов Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ доступны быстрыС Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΊΠ½Π°; ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ доступны для элСмСнтов ΠΈΠ· любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ списка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ… ΠΆΠ΅ ярлыков.

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

IntelliJ IDEA ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании приводят ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½Π΅ ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³. IntelliJ IDEA достаточно ΡƒΠΌΠ΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π΅ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ фокус Π½Π° ΠΎΠΊΠ½ΠΎ инструмСнта Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Β» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Z .

ДСйствиС Π―Ρ€Π»Ρ‹ΠΊ
ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Shift + F6
Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ ввСсти Ctrl + Alt + V
Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΏΠΎΠ»Π΅ Ctrl + Alt + F
Π˜Π·Π²Π»Π΅Ρ‡ΡŒ константу Ctrl + Alt + C
Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ctrl + Alt + M
Π˜Π·Π²Π»Π΅Ρ‡ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ctrl + Alt + P
Inline Ctrl + Alt + N
ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ F5
Move F6
Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ этого Ctrl + Alt + Shift + T

Для извлСчСния ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅ мСню ().

РСальная экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ - это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ‡Π°ΡΡ‚ΡŒ строкового выраТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Extract. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ строки ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ использования Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ константой ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π°Β».

Поиск использований

Поиск использования ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро Π½Π°ΠΉΡ‚ΠΈ всС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° символ Π² ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ΅ (курсорС), нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, являСтся Π»ΠΈ символ классом, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΏΠΎΠ»Π΅ΠΌ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ.ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + F7 ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ список ссылок, сгруппированных ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ использования, ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΈ Ρ„Π°ΠΉΠ»Ρƒ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ собствСнныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска использования, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Alt + Shift + F7 ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ с Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ поиска.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ простой тСкст, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «Найти Π² ΠΏΡƒΡ‚ΠΈΒ», Π½Π°ΠΆΠ°Π² Ctrl + Shift + F .

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свСдСний см. Поиск использования.

Π˜Π½ΡΠΏΠ΅ΠΊΡ†ΠΈΠΈ

Π˜Π½ΡΠΏΠ΅ΠΊΡ†ΠΈΠΈ - это встроСнныС инструмСнты статичСского Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ вСроятныС ошибки, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ мСстонахоТдСниС ΠΌΠ΅Ρ€Ρ‚Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΡƒΡŽ структуру ΠΊΠΎΠ΄Π°.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ Π²Π°ΠΌ, Π² Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ быстрыС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ сразу ΠΆΠ΅ Π΅Π΅ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ. НаТмитС Alt + Enter , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ быстроС исправлСниС.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ позволяСт быстро ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сочСтаний клавиш. НаТмитС F2 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Π΅, ΠΈ Shift + F2 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слишком слоТны для выполнСния Π½Π° Π»Π΅Ρ‚Ρƒ, доступны ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π° для всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… способов: Π²Ρ‹Π±Ρ€Π°Π² ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Π² запуск ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ инспСкции ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ быстрыС исправлСния для ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, намСрСния ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π²Π°ΠΌ автоматичСски Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Ρ… ΠΊ ΠΊΠΎΠ΄Ρƒ Ρƒ курсора, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Enter .

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π°.

Π‘Ρ‚ΠΈΠ»ΡŒ ΠΊΠΎΠ΄Π° ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

IntelliJ IDEA автоматичСски примСняСт ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ настроили Π² настройках стиля ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ дСйствиС Reformat Code.

Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Scalafmt ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для форматирования ΠΊΠΎΠ΄Π°. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ScalaΒ».

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ярлыки форматирования:

ДСйствиС Π―Ρ€Π»Ρ‹ΠΊ
ΠŸΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Ctrl + Alt + L
Автоотступ строк Ctrl + Alt + I
ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Ctrl + Alt + O
Код Desugar Scala (Ρ„Π°ΠΉΠ») Ctrl + Alt + D

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Scalastyle Inspection для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вашСго Код Scala.ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» scalastyle_config.xml Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /.idea ΠΈΠ»ΠΈ / project ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свой ΠΊΠΎΠ΄.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ IntelliJ IDEA ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ для отступов вмСсто табуляции. Если Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с большим количСством отступов, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€, Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΎΠΏΡ†ΠΈΡŽ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ табуляции, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π².

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠŸΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π°Β».

Запуск ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ создали ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ запуска / ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π²Ρ‹Π±Ρ€Π°Π² ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Scala.

Для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² sbt Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ sbt. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ sbt для сборки ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ sbt, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° страницС sbt Π² настройках, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Для быстрой ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Scala, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Π°ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄.НаТмитС Ctrl + Alt + Shift + X , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ листа Scala, ΠΈ Ctrl + Alt + W , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅.

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ дСйствия для запуска / ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

ДСйствиС Π―Ρ€Π»Ρ‹ΠΊ
Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Shift + F10
ΠžΡ‚Π»Π°Π΄ΠΊΠ° Shift + F9

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнта Β«Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Β», доступ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π½Π°ΠΆΠ°Π² Alt + F8 .Π­Ρ‚ΠΎΡ‚ инструмСнт обСспСчиваСт Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, поэтому Π»Π΅Π³ΠΊΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ любоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Иногда Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, Π½ΠΎ Π½Π΅ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½. Π’ этом случаС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Smart step into, Π½Π°ΠΆΠ°Π² Shift + F7 , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

900

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Β«ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚Π°Ρ‚ΡŒΒ» Π²ΠΎ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствия Drop Frame.Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ ΠΏΠΎ ошибкС зашли слишком Π΄Π°Π»Π΅ΠΊΠΎ. Π­Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρƒ глобального состояния вашСго прилоТСния, Π½ΠΎ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠ°Π΄Ρ€Ρƒ стСка.

Π›ΡŽΠ±ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ останова ΠΌΠΎΠΆΠ½ΠΎ быстро ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π½Π°ΠΆΠ°Π² Π½Π° ΠΆΠ΅Π»ΠΎΠ±, удСрТивая Alt . Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ останова, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ условия, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Shift + F8 .

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ «Запуск ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°Β».

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ горячая Π·Π°ΠΌΠ΅Π½Π°

Иногда Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² ΠΊΠΎΠ΄, Π½Π΅ останавливая процСсс. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Java ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ HotSwap, IntelliJ IDEA ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ эти случаи автоматичСски, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Make.

Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

ΠŸΡ€ΠΈ нСобходимости Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Scala Π½Π° сСрвСрС.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. Π Π°Π±ΠΎΡ‚Π° с сСрвСрами ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Когда Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΈΠ»ΠΈ создали свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ sbt, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ„Π°ΠΉΠ» build.sbt прямо Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Π’ build.sbt Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ компилятора, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ свои Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ настройки. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ измСняСтС Ρ„Π°ΠΉΠ» build.sbt, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши измСнСния с модСлью ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² IntelliJ IDEA.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΈΠΌΠΏΠΎΡ€Ρ‚Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния, внСсСнныС Π² сборку.sbt автоматичСски. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этой ΠΎΠΏΡ†ΠΈΠΈ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅.

Для Ρ€ΡƒΡ‡Π½ΠΎΠΉ синхронизации ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ дСйствиС Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΎΠΊΠ½Π° инструмСнтов sbt projects :.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ sbt ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ для запуска ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ запуска.

IntelliJ IDEA Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты сборки, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Gradle ΠΈΠ»ΠΈ Maven, для сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Scala.

ПослСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: 19 августа 2020 Π³.

Π Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ΄ΠΎΠΌ Scala Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ - IntelliJ IDEA

IntelliJ IDEA позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия намСрСния Scala, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· Java Π² Scala ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Scala ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² IntelliJ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ IDEA.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² Scala

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ намСрСния для строк, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ дСйствия ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для многострочных строк.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Scala, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ свои Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

  • Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π» с ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠ΅ΠΉ ("+ +") Π² строку.

  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ строку Π² ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ строку, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Β«ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²" "" строку "" "ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

    ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Π² многострочныС строки ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ экранированныС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ '\\' ΠΈΠ»ΠΈ '\ n'.

    1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свою строку, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Enter ΠΈ ΠΈΠ· списка Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² "" "строку" "".

    2. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ строку Π² ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ строку. НаТмитС Alt + Enter , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ список Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² строку» ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ . Π’Π²Π΅Π΄ΠΈΡ‚Π΅ .ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

    3. Π§Ρ‚ΠΎΠ±Ρ‹ ввСсти ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ строку, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Ρ‚Ρ€ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Если Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Enter , ΠΎΠ½ автоматичСски Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ stripMargin . ΠœΠ΅Ρ‚ΠΎΠ΄ stripMargin удаляСт Π»Π΅Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ многострочной строки Π΄ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ раздСлитСля. Π‘Π΅Π»Ρ‹Π΅ пространства Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ.stripMargin

  • Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ .replace ("\ r", ""). Π­Ρ‚ΠΎ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ позволяСт Π²Π°ΠΌ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ курсор Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ мСстС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строкС многострочных строк нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, какая Ρƒ вас опСрационная систСма Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

    Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ строку, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Enter ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΈΠ· списка.

    the replace intention

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Inject Language / Reference, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ язык ΠΈΠ»ΠΈ ссылку Π² многострочныС строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹.Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ языковым ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡΠΌ.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ языки Π² многострочныС строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ с полями.

    language injection with Stripmargins

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Β«ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ строки» Π² настройках Scala, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² многострочных строк, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ отступ Margin char ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ многострочных строк.
    1. Π’ Π³Π»Π°Π²Π½ΠΎΠΌ мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅.

    2. На страницС Scala Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ строки.the Multi-line strings settings

    3. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ настройки ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ OK.

  • ΠŸΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ строку Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ссылку Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

НСявныС подсказки

IntelliJ IDEA позволяСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ, Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΡΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ подсказки Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° для нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄.

  1. На Π³Π»Π°Π²Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅.

  2. Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ подсказку ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌ мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ дСйствиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ подсказку, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ нСявныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.Implicit hints popup

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ Ctrl + Alt + Shift + + , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСявныС подсказки. Если Π²Ρ‹ снова Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ярлык, IntelliJ IDEA Ρ€Π°Π·Π²Π΅Ρ€Π½Π΅Ρ‚ нСявныС подсказки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. НаТмитС Ctrl + Alt + Shift + - , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ подсказки.

Подсказки Ρ‚ΠΈΠΏΠΎΠ² для Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

IntelliJ IDEA автоматичСски ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ подсказки Ρ‚ΠΈΠΏΠΎΠ² для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Inlay hints for Scala method chains

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ подсказки вставки, Ссли Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ подсказку ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π² контСкстном мСню снимитС Ρ„Π»Π°ΠΆΠΎΠΊ ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ подсказки вставки Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ Ρ‚ΠΎΠΌ ΠΆΠ΅ мСню Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ подсказок для Π²ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΈ скрытыми подсказками.

Hints context menu

Доступ ΠΊ настройкам подсказок для Π²ΠΊΠ»Π°Π΄ΠΎΠΊ

  1. Π’ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ «Настройки / ΠŸΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΡΒ» Ctrl + Alt + S ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ.

  2. Π’ спискС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ установитС ΠΈΠ»ΠΈ снимитС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:
    • ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ подсказки Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: снимитС этот Ρ„Π»Π°ΠΆΠΎΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ подсказки.

    • Π’Ρ‹Ρ€ΠΎΠ²Π½ΡΡ‚ΡŒ подсказки Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ IntelliJ IDEA ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ подсказки Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ столбца, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Ρ‚ΠΈΠΏΠΎΠ².

    • Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΎΠΏΡ†ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ подсказки, ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΈΠΏ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½.

    • ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ для отобраТСния Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ количСство ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ для отобраТСния подсказок.

Поиск использования ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚ΠΎΠ²

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚ΠΎΠ² ΠΊ ΠΈΡ… использованию с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствия «Найти использования».

Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ основана Π½Π° индСксах Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для поиска ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… скрытых элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² исходном ΠΊΠΎΠ΄Π΅ Β«ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒΒ»:

  • ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ / Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ экзСмпляров Ρ‚ΠΈΠΏΠ° Single Abstract Method (SAM)

  • для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ / / flatMap / filter / withFilter Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· for-compognition

  1. Π² ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π² контСкстном мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Найти использованиС Alt + F7 .

  2. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΎΠΊΠ½Π΅ инструмСнта поиска. Find usages for implicits

Автоимпорт для нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ

IntelliJ IDEA ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ автоматичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ для Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ.

  1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ свой ΠΊΠΎΠ΄ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ курсор Π² Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Enter .

  2. Π’ спискС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.Intention action for the implicit conversions auto-import

    Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ IntelliJ IDEA добавляСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

    result of the implicit auto-import

Когда Π²Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚Π΅ курсор Π² Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, IntelliJ IDEA ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² настройках автоматичСского ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°.

НСявныС прСобразования

IntelliJ IDEA позволяСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ нСявного прСобразования.

ΠœΠ΅Ρ‚ΠΎΠ΄ прСобразования нСявно

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ CTRL + Shift + Q ( CTRL + Q для macOS), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ список ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Ρ… нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ. Π’ спискС отобраТаСтся обычная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, отобраТаСмая Π²Π²Π΅Ρ€Ρ…Ρƒ, ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, отобраТаСмая Π²Π½ΠΈΠ·Ρƒ списка.

    IntelliJ IDEA выдСляСт нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ использовалось для Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ выраТСния. Если IntelliJ IDEA Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ совпадСния, открываСтся список Introduce Variable.

    Choose implicit conversion

  2. ΠŸΡ€ΠΈ нСобходимости сдСлайтС ΠΌΠ΅Ρ‚ΠΎΠ΄ нСявного прСобразования явным. НаТмитС Alt + Enter ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ явным ΠΈΠ»ΠΈ Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ явным (ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°). Make explicit
    • Если Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ явным, IntelliJ IDEA Π²Π΅Ρ€Π½Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ компилятор ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ нСявного прСобразования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΈ:

    • Если Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ явным (ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π°), Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ импортируСтся статичСски, ΠΈ IntelliJ IDEA Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ² Π±Π΅Π· ΠΈΠΌΠ΅Π½ΠΈ класса.ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ список ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ области:

НСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚

  1. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ курсор Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ использовалось нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Shift + P для Π²Ρ‹Π·ΠΎΠ²Π° нСявных Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ нСявныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π²Ρ‹Π·ΠΎΠ²Ρƒ.IntelliJ IDEA Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ рСкурсивныС нСявныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.

    IntelliJ IDEA выдСляСт Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ использовались нСявныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹.

  2. Если IntelliJ IDEA Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ нСявныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, отобраТаСтся Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ сообщСниС:

ДСйствиС с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ‚ΠΈΠΏΠ΅

IntelliJ IDEA позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствия Scala Show Type Info:

  • Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ дСйствиС ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Equals ΠΈΠ»ΠΈ Ctrl + Shift + P (для Mac OS): Show type info for string

    Если Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора ΠΌΡ‹ΡˆΠΈ послС , мс Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ΅.

  • Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΈΠΏΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ значСния. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ курсор Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ значСния ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Equals ΠΈΠ»ΠΈ Ctrl + Shift + P (для Mac OS): Show type info for integer

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ярлыки для просмотра ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

  • Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ°, Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Shift + Enter ΠΈ Π² контСкстном мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ значСния: Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ​​аннотация Ρ‚ΠΈΠΏΠ°.Add type annotation Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ°, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Shift + Enter ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ° ΠΈΠ· опрСдСлСния значСния.

ВыраТСния пСрСноса / развСртывания

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ автоматичСски ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ выраТСния Π² ΠΊΠΎΠ΄Π΅ Scala ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π²Π²ΠΎΠ΄Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π² Scala, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ настройкам смарт-клавиш.

  1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ скобку ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ, IntelliJ IDEA автоматичСски добавляСт Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ скобку Π² ΠΊΠΎΠ½Π΅Ρ† выраТСния.Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ скобку, IntelliJ IDEA ΡƒΠ΄Π°Π»ΠΈΡ‚ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ скобку автоматичСски. Wrap / unwrap method

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Shift + Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² ΠΊΠΎΠ΄Π΅, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ класс. Однако Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях IntelliJ IDEA распознаСт, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ список ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ.Import class

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π½Π° основС ΠΈΠΌΠ΅Π½ΠΈ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². IntelliJ IDEA позволяСт автоматичСски Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ имя ΠΈ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅Π΄ фактичСским Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ссылки Π½Π° Ρ‚ΠΈΠΏ. Type suggestions for parameters

  • Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ строки.
    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ строку Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° послС $ . Convert to interpolated string Π›ΠΈΠ±ΠΎ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠ΅ΠΉ Π² строкС, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Enter ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку».

    ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку» позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ строку Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Java.

  • Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ с наслСдниками, пСрСчислСниями Java ΠΈ Scala, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ для Π½ΠΈΡ… ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ соотвСтствия. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ доступно Π°Π²Ρ‚ΠΎΠ·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. the exhaustive match checking Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компилятор провСряСт соотвСтствиС ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ для всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ² Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

  • Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ case clauses, Π½ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ всС case clause. case clause completion

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π° основС использования

IntelliJ IDEA позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΈΡ… ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ объявлСния:

  1. Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + Enter .

  2. Из списка Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½ΠΎΠ΅.Create from usage НаТмитС Π’Π²Π΅Π΄ΠΈΡ‚Π΅ .

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ структуры

IntelliJ IDEA позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ структуру ΠΊΠΎΠ΄Π°:

  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ инструмСнта структуры, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Alt + 7 . View code structure

  • Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΈΠ· ΠΎΠΊΠ½Π° инструмСнта Β«Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°Β» ΠΊ элСмСнту ΠΊΠΎΠ΄Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ F4 .
    Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + Enter .

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Java Π² Scala

IntelliJ IDEA позволяСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Java Π² Scala.

  1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ свой Java-ΠΊΠΎΠ΄ (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠ΅Ρ‚ΠΎΠ΄, класс) ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅Π³ΠΎ Π² Ρ„Π°ΠΉΠ» Scala.

  2. IntelliJ IDEA ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ· JavaΒ», ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ОК.

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ дСйствия копирования / вставки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Java Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Ctrl + Shift + G .

Π’ этом случаС IntelliJ IDEA создаст Ρ„Π°ΠΉΠ» Scala с ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

Π”Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Scala Π² Java

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Scala Π² Java, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° транслируСтся ΠΈ рСализуСтся Π² Java.

  1. Π’ ΠΎΠΊΠ½Π΅ инструмСнта Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Β» Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ класс Scala, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

  2. Π’ контСкстном мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π”Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Scala Π² JavaΒ».

IntelliJ IDEA ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ Π² Java ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ класс Scala Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ контСкстноС мСню для прСобразования.

Scala Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ дСйствия

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Alt + Insert для создания Ρ‚Π°ΠΊΠΈΡ… дСйствий, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ рСализация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

НапримСр, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ дСйствиС ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. IntelliJ IDEA ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ со списком ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ОК.

Override method

Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова override .

Completion for the override action

Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Scala

IntelliJ IDEA позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Scala.

  1. Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Ctrl + J .
    IntelliJ IDEA ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ список доступных Live-шаблонов для Scala.

  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π’Π²Π΅Π΄ΠΈΡ‚Π΅ . Scala templates

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ шаблон ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ.

  1. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ.

  2. Из ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² справа ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ список шаблонов Scala. Scala templates settings

  3. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ шаблон, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ the Add button.
    Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ шаблон, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ опрСдСлСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ постфикса Scala

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π½Π°Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π½Π° основС постфикса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ послС Ρ‚ΠΎΡ‡ΠΊΠΈ.

Scala post-fix completion

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ / ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ постфикса ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… шаблонов для постфикса, ΠΈΡ… описания ΠΈ ΠΎΠ±Ρ€Π°Π·Ρ†Ρ‹ ΠΊΠΎΠ΄Π°, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ страницу Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ постфикса, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ Π².

Π˜Π½ΡΠΏΠ΅ΠΊΡ†ΠΈΠΈ Scala

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ доступныС инспСкции для Scala Π½Π° страницС Π˜Π½ΡΠΏΠ΅ΠΊΡ†ΠΈΠΈ Π² Ctrl + Alt + S .

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ IntelliJ IDEA Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Akka, доступно нСсколько инспСкций Akka.

Akka inspections settings

ПослСднСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅: 19 августа 2020 Π³.

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Scala Π² IntelliJ

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Scala с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ IntelliJ.
IDE с ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Scala. Π’ этом руководствС IntelliJ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ для вас Scala.

Установка

  1. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСн Java 8 JDK (Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ 1.8)
    • ЗапуститС javac -version Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅
      javac 1.8 .___
    • Если Ρƒ вас Π½Π΅Ρ‚ вСрсии 1.8 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅, установитС JDK
  2. Π—Π°Ρ‚Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΈ установитС IntelliJ Community Edition
  3. Π—Π°Ρ‚Π΅ΠΌ, послС запуска IntelliJ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½ Scala, слСдуя инструкциям Π½Π°
    ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ IntelliJ (Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Β«ScalaΒ» Π² мСню ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ².)

ΠŸΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΡ‹ устанавливаСм послСднюю Π²Π΅Ρ€ΡΠΈΡŽ Scala.
ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Scala, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ
ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускаСтС IntelliJ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ IntelliJ ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ File => New => Project
  2. На Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Scala. На ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ IDEA.
  3. НазовитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ HelloWorld
  4. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ создаСтС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Scala с IntelliJ,
    Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Scala SDK. Π‘ΠΏΡ€Π°Π²Π° ΠΎΡ‚ поля Scala SDK,
    Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ .
  5. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ самый высокий Π½ΠΎΠΌΠ΅Ρ€ вСрсии (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,Π³Ρ€Π°ΠΌΠΌ. 2.13.3) ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ . Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚
    Π·Π°ΠΉΠΌΠ΅Ρ‚ нСсколько ΠΌΠΈΠ½ΡƒΡ‚, Π½ΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ SDK.
  6. ПослС создания SDK ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² ΠΎΠΊΠ½ΠΎ «Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Β» Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π“ΠΎΡ‚ΠΎΠ²ΠΎ .

Π—Π°ΠΏΠΈΡΡŒ ΠΊΠΎΠ΄Π°

  1. На ΠΏΠ°Π½Π΅Π»ΠΈ Project слСва Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ src ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅
    Новый => Scala class . Если Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Scala class , Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ HelloWorld ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ платформы… , Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Scala ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅.Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ошибка: Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π»ΠΈΠ±ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
  2. НазовитС класс Hello ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Kind Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ .
  3. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² классС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:
  ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Hello extends App {
  println ("ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΌΠΈΡ€!")
}
  

Запуск

  • Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Hello Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Run β€˜Hello’ .
  • Π“ΠΎΡ‚ΠΎΠ²ΠΎ!

ЭкспСримСнтируя со Scala

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΉ способ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Scala Worksheets

.

  1. На ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° слСва Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ
    src ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ New => Scala Worksheet .
  2. НазовитС свой Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Scala Β«ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΒ».
  3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист:
  def ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ (x: Int) = x * x

ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ (2)
  

Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ свой ΠΊΠΎΠ΄, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ оцСниваСтся
Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.Если Π²Ρ‹ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ свой Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист Scala Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Β«ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Β» ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ лист».

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Scala, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ
для Π½Π°Ρ‡Π°Π»Π° изучСния языка. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌ вас с
Π²Π°ΠΆΠ½Ρ‹ΠΉ инструмСнт сборки ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ sbt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для простых ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²
ΠΈ производствСнныС прилоТСния.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: созданиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Scala с IntelliJ ΠΈ sbt

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Scala с IntelliJ ΠΈ sbt

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Scala с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sbt.sbt - популярный инструмСнт для компиляции, запуска ΠΈ тСстирования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Scala любого
Ρ€Π°Π·ΠΌΠ΅Ρ€. ИспользованиС инструмСнта сборки, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ sbt (ΠΈΠ»ΠΈ Maven / Gradle), становится Π²Π°ΠΆΠ½Ρ‹ΠΌ послС создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с зависимостями.
ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ΄Π°.
ΠœΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ
ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² IntelliJ. Однако, Ссли Π²Ρ‹
ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.
Начал с Scala ΠΈ sbt Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, Π° ΠΏΠΎΡ‚ΠΎΠΌ вСрнулся
сюда, Π² Ρ€Π°Π·Π΄Π΅Π» «НаписаниС ΠΊΠΎΠ΄Π° ScalaΒ».

  1. Если Π²Ρ‹ Π½Π΅ создавали ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ IntelliJ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Β«Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Β»
    • На Π»Π΅Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Scala, Π° Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ sbt
    • НаТмитС Π”Π°Π»Π΅Π΅
    • НазовитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Β«SbtExampleProjectΒ»
  2. Если Π²Ρ‹ ΡƒΠΆΠ΅ создали ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ IntelliJ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Import Project ΠΈ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» build.sbt для вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  3. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ JDK вСрсии - 1.8 ΠΈ sbt вСрсии Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 0,13,13
  4. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ автоматичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚ , Ρ‡Ρ‚ΠΎΠ±Ρ‹ зависимости Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈΡΡŒ автоматичСски, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ доступны
  5. Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π“ΠΎΡ‚ΠΎΠ²ΠΎ

ПониманиС структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²

sbt создаСт мноТСство ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ
Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΠ° ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ…
Π½ΠΎ Π²ΠΎΡ‚ для Ρ‡Π΅Π³ΠΎ всС это Π½ΡƒΠΆΠ½ΠΎ:

  - .idea (Ρ„Π°ΠΉΠ»Ρ‹ IntelliJ)
- ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ настройки для sbt)
- src (исходныС Ρ„Π°ΠΉΠ»Ρ‹)
    - основной (ΠΊΠΎΠ΄ прилоТСния)
        - java (исходныС Ρ„Π°ΠΉΠ»Ρ‹ Java)
        - scala (исходныС Ρ„Π°ΠΉΠ»Ρ‹ Scala) <- Π­Ρ‚ΠΎ всС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ сСйчас Π½ΡƒΠΆΠ½ΠΎ
        - Π‘ΠΊΠ°Π»Π°-2.12 (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Scala 2.12)
    - test (ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ тСсты)
- Ρ†Π΅Π»ΡŒ (сгСнСрированныС Ρ„Π°ΠΉΠ»Ρ‹)
- build.sbt (Ρ„Π°ΠΉΠ» опрСдСлСния сборки для sbt)
  

НаписаниС кода Scala

  1. На ΠΏΠ°Π½Π΅Π»ΠΈ Project слСва Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ SbtExampleProject => src
    => основной
  2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ scala ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Новый => ΠŸΠ°ΠΊΠ΅Ρ‚
  3. НазовитС ΠΏΠ°ΠΊΠ΅Ρ‚ example ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ OK .
  4. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ , ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ New => Scala class .
  5. НазовитС класс Main ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Kind Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ .
  6. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ Π² классС Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:
  ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Main extends App {
  Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Seq (42, 75, 29, 64)
  println (s "Π‘Π°ΠΌΡ‹ΠΉ старый Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ - $ {age.max}")
}
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. IntelliJ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ компилятора Scala, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ Π²Π°ΡˆΡƒ
ΠΊΠΎΠ΄ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ, Π΄Π°ΠΆΠ΅ Ссли IntelliJ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½ΠΎΠ΅.Π’Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ
Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ sbt Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

  1. Из мСню Run Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Edit configurations
  2. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ + ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ sbt Task .
  3. НазовитС Π΅Π³ΠΎ ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ .
  4. Π’ ΠΏΠΎΠ»Π΅ Π—Π°Π΄Π°Ρ‡ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ~ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ . ~ заставляСт sbt ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
    ΠΏΡ€ΠΈ сохранСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.
  5. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ОК .
  6. Π’ мСню Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ . Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Run β€˜Run the program’ .
  7. Π’ ΠΊΠΎΠ΄Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ 75 Π½Π° 61
    ΠΈ посмотритС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² консоли.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости

НСмного помСняв ΡˆΠ΅ΡΡ‚Π΅Ρ€Π½ΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для добавлСния
Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ build.sbt ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:
  libraryDependencies + = "org.scala-lang.modules "%%" ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Ρ‹-парсСра scala "%" 1.1.2 "
  

Π—Π΄Π΅ΡΡŒ libraryDependencies - это Π½Π°Π±ΠΎΡ€ зависимостСй, ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ + = ,
ΠΌΡ‹ добавляСм Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ scala-parser-combinators ΠΊ Π½Π°Π±ΠΎΡ€Ρƒ зависимостСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ sbt
ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ запускС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² любом Ρ„Π°ΠΉΠ»Π΅ Scala Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы,
ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ Ρ‚. Π΄. ΠΈΠ· scala-parser-ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€ΠΎΠ² с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠΌ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π°
Scaladex, индСкс Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Scala, Π³Π΄Π΅ Π²Ρ‹
Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Ρ‹ΡˆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ зависимостях для вставки Π² сборку .сбт
Ρ„Π°ΠΉΠ».

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ руководству ΠΈΠ· сСрии «Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с IntelliJ Β» ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅ ΠΎ тСстировании ΠΊΠΎΠ΄Π° Scala Π² IntelliJ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ScalaTest.

ΠΈΠ»ΠΈ

ВСстированиС Scala Π² IntelliJ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ScalaTest

Для Scala сущСствуСт мноТСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ тСстирования,
Π½ΠΎ Π² этом руководствС ΠΌΡ‹ продСмонстрируСм ΠΎΠ΄ΠΈΠ½ популярный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠ· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ScalaTest.
называСтся FunSuite.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² IntelliJ.

Установка

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ sbt Π² IntelliJ.
  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ScalaTest:
    1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ScalaTest Π² Ρ„Π°ΠΉΠ» build.sbt :
        libraryDependencies + = "org.scalatest" %% "scalatest"% "3.0.8"% ВСст
        
    2. Если Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Β«build.sbt was changedΒ», Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ auto-import .
    3. Π­Ρ‚ΠΈ Π΄Π²Π° дСйствия заставят sbt Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ScalaTest.
    4. Π”ΠΎΠΆΠ΄ΠΈΡ‚Π΅ΡΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ синхронизации sbt ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС FunSuite ΠΈ test () Π±ΡƒΠ΄ΡƒΡ‚
      Π½Π΅ΡƒΠ·Π½Π°Π½Π½Ρ‹ΠΉ.
  3. На ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° слСва Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ src => main .
  4. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ scala ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ New => Scala class .
  5. НазовитС Π΅Π³ΠΎ CubeCalculator , ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Kind Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ OK .
  6. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
      ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ CubeCalculator Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ {
       def cube (x: Int) = {
         Ρ… * Ρ… * Ρ…
       }
     }
      

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ тСста

  1. На ΠΏΠ°Π½Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° слСва Ρ€Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ src => test .
  2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ scala ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ New => Scala class .
  3. НазовитС класс CubeCalculatorTest ΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ OK .
  4. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:
      ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΎΡ€Π³.scalatest.FunSuite
        
     class CubeCalculatorTest Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ FunSuite {
       test ("CubeCalculator.cube") {
         assert (CubeCalculator.cube (3) === 27)
       }
     }
      
  5. Π’ исходном ΠΊΠΎΠ΄Π΅ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ CubeCalculatorTest ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅
    ЗапуститС Β«CubeCalculatorTestΒ» .

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ΄

Π”Π°Π²Π°ΠΉΡ‚Π΅ пройдСмся ΠΏΠΎ этой строкС Π·Π° строкой:

  • class CubeCalculatorTest ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ тСстируСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ CubeCalculator
  • Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ FunSuite позволяСт Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ класса ScalaTest FunSuite
    Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, тСст функция
  • test - это функция ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ FunSuite, которая собираСт
    являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠΉ Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
  • "CubeCalculator.cube" - это имя тСста. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ это ΠΊΠ°ΠΊ ΡƒΠ³ΠΎΠ΄Π½ΠΎ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅
    одно соглашСниС - «ClassName.methodName».
  • assert ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ логичСскоС условиС ΠΈ опрСдСляСт, ΠΏΡ€ΠΎΡˆΠ΅Π» Π»ΠΈ тСст ΠΈΠ»ΠΈ Π½Π΅Ρ‚.
  • CubeCalculator.cube (3) === 27 провСряСт, соотвСтствуСт Π»ΠΈ Π²Ρ‹Π²ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ cube
    Π½Π° самом Π΄Π΅Π»Π΅ 27. === являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ScalaTest ΠΈ прСдоставляСт чистыС сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ тСстового ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

  1. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ assert послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт ΠΊΡƒΠ±
    ΠΈΠ· 0 .
  2. ΠŸΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ тСст Π΅Ρ‰Π΅ Ρ€Π°Π·, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ CubeCalculatorTest ΠΈ Π²Ρ‹Π±Ρ€Π°Π²
    «ЗапуститС CubeCalculatorTest Β».

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΎΠ΄ΠΈΠ½ способ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой ΠΊΠΎΠ΄ Scala. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ScalaTest
FunSuite Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ сайтС.

Π’ΠΎΠΏ-5 IDE ΠΈ тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² для Scala

Π—Π° послСдний Π³ΠΎΠ΄ Scala добилась Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰Π΅Π³ΠΎ подъСма Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ TIOBE Index ΠΈ Π΄Π°ΠΆΠ΅ вошла Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΠΊΡƒ. ΠΠ΅ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‚Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΊ Scala: это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒ Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ с Java Π½Π° JVM.

Scala Π±Ρ‹Π»Π° довольно ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π·Π° послСдниС нСсколько Π»Π΅Ρ‚. Π­Ρ‚ΠΎ подходящий язык Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. НСдавниС новости ΠΎΠ± обновлСниях 2.13 ΠΈ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… выпусках Dotty ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π²Ρ‹Π·Π²Π°Π»ΠΈ больший интСрСс срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Как всСгда, этот список являСтся Π΄Π΅Π»ΠΎΠΌ Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ IDE ΠΈ тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹. Однако, Ссли ΠΌΡ‹ Π·Π°Π±Ρ‹Π»ΠΈ Π²Π°ΡˆΡƒ Π»ΡŽΠ±ΠΈΠΌΡƒΡŽ IDE для Scala, сообщитС Π½Π°ΠΌ ΠΎΠ± этом Π² коммСнтариях Π½ΠΈΠΆΠ΅!

Π’ΠΎΡ‚ 5 Π½Π°ΡˆΠΈΡ… Π»ΡƒΡ‡ΡˆΠΈΡ… IDE ΠΈ тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² для Scala!

Scala IDE для Eclipse

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π΅ΡΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Scala для Eclipse.ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ этого Π½Π΅ Π±Ρ‹Π»ΠΎ? Π­Ρ‚Π° Scala IDE обСспСчиваСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ чистых Scala ΠΈ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Scala IDE 3.0 ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ†Π΅Π»Ρ‹ΠΉ ряд инструмСнтов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ нСсколько Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… исправлСний ошибок.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ инструмСнты рСдактирования Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, нСявноС ΠΈ сСмантичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΎΠ²ΠΎΠ΅ руководство ΠΏΠΎ отступам. Π•ΡΡ‚ΡŒ блСстящий ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Scala, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ упростит Π²Π°ΠΌ Тизнь, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ поисковик тСстов Junit ΠΈ асинхронный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Scala IDE ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.Scala IDE ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ доступна ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ Scala.

БМОВРИ Π’ΠΠšΠ–Π•: ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ инструмСнты Scala Π² свой Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Build Server Protocol

ENSIME

Π­Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠ°. Emacs ΠΈ Atom - тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ с ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Scala, Π½ΠΎ сСгодня ΠΌΡ‹ сосрСдоточимся Π½Π° Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, которая Π΄Π΅Π»Π°Π΅Ρ‚ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ - ENSIME. ENSIME - это бСсплатноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для добавлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Scala ΠΈ Java IDE, Π² ваш Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.

ENSIME - это Π½Π΅ совсСм тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ IDE.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π²Π°ΠΌ понадобится инструмСнт сборки, Ρ„Π°ΠΉΠ» .ensime ΠΈ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ сборки Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ сСрвСр энсимС , ΠΈ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ запускаСт Π΅Π³ΠΎ. Π₯отя это Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, Ρ‡Π΅ΠΌ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ IDE, прСимущСства Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‚.

ENSIME ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ контСкстноС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ сСмантичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ с нСявным Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ исходному ΠΊΠΎΠ΄Ρƒ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. ENSIME ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, Π² вашСм ΠΊΠΎΠ΄Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ красныС волнистыС Π»ΠΈΠ½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ошибки ΠΈ прСдупрСТдСния.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ENSIME ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь. ENSIME - это бСсплатноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ полагаСтся Π½Π° поТСртвования ΠΈ спонсорство Ρ‚Π°ΠΊΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ Π²Ρ‹.

IntelliJ IDEA

IntelliJ IDEA ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ создавала ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ списки, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эта Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΈ эргономичная IDE для JVM ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ мноТСства языков. Π₯отя тСхничСски это IDE для Java, IDE обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ мноТСства Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Scala, Groovy, Kotlin, JavaScript, TypeScript ΠΈ SQL.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ мноТСству Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ IntelliJ IDEA ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Scala ΠΏΡ€ΠΈ тСстировании с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ScalaTest.Π­Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅, ΡΠ·Ρ‹ΠΊΠΎΠ²ΡƒΡŽ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΡŽ, срСду, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΈ мноТСство ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов сборки.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ IntelliJ IDEA ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ IntelliJ IDEA Ultimate Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ ΠΈ Π³ΠΎΠ΄ΠΎΠ²ΠΎΠΉ подписки, вСрсия Community ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄.

БМОВРИ Π’ΠΠšΠ–Π•: ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€ инструмСнтов сборки Π² Scala

NetBeans

NetBeans IDE позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ быстро ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Π΅, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ Π²Π΅Π±-прилоТСния.Благодаря многочислСнным функциям рСдактирования, Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ прСобразования IDE NetBeans ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π‘Ρ‚ΠΎΠΈΡ‚ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° инструмСнт управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Scala для NetBeans Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Scala с синтаксисом ΠΈ сСмантичСской окраской, Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ΠΎΠΌ структуры, Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° ΠΈ Ρ‚. Π”. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, интСрактивная консоль ΠΈ интСграция с Junit ΠΈ Maven.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ Scala для NetBeans ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь.NetBeans бСсплатСн, ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° Apache.

Vim

ВСликая старая Π΄Π°ΠΌΠ° для любого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Vim - это тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΡ‡Π΅Π½ΡŒ хотят Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свой собствСнный ΠΎΠΏΡ‹Ρ‚. ЀактичСски, это ΠΈΠ½ΠΎΠ³Π΄Π° основная прСтСнзия ΠΊ Vim: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ приходится ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ мноТСство ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡƒΡŽ срСду. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρƒ Vim Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Scala, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Vim-scala - Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ для управлСния синтаксисом.ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹ΠΌ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° являСтся deoplete.nvim, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ для асинхронного Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ с Ρ‚Π΅ΠΌΠ½Ρ‹ΠΌ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ. fzf - это нСзависимая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для Vim, которая ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ Β«ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»ΡƒΒ» ΠΈ Β«ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽΒ». БовмСстноС использованиС всСх Ρ‚Ρ€Π΅Ρ… этих ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Scala Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Vim.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Vim ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь. Vim ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄.

БМОВРИ Π’ΠΠšΠ–Π•: насколько Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ свои ΠΌΠ΅Π»ΠΎΡ‡ΠΈ Scala?

ДостойныС упоминания

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Scala Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Visual Studio Code ΠΎΡ‚ Microsoft.VS Code ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для дСсятков языков, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Scala, для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ рСдактирования. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Sublime Text, Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρƒ, которая ΠΈΠΌΠ΅Π΅Ρ‚ ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для рСдактирования ΠΊΠΎΠ΄Π°, Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ·Ρ‹.

Π˜Ρ‰Π΅Ρ‚Π΅ наши Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ IDE Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках? ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΈΡ… здСсь:

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *

ДСйствиС Π―Ρ€Π»Ρ‹ΠΊ
ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова Ctrl + F8
Π¨Π°Π³ Π² F7
Π£ΠΌΠ½Ρ‹ΠΉ шаг Π² Shift + F7
Π¨Π°Π³ Π²ΠΏΠ΅Ρ€Π΅Π΄ F8
Π’Ρ‹ΠΉΡ‚ΠΈ Shift + F8
ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ F9
Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Alt + F8
Июнь 2025
ΠŸΠ½Π’Ρ‚Π‘Ρ€Π§Ρ‚ΠŸΡ‚Π‘Π±Π’Ρ
 1
2345678
9101112131415
16171819202122
23242526272829
30 
2025 Β© ВсС ΠΏΡ€Π°Π²Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹. ΠšΠ°Ρ€Ρ‚Π° сайта