| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 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-07-08 | Remove uses of Regex in BufferManager by taking a more general filter | Maxime Coste | |
| 2025-06-03 | Prevent deletion of buffers while creating new windows | Maxime Coste | |
| `kak -n -E 'hook global WinCreate .* %{ delete-buffer }'` was crashing because we would delete the buffer during window construction, which would not be able to delete the window as it was not fully constructed and registered yet. This led to a window referencing a deleted buffer. Fixing this by deleting the window later on failed because we can enter an infinite loop where we constantly create a new *scratch* buffer, then a window to display it, which deletes that buffer. Make it an error to try to delete a buffer while a new window is being setup by adding a Locked flag to buffers and checking that in BufferManager::delete_buffer Fixes #5311 | |||
| 2025-02-19 | Cleanup file.cc/hh dependencies | Maxime Coste | |
| file.cc/hh should not know about Context, Buffer, etc... It should be a pretty low level set of helper functions. Move buffer related functions to buffer_utils and extract busy indicators to callers. | |||
| 2024-06-05 | Echo an information message about *scratch* buffer and leave it empty | Maxime Coste | |
| Having to manually clear the scratch was never really nice and hopefully this will be less annoying and as helpful to newcomers. | |||
| 2024-04-27 | Ensure re-used fifo buffers makes that buffer the latest opened | Maxime Coste | |
| 2024-04-27 | Add buffer -matching switch | Maxime Coste | |
| 2024-02-28 | Fix unnecessary buffer line copy in BufferManager::create_buffer | Maxime Coste | |
| 2024-02-28 | Templatize StringData::create | Maxime Coste | |
| This improves performance by letting the compiler optimize most use cases where string count and length are known are compile time. | |||
| 2021-05-28 | Support opening files bigger than 2 GiB | Maxime Coste | |
| The real technical limit is with lines bigger than 2 GiB and buffers with more than 2 Gi lines, refactor buffer loading to make it possible to load those files. Fix an overflow with the hash_data function at the same time | |||
| 2020-02-24 | Add a new 'arrange-buffers' to let users change the order of the buflist | Olivier Perret | |
| 2019-11-22 | Fix crash when deleting buffers in a BufClose hook | Maxime Coste | |
| 2019-04-12 | Prevent conversion to client on suspend from disconnecting other clients | Maxime Coste | |
| clear the client manager in the to be converted process without sending exit messages as the forked server will still be there. Fixes #2847 | |||
| 2019-03-19 | Fix typo in scratch buffer default content | Maxime Coste | |
| 2019-03-17 | Add a text in scratch buffer to make it explicit it wont be saved | Maxime Coste | |
| Fixes #2759 | |||
| 2019-02-17 | Run WinClose hook before putting the window into trash | Maxime Coste | |
| 2018-05-21 | Do not reuse m_buffer_trash to store dying buffers in ~BufferManager | Maxime Coste | |
| Doing that clears m_buffer_trash, deleting buffers contained there, but we are not ready to have Buffer destructors running yet as we did not clear the ClientManager, meaning we might have free windows pointing to buffers in the buffer trash. | |||
| 2018-04-06 | Make error messages more consistent | Delapouite | |
| 2018-04-05 | Add new buffers at the back of the buffer list | Maxime Coste | |
| This will be reverted if we discover why we were doing things the over way around. Fixes #1881 | |||
| 2018-03-25 | Remove contains_that and use any_of to be closer to the c++ stdlib | Maxime Coste | |
| 2018-02-18 | BufferManager: Support missing ClientManager | Maxime Coste | |
| 2017-08-29 | Rename containers.hh to ranges.hh (and Container to Range) | Maxime Coste | |
| 2016-11-29 | Small cleanup in BufferManager code | Maxime Coste | |
| 2016-10-13 | Always allow to delete a buffer, just recreate a scratch buffer if needed | Maxime Coste | |
| Fixes #850 | |||
| 2016-10-11 | Only create a default *scratch* when we dont have any non debug buffers | Maxime Coste | |
| Fixes #852 Closes #856 | |||
| 2016-10-10 | Convert some uses of lambda to more concise std::mem_fn | Maxime Coste | |
| 2016-07-24 | Merge remote-tracking branch 'lenormf/readonly-mode' | Maxime Coste | |
| 2016-07-24 | Replace C-style operators with their alphabetical equivalent | Frank LENORMAND | |
| 2016-07-23 | Implement a `readonly` mode | Frank LENORMAND | |
| This commit introduces the `readonly` variable as well as the `-ro` command line option which prevent buffers from being overwritten on disk when the `write` command is used without arguments. Some buffers can selectively be put in readonly mode by setting the `readonly` variable on the `buffer` scope, the `global` mode will affect all buffers (even those who will be open subsequently), using the `window` scope will have no effect. Closes #685 | |||
| 2016-07-10 | Ensure buffer create/close hooks are run at appropriate times | Maxime Coste | |
| They used to be ran before the buffer was added to the buffer list we now run them afterwards. | |||
| 2016-07-04 | Avoid possible access to an invalid, being deleted buffer list. | Maxime Coste | |
| 2016-05-15 | Fix duplicate buffer problem, fix real_path beahviour | Maxime Coste | |
| 2016-05-14 | BufferManager now owns the Buffers instead of registering them | Maxime Coste | |
| 2016-05-14 | Delay window deletion until we get back to main loop | Maxime Coste | |
| Avoid WinResize hooks while redrawing, ensure window resize only take place while handling user input. Fixes #672 | |||
| 2016-03-03 | destroy buffer manager first but clear clients before destroying buffers. | Maxime Coste | |
| Fixes #612 | |||
| 2016-03-02 | BufferManager should outlive ClientManager in the end | Maxime Coste | |
| If not, clients end up keeping references on a buffer while it it being deleted. | |||
| 2016-03-02 | Ensure ClientManager is always outliving the BufferManager | Maxime Coste | |
| 2015-11-07 | Store the last used buffer in clients | Maxime Coste | |
| Fixes #474 | |||
| 2015-09-08 | Tweak BufferManager::delete_buffer implementation | Maxime Coste | |
| 2015-08-06 | ensure a buffer is not referenced a second time, just before actually ↵ | Maxime Coste | |
| deleting it It can happen in certain case that a buffer gets referenced after it gets moved to the trash, for example when it gets deleted during its construction (due to BufCreate hook for example). | |||
| 2015-07-08 | Gracefully handle exception when opening files given on command line | Maxime Coste | |
| Fixes #310 | |||
| 2015-06-01 | Port more code to use the format function instead of adhoc string concat | Maxime Coste | |
| 2015-04-23 | Fix :open bug that could set a deleted buffer as the last used one | Maxime Coste | |
| 2015-03-12 | Avoid calling real_path when not needed in BufferManager::get_buffer_ifp | Maxime Coste | |
| 2015-02-23 | Use RefPtr as SafePtr backend | Maxime Coste | |
| 2015-01-26 | Try to improve ga behaviour | Maxime Coste | |
| 2014-12-23 | Extract complete_buffer_name as a free function in commands.cc | Maxime Coste | |
| 2014-12-23 | Unify completion from container content logic | Maxime Coste | |
| 2014-10-13 | Do not assert on SIGTERM and backup modified buffers on signal induced ↵ | Maxime Coste | |
| termination | |||
| 2014-08-18 | Do not escape completions in completer functions let the client decide | Maxime Coste | |
| Fixes #231 | |||
