summaryrefslogtreecommitdiff
path: root/src/option_manager.cc
AgeCommit message (Collapse)Author
2025-07-08Replace std::unique_ptr with a custom implementationMaxime Coste
<memory> is a costly header we can avoid by just implementing UniquePtr ourselves, which is a pretty straightforward in modern C++, this saves around 10% of the compilation time here.
2024-04-12Introduce "local" scope in evaluate-commandsMaxime Coste
When using `eval` a new scope named 'local' gets pushed for the whole evaluation, this makes it possible to temporarily set an option/hook/alias... Local scopes nest so nested evals do work as expected. Remove the now trivial with-option command
2019-01-20Defer deletion of unsetted option to return to main loopMaxime Coste
Fixes #2572
2018-11-28Fix hooks triggering on unset-option even if parent has same valueMaxime Coste
2018-03-27Give more hints in "option not found" error.Delapouite
2018-03-13ranges: Add transform overload taking directly a pointer to memberMaxime Coste
This overload will forward to the general transform implementation using std::mem_fn to generate a callable.
2018-02-20Rewrite OptionManager::flatten_options to use rangesMaxime Coste
Avoid accumulating the flattened options into a vector, generate a lazy range that will give the proper list.
2017-06-23Use an HashMap to store options in option managerMaxime Coste
Turns out looking for options can get pretty slow, so O(1) lookup seems better. This should improve the performance of the #1460 issue
2017-03-15Migrate WithBitOps template specialization to with_bit_ops functionMaxime Coste
This way we dont depend on knowing the base template to enable bit ops on an enum type.
2017-02-20Correctly handle mutation of the watcher list while iterating on themMaxime Coste
Fixes #1227
2016-10-11More transform(...) filter cleanup using mem_fn when possibleMaxime Coste
2016-09-26OptionDescs are const in OptionRegistryMaxime Coste
2016-08-21Dont consider OptionManager watcher list as part of the state of the option ↵Maxime Coste
manager
2016-04-17Use common completion system for OptionManager::complete_option_nameMaxime Coste
2015-08-10Add an unset command to remove an option value (falling back to parent)Maxime Coste
unset is not applicable to global scope.
2015-08-10Move option name completion to the OptionRegistryMaxime Coste
Option names are the same for every option manager.
2015-04-26Move option_not_found exception to the cpp fileMaxime Coste
2014-11-16Yet more StringView params, less const String&Maxime Coste
2014-10-30Add scope class and encapsulate Options, Keymaps, Aliases and Hooks in itMaxime Coste
2014-10-06scrolloff is now a line,column pairMaxime Coste
Fixes #152
2014-08-21Add a 'disabled_hooks' regex optionMaxime Coste
Hooks whose group matches this regex wont get executed.
2014-08-19Remove option checkers, handle that through the type systemMaxime Coste
Use a specific type for InsertCompleterDesc with checks in the option_{from,to}_string functions
2014-07-10Change autoinfo option to be an integer, allowing different levelsMaxime Coste
2014-05-25Disable 'interactive' options in :exec/:evalMaxime Coste
Incremental search, automatic info and completion are not needed in non interactive context.
2014-05-11use words=all rather than words=buffer for default insert word completionMaxime Coste
2014-04-18Use StringView for completion functionsMaxime Coste
2014-04-12Extract option descriptions in an shared OptionDesc classMaxime Coste
2014-04-11Add a docstring to optionsMaxime Coste
2014-03-25Remove the shell option, always use /bin/shMaxime Coste
2014-03-15Insert mode completion execute completers in order, and supports multiple optionMaxime Coste
The 'completions' option is gone, just add option=completion_option_name in the completers list.
2014-01-03Try prefix completion and then subsequence completion for option namesMaxime Coste
fixes #4
2013-12-15Remove insert_hide_sel optionMaxime Coste
2013-11-12Add support for hidden options, not showed by completionMaxime Coste
the decl command can take a -hidden parameter to hide an option
2013-11-06make align tab-awareMaxime 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-10-21Add an autoreload YesNoAsk option, for configuring buffer reloading behaviour.Maxime Coste
2013-09-23Add prefix_match function and use it instead of adhoc codeMaxime Coste
2013-08-02Add support for filename insert mode completionMaxime Coste
2013-07-26enable autoinfo by defaultMaxime Coste
2013-05-20Word completion can optionally look for candidates in all buffersMaxime Coste
completers option accept word=buffer or word=all values
2013-05-16Show an info box with available option when waiting for a keyMaxime Coste
Controled with the autoinfo option (disabled by default)
2013-05-16Add scrolloff option supportMaxime Coste
2013-05-06Option can be declared with a checker function.Maxime Coste
The checker function may throw if to be set option value is invalid. Implemented with the completers option.
2013-05-06add unordered_set option support, use it for completersMaxime Coste
2013-05-03add a completers option for specifying which completer to use for ↵Maxime Coste
BufferCompleter
2013-04-09sort includes directivesMaxime Coste
2013-04-09rename assert to kak_assert to avoid collisionsMaxime Coste
2013-04-01Set default shell to bash, as most kak files requires itMaxime Coste
2013-03-26Make TypedOption templates publicMaxime Coste
2013-03-26Add a special option type LineAndFlag, use it for FlagLines highlighterMaxime Coste