summaryrefslogtreecommitdiff
path: root/src/command_manager.hh
AgeCommit message (Collapse)Author
2015-10-23Fix optimized linkageMaxime Coste
2015-10-22Pass ShellContext to commandsMaxime Coste
Fix #427
2015-10-22Wrap the shell params en env vars in a ShellContext structMaxime Coste
2015-09-19Initial support for user configurable modeline with the modelinefmt optionMaxime Coste
modelinefmt is first sent through a command line expander (so %sh{...}, %val{...} et al. are expanded), then through markup expand (so that {face} are interpreted as well)
2015-06-26Add support for command completion on commands, use it for :newMaxime Coste
That means commands can be completed using other commands and their completers. Yes that does makes sense. Closes #296
2015-05-04Make expand function (that expand %...{} tokens) publicMaxime Coste
2015-03-09ArrayView content is not const anymoreMaxime Coste
As in upcoming std c++ array_view, ArrayView<T> points to mutable data, use ArrayView<const T> or alias ConstArrayView<T> for const data.
2015-02-08Add optional helper for commands, to get parameter dependent helpMaxime Coste
Use for the set command to document options.
2015-01-12Yet more trackingMaxime Coste
2015-01-06Rename memoryview to ArrayViewMaxime Coste
2014-12-16Rework hashing, use a more extensible framework similar to n3876 proposalMaxime Coste
std::hash specialization is a pain to work with, stop using that, and just specialize a 'size_t hash_value(const T&)' free function.
2014-10-30Add scoped aliasesMaxime Coste
aliases are now stored in window, buffer, or globally.
2014-10-23centralize bit operation support for enum used as flagsMaxime Coste
2014-06-06Replace CommandManager::register_command*s* with register_aliasMaxime Coste
2014-05-07Improve error reporting when parsing commandsMaxime Coste
*debug* will contain line and column informations along with the responsible command name.
2014-04-21Use StringView in CommandManagerMaxime Coste
2014-04-08formatting changes in command_manager.ccMaxime Coste
2014-03-02Add a docstring to commandsMaxime Coste
2014-03-02Add command switches information, and automatically display itMaxime Coste
2014-03-02All commands now take directly a parameter parserMaxime Coste
The command parameters description are now stored in a ParameterDesc structure.
2014-01-27Fix compilation with clang 3.4Maxime Coste
2014-01-27Rework command completion to allow partial token completionMaxime Coste
Implement hook completion. fixes #44
2013-12-24CommandManager: use aliases for commands rather than duplicating dataMaxime Coste
Completion now only proposes full command names
2013-11-12Add support for hidden commands, that will not show on completionMaxime Coste
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-07-28Minor code cleanupsMaxime Coste
2013-07-26memoryview: always pass by valueMaxime Coste
2013-04-09sort includes directivesMaxime Coste
2013-04-03fix compilation with clang++Maxime Coste
2012-11-22code style cleanup in CommandManagerMaxime Coste
2012-11-21CommandManager: diagnose unterminated stringsMaxime Coste
2012-11-21move wrong_argument_count to commands.cc, where it is usedMaxime 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-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-08-23use a strongly typed int CharCount for character countsMaxime 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-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-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-04-14replace std::string references with StringMaxime 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-14CommandManager: use directly first command parameter as the command nameMaxime Coste
2011-11-26Add a Context parameter to commandsMaxime Coste
2011-09-23CommandManager: now a singletonMaxime Coste