91 \secref{sec:isabelle-tool}. Alternatively, the full |
91 \secref{sec:isabelle-tool}. Alternatively, the full |
92 \<^file>\<open>$ISABELLE_HOME/bin/isabelle_scala_script\<close> may be specified in expanded |
92 \<^file>\<open>$ISABELLE_HOME/bin/isabelle_scala_script\<close> may be specified in expanded |
93 form. |
93 form. |
94 \<close> |
94 \<close> |
95 |
95 |
|
96 |
|
97 section \<open>Project setup for common Scala IDEs\<close> |
|
98 |
|
99 text \<open> |
|
100 The @{tool_def scala_project} tool creates a Gradle project configuration |
|
101 for Isabelle/Scala/jEdit: |
|
102 @{verbatim [display] |
|
103 \<open>Usage: isabelle scala_project [OPTIONS] PROJECT_DIR |
|
104 |
|
105 Options are: |
|
106 -l make symlinks to original scala files |
|
107 |
|
108 Setup Gradle project for Isabelle/Scala/jEdit --- to support Scala IDEs |
|
109 such as IntelliJ IDEA.\<close>} |
|
110 |
|
111 The generated project configuration is for Gradle\<^footnote>\<open>\<^url>\<open>https://gradle.org\<close>\<close>, |
|
112 but the main purpose is to import it into common Scala IDEs, such as |
|
113 IntelliJ IDEA\<^footnote>\<open>\<^url>\<open>https://www.jetbrains.com/idea\<close>\<close>. This allows to explore |
|
114 the sources with static analysis and other hints in real-time. |
|
115 |
|
116 The specified project directory must not exist yet. The generated files |
|
117 refer to physical file locations, using the path notation of the underlying |
|
118 OS platform. Thus the project needs to be recreated whenever the Isabelle |
|
119 installation is changed or moved. |
|
120 |
|
121 \<^medskip> By default, Scala sources are \<^emph>\<open>copied\<close> from the Isabelle distribution and |
|
122 editing them within the IDE has no permanent effect. |
|
123 |
|
124 Alternatively, option \<^verbatim>\<open>-l\<close> may be used to produce symlinks to the original |
|
125 files: this allows to develop Isabelle/Scala/jEdit within an external Scala |
|
126 IDE. Note that building the result always requires \<^verbatim>\<open>isabelle jedit -b\<close> on |
|
127 the command-line. |
|
128 \<close> |
|
129 |
96 end |
130 end |