| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-07-08 | Replace on_scope_end with CTAD with OnScopeEnd directly | Maxime Coste | |
| 2025-07-08 | Replace std::unique_ptr with a custom implementation | Maxime 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-03-24 | Fix prompt history recording when using mapped keys | Johannes Altmanninger | |
| Commit e3122ab2c (Refactor prompt history handling, 2023-07-05) was a nice simplification but it breaks a rare edge case. It suppresses history recording if all keys the prompt receives were synthesized. That's not quite the right criteria: it means that if prompt is created, edited and and executed, all via mapped keys, we fail to add to history. The criteria should rather be something like "if all keys the prompt receives came from synthesized events". Make it so. This allows us to get rid of the "noninteractive" nested bool that was only used for disabling history. | |||
| 2024-08-16 | include headers cleanup | AdriĆ Arrufat | |
| 2024-08-12 | Move debug utils to debug.hh/debug.cc | Maxime Coste | |
| Lots of code includes buffer_utils.hh just for write_to_debug_buffer which pulls many unnecessary dependencies. Reorganise to reduce compile times. | |||
| 2023-08-13 | Add a ProfileScope helper class to replace most profiling uses | Maxime Coste | |
| 2023-06-17 | Rename "disable_history" stack state to "noninteractive" | Johannes Altmanninger | |
| The commit after next will fix a bug where we wrongly disable prompt history in some scenarios. The root cause is that life span of "disable_history" does not model when we actually want to disable history. Let's rename the state variable to "noninteractive". It's set whenever we are executing a hook, mapping or command. Note that it's also active inside ":prompt"'s callback, which doesn't play well with the new name :( | |||
| 2023-02-14 | Immediately execute ModuleLoaded hooks for already loaded modules | Maxime Coste | |
| This is trickier than expected because ModuleLoaded hooks can (as any other hooks) use arbitrary regular expressions for their filter. Fixes #4841 | |||
| 2020-05-29 | Add a range based remove_if overload | Maxime Coste | |
| 2019-04-15 | Support named captures in hooks | Maxime Coste | |
| Fixes #2857 | |||
| 2019-02-17 | Fix uses of std::remove_if | Maxime Coste | |
| std::remove_if is not std::partition, it makes no guarantees on the state of the objects past the new end (they usually are in a moved-from state). | |||
| 2018-12-09 | Gather the list of hooks to run before running the parent | Maxime Coste | |
| This will prevent hooks added by the parent hook manager to be gathered, as was decided during the discussion for #2603 | |||
| 2018-10-23 | Refactor Hook management to have a well defined list of hooks | Maxime Coste | |
| Hooks are now an enum class instead of passing strings around. | |||
| 2018-09-12 | Change remove-hooks to take a regular expression | Maxime Coste | |
| All hooks whose group match this regex will be removed. Fixes #2380. | |||
| 2018-09-09 | src: Check that `Once` hooks to remove exist | Frank LENORMAND | |
| Fixes #2370. | |||
| 2018-08-16 | Add a test case for -once hooks and code style tweaks | Maxime Coste | |
| 2018-08-06 | src: Allow hooks to be run only once | Frank LENORMAND | |
| This commit implements the -once flag on the `:hook` command, which automatically removes a hook after it was run, to avoid having to declare a group and remove it in the hook implementation. Closes #2277 | |||
| 2018-05-26 | Do not expose C++ typeid().name to user facing errors on wrong option type | Maxime Coste | |
| Fixes #2079 | |||
| 2018-04-26 | Add a -always switch to hook command to ignore hooks disabled | Maxime Coste | |
| Hooks specified as always will run regardless of the hook disabled status. | |||
| 2018-04-07 | Make FaceRegistry scoped | Maxime Coste | |
| set-face now takes a scope argument, and faces can be overridden on a buffer or window basis. colorscheme apply on global scope, which should be good enough for now. Fixes #1411 | |||
| 2017-11-25 | Small formating tweak | Maxime Coste | |
| 2017-10-06 | Move HookManager::Hook definition in the cpp | Maxime Coste | |
| This avoids including regex.hh in the header. | |||
| 2017-08-29 | Rename containers.hh to ranges.hh (and Container to Range) | Maxime Coste | |
| 2017-06-07 | Use microseconds instead of milliseconds for built-in profiling | Maxime Coste | |
| 2017-06-07 | Fix memory errors due to sharing the MatchResults in the Hooks struct | Maxime Coste | |
| A hook execution triggered by another hook execution would change the shared MatchResults object, which is a wrong behaviour and makes it point to dead string data. | |||
| 2017-06-07 | Move hook executing logic into HookManager | Maxime Coste | |
| The existing HookManager was able to run arbitrary hook functions, but in practice was only used for user provided textual hooks. That separation was causing some suboptimal performances, by moving that logic directly in the hook manager we can improve hook filtering performance which is a big part of startup time when opening lots of files. | |||
| 2017-06-07 | Avoid expensive copies of Hooks in HookManager::run_hooks | Maxime Coste | |
| Use a deferred deletion mechanism to ensure hooks are kept alive for the duration of run_hooks. | |||
| 2017-06-07 | Use a vector instead of a hash map to store hooks | Maxime Coste | |
| 2017-03-16 | Try to clean up option include a bit | Maxime Coste | |
| 2017-03-07 | Replace IdMap with HashMap | Maxime Coste | |
| 2017-02-19 | Fix handling of disabled_hooks regex | Maxime Coste | |
| 2017-02-19 | Copy the list of hooks to run before iterating on them and running them | Maxime Coste | |
| Running hooks could result in the hook list getting mutated, leading to potential crashes. Fixes #1222 | |||
| 2017-02-19 | Small naming tweak in HookManager | Maxime Coste | |
| 2016-09-26 | Make hook disabling work for all hooks, not only user hooks | Maxime Coste | |
| Fixes #823 | |||
| 2016-07-24 | Introduce chrono.hh | Maxime Coste | |
| 2016-07-11 | Do not throw when recursive hook calls are detected | Maxime Coste | |
| Running hooks is non critical, and should never `fail` as far as caller is concerned. | |||
| 2016-06-27 | Detect recursive hook run and abort in that case | Maxime Coste | |
| Fixes #709 | |||
| 2016-03-17 | Write the hook parameter in the debug buffer on error in hook | Maxime Coste | |
| 2016-03-08 | Rework container helpers, use pipe syntax and cleanup implementation | Maxime Coste | |
| use 'container | filter(func) | reverse() | transform(func)' instead of 'transform(reverse(filter(container), func), func)' to express container transformations. | |||
| 2015-11-21 | Add a profiling debug flag to get timings for hooks/shell eval | Maxime Coste | |
| 2015-11-19 | Introduce a debug flags option to control some tracing | Maxime Coste | |
| Support shell|hooks and write traces in debug buffer | |||
| 2015-09-16 | Store key hash in IdMap | Maxime Coste | |
| 2015-07-08 | Notify user when some hooks failed | Maxime Coste | |
| 2015-06-06 | Move write_debug to buffer utils as write_to_debug_buffer | Maxime Coste | |
| 2015-06-01 | Port even more code to use format function | Maxime Coste | |
| 2015-03-10 | Refactor String, use a common StringOps interface, hide std::string | Maxime Coste | |
| 2015-03-05 | Use a IdMap for storing hooks | Maxime Coste | |
| The number of hook names is small (<20), using an UnorderedMap is overkill, and prevents using StringView for key searching. | |||
| 2014-12-23 | Rename id_map to IdMap | Maxime Coste | |
| 2014-12-23 | Unify completion from container content logic | Maxime Coste | |
| 2014-10-20 | Port more code to StringView instead of const String& | Maxime Coste | |
