Remove %rec{...} strings, now "..." strings expand their content
This commit is contained in:
parent
414cfabb8c
commit
e8b0a98a78
|
@ -473,9 +473,12 @@ When entering a command, parameters are separated by whitespace (shell like),
|
||||||
if you want to give parameters with spaces, you should quote them.
|
if you want to give parameters with spaces, you should quote them.
|
||||||
|
|
||||||
Kakoune support three string syntax:
|
Kakoune support three string syntax:
|
||||||
|
|
||||||
|
* +\'strings\'+: uninterpreted strings, you can use \' to escape the separator,
|
||||||
|
every other char is itself.
|
||||||
|
|
||||||
* +"strings" and \'strings\'+: classic strings, use \' or \" to escape the
|
* +"strings"+: expended strings, % strings (see %sh, %opt or %reg) contained
|
||||||
separator.
|
are expended. Use \% to escape a % inside them, and \\ to escape a slash.
|
||||||
|
|
||||||
* +%\{strings\}+: these strings are very useful when entering commands
|
* +%\{strings\}+: these strings are very useful when entering commands
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ def clang-complete %{
|
||||||
}
|
}
|
||||||
|
|
||||||
def clang-enable-autocomplete %{
|
def clang-enable-autocomplete %{
|
||||||
set window completers %rec{option=clang_completions:%opt{completers}}
|
set window completers "option=clang_completions:%opt{completers}"
|
||||||
hook window -group clang-autocomplete InsertIdle .* %{ try %{
|
hook window -group clang-autocomplete InsertIdle .* %{ try %{
|
||||||
exec -draft <a-h><a-k>(\.|->|::).\'<ret>
|
exec -draft <a-h><a-k>(\.|->|::).\'<ret>
|
||||||
echo 'completing...'
|
echo 'completing...'
|
||||||
|
|
|
@ -51,7 +51,7 @@ addhl -group /cpp/comment fill comment
|
||||||
addhl -group /cpp/disabled fill rgb:666666
|
addhl -group /cpp/disabled fill rgb:666666
|
||||||
addhl -group /cpp/macro fill meta
|
addhl -group /cpp/macro fill meta
|
||||||
|
|
||||||
addhl -group /cpp/code regex "\<(this|true|false|NULL|nullptr|)\>|\<-?\d+[fdiu]?|'((\\.)?|[^'\\])'" 0:value
|
addhl -group /cpp/code regex %{\<(this|true|false|NULL|nullptr|)\>|\<-?\d+[fdiu]?|'((\\.)?|[^'\\])'} 0:value
|
||||||
addhl -group /cpp/code regex "\<(void|int|char|unsigned|float|bool|size_t)\>" 0:type
|
addhl -group /cpp/code regex "\<(void|int|char|unsigned|float|bool|size_t)\>" 0:type
|
||||||
addhl -group /cpp/code regex "\<(while|for|if|else|do|switch|case|default|goto|break|continue|return|using|try|catch|throw|new|delete|and|or|not|operator|explicit|(?:reinterpret|const|static|dynamic)_cast)\>" 0:keyword
|
addhl -group /cpp/code regex "\<(while|for|if|else|do|switch|case|default|goto|break|continue|return|using|try|catch|throw|new|delete|and|or|not|operator|explicit|(?:reinterpret|const|static|dynamic)_cast)\>" 0:keyword
|
||||||
addhl -group /cpp/code regex "\<(const|constexpr|mutable|auto|namespace|inline|static|volatile|class|struct|enum|union|public|protected|private|template|typedef|virtual|friend|extern|typename|override|final)\>" 0:attribute
|
addhl -group /cpp/code regex "\<(const|constexpr|mutable|auto|namespace|inline|static|volatile|class|struct|enum|union|public|protected|private|template|typedef|virtual|friend|extern|typename|override|final)\>" 0:attribute
|
||||||
|
|
|
@ -46,8 +46,8 @@ def funcinfo %{
|
||||||
}
|
}
|
||||||
|
|
||||||
def ctags-enable-autoinfo %{
|
def ctags-enable-autoinfo %{
|
||||||
hook window -group ctags-autoinfo NormalIdle .* funcinfo
|
hook window -group ctags-autoinfo NormalKey .* funcinfo
|
||||||
hook window -group ctags-autoinfo InsertIdle .* funcinfo
|
hook window -group ctags-autoinfo InsertKey .* funcinfo
|
||||||
}
|
}
|
||||||
|
|
||||||
def ctags-disable-autoinfo %{ rmhooks window ctags-autoinfo }
|
def ctags-disable-autoinfo %{ rmhooks window ctags-autoinfo }
|
||||||
|
|
|
@ -41,7 +41,7 @@ def jump %{
|
||||||
def next -docstring 'Jump to next grep match' %{
|
def next -docstring 'Jump to next grep match' %{
|
||||||
eval -try-client %opt{jumpclient} %{
|
eval -try-client %opt{jumpclient} %{
|
||||||
buffer '*grep*'
|
buffer '*grep*'
|
||||||
exec %rec{%opt{_grep_current_line}ggl/^[^:]+:\d+:<ret>}
|
exec "%opt{_grep_current_line}ggl/^[^:]+:\d+:<ret>"
|
||||||
jump
|
jump
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ def next -docstring 'Jump to next grep match' %{
|
||||||
def prev -docstring 'Jump to previous grep match' %{
|
def prev -docstring 'Jump to previous grep match' %{
|
||||||
eval -try-client %opt{jumpclient} %{
|
eval -try-client %opt{jumpclient} %{
|
||||||
buffer '*grep*'
|
buffer '*grep*'
|
||||||
exec %rec{%opt{_grep_current_line}g<a-/>^[^:]+:\d+:<ret>}
|
exec "%opt{_grep_current_line}g<a-/>^[^:]+:\d+:<ret>"
|
||||||
jump
|
jump
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ def jedi-complete %{
|
||||||
}
|
}
|
||||||
|
|
||||||
def jedi-enable-autocomplete %{
|
def jedi-enable-autocomplete %{
|
||||||
set window completers %rec{option=jedi_completions:%opt{completers}}
|
set window completers "option=jedi_completions:%opt{completers}"
|
||||||
hook window -group jedi-autocomplete InsertIdle .* %{ try %{
|
hook window -group jedi-autocomplete InsertIdle .* %{ try %{
|
||||||
exec -draft <a-h><a-k>\..\'<ret>
|
exec -draft <a-h><a-k>\..\'<ret>
|
||||||
echo 'completing...'
|
echo 'completing...'
|
||||||
|
|
|
@ -33,12 +33,12 @@ def errjump -docstring 'Jump to error location' %{
|
||||||
exec gll<a-?> "Entering directory" <ret>
|
exec gll<a-?> "Entering directory" <ret>
|
||||||
exec s "Entering directory '([^']+)'.*\n([^:]+):(\d+):(?:(\d+):)?([^\n]+)\'" <ret>l
|
exec s "Entering directory '([^']+)'.*\n([^:]+):(\d+):(?:(\d+):)?([^\n]+)\'" <ret>l
|
||||||
set buffer _make_current_error_line %val{cursor_line}
|
set buffer _make_current_error_line %val{cursor_line}
|
||||||
eval -try-client %opt{jumpclient} %rec{edit -existing %reg{1}/%reg{2} %reg{3} %reg{4}; echo -color Information '%reg{5}'}
|
eval -try-client %opt{jumpclient} "edit -existing %reg{1}/%reg{2} %reg{3} %reg{4}; echo -color Information '%reg{5}'"
|
||||||
try %{ focus %opt{jumpclient} }
|
try %{ focus %opt{jumpclient} }
|
||||||
} catch %{
|
} catch %{
|
||||||
exec ghgl s "([^:]+):(\d+):(?:(\d+):)?([^\n]+)\'" <ret>l
|
exec ghgl s "([^:]+):(\d+):(?:(\d+):)?([^\n]+)\'" <ret>l
|
||||||
set buffer _make_current_error_line %val{cursor_line}
|
set buffer _make_current_error_line %val{cursor_line}
|
||||||
eval -try-client %opt{jumpclient} %rec{edit -existing %reg{1} %reg{2} %reg{3}; echo -color Information '%reg{4}'}
|
eval -try-client %opt{jumpclient} "edit -existing %reg{1} %reg{2} %reg{3}; echo -color Information '%reg{4}'"
|
||||||
try %{ focus %opt{jumpclient} }
|
try %{ focus %opt{jumpclient} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ def errjump -docstring 'Jump to error location' %{
|
||||||
def errnext -docstring 'Jump to next error' %{
|
def errnext -docstring 'Jump to next error' %{
|
||||||
eval -try-client %opt{jumpclient} %{
|
eval -try-client %opt{jumpclient} %{
|
||||||
buffer '*make*'
|
buffer '*make*'
|
||||||
exec %rec{%opt{_make_current_error_line}ggl/[0-9]+: (?:fatal )?error:<ret>}
|
exec "%opt{_make_current_error_line}ggl/[0-9]+: (?:fatal )?error:<ret>"
|
||||||
errjump
|
errjump
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ def errnext -docstring 'Jump to next error' %{
|
||||||
def errprev -docstring 'Jump to previous error' %{
|
def errprev -docstring 'Jump to previous error' %{
|
||||||
eval -try-client %opt{jumpclient} %{
|
eval -try-client %opt{jumpclient} %{
|
||||||
buffer '*make*'
|
buffer '*make*'
|
||||||
exec %rec{%opt{_make_current_error_line}ggh<a-/>[0-9]+: (?:fatal )?error:<ret>}
|
exec "%opt{_make_current_error_line}ggh<a-/>[0-9]+: (?:fatal )?error:<ret>"
|
||||||
errjump
|
errjump
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,8 +139,6 @@ Token::Type token_type(StringView type_name)
|
||||||
return Token::Type::OptionExpand;
|
return Token::Type::OptionExpand;
|
||||||
else if (type_name == "val")
|
else if (type_name == "val")
|
||||||
return Token::Type::ValExpand;
|
return Token::Type::ValExpand;
|
||||||
else if (type_name == "rec")
|
|
||||||
return Token::Type::RawEval;
|
|
||||||
else if (throw_on_invalid)
|
else if (throw_on_invalid)
|
||||||
throw unknown_expand{type_name};
|
throw unknown_expand{type_name};
|
||||||
else
|
else
|
||||||
|
@ -239,8 +237,9 @@ TokenList parse(StringView line)
|
||||||
if (throw_on_unterminated and pos == length)
|
if (throw_on_unterminated and pos == length)
|
||||||
throw unterminated_string(String{delimiter},
|
throw unterminated_string(String{delimiter},
|
||||||
String{delimiter});
|
String{delimiter});
|
||||||
result.emplace_back(Token::Type::Raw, token_start,
|
result.emplace_back(delimiter == '"' ? Token::Type::RawEval
|
||||||
pos, std::move(token));
|
: Token::Type::Raw,
|
||||||
|
token_start, pos, std::move(token));
|
||||||
}
|
}
|
||||||
else if (line[pos] == '%')
|
else if (line[pos] == '%')
|
||||||
result.push_back(
|
result.push_back(
|
||||||
|
|
Loading…
Reference in New Issue
Block a user