{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- Main Completion Object.
-- 
-- The completion system helps the user when they writes some text,
-- such as words, command names, functions, and suchlike. Proposals can
-- be shown, to complete the text the user is writing. Each proposal can
-- contain an additional piece of information (for example
-- documentation), that is displayed when the \"Details\" button is
-- clicked.
-- 
-- Proposals are created via a [iface/@completionProvider@/]. There can
-- be for example a provider to complete words (see [class/@completionWords@/]),
-- another provider for the completion of
-- function names, etc. To add a provider, call
-- [method/@completion@/.add_provider].
-- 
-- When several providers match, they are all shown in the completion
-- window, but one can switch between providers: see the
-- t'GI.GtkSource.Objects.Completion.Completion'::@/move-page/@ signal. It is also possible to
-- activate the first proposals with key bindings, see the
-- t'GI.GtkSource.Objects.Completion.Completion':@/accelerators/@ property.
-- 
-- The [iface/@completionProposal@/] interface represents a proposal.
-- 
-- If a proposal contains extra information (see
-- 'GI.GtkSource.Enums.CompletionColumnDetails'), it will be
-- displayed in a supplemental details window, which appears when
-- the \"Details\" button is clicked.
-- 
-- Each [class/@view@/] object is associated with a [class/@completion@/]
-- instance. This instance can be obtained with
-- [method/@view@/.get_completion]. The [class/@view@/] class contains also the
-- [signal/@view@/[showCompletion](#g:signal:showCompletion)] signal.
-- 
-- A same [iface/@completionProvider@/] object can be used for several
-- @GtkSourceCompletion@\'s.

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.GtkSource.Objects.Completion
    ( 

-- * Exported types
    Completion(..)                          ,
    IsCompletion                            ,
    toCompletion                            ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [addProvider]("GI.GtkSource.Objects.Completion#g:method:addProvider"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [blockInteractive]("GI.GtkSource.Objects.Completion#g:method:blockInteractive"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [hide]("GI.GtkSource.Objects.Completion#g:method:hide"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [removeProvider]("GI.GtkSource.Objects.Completion#g:method:removeProvider"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [show]("GI.GtkSource.Objects.Completion#g:method:show"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unblockInteractive]("GI.GtkSource.Objects.Completion#g:method:unblockInteractive"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getBuffer]("GI.GtkSource.Objects.Completion#g:method:getBuffer"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getPageSize]("GI.GtkSource.Objects.Completion#g:method:getPageSize"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getView]("GI.GtkSource.Objects.Completion#g:method:getView").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setPageSize]("GI.GtkSource.Objects.Completion#g:method:setPageSize"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

#if defined(ENABLE_OVERLOADING)
    ResolveCompletionMethod                 ,
#endif

-- ** addProvider #method:addProvider#

#if defined(ENABLE_OVERLOADING)
    CompletionAddProviderMethodInfo         ,
#endif
    completionAddProvider                   ,


-- ** blockInteractive #method:blockInteractive#

#if defined(ENABLE_OVERLOADING)
    CompletionBlockInteractiveMethodInfo    ,
#endif
    completionBlockInteractive              ,


-- ** fuzzyHighlight #method:fuzzyHighlight#

    completionFuzzyHighlight                ,


-- ** fuzzyMatch #method:fuzzyMatch#

    completionFuzzyMatch                    ,


-- ** getBuffer #method:getBuffer#

#if defined(ENABLE_OVERLOADING)
    CompletionGetBufferMethodInfo           ,
#endif
    completionGetBuffer                     ,


-- ** getPageSize #method:getPageSize#

#if defined(ENABLE_OVERLOADING)
    CompletionGetPageSizeMethodInfo         ,
#endif
    completionGetPageSize                   ,


-- ** getView #method:getView#

#if defined(ENABLE_OVERLOADING)
    CompletionGetViewMethodInfo             ,
#endif
    completionGetView                       ,


-- ** hide #method:hide#

#if defined(ENABLE_OVERLOADING)
    CompletionHideMethodInfo                ,
#endif
    completionHide                          ,


-- ** removeProvider #method:removeProvider#

#if defined(ENABLE_OVERLOADING)
    CompletionRemoveProviderMethodInfo      ,
#endif
    completionRemoveProvider                ,


-- ** setPageSize #method:setPageSize#

#if defined(ENABLE_OVERLOADING)
    CompletionSetPageSizeMethodInfo         ,
#endif
    completionSetPageSize                   ,


-- ** show #method:show#

#if defined(ENABLE_OVERLOADING)
    CompletionShowMethodInfo                ,
#endif
    completionShow                          ,


-- ** unblockInteractive #method:unblockInteractive#

#if defined(ENABLE_OVERLOADING)
    CompletionUnblockInteractiveMethodInfo  ,
#endif
    completionUnblockInteractive            ,




 -- * Properties


-- ** buffer #attr:buffer#
-- | The t'GI.Gtk.Objects.TextBuffer.TextBuffer' for the [Completion:view]("GI.GtkSource.Objects.Completion#g:attr:view").
-- This is a convenience property for providers.

#if defined(ENABLE_OVERLOADING)
    CompletionBufferPropertyInfo            ,
#endif
#if defined(ENABLE_OVERLOADING)
    completionBuffer                        ,
#endif
    getCompletionBuffer                     ,


-- ** pageSize #attr:pageSize#
-- | The number of rows to display to the user before scrolling.

#if defined(ENABLE_OVERLOADING)
    CompletionPageSizePropertyInfo          ,
#endif
#if defined(ENABLE_OVERLOADING)
    completionPageSize                      ,
#endif
    constructCompletionPageSize             ,
    getCompletionPageSize                   ,
    setCompletionPageSize                   ,


-- ** rememberInfoVisibility #attr:rememberInfoVisibility#
-- | Determines whether the visibility of the info window should be saved when the
-- completion is hidden, and restored when the completion is shown again.

#if defined(ENABLE_OVERLOADING)
    CompletionRememberInfoVisibilityPropertyInfo,
#endif
#if defined(ENABLE_OVERLOADING)
    completionRememberInfoVisibility        ,
#endif
    constructCompletionRememberInfoVisibility,
    getCompletionRememberInfoVisibility     ,
    setCompletionRememberInfoVisibility     ,


-- ** selectOnShow #attr:selectOnShow#
-- | Determines whether the first proposal should be selected when the completion
-- is first shown.

#if defined(ENABLE_OVERLOADING)
    CompletionSelectOnShowPropertyInfo      ,
#endif
#if defined(ENABLE_OVERLOADING)
    completionSelectOnShow                  ,
#endif
    constructCompletionSelectOnShow         ,
    getCompletionSelectOnShow               ,
    setCompletionSelectOnShow               ,


-- ** showIcons #attr:showIcons#
-- | The \"show-icons\" property denotes if icons should be displayed within
-- the list of completions presented to the user.

#if defined(ENABLE_OVERLOADING)
    CompletionShowIconsPropertyInfo         ,
#endif
#if defined(ENABLE_OVERLOADING)
    completionShowIcons                     ,
#endif
    constructCompletionShowIcons            ,
    getCompletionShowIcons                  ,
    setCompletionShowIcons                  ,


-- ** view #attr:view#
-- | The \"view\" property is the t'GI.Gtk.Objects.TextView.TextView' for which this t'GI.GtkSource.Objects.Completion.Completion'
-- is providing completion features.

#if defined(ENABLE_OVERLOADING)
    CompletionViewPropertyInfo              ,
#endif
#if defined(ENABLE_OVERLOADING)
    completionView                          ,
#endif
    constructCompletionView                 ,
    getCompletionView                       ,




 -- * Signals


-- ** hide #signal:hide#

    CompletionHideCallback                  ,
#if defined(ENABLE_OVERLOADING)
    CompletionHideSignalInfo                ,
#endif
    afterCompletionHide                     ,
    onCompletionHide                        ,


-- ** providerAdded #signal:providerAdded#

    CompletionProviderAddedCallback         ,
#if defined(ENABLE_OVERLOADING)
    CompletionProviderAddedSignalInfo       ,
#endif
    afterCompletionProviderAdded            ,
    onCompletionProviderAdded               ,


-- ** providerRemoved #signal:providerRemoved#

    CompletionProviderRemovedCallback       ,
#if defined(ENABLE_OVERLOADING)
    CompletionProviderRemovedSignalInfo     ,
#endif
    afterCompletionProviderRemoved          ,
    onCompletionProviderRemoved             ,


-- ** show #signal:show#

    CompletionShowCallback                  ,
#if defined(ENABLE_OVERLOADING)
    CompletionShowSignalInfo                ,
#endif
    afterCompletionShow                     ,
    onCompletionShow                        ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R

import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gtk.Objects.TextView as Gtk.TextView
import {-# SOURCE #-} qualified GI.GtkSource.Interfaces.CompletionProvider as GtkSource.CompletionProvider
import {-# SOURCE #-} qualified GI.GtkSource.Objects.Buffer as GtkSource.Buffer
import {-# SOURCE #-} qualified GI.GtkSource.Objects.View as GtkSource.View
import qualified GI.Pango.Structs.AttrList as Pango.AttrList

-- | Memory-managed wrapper type.
newtype Completion = Completion (SP.ManagedPtr Completion)
    deriving (Completion -> Completion -> Bool
(Completion -> Completion -> Bool)
-> (Completion -> Completion -> Bool) -> Eq Completion
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Completion -> Completion -> Bool
== :: Completion -> Completion -> Bool
$c/= :: Completion -> Completion -> Bool
/= :: Completion -> Completion -> Bool
Eq)

instance SP.ManagedPtrNewtype Completion where
    toManagedPtr :: Completion -> ManagedPtr Completion
toManagedPtr (Completion ManagedPtr Completion
p) = ManagedPtr Completion
p

foreign import ccall "gtk_source_completion_get_type"
    c_gtk_source_completion_get_type :: IO B.Types.GType

instance B.Types.TypedObject Completion where
    glibType :: IO GType
glibType = IO GType
c_gtk_source_completion_get_type

instance B.Types.GObject Completion

-- | Type class for types which can be safely cast to `Completion`, for instance with `toCompletion`.
class (SP.GObject o, O.IsDescendantOf Completion o) => IsCompletion o
instance (SP.GObject o, O.IsDescendantOf Completion o) => IsCompletion o

instance O.HasParentTypes Completion
type instance O.ParentTypes Completion = '[GObject.Object.Object]

-- | Cast to `Completion`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toCompletion :: (MIO.MonadIO m, IsCompletion o) => o -> m Completion
toCompletion :: forall (m :: * -> *) o.
(MonadIO m, IsCompletion o) =>
o -> m Completion
toCompletion = IO Completion -> m Completion
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Completion -> m Completion)
-> (o -> IO Completion) -> o -> m Completion
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Completion -> Completion) -> o -> IO Completion
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Completion -> Completion
Completion

-- | Convert 'Completion' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe Completion) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_source_completion_get_type
    gvalueSet_ :: Ptr GValue -> Maybe Completion -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Completion
P.Nothing = Ptr GValue -> Ptr Completion -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Completion
forall a. Ptr a
FP.nullPtr :: FP.Ptr Completion)
    gvalueSet_ Ptr GValue
gv (P.Just Completion
obj) = Completion -> (Ptr Completion -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Completion
obj (Ptr GValue -> Ptr Completion -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe Completion)
gvalueGet_ Ptr GValue
gv = do
        Ptr Completion
ptr <- Ptr GValue -> IO (Ptr Completion)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Completion)
        if Ptr Completion
ptr Ptr Completion -> Ptr Completion -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Completion
forall a. Ptr a
FP.nullPtr
        then Completion -> Maybe Completion
forall a. a -> Maybe a
P.Just (Completion -> Maybe Completion)
-> IO Completion -> IO (Maybe Completion)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Completion -> Completion)
-> Ptr Completion -> IO Completion
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Completion -> Completion
Completion Ptr Completion
ptr
        else Maybe Completion -> IO (Maybe Completion)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Completion
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveCompletionMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveCompletionMethod "addProvider" o = CompletionAddProviderMethodInfo
    ResolveCompletionMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveCompletionMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveCompletionMethod "blockInteractive" o = CompletionBlockInteractiveMethodInfo
    ResolveCompletionMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveCompletionMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveCompletionMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveCompletionMethod "hide" o = CompletionHideMethodInfo
    ResolveCompletionMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveCompletionMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveCompletionMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveCompletionMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveCompletionMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveCompletionMethod "removeProvider" o = CompletionRemoveProviderMethodInfo
    ResolveCompletionMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveCompletionMethod "show" o = CompletionShowMethodInfo
    ResolveCompletionMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveCompletionMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveCompletionMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveCompletionMethod "unblockInteractive" o = CompletionUnblockInteractiveMethodInfo
    ResolveCompletionMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveCompletionMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveCompletionMethod "getBuffer" o = CompletionGetBufferMethodInfo
    ResolveCompletionMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveCompletionMethod "getPageSize" o = CompletionGetPageSizeMethodInfo
    ResolveCompletionMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveCompletionMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveCompletionMethod "getView" o = CompletionGetViewMethodInfo
    ResolveCompletionMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveCompletionMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveCompletionMethod "setPageSize" o = CompletionSetPageSizeMethodInfo
    ResolveCompletionMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveCompletionMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveCompletionMethod t Completion, O.OverloadedMethod info Completion p) => OL.IsLabel t (Completion -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveCompletionMethod t Completion, O.OverloadedMethod info Completion p, R.HasField t Completion p) => R.HasField t Completion p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveCompletionMethod t Completion, O.OverloadedMethodInfo info Completion) => OL.IsLabel t (O.MethodProxy info Completion) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

-- signal Completion::hide
-- | The \"hide\" signal is emitted when the completion window should
-- be hidden.
type CompletionHideCallback =
    IO ()

type C_CompletionHideCallback =
    Ptr Completion ->                       -- object
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_CompletionHideCallback`.
foreign import ccall "wrapper"
    mk_CompletionHideCallback :: C_CompletionHideCallback -> IO (FunPtr C_CompletionHideCallback)

wrap_CompletionHideCallback :: 
    GObject a => (a -> CompletionHideCallback) ->
    C_CompletionHideCallback
wrap_CompletionHideCallback :: forall a. GObject a => (a -> IO ()) -> C_CompletionHideCallback
wrap_CompletionHideCallback a -> IO ()
gi'cb Ptr Completion
gi'selfPtr Ptr ()
_ = do
    Ptr Completion -> (Completion -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr Completion
gi'selfPtr ((Completion -> IO ()) -> IO ()) -> (Completion -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Completion
gi'self -> a -> IO ()
gi'cb (Completion -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Completion
gi'self) 


-- | Connect a signal handler for the [hide](#signal:hide) signal, to be run before the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.on' completion #hide callback
-- @
-- 
-- 
onCompletionHide :: (IsCompletion a, MonadIO m) => a -> ((?self :: a) => CompletionHideCallback) -> m SignalHandlerId
onCompletionHide :: forall a (m :: * -> *).
(IsCompletion a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onCompletionHide a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
    let wrapped' :: C_CompletionHideCallback
wrapped' = (a -> IO ()) -> C_CompletionHideCallback
forall a. GObject a => (a -> IO ()) -> C_CompletionHideCallback
wrap_CompletionHideCallback a -> IO ()
wrapped
    FunPtr C_CompletionHideCallback
wrapped'' <- C_CompletionHideCallback -> IO (FunPtr C_CompletionHideCallback)
mk_CompletionHideCallback C_CompletionHideCallback
wrapped'
    a
-> Text
-> FunPtr C_CompletionHideCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"hide" FunPtr C_CompletionHideCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [hide](#signal:hide) signal, to be run after the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.after' completion #hide callback
-- @
-- 
-- 
-- 
-- By default the object invoking the signal is not passed to the callback.
-- If you need to access it, you can use the implit @?self@ parameter.
-- Note that this requires activating the @ImplicitParams@ GHC extension.
-- 
afterCompletionHide :: (IsCompletion a, MonadIO m) => a -> ((?self :: a) => CompletionHideCallback) -> m SignalHandlerId
afterCompletionHide :: forall a (m :: * -> *).
(IsCompletion a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterCompletionHide a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
    let wrapped' :: C_CompletionHideCallback
wrapped' = (a -> IO ()) -> C_CompletionHideCallback
forall a. GObject a => (a -> IO ()) -> C_CompletionHideCallback
wrap_CompletionHideCallback a -> IO ()
wrapped
    FunPtr C_CompletionHideCallback
wrapped'' <- C_CompletionHideCallback -> IO (FunPtr C_CompletionHideCallback)
mk_CompletionHideCallback C_CompletionHideCallback
wrapped'
    a
-> Text
-> FunPtr C_CompletionHideCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"hide" FunPtr C_CompletionHideCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data CompletionHideSignalInfo
instance SignalInfo CompletionHideSignalInfo where
    type HaskellCallbackType CompletionHideSignalInfo = CompletionHideCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_CompletionHideCallback cb
        cb'' <- mk_CompletionHideCallback cb'
        connectSignalFunPtr obj "hide" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion::hide"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:signal:hide"})

#endif

-- signal Completion::provider-added
-- | The \"provided-added\" signal is emitted when a new provider is
-- added to the completion.
type CompletionProviderAddedCallback =
    GtkSource.CompletionProvider.CompletionProvider
    -- ^ /@provider@/: a t'GI.GtkSource.Interfaces.CompletionProvider.CompletionProvider'
    -> IO ()

type C_CompletionProviderAddedCallback =
    Ptr Completion ->                       -- object
    Ptr GtkSource.CompletionProvider.CompletionProvider ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_CompletionProviderAddedCallback`.
foreign import ccall "wrapper"
    mk_CompletionProviderAddedCallback :: C_CompletionProviderAddedCallback -> IO (FunPtr C_CompletionProviderAddedCallback)

wrap_CompletionProviderAddedCallback :: 
    GObject a => (a -> CompletionProviderAddedCallback) ->
    C_CompletionProviderAddedCallback
wrap_CompletionProviderAddedCallback :: forall a.
GObject a =>
(a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
wrap_CompletionProviderAddedCallback a -> CompletionProviderAddedCallback
gi'cb Ptr Completion
gi'selfPtr Ptr CompletionProvider
provider Ptr ()
_ = do
    CompletionProvider
provider' <- ((ManagedPtr CompletionProvider -> CompletionProvider)
-> Ptr CompletionProvider -> IO CompletionProvider
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr CompletionProvider -> CompletionProvider
GtkSource.CompletionProvider.CompletionProvider) Ptr CompletionProvider
provider
    Ptr Completion -> (Completion -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr Completion
gi'selfPtr ((Completion -> IO ()) -> IO ()) -> (Completion -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Completion
gi'self -> a -> CompletionProviderAddedCallback
gi'cb (Completion -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Completion
gi'self)  CompletionProvider
provider'


-- | Connect a signal handler for the [providerAdded](#signal:providerAdded) signal, to be run before the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.on' completion #providerAdded callback
-- @
-- 
-- 
onCompletionProviderAdded :: (IsCompletion a, MonadIO m) => a -> ((?self :: a) => CompletionProviderAddedCallback) -> m SignalHandlerId
onCompletionProviderAdded :: forall a (m :: * -> *).
(IsCompletion a, MonadIO m) =>
a
-> ((?self::a) => CompletionProviderAddedCallback)
-> m SignalHandlerId
onCompletionProviderAdded a
obj (?self::a) => CompletionProviderAddedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> CompletionProviderAddedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => CompletionProviderAddedCallback
CompletionProviderAddedCallback
cb
    let wrapped' :: C_CompletionProviderAddedCallback
wrapped' = (a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
forall a.
GObject a =>
(a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
wrap_CompletionProviderAddedCallback a -> CompletionProviderAddedCallback
wrapped
    FunPtr C_CompletionProviderAddedCallback
wrapped'' <- C_CompletionProviderAddedCallback
-> IO (FunPtr C_CompletionProviderAddedCallback)
mk_CompletionProviderAddedCallback C_CompletionProviderAddedCallback
wrapped'
    a
-> Text
-> FunPtr C_CompletionProviderAddedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"provider-added" FunPtr C_CompletionProviderAddedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [providerAdded](#signal:providerAdded) signal, to be run after the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.after' completion #providerAdded callback
-- @
-- 
-- 
-- 
-- By default the object invoking the signal is not passed to the callback.
-- If you need to access it, you can use the implit @?self@ parameter.
-- Note that this requires activating the @ImplicitParams@ GHC extension.
-- 
afterCompletionProviderAdded :: (IsCompletion a, MonadIO m) => a -> ((?self :: a) => CompletionProviderAddedCallback) -> m SignalHandlerId
afterCompletionProviderAdded :: forall a (m :: * -> *).
(IsCompletion a, MonadIO m) =>
a
-> ((?self::a) => CompletionProviderAddedCallback)
-> m SignalHandlerId
afterCompletionProviderAdded a
obj (?self::a) => CompletionProviderAddedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> CompletionProviderAddedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => CompletionProviderAddedCallback
CompletionProviderAddedCallback
cb
    let wrapped' :: C_CompletionProviderAddedCallback
wrapped' = (a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
forall a.
GObject a =>
(a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
wrap_CompletionProviderAddedCallback a -> CompletionProviderAddedCallback
wrapped
    FunPtr C_CompletionProviderAddedCallback
wrapped'' <- C_CompletionProviderAddedCallback
-> IO (FunPtr C_CompletionProviderAddedCallback)
mk_CompletionProviderAddedCallback C_CompletionProviderAddedCallback
wrapped'
    a
-> Text
-> FunPtr C_CompletionProviderAddedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"provider-added" FunPtr C_CompletionProviderAddedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data CompletionProviderAddedSignalInfo
instance SignalInfo CompletionProviderAddedSignalInfo where
    type HaskellCallbackType CompletionProviderAddedSignalInfo = CompletionProviderAddedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_CompletionProviderAddedCallback cb
        cb'' <- mk_CompletionProviderAddedCallback cb'
        connectSignalFunPtr obj "provider-added" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion::provider-added"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:signal:providerAdded"})

#endif

-- signal Completion::provider-removed
-- | The \"provided-removed\" signal is emitted when a provider has
-- been removed from the completion.
type CompletionProviderRemovedCallback =
    GtkSource.CompletionProvider.CompletionProvider
    -- ^ /@provider@/: a t'GI.GtkSource.Interfaces.CompletionProvider.CompletionProvider'
    -> IO ()

type C_CompletionProviderRemovedCallback =
    Ptr Completion ->                       -- object
    Ptr GtkSource.CompletionProvider.CompletionProvider ->
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_CompletionProviderRemovedCallback`.
foreign import ccall "wrapper"
    mk_CompletionProviderRemovedCallback :: C_CompletionProviderRemovedCallback -> IO (FunPtr C_CompletionProviderRemovedCallback)

wrap_CompletionProviderRemovedCallback :: 
    GObject a => (a -> CompletionProviderRemovedCallback) ->
    C_CompletionProviderRemovedCallback
wrap_CompletionProviderRemovedCallback :: forall a.
GObject a =>
(a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
wrap_CompletionProviderRemovedCallback a -> CompletionProviderAddedCallback
gi'cb Ptr Completion
gi'selfPtr Ptr CompletionProvider
provider Ptr ()
_ = do
    CompletionProvider
provider' <- ((ManagedPtr CompletionProvider -> CompletionProvider)
-> Ptr CompletionProvider -> IO CompletionProvider
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr CompletionProvider -> CompletionProvider
GtkSource.CompletionProvider.CompletionProvider) Ptr CompletionProvider
provider
    Ptr Completion -> (Completion -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr Completion
gi'selfPtr ((Completion -> IO ()) -> IO ()) -> (Completion -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Completion
gi'self -> a -> CompletionProviderAddedCallback
gi'cb (Completion -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Completion
gi'self)  CompletionProvider
provider'


-- | Connect a signal handler for the [providerRemoved](#signal:providerRemoved) signal, to be run before the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.on' completion #providerRemoved callback
-- @
-- 
-- 
onCompletionProviderRemoved :: (IsCompletion a, MonadIO m) => a -> ((?self :: a) => CompletionProviderRemovedCallback) -> m SignalHandlerId
onCompletionProviderRemoved :: forall a (m :: * -> *).
(IsCompletion a, MonadIO m) =>
a
-> ((?self::a) => CompletionProviderAddedCallback)
-> m SignalHandlerId
onCompletionProviderRemoved a
obj (?self::a) => CompletionProviderAddedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> CompletionProviderAddedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => CompletionProviderAddedCallback
CompletionProviderAddedCallback
cb
    let wrapped' :: C_CompletionProviderAddedCallback
wrapped' = (a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
forall a.
GObject a =>
(a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
wrap_CompletionProviderRemovedCallback a -> CompletionProviderAddedCallback
wrapped
    FunPtr C_CompletionProviderAddedCallback
wrapped'' <- C_CompletionProviderAddedCallback
-> IO (FunPtr C_CompletionProviderAddedCallback)
mk_CompletionProviderRemovedCallback C_CompletionProviderAddedCallback
wrapped'
    a
-> Text
-> FunPtr C_CompletionProviderAddedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"provider-removed" FunPtr C_CompletionProviderAddedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [providerRemoved](#signal:providerRemoved) signal, to be run after the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.after' completion #providerRemoved callback
-- @
-- 
-- 
-- 
-- By default the object invoking the signal is not passed to the callback.
-- If you need to access it, you can use the implit @?self@ parameter.
-- Note that this requires activating the @ImplicitParams@ GHC extension.
-- 
afterCompletionProviderRemoved :: (IsCompletion a, MonadIO m) => a -> ((?self :: a) => CompletionProviderRemovedCallback) -> m SignalHandlerId
afterCompletionProviderRemoved :: forall a (m :: * -> *).
(IsCompletion a, MonadIO m) =>
a
-> ((?self::a) => CompletionProviderAddedCallback)
-> m SignalHandlerId
afterCompletionProviderRemoved a
obj (?self::a) => CompletionProviderAddedCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> CompletionProviderAddedCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => CompletionProviderAddedCallback
CompletionProviderAddedCallback
cb
    let wrapped' :: C_CompletionProviderAddedCallback
wrapped' = (a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
forall a.
GObject a =>
(a -> CompletionProviderAddedCallback)
-> C_CompletionProviderAddedCallback
wrap_CompletionProviderRemovedCallback a -> CompletionProviderAddedCallback
wrapped
    FunPtr C_CompletionProviderAddedCallback
wrapped'' <- C_CompletionProviderAddedCallback
-> IO (FunPtr C_CompletionProviderAddedCallback)
mk_CompletionProviderRemovedCallback C_CompletionProviderAddedCallback
wrapped'
    a
-> Text
-> FunPtr C_CompletionProviderAddedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"provider-removed" FunPtr C_CompletionProviderAddedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data CompletionProviderRemovedSignalInfo
instance SignalInfo CompletionProviderRemovedSignalInfo where
    type HaskellCallbackType CompletionProviderRemovedSignalInfo = CompletionProviderRemovedCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_CompletionProviderRemovedCallback cb
        cb'' <- mk_CompletionProviderRemovedCallback cb'
        connectSignalFunPtr obj "provider-removed" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion::provider-removed"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:signal:providerRemoved"})

#endif

-- signal Completion::show
-- | The \"show\" signal is emitted when the completion window should
-- be shown.
type CompletionShowCallback =
    IO ()

type C_CompletionShowCallback =
    Ptr Completion ->                       -- object
    Ptr () ->                               -- user_data
    IO ()

-- | Generate a function pointer callable from C code, from a `C_CompletionShowCallback`.
foreign import ccall "wrapper"
    mk_CompletionShowCallback :: C_CompletionShowCallback -> IO (FunPtr C_CompletionShowCallback)

wrap_CompletionShowCallback :: 
    GObject a => (a -> CompletionShowCallback) ->
    C_CompletionShowCallback
wrap_CompletionShowCallback :: forall a. GObject a => (a -> IO ()) -> C_CompletionHideCallback
wrap_CompletionShowCallback a -> IO ()
gi'cb Ptr Completion
gi'selfPtr Ptr ()
_ = do
    Ptr Completion -> (Completion -> IO ()) -> IO ()
forall o b.
(HasCallStack, GObject o) =>
Ptr o -> (o -> IO b) -> IO b
B.ManagedPtr.withNewObject Ptr Completion
gi'selfPtr ((Completion -> IO ()) -> IO ()) -> (Completion -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Completion
gi'self -> a -> IO ()
gi'cb (Completion -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Completion
gi'self) 


-- | Connect a signal handler for the [show](#signal:show) signal, to be run before the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.on' completion #show callback
-- @
-- 
-- 
onCompletionShow :: (IsCompletion a, MonadIO m) => a -> ((?self :: a) => CompletionShowCallback) -> m SignalHandlerId
onCompletionShow :: forall a (m :: * -> *).
(IsCompletion a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onCompletionShow a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
    let wrapped' :: C_CompletionHideCallback
wrapped' = (a -> IO ()) -> C_CompletionHideCallback
forall a. GObject a => (a -> IO ()) -> C_CompletionHideCallback
wrap_CompletionShowCallback a -> IO ()
wrapped
    FunPtr C_CompletionHideCallback
wrapped'' <- C_CompletionHideCallback -> IO (FunPtr C_CompletionHideCallback)
mk_CompletionShowCallback C_CompletionHideCallback
wrapped'
    a
-> Text
-> FunPtr C_CompletionHideCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"show" FunPtr C_CompletionHideCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing

-- | Connect a signal handler for the [show](#signal:show) signal, to be run after the default handler.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Signals.after' completion #show callback
-- @
-- 
-- 
-- 
-- By default the object invoking the signal is not passed to the callback.
-- If you need to access it, you can use the implit @?self@ parameter.
-- Note that this requires activating the @ImplicitParams@ GHC extension.
-- 
afterCompletionShow :: (IsCompletion a, MonadIO m) => a -> ((?self :: a) => CompletionShowCallback) -> m SignalHandlerId
afterCompletionShow :: forall a (m :: * -> *).
(IsCompletion a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterCompletionShow a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
    let wrapped' :: C_CompletionHideCallback
wrapped' = (a -> IO ()) -> C_CompletionHideCallback
forall a. GObject a => (a -> IO ()) -> C_CompletionHideCallback
wrap_CompletionShowCallback a -> IO ()
wrapped
    FunPtr C_CompletionHideCallback
wrapped'' <- C_CompletionHideCallback -> IO (FunPtr C_CompletionHideCallback)
mk_CompletionShowCallback C_CompletionHideCallback
wrapped'
    a
-> Text
-> FunPtr C_CompletionHideCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"show" FunPtr C_CompletionHideCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing


#if defined(ENABLE_OVERLOADING)
data CompletionShowSignalInfo
instance SignalInfo CompletionShowSignalInfo where
    type HaskellCallbackType CompletionShowSignalInfo = CompletionShowCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_CompletionShowCallback cb
        cb'' <- mk_CompletionShowCallback cb'
        connectSignalFunPtr obj "show" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion::show"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:signal:show"})

#endif

-- VVV Prop "buffer"
   -- Type: TInterface (Name {namespace = "Gtk", name = "TextView"})
   -- Flags: [PropertyReadable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@buffer@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' completion #buffer
-- @
getCompletionBuffer :: (MonadIO m, IsCompletion o) => o -> m (Maybe Gtk.TextView.TextView)
getCompletionBuffer :: forall (m :: * -> *) o.
(MonadIO m, IsCompletion o) =>
o -> m (Maybe TextView)
getCompletionBuffer o
obj = IO (Maybe TextView) -> m (Maybe TextView)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe TextView) -> m (Maybe TextView))
-> IO (Maybe TextView) -> m (Maybe TextView)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr TextView -> TextView)
-> IO (Maybe TextView)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"buffer" ManagedPtr TextView -> TextView
Gtk.TextView.TextView

#if defined(ENABLE_OVERLOADING)
data CompletionBufferPropertyInfo
instance AttrInfo CompletionBufferPropertyInfo where
    type AttrAllowedOps CompletionBufferPropertyInfo = '[ 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint CompletionBufferPropertyInfo = IsCompletion
    type AttrSetTypeConstraint CompletionBufferPropertyInfo = (~) ()
    type AttrTransferTypeConstraint CompletionBufferPropertyInfo = (~) ()
    type AttrTransferType CompletionBufferPropertyInfo = ()
    type AttrGetType CompletionBufferPropertyInfo = (Maybe Gtk.TextView.TextView)
    type AttrLabel CompletionBufferPropertyInfo = "buffer"
    type AttrOrigin CompletionBufferPropertyInfo = Completion
    attrGet = getCompletionBuffer
    attrSet = undefined
    attrTransfer _ = undefined
    attrConstruct = undefined
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.buffer"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:attr:buffer"
        })
#endif

-- VVV Prop "page-size"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Just False)

-- | Get the value of the “@page-size@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' completion #pageSize
-- @
getCompletionPageSize :: (MonadIO m, IsCompletion o) => o -> m Word32
getCompletionPageSize :: forall (m :: * -> *) o.
(MonadIO m, IsCompletion o) =>
o -> m Word32
getCompletionPageSize o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj String
"page-size"

-- | Set the value of the “@page-size@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' completion [ #pageSize 'Data.GI.Base.Attributes.:=' value ]
-- @
setCompletionPageSize :: (MonadIO m, IsCompletion o) => o -> Word32 -> m ()
setCompletionPageSize :: forall (m :: * -> *) o.
(MonadIO m, IsCompletion o) =>
o -> Word32 -> m ()
setCompletionPageSize o
obj Word32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Word32 -> IO ()
forall a. GObject a => a -> String -> Word32 -> IO ()
B.Properties.setObjectPropertyUInt32 o
obj String
"page-size" Word32
val

-- | Construct a `GValueConstruct` with valid value for the “@page-size@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCompletionPageSize :: (IsCompletion o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructCompletionPageSize :: forall o (m :: * -> *).
(IsCompletion o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructCompletionPageSize Word32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 String
"page-size" Word32
val

#if defined(ENABLE_OVERLOADING)
data CompletionPageSizePropertyInfo
instance AttrInfo CompletionPageSizePropertyInfo where
    type AttrAllowedOps CompletionPageSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CompletionPageSizePropertyInfo = IsCompletion
    type AttrSetTypeConstraint CompletionPageSizePropertyInfo = (~) Word32
    type AttrTransferTypeConstraint CompletionPageSizePropertyInfo = (~) Word32
    type AttrTransferType CompletionPageSizePropertyInfo = Word32
    type AttrGetType CompletionPageSizePropertyInfo = Word32
    type AttrLabel CompletionPageSizePropertyInfo = "page-size"
    type AttrOrigin CompletionPageSizePropertyInfo = Completion
    attrGet = getCompletionPageSize
    attrSet = setCompletionPageSize
    attrTransfer _ v = do
        return v
    attrConstruct = constructCompletionPageSize
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.pageSize"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:attr:pageSize"
        })
#endif

-- VVV Prop "remember-info-visibility"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@remember-info-visibility@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' completion #rememberInfoVisibility
-- @
getCompletionRememberInfoVisibility :: (MonadIO m, IsCompletion o) => o -> m Bool
getCompletionRememberInfoVisibility :: forall (m :: * -> *) o. (MonadIO m, IsCompletion o) => o -> m Bool
getCompletionRememberInfoVisibility o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"remember-info-visibility"

-- | Set the value of the “@remember-info-visibility@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' completion [ #rememberInfoVisibility 'Data.GI.Base.Attributes.:=' value ]
-- @
setCompletionRememberInfoVisibility :: (MonadIO m, IsCompletion o) => o -> Bool -> m ()
setCompletionRememberInfoVisibility :: forall (m :: * -> *) o.
(MonadIO m, IsCompletion o) =>
o -> Bool -> m ()
setCompletionRememberInfoVisibility o
obj Bool
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"remember-info-visibility" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@remember-info-visibility@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCompletionRememberInfoVisibility :: (IsCompletion o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructCompletionRememberInfoVisibility :: forall o (m :: * -> *).
(IsCompletion o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructCompletionRememberInfoVisibility Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"remember-info-visibility" Bool
val

#if defined(ENABLE_OVERLOADING)
data CompletionRememberInfoVisibilityPropertyInfo
instance AttrInfo CompletionRememberInfoVisibilityPropertyInfo where
    type AttrAllowedOps CompletionRememberInfoVisibilityPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CompletionRememberInfoVisibilityPropertyInfo = IsCompletion
    type AttrSetTypeConstraint CompletionRememberInfoVisibilityPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint CompletionRememberInfoVisibilityPropertyInfo = (~) Bool
    type AttrTransferType CompletionRememberInfoVisibilityPropertyInfo = Bool
    type AttrGetType CompletionRememberInfoVisibilityPropertyInfo = Bool
    type AttrLabel CompletionRememberInfoVisibilityPropertyInfo = "remember-info-visibility"
    type AttrOrigin CompletionRememberInfoVisibilityPropertyInfo = Completion
    attrGet = getCompletionRememberInfoVisibility
    attrSet = setCompletionRememberInfoVisibility
    attrTransfer _ v = do
        return v
    attrConstruct = constructCompletionRememberInfoVisibility
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.rememberInfoVisibility"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:attr:rememberInfoVisibility"
        })
#endif

-- VVV Prop "select-on-show"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@select-on-show@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' completion #selectOnShow
-- @
getCompletionSelectOnShow :: (MonadIO m, IsCompletion o) => o -> m Bool
getCompletionSelectOnShow :: forall (m :: * -> *) o. (MonadIO m, IsCompletion o) => o -> m Bool
getCompletionSelectOnShow o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"select-on-show"

-- | Set the value of the “@select-on-show@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' completion [ #selectOnShow 'Data.GI.Base.Attributes.:=' value ]
-- @
setCompletionSelectOnShow :: (MonadIO m, IsCompletion o) => o -> Bool -> m ()
setCompletionSelectOnShow :: forall (m :: * -> *) o.
(MonadIO m, IsCompletion o) =>
o -> Bool -> m ()
setCompletionSelectOnShow o
obj Bool
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"select-on-show" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@select-on-show@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCompletionSelectOnShow :: (IsCompletion o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructCompletionSelectOnShow :: forall o (m :: * -> *).
(IsCompletion o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructCompletionSelectOnShow Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"select-on-show" Bool
val

#if defined(ENABLE_OVERLOADING)
data CompletionSelectOnShowPropertyInfo
instance AttrInfo CompletionSelectOnShowPropertyInfo where
    type AttrAllowedOps CompletionSelectOnShowPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CompletionSelectOnShowPropertyInfo = IsCompletion
    type AttrSetTypeConstraint CompletionSelectOnShowPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint CompletionSelectOnShowPropertyInfo = (~) Bool
    type AttrTransferType CompletionSelectOnShowPropertyInfo = Bool
    type AttrGetType CompletionSelectOnShowPropertyInfo = Bool
    type AttrLabel CompletionSelectOnShowPropertyInfo = "select-on-show"
    type AttrOrigin CompletionSelectOnShowPropertyInfo = Completion
    attrGet = getCompletionSelectOnShow
    attrSet = setCompletionSelectOnShow
    attrTransfer _ v = do
        return v
    attrConstruct = constructCompletionSelectOnShow
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.selectOnShow"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:attr:selectOnShow"
        })
#endif

-- VVV Prop "show-icons"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Nothing,Nothing)

-- | Get the value of the “@show-icons@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' completion #showIcons
-- @
getCompletionShowIcons :: (MonadIO m, IsCompletion o) => o -> m Bool
getCompletionShowIcons :: forall (m :: * -> *) o. (MonadIO m, IsCompletion o) => o -> m Bool
getCompletionShowIcons o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"show-icons"

-- | Set the value of the “@show-icons@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.set' completion [ #showIcons 'Data.GI.Base.Attributes.:=' value ]
-- @
setCompletionShowIcons :: (MonadIO m, IsCompletion o) => o -> Bool -> m ()
setCompletionShowIcons :: forall (m :: * -> *) o.
(MonadIO m, IsCompletion o) =>
o -> Bool -> m ()
setCompletionShowIcons o
obj Bool
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"show-icons" Bool
val

-- | Construct a `GValueConstruct` with valid value for the “@show-icons@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCompletionShowIcons :: (IsCompletion o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructCompletionShowIcons :: forall o (m :: * -> *).
(IsCompletion o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructCompletionShowIcons Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"show-icons" Bool
val

#if defined(ENABLE_OVERLOADING)
data CompletionShowIconsPropertyInfo
instance AttrInfo CompletionShowIconsPropertyInfo where
    type AttrAllowedOps CompletionShowIconsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint CompletionShowIconsPropertyInfo = IsCompletion
    type AttrSetTypeConstraint CompletionShowIconsPropertyInfo = (~) Bool
    type AttrTransferTypeConstraint CompletionShowIconsPropertyInfo = (~) Bool
    type AttrTransferType CompletionShowIconsPropertyInfo = Bool
    type AttrGetType CompletionShowIconsPropertyInfo = Bool
    type AttrLabel CompletionShowIconsPropertyInfo = "show-icons"
    type AttrOrigin CompletionShowIconsPropertyInfo = Completion
    attrGet = getCompletionShowIcons
    attrSet = setCompletionShowIcons
    attrTransfer _ v = do
        return v
    attrConstruct = constructCompletionShowIcons
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.showIcons"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:attr:showIcons"
        })
#endif

-- VVV Prop "view"
   -- Type: TInterface (Name {namespace = "GtkSource", name = "View"})
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
   -- Nullable: (Just False,Nothing)

-- | Get the value of the “@view@” property.
-- When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
-- 
-- @
-- 'Data.GI.Base.Attributes.get' completion #view
-- @
getCompletionView :: (MonadIO m, IsCompletion o) => o -> m GtkSource.View.View
getCompletionView :: forall (m :: * -> *) o. (MonadIO m, IsCompletion o) => o -> m View
getCompletionView o
obj = IO View -> m View
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO View -> m View) -> IO View -> m View
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe View) -> IO View
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getCompletionView" (IO (Maybe View) -> IO View) -> IO (Maybe View) -> IO View
forall a b. (a -> b) -> a -> b
$ o -> String -> (ManagedPtr View -> View) -> IO (Maybe View)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"view" ManagedPtr View -> View
GtkSource.View.View

-- | Construct a `GValueConstruct` with valid value for the “@view@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
constructCompletionView :: (IsCompletion o, MIO.MonadIO m, GtkSource.View.IsView a) => a -> m (GValueConstruct o)
constructCompletionView :: forall o (m :: * -> *) a.
(IsCompletion o, MonadIO m, IsView a) =>
a -> m (GValueConstruct o)
constructCompletionView a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"view" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)

#if defined(ENABLE_OVERLOADING)
data CompletionViewPropertyInfo
instance AttrInfo CompletionViewPropertyInfo where
    type AttrAllowedOps CompletionViewPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint CompletionViewPropertyInfo = IsCompletion
    type AttrSetTypeConstraint CompletionViewPropertyInfo = GtkSource.View.IsView
    type AttrTransferTypeConstraint CompletionViewPropertyInfo = GtkSource.View.IsView
    type AttrTransferType CompletionViewPropertyInfo = GtkSource.View.View
    type AttrGetType CompletionViewPropertyInfo = GtkSource.View.View
    type AttrLabel CompletionViewPropertyInfo = "view"
    type AttrOrigin CompletionViewPropertyInfo = Completion
    attrGet = getCompletionView
    attrSet = undefined
    attrTransfer _ v = do
        unsafeCastTo GtkSource.View.View v
    attrConstruct = constructCompletionView
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.view"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#g:attr:view"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Completion
type instance O.AttributeList Completion = CompletionAttributeList
type CompletionAttributeList = ('[ '("buffer", CompletionBufferPropertyInfo), '("pageSize", CompletionPageSizePropertyInfo), '("rememberInfoVisibility", CompletionRememberInfoVisibilityPropertyInfo), '("selectOnShow", CompletionSelectOnShowPropertyInfo), '("showIcons", CompletionShowIconsPropertyInfo), '("view", CompletionViewPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
completionBuffer :: AttrLabelProxy "buffer"
completionBuffer = AttrLabelProxy

completionPageSize :: AttrLabelProxy "pageSize"
completionPageSize = AttrLabelProxy

completionRememberInfoVisibility :: AttrLabelProxy "rememberInfoVisibility"
completionRememberInfoVisibility = AttrLabelProxy

completionSelectOnShow :: AttrLabelProxy "selectOnShow"
completionSelectOnShow = AttrLabelProxy

completionShowIcons :: AttrLabelProxy "showIcons"
completionShowIcons = AttrLabelProxy

completionView :: AttrLabelProxy "view"
completionView = AttrLabelProxy

#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Completion = CompletionSignalList
type CompletionSignalList = ('[ '("hide", CompletionHideSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("providerAdded", CompletionProviderAddedSignalInfo), '("providerRemoved", CompletionProviderRemovedSignalInfo), '("show", CompletionShowSignalInfo)] :: [(Symbol, DK.Type)])

#endif

-- method Completion::add_provider
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceCompletion"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "provider"
--           , argType =
--               TInterface
--                 Name { namespace = "GtkSource" , name = "CompletionProvider" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceCompletionProvider"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_add_provider" gtk_source_completion_add_provider :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    Ptr GtkSource.CompletionProvider.CompletionProvider -> -- provider : TInterface (Name {namespace = "GtkSource", name = "CompletionProvider"})
    IO ()

-- | Adds a [iface/@completionProvider@/] to the list of providers to be queried
-- for completion results.
completionAddProvider ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a, GtkSource.CompletionProvider.IsCompletionProvider b) =>
    a
    -- ^ /@self@/: a t'GI.GtkSource.Objects.Completion.Completion'
    -> b
    -- ^ /@provider@/: a t'GI.GtkSource.Interfaces.CompletionProvider.CompletionProvider'
    -> m ()
completionAddProvider :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsCompletion a,
 IsCompletionProvider b) =>
a -> b -> m ()
completionAddProvider a
self b
provider = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr CompletionProvider
provider' <- b -> IO (Ptr CompletionProvider)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
provider
    Ptr Completion -> Ptr CompletionProvider -> IO ()
gtk_source_completion_add_provider Ptr Completion
self' Ptr CompletionProvider
provider'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
provider
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CompletionAddProviderMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsCompletion a, GtkSource.CompletionProvider.IsCompletionProvider b) => O.OverloadedMethod CompletionAddProviderMethodInfo a signature where
    overloadedMethod = completionAddProvider

instance O.OverloadedMethodInfo CompletionAddProviderMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionAddProvider",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionAddProvider"
        })


#endif

-- method Completion::block_interactive
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_block_interactive" gtk_source_completion_block_interactive :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    IO ()

-- | /No description available in the introspection data./
completionBlockInteractive ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a) =>
    a
    -> m ()
completionBlockInteractive :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCompletion a) =>
a -> m ()
completionBlockInteractive a
self = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Completion -> IO ()
gtk_source_completion_block_interactive Ptr Completion
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CompletionBlockInteractiveMethodInfo
instance (signature ~ (m ()), MonadIO m, IsCompletion a) => O.OverloadedMethod CompletionBlockInteractiveMethodInfo a signature where
    overloadedMethod = completionBlockInteractive

instance O.OverloadedMethodInfo CompletionBlockInteractiveMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionBlockInteractive",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionBlockInteractive"
        })


#endif

-- method Completion::get_buffer
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceCompletion"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "GtkSource" , name = "Buffer" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_get_buffer" gtk_source_completion_get_buffer :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    IO (Ptr GtkSource.Buffer.Buffer)

-- | Gets the connected [class/@view@/]\'s [class/@buffer@/]
completionGetBuffer ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a) =>
    a
    -- ^ /@self@/: a t'GI.GtkSource.Objects.Completion.Completion'
    -> m GtkSource.Buffer.Buffer
    -- ^ __Returns:__ A t'GI.GtkSource.Objects.Buffer.Buffer'
completionGetBuffer :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCompletion a) =>
a -> m Buffer
completionGetBuffer a
self = IO Buffer -> m Buffer
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Buffer -> m Buffer) -> IO Buffer -> m Buffer
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Buffer
result <- Ptr Completion -> IO (Ptr Buffer)
gtk_source_completion_get_buffer Ptr Completion
self'
    Text -> Ptr Buffer -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"completionGetBuffer" Ptr Buffer
result
    Buffer
result' <- ((ManagedPtr Buffer -> Buffer) -> Ptr Buffer -> IO Buffer
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Buffer -> Buffer
GtkSource.Buffer.Buffer) Ptr Buffer
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Buffer -> IO Buffer
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Buffer
result'

#if defined(ENABLE_OVERLOADING)
data CompletionGetBufferMethodInfo
instance (signature ~ (m GtkSource.Buffer.Buffer), MonadIO m, IsCompletion a) => O.OverloadedMethod CompletionGetBufferMethodInfo a signature where
    overloadedMethod = completionGetBuffer

instance O.OverloadedMethodInfo CompletionGetBufferMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionGetBuffer",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionGetBuffer"
        })


#endif

-- method Completion::get_page_size
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_get_page_size" gtk_source_completion_get_page_size :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    IO Word32

-- | /No description available in the introspection data./
completionGetPageSize ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a) =>
    a
    -> m Word32
completionGetPageSize :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCompletion a) =>
a -> m Word32
completionGetPageSize a
self = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Word32
result <- Ptr Completion -> IO Word32
gtk_source_completion_get_page_size Ptr Completion
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data CompletionGetPageSizeMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsCompletion a) => O.OverloadedMethod CompletionGetPageSizeMethodInfo a signature where
    overloadedMethod = completionGetPageSize

instance O.OverloadedMethodInfo CompletionGetPageSizeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionGetPageSize",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionGetPageSize"
        })


#endif

-- method Completion::get_view
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceCompletion"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "GtkSource" , name = "View" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_get_view" gtk_source_completion_get_view :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    IO (Ptr GtkSource.View.View)

-- | Gets the [class/@view@/] that owns the [class/@completion@/].
completionGetView ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a) =>
    a
    -- ^ /@self@/: a t'GI.GtkSource.Objects.Completion.Completion'
    -> m GtkSource.View.View
    -- ^ __Returns:__ A t'GI.GtkSource.Objects.View.View'
completionGetView :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCompletion a) =>
a -> m View
completionGetView a
self = IO View -> m View
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO View -> m View) -> IO View -> m View
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr View
result <- Ptr Completion -> IO (Ptr View)
gtk_source_completion_get_view Ptr Completion
self'
    Text -> Ptr View -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"completionGetView" Ptr View
result
    View
result' <- ((ManagedPtr View -> View) -> Ptr View -> IO View
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr View -> View
GtkSource.View.View) Ptr View
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    View -> IO View
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return View
result'

#if defined(ENABLE_OVERLOADING)
data CompletionGetViewMethodInfo
instance (signature ~ (m GtkSource.View.View), MonadIO m, IsCompletion a) => O.OverloadedMethod CompletionGetViewMethodInfo a signature where
    overloadedMethod = completionGetView

instance O.OverloadedMethodInfo CompletionGetViewMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionGetView",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionGetView"
        })


#endif

-- method Completion::hide
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceCompletion"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_hide" gtk_source_completion_hide :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    IO ()

-- | Emits the \"hide\" signal.
-- 
-- When the \"hide\" signal is emitted, the completion window will be
-- dismissed.
completionHide ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a) =>
    a
    -- ^ /@self@/: a t'GI.GtkSource.Objects.Completion.Completion'
    -> m ()
completionHide :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCompletion a) =>
a -> m ()
completionHide a
self = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Completion -> IO ()
gtk_source_completion_hide Ptr Completion
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CompletionHideMethodInfo
instance (signature ~ (m ()), MonadIO m, IsCompletion a) => O.OverloadedMethod CompletionHideMethodInfo a signature where
    overloadedMethod = completionHide

instance O.OverloadedMethodInfo CompletionHideMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionHide",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionHide"
        })


#endif

-- method Completion::remove_provider
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceCompletion"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "provider"
--           , argType =
--               TInterface
--                 Name { namespace = "GtkSource" , name = "CompletionProvider" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceCompletionProvider"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_remove_provider" gtk_source_completion_remove_provider :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    Ptr GtkSource.CompletionProvider.CompletionProvider -> -- provider : TInterface (Name {namespace = "GtkSource", name = "CompletionProvider"})
    IO ()

-- | Removes a [iface/@completionProvider@/] previously added with
-- [method/@completion@/.add_provider].
completionRemoveProvider ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a, GtkSource.CompletionProvider.IsCompletionProvider b) =>
    a
    -- ^ /@self@/: a t'GI.GtkSource.Objects.Completion.Completion'
    -> b
    -- ^ /@provider@/: a t'GI.GtkSource.Interfaces.CompletionProvider.CompletionProvider'
    -> m ()
completionRemoveProvider :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsCompletion a,
 IsCompletionProvider b) =>
a -> b -> m ()
completionRemoveProvider a
self b
provider = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr CompletionProvider
provider' <- b -> IO (Ptr CompletionProvider)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
provider
    Ptr Completion -> Ptr CompletionProvider -> IO ()
gtk_source_completion_remove_provider Ptr Completion
self' Ptr CompletionProvider
provider'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
provider
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CompletionRemoveProviderMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsCompletion a, GtkSource.CompletionProvider.IsCompletionProvider b) => O.OverloadedMethod CompletionRemoveProviderMethodInfo a signature where
    overloadedMethod = completionRemoveProvider

instance O.OverloadedMethodInfo CompletionRemoveProviderMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionRemoveProvider",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionRemoveProvider"
        })


#endif

-- method Completion::set_page_size
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "page_size"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_set_page_size" gtk_source_completion_set_page_size :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    Word32 ->                               -- page_size : TBasicType TUInt
    IO ()

-- | /No description available in the introspection data./
completionSetPageSize ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a) =>
    a
    -> Word32
    -> m ()
completionSetPageSize :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCompletion a) =>
a -> Word32 -> m ()
completionSetPageSize a
self Word32
pageSize = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Completion -> Word32 -> IO ()
gtk_source_completion_set_page_size Ptr Completion
self' Word32
pageSize
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CompletionSetPageSizeMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsCompletion a) => O.OverloadedMethod CompletionSetPageSizeMethodInfo a signature where
    overloadedMethod = completionSetPageSize

instance O.OverloadedMethodInfo CompletionSetPageSizeMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionSetPageSize",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionSetPageSize"
        })


#endif

-- method Completion::show
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #GtkSourceCompletion"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_show" gtk_source_completion_show :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    IO ()

-- | Emits the \"show\" signal.
-- 
-- When the \"show\" signal is emitted, the completion window will be
-- displayed if there are any results available.
completionShow ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a) =>
    a
    -- ^ /@self@/: a t'GI.GtkSource.Objects.Completion.Completion'
    -> m ()
completionShow :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCompletion a) =>
a -> m ()
completionShow a
self = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Completion -> IO ()
gtk_source_completion_show Ptr Completion
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CompletionShowMethodInfo
instance (signature ~ (m ()), MonadIO m, IsCompletion a) => O.OverloadedMethod CompletionShowMethodInfo a signature where
    overloadedMethod = completionShow

instance O.OverloadedMethodInfo CompletionShowMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionShow",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionShow"
        })


#endif

-- method Completion::unblock_interactive
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "GtkSource" , name = "Completion" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation { rawDocText = Nothing , sinceVersion = Nothing }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_unblock_interactive" gtk_source_completion_unblock_interactive :: 
    Ptr Completion ->                       -- self : TInterface (Name {namespace = "GtkSource", name = "Completion"})
    IO ()

-- | /No description available in the introspection data./
completionUnblockInteractive ::
    (B.CallStack.HasCallStack, MonadIO m, IsCompletion a) =>
    a
    -> m ()
completionUnblockInteractive :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsCompletion a) =>
a -> m ()
completionUnblockInteractive a
self = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr Completion
self' <- a -> IO (Ptr Completion)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Completion -> IO ()
gtk_source_completion_unblock_interactive Ptr Completion
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data CompletionUnblockInteractiveMethodInfo
instance (signature ~ (m ()), MonadIO m, IsCompletion a) => O.OverloadedMethod CompletionUnblockInteractiveMethodInfo a signature where
    overloadedMethod = completionUnblockInteractive

instance O.OverloadedMethodInfo CompletionUnblockInteractiveMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.GtkSource.Objects.Completion.completionUnblockInteractive",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtksource-5.0.0/docs/GI-GtkSource-Objects-Completion.html#v:completionUnblockInteractive"
        })


#endif

-- method Completion::fuzzy_highlight
-- method type : MemberFunction
-- Args: [ Arg
--           { argCName = "haystack"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the string to be highlighted"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "casefold_query"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the typed-text used to highlight @haystack"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "Pango" , name = "AttrList" })
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_fuzzy_highlight" gtk_source_completion_fuzzy_highlight :: 
    CString ->                              -- haystack : TBasicType TUTF8
    CString ->                              -- casefold_query : TBasicType TUTF8
    IO (Ptr Pango.AttrList.AttrList)

-- | This will add @\<b>@ tags around matched characters in /@haystack@/
-- based on /@casefoldQuery@/.
completionFuzzyHighlight ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    T.Text
    -- ^ /@haystack@/: the string to be highlighted
    -> T.Text
    -- ^ /@casefoldQuery@/: the typed-text used to highlight /@haystack@/
    -> m (Maybe Pango.AttrList.AttrList)
    -- ^ __Returns:__ a t'GI.Pango.Structs.AttrList.AttrList' or 'P.Nothing'
completionFuzzyHighlight :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Text -> Text -> m (Maybe AttrList)
completionFuzzyHighlight Text
haystack Text
casefoldQuery = IO (Maybe AttrList) -> m (Maybe AttrList)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe AttrList) -> m (Maybe AttrList))
-> IO (Maybe AttrList) -> m (Maybe AttrList)
forall a b. (a -> b) -> a -> b
$ do
    CString
haystack' <- Text -> IO CString
textToCString Text
haystack
    CString
casefoldQuery' <- Text -> IO CString
textToCString Text
casefoldQuery
    Ptr AttrList
result <- CString -> CString -> IO (Ptr AttrList)
gtk_source_completion_fuzzy_highlight CString
haystack' CString
casefoldQuery'
    Maybe AttrList
maybeResult <- Ptr AttrList
-> (Ptr AttrList -> IO AttrList) -> IO (Maybe AttrList)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr AttrList
result ((Ptr AttrList -> IO AttrList) -> IO (Maybe AttrList))
-> (Ptr AttrList -> IO AttrList) -> IO (Maybe AttrList)
forall a b. (a -> b) -> a -> b
$ \Ptr AttrList
result' -> do
        AttrList
result'' <- ((ManagedPtr AttrList -> AttrList) -> Ptr AttrList -> IO AttrList
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr AttrList -> AttrList
Pango.AttrList.AttrList) Ptr AttrList
result'
        AttrList -> IO AttrList
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return AttrList
result''
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
haystack'
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
casefoldQuery'
    Maybe AttrList -> IO (Maybe AttrList)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe AttrList
maybeResult

#if defined(ENABLE_OVERLOADING)
#endif

-- method Completion::fuzzy_match
-- method type : MemberFunction
-- Args: [ Arg
--           { argCName = "haystack"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the string to be searched."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "casefold_needle"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "A g_utf8_casefold() version of the needle."
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "priority"
--           , argType = TBasicType TUInt
--           , direction = DirectionOut
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "An optional location for the score of the match"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferEverything
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "gtk_source_completion_fuzzy_match" gtk_source_completion_fuzzy_match :: 
    CString ->                              -- haystack : TBasicType TUTF8
    CString ->                              -- casefold_needle : TBasicType TUTF8
    Ptr Word32 ->                           -- priority : TBasicType TUInt
    IO CInt

-- | This helper function can do a fuzzy match for you giving a haystack and
-- casefolded needle.
-- 
-- Casefold your needle using 'GI.GLib.Functions.utf8Casefold' before
-- running the query.
-- 
-- Score will be set with the score of the match upon success. Otherwise,
-- it will be set to zero.
completionFuzzyMatch ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    Maybe (T.Text)
    -- ^ /@haystack@/: the string to be searched.
    -> T.Text
    -- ^ /@casefoldNeedle@/: A 'GI.GLib.Functions.utf8Casefold' version of the needle.
    -> m ((Bool, Word32))
    -- ^ __Returns:__ 'P.True' if /@haystack@/ matched /@casefoldNeedle@/, otherwise 'P.False'.
completionFuzzyMatch :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Text -> Text -> m (Bool, Word32)
completionFuzzyMatch Maybe Text
haystack Text
casefoldNeedle = IO (Bool, Word32) -> m (Bool, Word32)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Word32) -> m (Bool, Word32))
-> IO (Bool, Word32) -> m (Bool, Word32)
forall a b. (a -> b) -> a -> b
$ do
    CString
maybeHaystack <- case Maybe Text
haystack of
        Maybe Text
Nothing -> CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
forall a. Ptr a
nullPtr
        Just Text
jHaystack -> do
            CString
jHaystack' <- Text -> IO CString
textToCString Text
jHaystack
            CString -> IO CString
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CString
jHaystack'
    CString
casefoldNeedle' <- Text -> IO CString
textToCString Text
casefoldNeedle
    Ptr Word32
priority <- IO (Ptr Word32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word32)
    CInt
result <- CString -> CString -> Ptr Word32 -> IO CInt
gtk_source_completion_fuzzy_match CString
maybeHaystack CString
casefoldNeedle' Ptr Word32
priority
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    Word32
priority' <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek Ptr Word32
priority
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
maybeHaystack
    CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
casefoldNeedle'
    Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word32
priority
    (Bool, Word32) -> IO (Bool, Word32)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Word32
priority')

#if defined(ENABLE_OVERLOADING)
#endif