From 7ac35e053723235742c430a20525f7d52c6f658b Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Wed, 19 Aug 2020 15:33:37 +0200 Subject: [PATCH] Fix colors handling (#636) --- examples/colors.ipynb | 77 +++++++++++++++++++ .../scala/almond/amm/AmmInterpreter.scala | 2 +- .../almond/internals/UpdatableFuture.scala | 10 ++- 3 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 examples/colors.ipynb diff --git a/examples/colors.ipynb b/examples/colors.ipynb new file mode 100644 index 000000000..2d97e520a --- /dev/null +++ b/examples/colors.ipynb @@ -0,0 +1,77 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\u001b[36mres0\u001b[39m: \u001b[32mInt\u001b[39m = \u001b[32m2\u001b[39m" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "2" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "interp.colors() = ammonite.util.Colors.BlackWhite" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "res2: Int = 3" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "3" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Scala (sources)", + "language": "scala", + "name": "scala-debug" + }, + "language_info": { + "codemirror_mode": "text/x-scala", + "file_extension": ".sc", + "mimetype": "text/x-scala", + "name": "scala", + "nbconvert_exporter": "script", + "version": "2.12.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/modules/scala/scala-interpreter/src/main/scala/almond/amm/AmmInterpreter.scala b/modules/scala/scala-interpreter/src/main/scala/almond/amm/AmmInterpreter.scala index bf8e9b88b..f6e81ad69 100644 --- a/modules/scala/scala-interpreter/src/main/scala/almond/amm/AmmInterpreter.scala +++ b/modules/scala/scala-interpreter/src/main/scala/almond/amm/AmmInterpreter.scala @@ -106,7 +106,7 @@ object AmmInterpreter { printer = execute0.printer, storage = storage, wd = ammonite.ops.pwd, - colors = Ref(Colors.Default), + colors = replApi.colors, verboseOutput = true, // ??? getFrame = () => frames0().head, createFrame = () => { diff --git a/modules/scala/scala-interpreter/src/main/scala/almond/internals/UpdatableFuture.scala b/modules/scala/scala-interpreter/src/main/scala/almond/internals/UpdatableFuture.scala index 22c6cb463..acca815b6 100644 --- a/modules/scala/scala-interpreter/src/main/scala/almond/internals/UpdatableFuture.scala +++ b/modules/scala/scala-interpreter/src/main/scala/almond/internals/UpdatableFuture.scala @@ -11,10 +11,11 @@ object UpdatableFuture { replApi: ReplAPI, jupyterApi: JupyterApi, ec: ExecutionContext - ): Unit = - replApi.pprinter() = { - import jupyterApi.updatableResults._ - val p = replApi.pprinter() + ): Unit = { + import jupyterApi.updatableResults._ + val previous = replApi.pprinter.live() + replApi.pprinter.bind { + val p = previous() p.copy( additionalHandlers = p.additionalHandlers.orElse { case f: Future[_] => @@ -36,5 +37,6 @@ object UpdatableFuture { } ) } + } }