License | GPL-2 |
---|---|
Maintainer | yi-devel@googlegroups.com |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Extensions |
|
Handles indentation in the keymaps. Includes:
- (TODO) Auto-indentation to the previous lines indentation
- Tab-expansion
- Shifting of the indentation for a region of text
- autoIndentB :: IndentBehaviour -> BufferM ()
- cycleIndentsB :: IndentBehaviour -> [Int] -> BufferM ()
- indentAsNextB :: BufferM ()
- indentAsPreviousB :: BufferM ()
- indentAsTheMostIndentedNeighborLineB :: BufferM ()
- indentOfB :: YiString -> BufferM Int
- indentOfCurrentPosB :: BufferM Int
- indentSettingsB :: BufferM IndentSettings
- indentToB :: Int -> BufferM ()
- modifyIndentB :: (Int -> Int) -> BufferM ()
- newlineAndIndentB :: BufferM ()
- shiftIndentOfRegionB :: Int -> Region -> BufferM ()
- tabB :: BufferM String
Documentation
autoIndentB :: IndentBehaviour -> BufferM () Source #
A specialisation of autoIndentHelperB
.
This is the most basic and the user is encouraged to
specialise autoIndentHelperB
on their own.
cycleIndentsB :: IndentBehaviour -> [Int] -> BufferM () Source #
Cycles through the indentation hints. It does this without requiring to set/get any state. We just look at the current indentation of the current line and moving to the largest indent that is
indentAsNextB :: BufferM () Source #
Indent as much as the next line
indentAsPreviousB :: BufferM () Source #
Indent as much as the previous line
indentOfB :: YiString -> BufferM Int Source #
Returns the indentation of a given string. Note that this depends on the current indentation settings.
indentOfCurrentPosB :: BufferM Int Source #
Return the number of spaces at the beginning of the line, up to the point.
indentSettingsB :: BufferM IndentSettings Source #
Gives the IndentSettings
for the current buffer.
indentToB :: Int -> BufferM () Source #
Indents the current line to the given indentation level. In addition moves the point according to where it was on the line originally. If we were somewhere within the indentation (ie at the start of the line or on an empty line) then we want to just go to the end of the (new) indentation. However if we are currently pointing somewhere within the text of the line then we wish to remain pointing to the same character.
modifyIndentB :: (Int -> Int) -> BufferM () Source #
Modifies current line indent measured in visible spaces. Respects indent settings. Calling this with value (+ 4) will turn "t" into "tt" if shiftwidth is 4 and into "t " if shiftwidth is 8 If current line is empty nothing happens.
newlineAndIndentB :: BufferM () Source #
Insert a newline at point and indent the new line as the previous one.