leksah- Haskell IDE written in Haskell

Safe HaskellSafe-Infered



The core state of ide. This module is imported from every other module, | and all data structures of the state are declared here, to avoid circular | module dependencies.



data IDE Source

The IDE state




frameState :: FrameState IDEM

state of the windows framework

recentPanes :: [PaneName]

a list of panes which were selected last

specialKeys :: SpecialKeyTable IDERef

a structure for emacs like keystrokes

specialKey :: SpecialKeyCons IDERef

the first of a double keystroke

candy :: CandyTable

table for source candy

prefs :: Prefs

configuration preferences

workspace :: Maybe Workspace

may be a workspace (set of packages)

activePack :: Maybe IDEPackage
bufferProjCache :: Map FilePath (Maybe IDEPackage)
allLogRefs :: [LogRef]
currentEBC :: (Maybe LogRef, Maybe LogRef, Maybe LogRef)
currentHist :: Int
systemInfo :: Maybe GenScope

the system scope

packageInfo :: Maybe (GenScope, GenScope)

the second are the imports

workspaceInfo :: Maybe (GenScope, GenScope)

the second are the imports

workspInfoCache :: PackageDescrCache
handlers :: Map String [(Unique, IDEEvent -> IDEM IDEEvent)]

event handling table

currentState :: IDEState
guiHistory :: (Bool, [GUIHistory], Int)
findbar :: (Bool, Maybe (Toolbar, ListStore String))
toolbar :: (Bool, Maybe Toolbar)
recentFiles :: [FilePath]
recentWorkspaces :: [FilePath]
runningTool :: Maybe ProcessHandle
debugState :: Maybe (IDEPackage, ToolState)
completion :: ((Int, Int), Maybe CompletionWindow)
yiControl :: Control
server :: Maybe Handle

data IDEState Source



Leksah is in startup mode


Leksah is about to go down


Leksah is running

IsFlipping TreeView

The flipper is used to switch between sources

IsCompleting Connections

The completion feature is used

type IDERef = IORef IDESource

A mutable reference to the IDE state

type IDEM = ReaderT IDERef IOSource

The IDE Monad

type IDEAction = IDEM ()Source

A shorthand for a reader monad for a mutable reference to the IDE state which does not return a value

(?>>=) :: Monad m => m (Maybe a) -> (a -> m ()) -> m ()Source

data ActionDescr alpha Source

ActionDescr is a data structure from which GtkActions are build, which are used for menus, toolbars, and accelerator keystrokes



:: LogRef

The log ref

-> FilePath

the result

type GUIHistory = (GUIHistory', GUIHistory')Source

the first one is the new and the second the old state