mirror of
https://github.com/mawww/kakoune.git
synced 2024-12-19 01:11:36 +03:00
f6a2925950
Level out the builtin commands loaded at startup in terms of format and expressiveness. The following convention was followed: * commands that take more than one argument have to be described along with their parameters prior to the actual documentation, otherwise the docstring consists in a capitalized sentence e.g. `command <arg1>: do something` * optional arguments are enclosed in square brackets, to comply with the format used for hardcoded commands e.g. `cd [<directory>]` * describe the effects of the command in the documentation string and omit implementation details unless they are relevant. Usually command names include the name of the tool they use, so they don't need to be redundantly mentioned e.g. `tmux-new-pane <arguments>: open a new pane` * document the format the parameters to the commands, or list them if they are to be chosen among a list of static values (c.f. `spell.kak`)
48 lines
1.9 KiB
Plaintext
48 lines
1.9 KiB
Plaintext
# Maximum amount of characters per line
|
|
decl int autowrap_column 80
|
|
|
|
# If enabled, paragraph formatting will reformat the whole paragraph in which characters are being inserted
|
|
# This can potentially break formatting of documents containing markup (e.g. markdown)
|
|
decl bool autowrap_format_paragraph no
|
|
# Command to which the paragraphs to wrap will be passed, all occurences of '%c' are replaced with `autowrap_column`
|
|
decl str autowrap_fmtcmd 'fold -s -w %c'
|
|
|
|
def -hidden autowrap-cursor %{ eval -save-regs '/"|^@m' %{
|
|
try %{
|
|
## if the line isn't too long, do nothing
|
|
exec -draft "<a-x><a-k>^[^\n]{%opt{autowrap_column},}[^\n]<ret>"
|
|
|
|
try %{
|
|
reg m "%val{selections_desc}"
|
|
|
|
## if we're adding characters past the limit, just wrap them around
|
|
exec -draft "<a-h><a-k>.{%opt{autowrap_column}}\h*[^\s]*<ret>1s(\h+)[^\h]*\'<ret>c<ret>"
|
|
} catch %{
|
|
## if we're adding characters in the middle of a sentence, use
|
|
## the `fmtcmd` command to wrap the entire paragraph
|
|
%sh{
|
|
if [ "${kak_opt_autowrap_format_paragraph}" = true ] \
|
|
&& [ -n "${kak_opt_autowrap_fmtcmd}" ]; then
|
|
format_cmd=$(printf %s "${kak_opt_autowrap_fmtcmd}" \
|
|
| sed "s/%c/${kak_opt_autowrap_column}/g")
|
|
printf %s "
|
|
eval -draft %{
|
|
exec '<a-]>p<a-x><a-j>|${format_cmd}<ret>'
|
|
try %{ exec s\h+$<ret> d }
|
|
}
|
|
select '${kak_reg_m}'
|
|
"
|
|
fi
|
|
}
|
|
}
|
|
}
|
|
} }
|
|
|
|
def autowrap-enable -docstring "Automatically wrap the lines in which characters are inserted" %{
|
|
hook -group autowrap window InsertChar [^\n] autowrap-cursor
|
|
}
|
|
|
|
def autowrap-disable -docstring "Disable automatic line wrapping" %{
|
|
rmhooks window autowrap
|
|
}
|