summaryrefslogtreecommitdiff
path: root/src/register_manager.hh
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.
2025-02-16Revert "WIP history register"Maxime Coste
This is not finished yet, and pushed by accident, again... This reverts commit 22b461c3a0b22dd4501943230f0774c34f0b4b35.
2025-02-10WIP history registerMaxime Coste
2024-08-12Move debug utils to debug.hh/debug.ccMaxime Coste
Lots of code includes buffer_utils.hh just for write_to_debug_buffer which pulls many unnecessary dependencies. Reorganise to reduce compile times.
2024-08-12Reduce headers dependency graphMaxime Coste
Move more code into the implementation files to reduce the amount of code pulled by headers.
2022-08-16Remove stale comment about StaticRegisterJohannes Altmanninger
Commit d470bd2cc (Make numeric registers setable, 2017-02-14) removed the user-provided StaticRegister::operator= in favor of a set() member function, so this comment is no longer valid.
2020-12-23commands: add "registers" subcommand to :debugCole Helbling
This prints all non-empty registers and their value(s) to the `*debug*` buffer.
2020-07-21Do not trigger RegisterModified hooks on register about to be restoredMaxime Coste
This greatly reduces the amount of hooks triggered.
2020-07-19Add a RegisterModified hookMaxime Coste
This one has been a long time coming, I am still concerned this could impact performance a lot. This hook does *not* trigger for capture registers (0-9) or any other dynamic registers (that are not writable). Fixes #859
2020-02-15Fix invalid memory access when getting the main entry of empty registersMaxime Coste
Fixes #3370
2019-11-23src: Complete register names in `%reg{}` expansionsFrank LENORMAND
Builtin registers have name aliases that can be completed upon when using a `%reg{}` expansion from the prompt.
2019-07-02src: Cap the maximum size of history registersFrank LENORMAND
History registers (for prompt commands, pipe primitive commands etc) are populated interactively by the users, and currently have no size limit. This commits silently drops the oldest entries in the storage space to allow at most 100 entries, to prevent long-running editing sessions from hogging memory for data most likely never used.
2019-06-24Unify register saving/restoring to a VectorMaxime Coste
The previous "optimized" history register logic was unfortunately not restoring correctly as the order of entries in the history register could have been mutated.
2019-06-23Use register to store prompt historyMaxime Coste
2018-05-17Avoid needless constant allocation in StaticRegister::setMaxime Coste
2017-07-19Migrate code to c++14Maxime Coste
2017-03-07Replace uses of UnorderedMap with HashMapMaxime Coste
2017-02-22Try to please clang-3.5Maxime Coste
2017-02-14Make numeric registers setableMaxime Coste
Fixes #1214
2017-01-08Apply clang-tidy modernize to the codebaseMaxime Coste
2016-03-31Make DynamicRegister statically dispatch to its functionMaxime Coste
2015-11-25Refactor registers to initialize all of them at startup and add null registerMaxime Coste
Fixes #497
2015-04-23Move Register to register_manager.hhMaxime Coste
2015-01-14Even more memory trackingMaxime Coste
2015-01-12replace all std::vector with VectorMaxime 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-06-06Add support for long names for registersMaxime Coste
We can now access register / with the name slash, * with star, and | with pipe Fixes #23
2014-01-09Style changes, replace typedefs with usingsMaxime Coste
2013-04-09sort includes directivesMaxime Coste
2012-08-05Registers need a context to return their valuesMaxime Coste
2012-06-29support static and dynamic registers, add '%' (filename) and '.' (selection) ↵Maxime Coste
registers
2012-02-09Merge captures into registers, implements register insertionMaxime Coste
2012-02-07add a Register class, registers can now contain a list of stringMaxime Coste
That way, registers can be used to store per selection data
2011-09-23Basic support for yanking and pastingMaxime Coste