Karya, built on Mon Jul 24 11:39:07 PDT 2017 (patch 33511aca01257b76b88de7c7a2763b7a965c084e)

Safe HaskellNone




Block level cmds.



list :: Cmd.CmdL [(Id.BlockId, Int)] Source #

All BlockIds, along with the count of views for each one.

find_id :: Ui.M m => Text -> m [Id.BlockId] Source #

Find BlockIds that match the string.

find :: Text -> Cmd.CmdL [(Id.BlockId, Text)] Source #

Find all blocks with the given text in their titles.

map_titles :: (Text -> Text) -> Cmd.CmdL () Source #

Transform all block titles.


html_doc :: Cmd.CmdL () Source #

Write HTML documentation for the selected track to build/derive_doc.html.

bindings_equal :: CallDoc.SymbolName -> Cmd.CmdL Text Source #

Print a summary of bindings in scope, grouped by namespace and sorted by shadow priority. This is useful to see if your call is being shadowed.

If the same call shows up twice it may mean you imported the same module twice.

block call

rename :: Id.Id -> Cmd.CmdL () Source #

Rename focused block.

It doesn't update TrackIds so they may still be named under their old block, but track id names aren't supposed to carry meaning anyway.

rename_all :: Id.BlockId -> Id.Id -> Cmd.CmdL () Source #

Rename a block and update all calls to it in all blocks. This is not totally accurate since it updates all symbols that match, but it doesn't know that the symbol would be definitely used as a block call. So if you have clef = treble and a block named treble, it will update both. I could probably solve this by switching back to separate string and symbol types, but it seems like a minor issue.

replace :: Id.BlockId -> Id.Id -> Cmd.CmdL () Source #

Rename block calls in a single block.

map_text :: (Text -> Text) -> BaseTypes.Expr -> BaseTypes.Expr Source #

Transform both Symbols and Strs.


for_event :: Maybe Id.BlockId -> Cmd.CmdL () Source #

If the events under the cursor are a block calls, create blocks that don't already exist. Optionally use a template block.

named :: Id.Id -> Cmd.CmdL Id.ViewId Source #

Copy the current block into a new empty block with the given name.

copy :: Bool -> Id.Id -> Cmd.CmdL Id.ViewId Source #

Create a named block with the same structure as the focused one.


destroy :: Ui.M m => [Id.BlockId] -> m () Source #


divide :: Cmd.CmdL () Source #

Insert a divider to the right of the selection.

undivide :: Cmd.CmdL () Source #

Remove a divider to the right of the selection. The selection likes to skip dividers so they can't be deleted normally.


append :: Cmd.M m => Id.BlockId -> m () Source #