helic 0.5.1.0 → 0.5.2.0
raw patch · 5 files changed
+42/−25 lines, 5 filesdep +fast-loggerdep ~basedep ~incipitdep ~polysemyPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: fast-logger
Dependency ranges changed: base, incipit, polysemy, polysemy-plugin
API changes (from Hackage documentation)
- Helic: interpretAgentTmux :: Members [Reader TmuxConfig, Log, Async, Race, Resource, Embed IO] r => InterpreterFor (Tagged AgentTmux Agent) r
+ Helic: interpretAgentTmux :: Members [Reader TmuxConfig, Log, Async, Race, Resource, ChronosTime, Embed IO] r => InterpreterFor (Tagged AgentTmux Agent) r
- Helic.Interpreter.AgentTmux: interpretAgentTmux :: Members [Reader TmuxConfig, Log, Async, Race, Resource, Embed IO] r => InterpreterFor (Tagged AgentTmux Agent) r
+ Helic.Interpreter.AgentTmux: interpretAgentTmux :: Members [Reader TmuxConfig, Log, Async, Race, Resource, ChronosTime, Embed IO] r => InterpreterFor (Tagged AgentTmux Agent) r
Files
- helic.cabal +24/−17
- lib/Helic/Interpreter/AgentTmux.hs +7/−4
- lib/Helic/Interpreter/Gtk.hs +2/−0
- lib/Helic/Interpreter/History.hs +1/−1
- lib/Helic/Net/Server.hs +8/−3
helic.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: helic-version: 0.5.1.0+version: 0.5.2.0 synopsis: Clipboard Manager description: See <https://hackage.haskell.org/package/helic/docs/Helic.html> category: Clipboard@@ -13,7 +13,7 @@ bug-reports: https://github.com/tek/helic/issues author: Torsten Schmits maintainer: hackage@tryp.io-copyright: 2021 Torsten Schmits+copyright: 2022 Torsten Schmits license: BSD-2-Clause-Patent license-file: LICENSE build-type: Simple@@ -93,8 +93,10 @@ DeriveFoldable DeriveFunctor DeriveGeneric+ DeriveLift DeriveTraversable DerivingStrategies+ DerivingVia DisambiguateRecordFields DoAndIfThenElse DuplicateRecordFields@@ -124,9 +126,9 @@ RankNTypes RecordWildCards RecursiveDo+ RoleAnnotations ScopedTypeVariables StandaloneDeriving- StandaloneKindSignatures TemplateHaskell TupleSections TypeApplications@@ -137,12 +139,13 @@ UndecidableInstances UnicodeSyntax ViewPatterns- ghc-options: -Wall -Wredundant-constraints -Wunused-packages -fplugin=Polysemy.Plugin+ ghc-options: -Wall -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-packages -fplugin=Polysemy.Plugin build-depends: aeson >=1.5- , base ==4.*+ , base >=4.12 && <5 , chronos >=1.1.1 , exon >=0.3+ , fast-logger >=3 , gi-gdk >=3 , gi-glib >=2 , gi-gtk >=3@@ -196,8 +199,10 @@ DeriveFoldable DeriveFunctor DeriveGeneric+ DeriveLift DeriveTraversable DerivingStrategies+ DerivingVia DisambiguateRecordFields DoAndIfThenElse DuplicateRecordFields@@ -227,9 +232,9 @@ RankNTypes RecordWildCards RecursiveDo+ RoleAnnotations ScopedTypeVariables StandaloneDeriving- StandaloneKindSignatures TemplateHaskell TupleSections TypeApplications@@ -240,13 +245,13 @@ UndecidableInstances UnicodeSyntax ViewPatterns- ghc-options: -Wall -Wredundant-constraints -Wunused-packages -fplugin=Polysemy.Plugin -threaded -rtsopts -with-rtsopts=-N+ ghc-options: -Wall -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-packages -fplugin=Polysemy.Plugin -threaded -rtsopts -with-rtsopts=-N build-depends:- base ==4.*+ base >=4.12 && <5 , helic- , incipit- , polysemy- , polysemy-plugin+ , incipit >=0.1.0.3+ , polysemy >=1.6+ , polysemy-plugin >=0.4 mixins: base hiding (Prelude) default-language: Haskell2010@@ -279,8 +284,10 @@ DeriveFoldable DeriveFunctor DeriveGeneric+ DeriveLift DeriveTraversable DerivingStrategies+ DerivingVia DisambiguateRecordFields DoAndIfThenElse DuplicateRecordFields@@ -310,9 +317,9 @@ RankNTypes RecordWildCards RecursiveDo+ RoleAnnotations ScopedTypeVariables StandaloneDeriving- StandaloneKindSignatures TemplateHaskell TupleSections TypeApplications@@ -323,20 +330,20 @@ UndecidableInstances UnicodeSyntax ViewPatterns- ghc-options: -Wall -Wredundant-constraints -Wunused-packages -fplugin=Polysemy.Plugin -threaded -rtsopts -with-rtsopts=-N+ ghc-options: -Wall -Wmissing-deriving-strategies -Wredundant-constraints -Wunused-packages -fplugin=Polysemy.Plugin -threaded -rtsopts -with-rtsopts=-N build-depends:- base ==4.*+ base >=4.12 && <5 , chronos , containers , exon , helic- , incipit+ , incipit >=0.1.0.3 , path- , polysemy+ , polysemy >=1.6 , polysemy-chronos , polysemy-conc , polysemy-log- , polysemy-plugin+ , polysemy-plugin >=0.4 , polysemy-test , polysemy-time , tasty
lib/Helic/Interpreter/AgentTmux.hs view
@@ -4,6 +4,11 @@ import Exon (exon) import qualified Log import Path (Abs, File, Path, toFilePath)+import Polysemy.Chronos (ChronosTime)+import Polysemy.Process (ProcessKill (KillAfter), interpretProcessByteStringNative)+import Polysemy.Process.Data.ProcessError (ProcessError)+import Polysemy.Process.Data.ProcessOptions (ProcessOptions (kill))+import Polysemy.Time (MilliSeconds (MilliSeconds), convert) import qualified System.Process.Typed as Process import System.Process.Typed (ProcessConfig) @@ -12,8 +17,6 @@ import Helic.Effect.Agent (Agent (Update), AgentTmux) import Helic.Interpreter (interpreting) import Helic.Tmux (sendToTmux)-import Polysemy.Process (interpretProcessByteStringNative)-import Polysemy.Process.Data.ProcessError (ProcessError) -- |Process definition for running `tmux load-buffer -`. tmuxProc ::@@ -34,11 +37,11 @@ -- |Interpret 'Agent' using a tmux server as the target. interpretAgentTmux ::- Members [Reader TmuxConfig, Log, Async, Race, Resource, Embed IO] r =>+ Members [Reader TmuxConfig, Log, Async, Race, Resource, ChronosTime, Embed IO] r => InterpreterFor (Tagged AgentTmux Agent) r interpretAgentTmux sem = do exe <- asks TmuxConfig.exe- interpretProcessByteStringNative True 64 (tmuxProc exe) $+ interpretProcessByteStringNative def { kill = KillAfter (convert (MilliSeconds 500)) } (tmuxProc exe) $ interpreting (raiseUnder (untag sem)) \case Update event -> whenM enableTmux do
lib/Helic/Interpreter/Gtk.hs view
@@ -14,6 +14,7 @@ import Helic.Gtk (getDisplay) import Helic.Stop (tryStop) +-- |In the case where no default display is available from the manager, attempt to connect to a named display. tryOpenDisplay :: Members [Stop Text, Log, Embed IO] r => DisplayId ->@@ -27,6 +28,7 @@ Nothing -> stop [exon|Could not connect to display #{fallbackDisplay}|] +-- |Test whether the display manager has a default display available. noDisplayAvailable :: Members [Stop Text, Embed IO] r => GiGdk.DisplayManager ->
lib/Helic/Interpreter/History.hs view
@@ -115,7 +115,7 @@ Int -> Sem r () logTruncation num =- Log.info [exon|removed #{show num} #{noun} from the history.|]+ Log.debug [exon|removed #{show num} #{noun} from the history.|] where noun = if num == 1 then "entry" else "entries"
lib/Helic/Net/Server.hs view
@@ -14,7 +14,8 @@ setInstallShutdownHandler, setPort, )-import Network.Wai.Middleware.RequestLogger (logStdout)+import qualified Network.Wai.Middleware.RequestLogger as Logger+import Network.Wai.Middleware.RequestLogger (destination, mkRequestLogger) import qualified Polysemy.Conc.Effect.Interrupt as Interrupt import qualified Polysemy.Conc.Sync as Sync import Polysemy.Final (withWeavingToFinal)@@ -33,6 +34,7 @@ serveWithContext, type (.++), )+import System.Log.FastLogger (fromLogStr) newtype ApiError = ApiError { unApiError :: Text }@@ -41,7 +43,7 @@ data ServerReady = ServerReady- deriving (Eq, Show)+ deriving stock (Eq, Show) logErrors :: Member Log r =>@@ -83,4 +85,7 @@ setInstallShutdownHandler shut $ setGracefulShutdownTimeout (Just 0) $ defaultSettings- (<$ s) <$> Warp.runSettings settings (logStdout app)+ log msg =+ void (wv ((Log.debug (decodeUtf8 (fromLogStr msg))) <$ s))+ logger <- mkRequestLogger def { destination = Logger.Callback log }+ (<$ s) <$> Warp.runSettings settings (logger app)