diff --git a/src/Chart/Data.hs b/src/Chart/Data.hs index a9022ee..0c30e3e 100644 --- a/src/Chart/Data.hs +++ b/src/Chart/Data.hs @@ -3,7 +3,7 @@ -- | Data primitives and utilities -- --- Whilst the library makes use of , it does not re-export, to avoid clashes with Prelude, with the exception of 'zero', 'one', 'angle', 'norm' & 'abs'. +-- Whilst the library makes use of , it does not re-export, to avoid clashes with Prelude, with the exception of 'zero', 'one', 'angle' & 'abs'. -- -- 'Rect' and 'Point', from , make up the base elements of many chart primitives, and all of numhask-space is re-exported. module Chart.Data @@ -17,14 +17,13 @@ module Chart.Data -- * NumHask Exports - -- - -- | Note that (+) and (*) from numhask are not actually re-exported. Multiplicative (one), Additive (zero), abs, angle, magnitude, + -- * Re-exports module NumHask.Space, ) diff --git a/src/Chart/Examples.hs b/src/Chart/Examples.hs index a6c978c..a62abda 100644 --- a/src/Chart/Examples.hs +++ b/src/Chart/Examples.hs @@ -50,7 +50,7 @@ import Data.Function import Data.Maybe import Data.String.Interpolate import Data.Text (Text) -import qualified Data.Text as Text +import Data.Text qualified as Text import Data.Time import Optics.Core import Prelude hiding (abs) @@ -513,9 +513,10 @@ surfaceExample = mempty & #charts .~ named "surface" cs & #markupOptions .~ (defaultMarkupOptions & #cssOptions % #shapeRendering .~ UseCssCrisp) + where -- FIXME: surface legends are broken as. -- & #hudOptions % #legends .~ [(30,defaultLegendOptions & #content .~ [("", foldOf charts' $ surfaceLegendChart rangef (defaultSurfaceLegendOptions dark "text"))])] - where + grain = Point 100 100 r = one f = fst . bimap ((-1.0) *) (fmap ((-1.0) *)) . rosenbrock 1 10 diff --git a/src/Chart/Hud.hs b/src/Chart/Hud.hs index 8306bff..f9c9c16 100644 --- a/src/Chart/Hud.hs +++ b/src/Chart/Hud.hs @@ -81,14 +81,14 @@ import Data.Bool import Data.Colour import Data.Foldable hiding (sum) import Data.FormatN -import qualified Data.List as List +import Data.List qualified as List import Data.Maybe import Data.Path import Data.Text (Text) -import qualified Data.Text as Text +import Data.Text qualified as Text import Data.Tuple import GHC.Generics hiding (to) -import qualified NumHask.Prelude as NH +import NumHask.Prelude qualified as NH import Optics.Core import Prelude diff --git a/src/Chart/Markup.hs b/src/Chart/Markup.hs index 8b6843f..31806ea 100644 --- a/src/Chart/Markup.hs +++ b/src/Chart/Markup.hs @@ -42,7 +42,7 @@ import Data.ByteString.Char8 (pack) import Data.Colour import Data.FormatN import Data.Map.Strict (Map) -import qualified Data.Map.Strict as Map +import Data.Map.Strict qualified as Map import Data.Maybe import Data.Path import Data.Path.Parser @@ -475,7 +475,6 @@ cssPreferColorScheme _ PreferNormal = mempty -- > fillSwitch (color1, color2) "dark" "stuff" -- -- ... will default to color1 for elements of the "stuff" class, but switch to color2 if "dark" mode is preferred by the user. --- fillSwitch :: (Colour, Colour) -> ByteString -> ByteString -> ByteString fillSwitch (colorNormal, colorPrefer) prefer item = [i| diff --git a/src/Chart/Markup/Parser.hs b/src/Chart/Markup/Parser.hs index 51b626b..08acfd9 100644 --- a/src/Chart/Markup/Parser.hs +++ b/src/Chart/Markup/Parser.hs @@ -49,7 +49,7 @@ import Chart.Markup import Data.ByteString (ByteString) import Data.String.Interpolate import FlatParse.Basic hiding (cut) -import qualified FlatParse.Basic.Text as T +import FlatParse.Basic.Text qualified as T import GHC.Generics import Prelude diff --git a/src/Chart/Primitive.hs b/src/Chart/Primitive.hs index fe08063..c514b82 100644 --- a/src/Chart/Primitive.hs +++ b/src/Chart/Primitive.hs @@ -61,7 +61,7 @@ import Data.Path import Data.Text (Text) import Data.Tree import GHC.Generics -import qualified NumHask.Prelude as NH +import NumHask.Prelude qualified as NH import Optics.Core import Prelude diff --git a/src/Chart/Style.hs b/src/Chart/Style.hs index 4524ca2..493c08c 100644 --- a/src/Chart/Style.hs +++ b/src/Chart/Style.hs @@ -48,13 +48,13 @@ where import Chart.Data import Data.ByteString (ByteString) import Data.Colour -import qualified Data.List as List +import Data.List qualified as List import Data.Maybe import Data.Path import Data.Path.Parser import Data.String import Data.Text (Text) -import qualified Data.Text as Text +import Data.Text qualified as Text import GHC.Generics import Optics.Core import Prelude diff --git a/src/Data/Colour.hs b/src/Data/Colour.hs index 85f58c1..608eb9c 100644 --- a/src/Data/Colour.hs +++ b/src/Data/Colour.hs @@ -71,7 +71,7 @@ module Data.Colour where import Chart.Data -import qualified Data.Attoparsec.Text as A +import Data.Attoparsec.Text qualified as A import Data.Bifunctor import Data.Bool (bool) import Data.ByteString (ByteString) @@ -79,14 +79,14 @@ import Data.Char import Data.Either import Data.FormatN import Data.Functor.Rep -import qualified Data.List as List +import Data.List qualified as List import Data.String.Interpolate import Data.Text (Text, pack) -import qualified Data.Text as Text +import Data.Text qualified as Text import GHC.Exts import GHC.Generics hiding (prec) import Graphics.Color.Model as M hiding (LCH) -import qualified Graphics.Color.Space as S +import Graphics.Color.Space qualified as S import NumHask.Algebra.Metric import NumHask.Array.Fixed import Optics.Core @@ -438,7 +438,7 @@ xy2ch' :: Iso' (Double, Double) (Double, Double) xy2ch' = iso (\(x, y) -> (magnitude (Point x y), 180 / pi * mod_ (angle (Point x y)) (2 * pi))) - (\(c, h) -> let (Point x y) = fmap (c*) (ray (pi / 180 * h)) in (x, y)) + (\(c, h) -> let (Point x y) = fmap (c *) (ray (pi / 180 * h)) in (x, y)) mod_ :: Double -> Double -> Double mod_ x d = x - fromIntegral (floor (x / d) :: Integer) * d @@ -651,9 +651,9 @@ showSwatch label c = showSwatches :: Text -> Text -> [(Text, Colour)] -> Text showSwatches pref suff hs = [i|
-#{pref} -#{divs} -#{suff} + #{pref} + #{divs} + #{suff}
|] where diff --git a/src/Data/Path.hs b/src/Data/Path.hs index 90f8b78..6a8ed27 100644 --- a/src/Data/Path.hs +++ b/src/Data/Path.hs @@ -43,10 +43,10 @@ module Data.Path where import Chart.Data -import qualified Control.Foldl as L +import Control.Foldl qualified as L import Control.Monad.State.Lazy import GHC.Generics -import qualified Geom2D.CubicBezier as B +import Geom2D.CubicBezier qualified as B import NumHask.Prelude -- $setup @@ -343,9 +343,16 @@ quadPosition (QuadPolar start' end control) = QuadPosition start' end control' -- Point 0.9999999933333332 -0.33333333333333326 quadBezier :: (FromInteger a, ExpField a) => QuadPosition a -> a -> Point a quadBezier (QuadPosition start' end control) theta = - (1 - theta) ^ 2 *| start' - + 2 * (1 - theta) * theta *| control - + theta ^ 2 *| end + (1 - theta) + ^ 2 + *| start' + + 2 + * (1 - theta) + * theta + *| control + + theta + ^ 2 + *| end -- | QuadPosition turning points. -- @@ -429,10 +436,22 @@ cubicPosition (CubicPolar start' end control1 control2) = CubicPosition start' e -- Point 0.6767766952966369 1.2071067811865475 cubicBezier :: (FromInteger a, TrigField a) => CubicPosition a -> a -> Point a cubicBezier (CubicPosition start' end control1 control2) theta = - (1 - theta) ^ 3 *| start' - + 3 * (1 - theta) ^ 2 * theta *| control1 - + 3 * (1 - theta) * theta ^ 2 *| control2 - + theta ^ 3 *| end + (1 - theta) + ^ 3 + *| start' + + 3 + * (1 - theta) + ^ 2 + * theta + *| control1 + + 3 + * (1 - theta) + * theta + ^ 2 + *| control2 + + theta + ^ 3 + *| end -- | Turning point positions for a CubicPosition (0,1 or 2) -- diff --git a/src/Data/Path/Parser.hs b/src/Data/Path/Parser.hs index bd0b23f..b41b065 100644 --- a/src/Data/Path/Parser.hs +++ b/src/Data/Path/Parser.hs @@ -30,7 +30,7 @@ import Data.Text.Encoding (encodeUtf8) import FlatParse.Basic import GHC.Generics import GHC.OverloadedLabels -import NumHask.Prelude hiding ((<|>), optional) +import NumHask.Prelude hiding (optional, (<|>)) import Optics.Core hiding ((<|)) -- $parsing diff --git a/test/test.hs b/test/test.hs index 14d2e6a..8af56ec 100644 --- a/test/test.hs +++ b/test/test.hs @@ -7,11 +7,11 @@ module Main (main) where import Chart.Examples import Chart.Markup import Chart.Markup.Parser -import qualified Data.ByteString as BS +import Data.ByteString qualified as BS import Data.Foldable import Data.Maybe import Data.TreeDiff -import qualified Data.TreeDiff.OMap as O +import Data.TreeDiff.OMap qualified as O import FlatParse.Basic import GHC.Exts import Test.Tasty (TestTree, defaultMain, testGroup)