diff --git a/build.sc b/build.sc index 549834fbec..ae7a7a1eb1 100644 --- a/build.sc +++ b/build.sc @@ -1,6 +1,6 @@ import $ivy.`com.lihaoyi::mill-contrib-bloop:$MILL_VERSION` import $ivy.`io.get-coursier::coursier-launcher:2.0.16+73-gddc6d9cc9` -import $ivy.`io.github.alexarchambault.mill::mill-native-image-upload:0.1.8` +import $ivy.`io.github.alexarchambault.mill::mill-native-image-upload:0.1.9` import $file.project.deps, deps.{Deps, Docker, Scala} import $file.project.publish, publish.{ghOrg, ghName, ScalaCliPublishModule} import $file.project.settings, settings.{CliLaunchers, FormatNativeImageConf, HasMacroAnnotations, HasTests, LocalRepo, PublishLocalNoFluff, localRepoResourcePath, platformExecutableJarExtension} diff --git a/modules/bloop-rifle/src/main/scala/scala/build/blooprifle/BloopRifleConfig.scala b/modules/bloop-rifle/src/main/scala/scala/build/blooprifle/BloopRifleConfig.scala index 1bc70573d5..497e118b55 100644 --- a/modules/bloop-rifle/src/main/scala/scala/build/blooprifle/BloopRifleConfig.scala +++ b/modules/bloop-rifle/src/main/scala/scala/build/blooprifle/BloopRifleConfig.scala @@ -91,8 +91,8 @@ object BloopRifleConfig { bspStdout = None, bspStderr = None, period = 100.milliseconds, - timeout = 5.seconds, - initTimeout = 10.seconds + timeout = 10.seconds, + initTimeout = 30.seconds ) } diff --git a/modules/build/src/main/scala/scala/build/Sources.scala b/modules/build/src/main/scala/scala/build/Sources.scala index f80c782eaa..37bc0f57b1 100644 --- a/modules/build/src/main/scala/scala/build/Sources.scala +++ b/modules/build/src/main/scala/scala/build/Sources.scala @@ -89,7 +89,7 @@ object Sources { // replace statements like // import $ivy.`foo`, // by - // import $ivy.$ , + // import $ivy.A , // Ideally, we should just wipe those statements, and take care of keeping 'import' and ',' // for standard imports. val buf = content.toCharArray diff --git a/modules/cli-core/src/main/scala/scala/cli/commands/InstallCompletions.scala b/modules/cli-core/src/main/scala/scala/cli/commands/InstallCompletions.scala index d8b41699a7..4660d75634 100644 --- a/modules/cli-core/src/main/scala/scala/cli/commands/InstallCompletions.scala +++ b/modules/cli-core/src/main/scala/scala/cli/commands/InstallCompletions.scala @@ -73,23 +73,28 @@ object InstallCompletions extends ScalaCommand[InstallCompletionsOptions] { sys.exit(1) } - val rcFile = options.rcFile - .map(os.Path(_, os.pwd)) - .getOrElse(defaultRcFile) + if (options.env) { + println(rcScript) + } else { - val banner = options.banner.replace("{NAME}", name) + val rcFile = options.rcFile + .map(os.Path(_, os.pwd)) + .getOrElse(defaultRcFile) + + val banner = options.banner.replace("{NAME}", name) - val updated = ProfileFileUpdater.addToProfileFile(rcFile.toNIO, banner, rcScript, Charset.defaultCharset()) + val updated = ProfileFileUpdater.addToProfileFile(rcFile.toNIO, banner, rcScript, Charset.defaultCharset()) - if (options.logging.verbosity >= 0) { - if (updated) { - System.err.println(s"Updated $rcFile") - System.err.println( - s"It is recommended to reload your shell, or source $rcFile in the " + - "current session, for its changes to be taken into account." - ) - } else - System.err.println(s"$rcFile already up-to-date") + if (options.logging.verbosity >= 0) { + if (updated) { + System.err.println(s"Updated $rcFile") + System.err.println( + s"It is recommended to reload your shell, or source $rcFile in the " + + "current session, for its changes to be taken into account." + ) + } else + System.err.println(s"$rcFile already up-to-date") + } } } } diff --git a/modules/cli-core/src/main/scala/scala/cli/commands/InstallCompletionsOptions.scala b/modules/cli-core/src/main/scala/scala/cli/commands/InstallCompletionsOptions.scala index fe7373f9e9..b44c6fa73e 100644 --- a/modules/cli-core/src/main/scala/scala/cli/commands/InstallCompletionsOptions.scala +++ b/modules/cli-core/src/main/scala/scala/cli/commands/InstallCompletionsOptions.scala @@ -14,5 +14,6 @@ final case class InstallCompletionsOptions( rcFile: Option[String] = None, directory: Option[String] = None, banner: String = "{NAME} completions", - name: Option[String] = None + name: Option[String] = None, + env: Boolean = false ) diff --git a/project/settings.sc b/project/settings.sc index da2f700c0a..84c880c9d7 100644 --- a/project/settings.sc +++ b/project/settings.sc @@ -1,4 +1,4 @@ -import $ivy.`io.github.alexarchambault.mill::mill-native-image_mill0.9:0.1.8` +import $ivy.`io.github.alexarchambault.mill::mill-native-image_mill0.9:0.1.9` import $file.deps, deps.{Deps, Docker} import io.github.alexarchambault.millnativeimage.NativeImage diff --git a/website/docs/installation.md b/website/docs/installation.md index c209a4ac65..29d7c8f9be 100644 --- a/website/docs/installation.md +++ b/website/docs/installation.md @@ -102,6 +102,21 @@ Once downloaded, right-click on `scala-cli-x86_64-apple-darwin.pkg` from Finder, ## Shell completions -### bash +Only bash and zsh completions are offered for now. -### zsh +Try the completions with +```text +$ eval "$(scala-cli install completions --env)" +$ scala-cli -- +``` + +Install them on your system with +```text +$ scala-cli install completions +``` + +If any of the `scala-cli install completions` command complained that your shell cannot be determined, specify it +with `--shell`, like +```text +$ scala-cli install completions --shell zsh +``` diff --git a/website/docs/reference/cli-options.md b/website/docs/reference/cli-options.md index 9982dd0d9e..4580b400d8 100644 --- a/website/docs/reference/cli-options.md +++ b/website/docs/reference/cli-options.md @@ -173,6 +173,8 @@ Aliases: `--shell` #### `--name` +#### `--env` + ## Java options Available in commands: