рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП VSCode рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛


рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕реНрдХреИрд▓рд╛ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ рдореИрдВ рдЦреБрдж рд╣реВрдВ, рдФрд░ рд╕рд┐рд░реНрдл рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ VSCode рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрд╣ рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рд╡рд┐рд╕рд┐рдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдореЗрдВ рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдпрд╣ рд╡реАрдбрд┐рдпреЛ YouTube рдЪреИрдирд▓ DevInsideYou рдкрд░ рдерд╛ред рдпрд╣ рд╡реАрдПрд╕ рдХреЛрдб рдФрд░ рдЙрджрд╛рддреНрдд рдкрд╛рда рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд▓реЗрдЦ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдПрдХ рдЕрдиреБрдХреВрд▓рди рд╣реИред рдЖрдк рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдиреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рджреЛрдиреЛрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рд╕реНрдерд╛рдкрдирд╛


рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд╡рд╣ рд╣реИ рд╕реНрдХрд╛рд▓реБ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрд╕рдмреАрдЯреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо, рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред


VSCode рдореЗрдВ рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рддреБ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред

рдзрд╛рддреБ рд╕реБрд╡рд┐рдзрд╛рдПрдБ


  • рдмрдЪрдд рдХрд░рддреЗ рд╕рдордп рд╕рдЯреАрдХ рдирд┐рджрд╛рди:
  • рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рд╕рдВрдХреНрд░рдордг рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдорджрдж рдкреЙрдкрдЕрдк:
  • рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛:
  • рдбрд╛рдпрд▓ рдХрд░рддреЗ рд╕рдордп рд╕реНрд╡рдд: рдкреВрд░реНрдг:

рдХреЗрд╡рд▓ рдореВрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИ, рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд DevInsideYou рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдПрдХ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ рдЬреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХрд╛рд▓рд╛ рдХреЛрдб рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИ:


рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ - рдХреНрд▓рд╛рдЗрдВрдЯ рдЯреВрд▓ (рдЖрдИрдбреАрдИ) рдФрд░ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдмреАрдЪ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ (рдСрдЯреЛ-рдкреВрд░реНрдгрддрд╛, рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдзрд╛рддреБ = рдореЗрдЯрд╛ (рд╕реНрдХреЗрд▓рдореЗрдЯрд╛ рд╕реЗ) + рдПрд▓рдПрд╕ (рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рд╕реЗ - рдорд╛рдирдХ рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓)ред

рдПрд▓рдПрд╕рдкреА рд╕рд░рд▓ рд╕рдВрдкрд╛рджрдХ m-plus-n рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕рдВрдкрд╛рджрдХ, рдЖрдИрдбреАрдИ рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрд╛ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдХреЗ m-times-n рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред LSP Microsoft рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рд╖рд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдмреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред Microsoft Visual Studio рдХреЛрдб рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдПрд▓рдПрд╕рдкреА рднрд╛рд╖рд╛ рд╕рдореБрджрд╛рдпреЛрдВ рдХреЛ рдПрдХ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдкреВрд░рд╛ рдХрд░рдиреЗ, рдЯреВрд▓рдЯрд┐рдкреНрд╕, рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ, рд▓рд┐рдВрдХ рдХреА рдЦреЛрдЬ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕рдВрдкрд╛рджрдХ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рд╕рдореБрджрд╛рдп рдПрдХрд▓, рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди, рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдПрдХ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рд╡рд┐рд╕реНрддрд╛рд░ рдЬреЛ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдЧрд╣рд░реА рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди


1 рд░рд╛рд╕реНрддрд╛


рд╕реНрдХреИрд▓рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рд░рдВрднред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрд▓реЗрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдирд┐рдореНрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдБ:


рдзрд╛рддреБрдУрдВ рдХреА рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж рдирдореВрдирд╛ рдЙрддреНрдкрд╛рджрди:



2 рддрд░рд╣ рд╕реЗ


рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рдореЗрдВ рдорд┐рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ build.sc рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ рдЗрд╕реЗ рдЦреЛрд▓реЗрдВред

рдзрд╛рддреБрдУрдВ рдХреА рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж рдирдореВрдирд╛ рдЙрддреНрдкрд╛рджрди:


3 рд░рд╛рд╕реНрддрд╛ (рдЕрдВрддрд┐рдо)


рдПрд╕рдмреАрдЯреА рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрднрд┐рдХред рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ build.sbt рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

name := "scala-vscode-example" version := "0.1" scalaVersion := "2.13.1" triggeredMessage := Watched.clearWhenTriggered autoStartServer := false scalacOptions ++= Seq( "-feature", "-deprecation", "-language:implicitConversions", "-language:higherKinds" ) addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.10.3") 

рдзрд╛рддреБрдУрдВ рдХреА рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдХреЗ рдмрд╛рдж рдирдореВрдирд╛ рдЙрддреНрдкрд╛рджрди:


рдЬрдм рдзрд╛рддреБ рдПрдХ sbt рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ / build.properties рдирд╣реАрдВ рд╣реИ , рддреЛ рдПрдХ рдкреЙрдк-рдЕрдк рд╕реВрдЪрдирд╛ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдХрд┐ рдЖрдк 0.13.7 рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╣реИрдВ:


рд╡реЗ sbt рд╕рдВрд╕реНрдХрд░рдг 1.2.8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред Sbt рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЬреЗрдХреНрдЯ / build.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ:


Sbt рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 $ sbt sbtVersion 

рд╣рдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ sbt рдХрд╛рд░реНрдп рдкрд░рд┐рд╡реЗрд╢ рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ:

 $ sbt 

рдЖрдпрд╛рдд рдкрд░рд┐рдпреЛрдЬрдирд╛


рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рдпрд╛ рдЖрджреЗрд╢ рджрд░реНрдЬ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рдЖрдпрд╛рдд рдмрд┐рд▓реНрдб рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:


рдХрд┐рд╕реА рднреА рд╕реНрдХреЗрд▓рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдзрд╛рддреБ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдЧреА:


рдЪрд┐рдХрд┐рддреНрд╕рдХ


рд╕рдВрднрд╛рд╡рд┐рдд рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:


рдирд┐рд╖реНрдХрд░реНрд╖:


Bloop


рдмреНрд▓реВрдк рд╕реНрдХреИрд▓рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдФрд░ рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рд╣реИ рдЬреЛ рдПрд╕рдмреАрдЯреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЕрдиреНрдп рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ рдЬреИрд╕реЗ рдорд╛рд╡реЗрди , рдЧреНрд░реИрдбрд▓ рдФрд░ рдорд┐рд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдорд░реНрдерди рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдореЗрдВ Bloop JSON рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде .bloop рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╣реИ, рддреЛ рдзрд╛рддреБрдПрдБ рд╕реНрд╡рддрдГ рдЗрд╕рд╕реЗ рдЬреБрдбрд╝ рдЬрд╛рдПрдБрдЧреАред

рдмреНрд▓рдб рд▓рд╛рдн:

  • рд╕рдВрдХрд▓рди, рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕реНрдХреИрд▓рд╛ рдХреЛрдб рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЬрд▓реНрджреА рдЪрд▓рд╛рддрд╛ рд╣реИред рд╕рдВрдХрд▓рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╕реНрд░реЛрдд рдХреЛрдб рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓реЙрдиреНрдЪ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкреБрди: рд╕рдВрдХрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ;
  • рдЖрд╕рд╛рдиреА рд╕реЗ рдмрд┐рд▓реНрдб рдЯреВрд▓, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рд╕рдВрдкрд╛рджрдХреЛрдВ рдФрд░ рдХрд╕реНрдЯрдо рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ;
  • рдпрд╣ рдЖрдИрдбреАрдИ рд╕реЗ рдЕрд▓рдЧ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдпрд╛ рд░рд┐рдмреВрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ;
  • рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЙрджреНрдШрд╛рдЯрди рдХреА рдЧрддрд┐ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЗрдЯрд▓реНрд╕ рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд░реНрд╡рд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╡реАрдбрд┐рдпреЛ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдирд┐рдкреЗрдЯ "рд╕реНрдХрд╛рд▓рд╛ рдореЗрдЯрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЦреБрд╢рд╣рд╛рд▓ рдЬреАрд╡рди" рдЖрд╡реЗрджрди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:


рдиреЛрдЯ : рдЖрдХреГрддрд┐ рдореЗрдВ рдХреБрдЫ рдЕрд╢реБрджреНрдзрд┐рдпрд╛рдБ рд╣реИрдВред рдЧреИрдмреНрд░рд┐рдпрд▓ рдкреЗрдЯреНрд░реЛрдиреЗрд▓рд╛ рдиреЗ рд╡реАрдбрд┐рдпреЛ рдХреЗ рддрд╣рдд рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмрддрд╛рдпрд╛:
рдЖрдВрдХрдбрд╝реЗ рдореЗрдВ, рдирд┐рдЪрд▓реЗ рдмреАрдПрд╕рдкреА рддреАрд░ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ (рд╕рд╣реА рдврдВрдЧ рд╕реЗ) рдмрддрд╛рдпрд╛ рд╣реИ, рдЕрдЧрд░ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдмреАрдПрд╕рдкреА рдмреЛрд▓рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд┐рдирд╛ рдмреНрд▓реВрдк рд╕реЗ рдЧреБрдЬрд░реЗ рд╕реАрдзреЗ рдзрд╛рддреБрдУрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрд┐рд▓реНрдб рдЯреВрд▓ рд╕реЗ рдмреНрд▓реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдмреАрдПрд╕рдкреА рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдХреЛ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХрджрдо рд╣реИ, рдЬреЛ рдмреАрдПрд╕рдкреА рдХреЛ рдЦрд░реАрджрддрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ ред
рдмреНрд▓реВрдк IDEs рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╢реЙрд░реНрдЯ рдлреАрдбрдмреИрдХ рд▓реВрдк рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХрдВрдкрд╛рдЗрд▓рд░ рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдзрд╛рддреБрдУрдВ рдореЗрдВ рдмреНрд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  1. рдпрджрд┐ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдмреНрд▓реВрдк рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдзрд╛рддреБ рдмрд╕ рдПрдХ рдореМрдЬреВрджрд╛ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ (рдЕрдиреБрд╢рдВрд╕рд┐рдд) рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдЧрд╛;
  2. рдпрджрд┐ рдмреНрд▓реВрдк рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдзрд╛рддреБ рд╕рд░реНрд╡рд░ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдореВрд▓ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рдПрдЧрд╛ред

рд╕реЗрдорд╛рдЯрд┐рдХрдбреАрдмреА рд╢рдмреНрджрдмрджреНрдз рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рд╡рд░реНрдг рдФрд░ рдкреНрд░рдХрд╛рд░, рд╕реНрдХрд╛рд▓рд╛ рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, sbt- рдзрд╛рддреБ рд╕реНрдерд╛рдиреАрдп рд╕рд┐рдореЗрдВрдЯрд┐рдХрдм-рд╕реНрдХреЗрд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕реВрдЪрдирд╛ рднреЗрдЬрддрд╛ рд╣реИред

рдмреНрд▓реВрдк рд╕реНрдерд╛рдкрдирд╛


рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:

 $ curl -L https://github.com/scalacenter/bloop/releases/download/v1.3.2/install.py | python 

рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмреНрд▓реВрдк рд╕реЗрд╡рд╛ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 $ cp ~/.bloop/systemd/bloop.service ~/.config/systemd/user/ 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдирд╣реАрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмреНрд▓реЙрдк / usr / bin рдХреЛ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 $ sudo cp /.bloop/bloop /usr/bin/ 

рд░рд┐рдмреВрдЯ рд╕рд┐рд╕реНрдЯрдорд▓реИрдЯ рдбреЗрдореЙрди:

 $ systemctl --user daemon-reload 

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдмреНрд▓реВрдк рдЬреЛрдбрд╝рдирд╛:

 $ systemctl --user enable bloop 

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рд▓рдЧрд╛рддрд╛рд░ рд╕реНрдХрд╛рд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдЖрдк рдирд┐рдореНрди рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдСрдЯреЛрд░рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 $ systemctl --user disable bloop 

рд░рдирд┐рдВрдЧ рдмреНрд▓реВрдк:

 $ systemctl --user start bloop 

рд╡рд░реНрддрдорд╛рди рдХрдиреЗрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ:



рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ


рдЬрдм рдмреНрд▓реВрдк рд╕реЗрд╡рд╛ рдЪрд▓ рд░рд╣реА рд╣реИ, рддреЛ рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рд╕рдВрдХрд▓рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

 $ bloop run <proj-name> 

рдЖрдк ~ / .config / Code / User / keybindings.json рдореЗрдВ рд╣реЙрдЯрдХреА рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

  {    "key": "meta+r",    "command": "workbench.action.terminal.sendSequence",    "args": {      "text": "bloop run ${workspaceFolderBasename}\u000D"    } } 

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдмреНрд▓реВрдк рд╕реЗрд╡рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рд╕реАрдзреЗ sbt рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрд╡реЗрджрди рдХреЛ рд╣рд░ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛:

 $ sbt run 

рд╕реНрд░реЛрдд рдбреЗрдЯрд╛


рдПрдХ рд╕реНрдХреЗрд▓рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓рд╛ рдЬреАрдердм рдкрд░ рдЗрд╕ рднрдВрдбрд╛рд░ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдБ рднреА рд░рдЦреЗрдВрдЧреЗ, рддреЛ .gitignore рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрдЪреА рдЬреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ:

 *.class *.log project/ target/ .bloop/ .metals/ 

Source: https://habr.com/ru/post/hi469707/


All Articles