glirc-2.26: Console IRC client

Copyright(c) Eric Mertens 2016
Safe HaskellNone




This module renders the lines used in the channel mask list. A mask list can show channel bans, quiets, invites, and exceptions.



data CommandResult Source #

Possible results of running a command


CommandSuccess ClientState

Continue running the client, consume input if command was from input

CommandFailure ClientState

Continue running the client, report an error

CommandQuit ClientState

Client should close

execute Source #


:: String

chat or command

-> ClientState 
-> IO CommandResult 

Interpret the given chat message or command. Leading / indicates a command. Otherwise if a channel or user query is focused a chat message will be sent.

executeUserCommand :: Maybe Text -> String -> ClientState -> IO CommandResult Source #

Execute command provided by user, resolve aliases if necessary.

commandExpansion Source #


:: Maybe Text

disconnect time

-> ClientState

client state

-> Text

expansion variable

-> Maybe Text

expansion value

Compute the replacement value for the given expansion variable.

tabCompletion Source #


:: Bool


-> ClientState 
-> IO CommandResult 

Respond to the TAB key being pressed. This can dispatch to a command specific completion mode when relevant. Otherwise this will complete input based on the users of the channel related to the current buffer.


data CommandSection Source #

A command section is a logical grouping of commands. This allows for showing more structure in the help menu system.

data Command Source #

A command is a list of aliases, an argument specification, implementation, and documentation. The arguments and implementation must match so that the parsed arguments will match what the implementation expects.




data CommandImpl a Source #

Pair of implementations for executing a command and tab completing one. The tab-completion logic is extended with a bool indicating that tab completion should be reversed


ClientCommand (ClientCommand a) (Bool -> ClientCommand String)

no requirements

NetworkCommand (NetworkCommand a) (Bool -> NetworkCommand String)

requires an active network

ChatCommand (ChannelCommand a) (Bool -> ChannelCommand String)

requires an active chat window

ChannelCommand (ChannelCommand a) (Bool -> ChannelCommand String)

requires an active channel window

commands :: Recognizer Command Source #

Map of built-in client commands to their implementations, tab completion logic, and argument structures.

commandsList :: [CommandSection] Source #

Raw list of commands in the order used for /help