Skip to content

Commit f67bbf4

Browse files
committed
Merge branch 'main' into release
2 parents a43b4b5 + 0e902bb commit f67bbf4

File tree

29 files changed

+669
-99
lines changed

29 files changed

+669
-99
lines changed

.scalafmt.conf

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
version = 3.6.1
1+
# [[https://github.com/scalameta/scalafmt]]
22

3-
runner.dialect = scala212
3+
version = 3.7.3
4+
5+
runner.dialect = scala212source3
6+
fileOverride {
7+
"glob:**/src/main/scala-3/**" {
8+
runner.dialect = scala3
9+
}
10+
}
411

512
preset = IntelliJ
613
align.preset = more

build.sbt

Lines changed: 55 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ import xerial.sbt.Sonatype.GitHubHosting
33
// @formatter:off
44
name := "ijp-scala-console-project"
55

6-
ThisBuild / version := "1.6.0"
6+
lazy val _scalaVersions = Seq("3.2.2", "2.13.10", "2.12.17")
7+
lazy val _scalaVersion = _scalaVersions.head
8+
9+
ThisBuild / version := "1.6.0.1-SNAPSHOT"
710
ThisBuild / versionScheme := Some("early-semver")
811
ThisBuild / organization := "net.sf.ij-plugins"
912
ThisBuild / sonatypeProfileName := "net.sf.ij-plugins"
@@ -19,38 +22,53 @@ ThisBuild / developers := List(
1922
publishArtifact := false
2023
publish / skip := true
2124

22-
lazy val _scalaVersions = Seq("2.13.10", "2.12.17")
23-
lazy val _scalaVersion = _scalaVersions.head
25+
26+
def isScala2(scalaVersion: String): Boolean =
27+
CrossVersion.partialVersion(scalaVersion) match {
28+
case Some((2, _)) => true
29+
case _ => false
30+
}
2431

2532
def isScala2_12(scalaVersion: String): Boolean =
2633
CrossVersion.partialVersion(scalaVersion) match {
2734
case Some((2, 12)) => true
28-
case _ => false
35+
case _ => false
2936
}
3037
def isScala2_13(scalaVersion: String): Boolean =
3138
CrossVersion.partialVersion(scalaVersion) match {
3239
case Some((2, 13)) => true
33-
case _ => false
40+
case _ => false
3441
}
3542

3643
val commonSettings = Seq(
3744
//
3845
crossScalaVersions := _scalaVersions,
3946
scalaVersion := _scalaVersion,
4047
scalacOptions ++= Seq(
41-
"-release", "8",
4248
"-encoding", "UTF-8",
43-
"-explaintypes",
4449
"-unchecked",
50+
"-release", "8",
4551
"-deprecation",
46-
"-Xlint",
47-
"-Xcheckinit",
48-
"-feature",
49-
"-Ywarn-dead-code",
50-
"-Ywarn-numeric-widen",
51-
"-Xlint:missing-interpolator",
52-
"-Ywarn-dead-code",
53-
"-Ywarn-unused:-patvars,_",
52+
) ++ (
53+
if(isScala2(scalaVersion.value))
54+
Seq(
55+
"-explaintypes",
56+
"-feature",
57+
"–optimise",
58+
"-Xsource:3",
59+
"-Xlint",
60+
"-Xcheckinit",
61+
"-Ywarn-dead-code",
62+
"-Ywarn-numeric-widen",
63+
"-Xlint:missing-interpolator",
64+
"-Ywarn-dead-code",
65+
"-Ywarn-unused:-patvars,_",
66+
)
67+
else
68+
Seq(
69+
"-explain",
70+
"-explain-types"
71+
)
5472
),
5573
//
5674
exportJars := true,
@@ -85,13 +103,19 @@ lazy val scala_console = (project in file("scala-console"))
85103
libraryDependencies ++= Seq(
86104
"com.beachape" %% "enumeratum" % "1.7.2",
87105
"org.fxmisc.richtext" % "richtextfx" % "0.11.0",
88-
"org.scala-lang" % "scala-compiler" % scalaVersion.value,
89106
"org.scala-lang.modules" %% "scala-java8-compat" % "1.0.2",
90107
"org.scalafx" %% "scalafx" % "19.0.0-R30",
91-
"org.scalafx" %% "scalafxml-core-sfx8" % "0.5",
108+
// "org.scalafx" %% "scalafxml-core-sfx8" % "0.5",
92109
"org.scalafx" %% "scalafx-extras" % "0.7.0",
93-
"org.scalatest" %% "scalatest" % "3.2.14" % "test"
110+
"org.scalatest" %% "scalatest" % "3.2.15" % "test"
94111
),
112+
libraryDependencies ++= (
113+
if(isScala2(scalaVersion.value))
114+
Seq("org.scala-lang" % "scala-compiler" % scalaVersion.value)
115+
else
116+
Seq("org.scala-lang" % "scala3-compiler_3" % scalaVersion.value)
117+
),
118+
// // @formatter:on
95119
libraryDependencies ++= (
96120
if (isScala2_12(scalaVersion.value))
97121
Seq(compilerPlugin(
@@ -110,30 +134,30 @@ lazy val scala_console_plugins = (project in file("scala-console-plugins"))
110134
description := "Scala Console ImageJ Plugins",
111135
commonSettings,
112136
libraryDependencies ++= Seq(
113-
"net.imagej" % "ij" % "1.53v",
114-
"org.scalatest" %% "scalatest" % "3.2.14" % "test"
137+
"net.imagej" % "ij" % "1.54c",
138+
"org.scalatest" %% "scalatest" % "3.2.15" % "test"
115139
),
116140
//resolvers += "ImageJ Releases" at "http://maven.imagej.net/content/repositories/releases/"
117141
// Customize `sbt-imagej` plugin
118-
ijRuntimeSubDir := "sandbox",
119-
ijPluginsSubDir := "ij-plugins",
142+
ijRuntimeSubDir := "sandbox",
143+
ijPluginsSubDir := "ij-plugins",
120144
ijCleanBeforePrepareRun := true,
121145
cleanFiles += ijPluginsDir.value,
122146
)
123147
.dependsOn(scala_console)
124148

125149
lazy val manifestSetting = packageOptions += {
126150
Package.ManifestAttributes(
127-
"Created-By" -> "Simple Build Tool",
128-
"Built-By" -> Option(System.getenv("JAR_BUILT_BY")).getOrElse(System.getProperty("user.name")),
129-
"Build-Jdk" -> System.getProperty("java.version"),
130-
"Specification-Title" -> name.value,
131-
"Specification-Version" -> version.value,
132-
"Specification-Vendor" -> organization.value,
133-
"Implementation-Title" -> name.value,
134-
"Implementation-Version" -> version.value,
151+
"Created-By" -> "Simple Build Tool",
152+
"Built-By" -> Option(System.getenv("JAR_BUILT_BY")).getOrElse(System.getProperty("user.name")),
153+
"Build-Jdk" -> System.getProperty("java.version"),
154+
"Specification-Title" -> name.value,
155+
"Specification-Version" -> version.value,
156+
"Specification-Vendor" -> organization.value,
157+
"Implementation-Title" -> name.value,
158+
"Implementation-Version" -> version.value,
135159
"Implementation-Vendor-Id" -> organization.value,
136-
"Implementation-Vendor" -> organization.value
160+
"Implementation-Vendor" -> organization.value
137161
)
138162
}
139163

project/build.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@
2020
# Latest release available at https://github.com/ij-plugins
2121
#
2222
#
23-
sbt.version=1.8.0
23+
sbt.version=1.8.2
2424

scala-console-plugins/src/main/scala/ij_plugins/scala/console/plugins/package.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import ij.Menus
2626

2727
import java.io.{File, FileFilter, FilenameFilter}
2828
import scala.collection.mutable.ArrayBuffer
29-
import scala.tools.nsc.io.Path
29+
//import scala.tools.nsc.io.Path
3030

3131
/**
3232
* Helper methods used in package `ij_plugins.scala.console`.
@@ -48,11 +48,11 @@ package object plugins {
4848
System.setProperty("java.class.path", classpath)
4949
}
5050

51-
def listAllJarFiles(root: File): Array[File] = {
52-
val r = new ArrayBuffer[File]()
53-
Path(root).walk.filter(e => e.toString().contains(".jar")).foreach(p => r.append(p.jfile))
54-
r.toArray
55-
}
51+
// def listAllJarFiles(root: File): Array[File] = {
52+
// val r = new ArrayBuffer[File]()
53+
// Path(root).walk.filter(e => e.toString().contains(".jar")).foreach(p => r.append(p.jfile))
54+
// r.toArray
55+
// }
5656

5757
def listPluginDirectories(): Unit = {
5858
val jars = listJarFiles(listDirectories(new File(Menus.getPlugInsPath)))

scala-console/README.txt

Lines changed: 0 additions & 3 deletions
This file was deleted.

scala-console/examples/processCurrentImage.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import ij.IJ
77
process()
88

99
/**
10-
* Get a reference to currently selected image in ImageJ then apply median filter to it.
11-
* If no image is opened show "No image" error message.
12-
*/
13-
def process() {
10+
* Get a reference to currently selected image in ImageJ then apply median filter to it.
11+
* If no image is opened show "No image" error message.
12+
*/
13+
def process(): Unit = {
1414
// Get currently selected image
1515
val imp = IJ.getImage
1616
if (imp == null) {

scala-console/src/main/scala-2.12/ij_plugins/scala/console/IMainFactory.scala

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,12 @@
2222

2323
package ij_plugins.scala.console
2424

25+
import ij_plugins.scala.console.scripting.Interpreter
26+
2527
import java.io.Writer
26-
import scala.tools.nsc.Settings
27-
import scala.tools.nsc.interpreter.IMain
28-
import scala.tools.nsc.{NewLinePrintWriter, Settings}
2928

3029
object IMainFactory {
3130

32-
def create(writer: Writer): IMain = {
33-
val interpreterSettings: Settings = new Settings() {
34-
usejavacp.value = true
35-
// classpath.value +=
36-
}
31+
def create(writer: Writer): Interpreter = new IMainInterpreter(writer)
3732

38-
new IMain(interpreterSettings, new NewLinePrintWriter(writer, true))
39-
}
4033
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package ij_plugins.scala.console
2+
3+
import ij_plugins.scala.console.scripting.{Interpreter, Results}
4+
5+
import java.io.Writer
6+
import scala.tools.nsc
7+
8+
class IMainInterpreter(writer: Writer) extends Interpreter {
9+
10+
private val interpreterSettings: nsc.Settings = new nsc.Settings() {
11+
usejavacp.value = true
12+
// classpath.value +=
13+
}
14+
15+
private val iMain = new nsc.interpreter.IMain(interpreterSettings, new nsc.NewLinePrintWriter(writer, true))
16+
17+
override def interpret(line: String): Results.Result = {
18+
iMain.interpret(line) match {
19+
case scala.tools.nsc.interpreter.Results.Success => Results.Success
20+
case scala.tools.nsc.interpreter.Results.Error => Results.Error
21+
case scala.tools.nsc.interpreter.Results.Incomplete => Results.Incomplete
22+
}
23+
}
24+
}

scala-console/src/main/scala-2.13/ij_plugins/scala/console/IMainFactory.scala

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,12 @@
2222

2323
package ij_plugins.scala.console
2424

25-
import java.io.{PrintWriter, Writer}
26-
import scala.tools.nsc.Settings
27-
import scala.tools.nsc.interpreter.IMain
28-
import scala.tools.nsc.interpreter.shell.{ReplReporterImpl, ShellConfig}
25+
import ij_plugins.scala.console.scripting.Interpreter
2926

30-
object IMainFactory {
31-
32-
def create(writer: Writer): IMain = {
33-
val interpreterSettings: Settings = new Settings() {
34-
usejavacp.value = true
35-
// classpath.value +=
36-
}
27+
import java.io.Writer
3728

38-
val shellConfig = ShellConfig(interpreterSettings)
39-
val replReporter = new ReplReporterImpl(shellConfig, writer = new PrintWriter(writer))
40-
41-
new IMain(interpreterSettings, replReporter)
29+
object IMainFactory {
4230

43-
}
31+
def create(writer: Writer): Interpreter = new IMainInterpreter(writer)
4432

4533
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package ij_plugins.scala.console
2+
3+
import ij_plugins.scala.console.scripting.{Interpreter, Results}
4+
5+
import java.io.{PrintWriter, Writer}
6+
import scala.tools.nsc
7+
8+
class IMainInterpreter(writer: Writer) extends Interpreter {
9+
10+
private val interpreterSettings: nsc.Settings = new nsc.Settings() {
11+
usejavacp.value = true
12+
// classpath.value +=
13+
}
14+
15+
private val shellConfig = nsc.interpreter.shell.ShellConfig(interpreterSettings)
16+
private val replReporter = new nsc.interpreter.shell.ReplReporterImpl(shellConfig, writer = new PrintWriter(writer))
17+
18+
private val iMain = new nsc.interpreter.IMain(interpreterSettings, replReporter)
19+
20+
override def interpret(line: String): Results.Result = {
21+
iMain.interpret(line) match {
22+
case scala.tools.nsc.interpreter.Results.Success => Results.Success
23+
case scala.tools.nsc.interpreter.Results.Error => Results.Error
24+
case scala.tools.nsc.interpreter.Results.Incomplete => Results.Incomplete
25+
}
26+
}
27+
}

0 commit comments

Comments
 (0)