Safe Haskell | None |
---|---|
Language | Haskell2010 |
- execEditorAction :: String -> YiM ()
- getAllNamesInScope :: YiM [String]
- data Evaluator = Evaluator {
- execEditorActionImpl :: String -> YiM ()
- getAllNamesInScopeImpl :: YiM [String]
- evaluator :: Field Evaluator
- ghciEvaluator :: Evaluator
- publishedActionsEvaluator :: Evaluator
- publishedActions :: Field (HashMap String Action)
- publishAction :: (YiAction a x, Show x) => String -> a -> ConfigM ()
- jumpToErrorE :: YiM ()
- jumpToE :: String -> Int -> Int -> YiM ()
- consoleKeymap :: Keymap
Main (generic) evaluation interface
execEditorAction :: String -> YiM () Source
Runs the action, as written by the user.
The behaviour of this function can be customised by modifying the Evaluator
variable.
getAllNamesInScope :: YiM [String] Source
Lists the action names in scope, for use by execEditorAction
.
The behaviour of this function can be customised by modifying the Evaluator
variable.
Config variable for customising the behaviour of execEditorAction
and getAllNamesInScope
.
Set this variable using evaluator
. See ghciEvaluator
and finiteListEvaluator
for two implementation.
Evaluator | |
|
evaluator :: Field Evaluator Source
The evaluator to use for execEditorAction
and getAllNamesInScope
.
Standard evaluators
ghciEvaluator :: Evaluator Source
Evaluator implemented by calling GHCi. This evaluator can run arbitrary expressions in the class YiAction
.
The following two imports are always present:
import Yi import qualified Yi.Keymap as Yi.Keymap
Also, if the file
$HOME/.config/yi/local/Env.hs
exists, it is imported unqualified.
publishedActionsEvaluator :: Evaluator Source
Evaluator based on a fixed list of published actions. Has a few differences from ghciEvaluator
:
- expressions can't be evaluated
- all suggested actions are actually valued
- (related to the above) doesn't contain junk actions from Prelude
- doesn't require GHCi backend, so uses less memory
publishedActions :: Field (HashMap String Action) Source
Accessor for the published actions. Consider using publishAction
.
publishAction :: (YiAction a x, Show x) => String -> a -> ConfigM () Source
Publish the given action, by the given name. This will overwrite any existing actions by the same name.
Eval/Interpretation
jumpToErrorE :: YiM () Source