src/Doc/System/Scala.thy
changeset 74960 f03ece7155d6
parent 74912 c49362e85f5a
child 75161 95612f330c93
equal deleted inserted replaced
74959:340c5f3506a8 74960:f03ece7155d6
   264 
   264 
   265 subsection \<open>Project setup for common Scala IDEs \label{sec:tool-scala-project}\<close>
   265 subsection \<open>Project setup for common Scala IDEs \label{sec:tool-scala-project}\<close>
   266 
   266 
   267 text \<open>
   267 text \<open>
   268   The @{tool_def scala_project} tool creates a project configuration for all
   268   The @{tool_def scala_project} tool creates a project configuration for all
   269   Isabelle/Scala/Java modules specified in components via
   269   Isabelle/Java/Scala modules specified in components via
   270   \<^path>\<open>etc/build.props\<close>, together with additional source files given on
   270   \<^path>\<open>etc/build.props\<close>, together with additional source files given on
   271   the command-line:
   271   the command-line:
   272 
   272 
   273   @{verbatim [display]
   273   @{verbatim [display]
   274 \<open>Usage: isabelle scala_project [OPTIONS] [MORE_SOURCES ...]
   274 \<open>Usage: isabelle scala_project [OPTIONS] [MORE_SOURCES ...]
   275 
   275 
   276   Options are:
   276   Options are:
   277     -D DIR       project directory (default: "$ISABELLE_HOME_USER/scala_project")
   277     -D DIR       project directory (default: "$ISABELLE_HOME_USER/scala_project")
       
   278     -G           use Gradle as build tool
   278     -L           make symlinks to original source files
   279     -L           make symlinks to original source files
       
   280     -M           use Maven as build tool
   279     -f           force update of existing directory
   281     -f           force update of existing directory
   280 
   282 
   281   Setup Maven project for Isabelle/Scala/jEdit --- to support common IDEs
   283   Setup project for Isabelle/Scala/jEdit --- to support common IDEs such
   282   such as IntelliJ IDEA.\<close>}
   284   as IntelliJ IDEA. Either option -G or -M is mandatory to specify the
   283 
   285   build tool.\<close>}
   284   The generated configuration is for Maven\<^footnote>\<open>\<^url>\<open>https://maven.apache.org\<close>\<close>, but
   286 
   285   the main purpose is to import it into common IDEs, such as IntelliJ
   287   The generated configuration is for Gradle\<^footnote>\<open>\<^url>\<open>https://gradle.org\<close>\<close> or
   286   IDEA\<^footnote>\<open>\<^url>\<open>https://www.jetbrains.com/idea\<close>\<close>. This allows to explore the
   288   Maven\<^footnote>\<open>\<^url>\<open>https://maven.apache.org\<close>\<close>, but the main purpose is to import it
   287   sources with static analysis and other hints in real-time.
   289   into common IDEs like IntelliJ IDEA\<^footnote>\<open>\<^url>\<open>https://www.jetbrains.com/idea\<close>\<close>.
       
   290   This allows to explore the sources with static analysis and other hints in
       
   291   real-time.
   288 
   292 
   289   The generated files refer to physical file-system locations, using the path
   293   The generated files refer to physical file-system locations, using the path
   290   notation of the underlying OS platform. Thus the project needs to be
   294   notation of the underlying OS platform. Thus the project needs to be
   291   recreated whenever the Isabelle installation is changed or moved.
   295   recreated whenever the Isabelle installation is changed or moved.
       
   296 
       
   297   \<^medskip>
       
   298   Option \<^verbatim>\<open>-G\<close> selects Gradle and \<^verbatim>\<open>-M\<close> selects Maven as Java/Scala build
       
   299   tool: either one needs to be specified explicitly. These tools have a
       
   300   tendency to break down unexpectedly, so supporting both increases the
       
   301   chances that the generated IDE project works properly.
   292 
   302 
   293   \<^medskip>
   303   \<^medskip>
   294   Option \<^verbatim>\<open>-L\<close> produces \<^emph>\<open>symlinks\<close> to the original files: this allows to
   304   Option \<^verbatim>\<open>-L\<close> produces \<^emph>\<open>symlinks\<close> to the original files: this allows to
   295   develop Isabelle/Scala/jEdit modules within an external IDE. The default is
   305   develop Isabelle/Scala/jEdit modules within an external IDE. The default is
   296   to \<^emph>\<open>copy\<close> source files, so editing them within the IDE has no permanent
   306   to \<^emph>\<open>copy\<close> source files, so editing them within the IDE has no permanent