summaryrefslogtreecommitdiff
path: root/src/command_manager.cc
AgeCommit message (Collapse)Author
2013-11-04Add automatic completion display in prompt modeMaxime Coste
Controlled by the autoshowcompl option Completers now take a CompletionFlag parameter, used to specify we want fast completion (tag completion can be slow, we do not want to run it if not explicitely wanted by the user).
2013-09-23Add prefix_match function and use it instead of adhoc codeMaxime Coste
2013-07-28Minor code cleanupsMaxime Coste
2013-07-26memoryview: always pass by valueMaxime Coste
2013-06-27change string parsing behaviour in command managerMaxime Coste
* single and doubly quoted strings correctly remove the \ when their delimiter is quoted ('\'' is interpreted as ', not \') * %{} strings do not support quoting when using matching pairs, so %{\} is interpreted as \, however when using same ending character as delimiter quoting still works: %~\~~ is interpreted as ~.
2013-06-19do not use std::{to_string,stoi} as they cause problems with cygwinMaxime Coste
2013-05-13Use more std::* for string handlingMaxime Coste
2013-04-12remove String::replace, use boost::regex_replace directlyMaxime Coste
2013-04-09sort includes directivesMaxime Coste
2013-04-09rename assert to kak_assert to avoid collisionsMaxime Coste
2013-03-19CommandManager: fix some crashesMaxime Coste
2013-03-05Strongly typed options supportMaxime Coste
* non builtins options require declaration using the decl command * At the moment, only int and string options are supported, however the goal of this change is to provide a consistent way to support more complex options, namely lists and booleans
2013-01-04various code style fixesMaxime Coste
2012-12-15Command line parsing: support empty stringsMaxime Coste
2012-11-22code style cleanup in CommandManagerMaxime Coste
2012-11-22rename (hook|option)_manager to (hook|option)s.Maxime Coste
And Global(Hook|Option)Manager to Global(Hook|Option)s
2012-11-21CommandManager: diagnose unterminated stringsMaxime Coste
2012-10-11use ByteCount instead of CharCount when we are really counting bytesMaxime Coste
(that is most of the time when we are not concerned with displaying)
2012-10-08get rid of CharacterMaxime Coste
2012-09-09Add support for shell script parametersMaxime Coste
Now %sh{ ... } can access positional parameters through standard shell construct, allowing simple handling of variable parameters. def command accepts -shell-params flag to use this facility.
2012-09-04Support # comments in commandsMaxime Coste
2012-08-29Fix escaped whitespace handling in command managerMaxime Coste
2012-08-23use a strongly typed int CharCount for character countsMaxime Coste
2012-08-15CommandManager::parse: fix invalid memory readMaxime Coste
2012-08-11CommandManager: support %reg{<reg>} and %opt{<option>} syntaxMaxime Coste
2012-08-06Commands take a mutable context, main_context is gone !Maxime Coste
2012-08-06Completions functions take a Context parameterMaxime Coste
2012-08-06command_manager: cleanup command execution, lazy exec shell commandsMaxime Coste
2012-08-02command_manager.cc: use anonymous namespaceMaxime Coste
2012-08-01Tokens are CommandManager implementation detailsMaxime Coste
CommandParameters go back to memoryview<String>
2012-07-31CommandManager: rework command parserMaxime Coste
a new type of strings is supported inspired by the ruby strings. %<delimiter>content<delimiter>, if opening delimiter is one of ([{<, then closing delimiter is the matching )]}> and balanced delimiters in the string needs not to be escaped, else the closing delimiter is the same as the opening one. shell expansion is available through %sh<delimiter>command<delimiter> syntax. Command flags have been removed, as these strings provide proper nesting support, so now, you can for example do: def command %{ echo %sh{ ls } }
2012-07-31CommandParameters is a list of Tokens instead of StringsMaxime Coste
CommandManager string parsing is less ad-hoc.
2012-06-02sort command names completion candidatesMaxime Coste
2012-06-02The def command do not override commands by default, use -allow-overrideMaxime Coste
2012-05-29CommandManager::execute can take an optional EnvVarMap argument which is ↵Maxime Coste
used for shell evaluation
2012-05-29ShellManager::eval now takes an additional env_var mapMaxime Coste
2012-05-03Add a ShellManager which handles executing shell commandsMaxime Coste
ShellManager provides shell commands with environement variable to retrieve some internal values in the shell parameters.
2012-04-14replace std::string references with StringMaxime Coste
2012-03-08support read error in shell_evalMaxime Coste
2012-03-04fix shell_eval when no buffer in contextMaxime Coste
2012-02-15Support shell expansion in place of command name in command managerMaxime Coste
2012-02-13Support `shell commands` expansion in CommandManagerMaxime Coste
2012-02-03use memoryview instead of std::vector where applicableMaxime Coste
2012-01-15CommandManager: add flags support and IgnoreSemiColons flagMaxime Coste
commands are now registred with flags, and the IgnoreSemiColons flag permit to specify a command which needs all the parameters on the line, bypassing the command sequence operator ';'. the hook command is tagged as such.
2012-01-15CommandManager: support ';' as a command separatorMaxime Coste
2012-01-14CommandManager: use directly first command parameter as the command nameMaxime Coste
2011-11-26CommandManager: fix complete and style tweakMaxime Coste
2011-11-26Add a Context parameter to commandsMaxime Coste
2011-11-26CommandManager: argument splitting supports "multi word"Maxime Coste
works with " and '
2011-10-19CommandManager: fix completion of empty tokensMaxime Coste