| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2025-06-28 | Move some String constructors out of the header | Maxime Coste | |
| Those do not really need to get inlined and pull std::max which really wants <algorithm> which is an expensive header. | |||
| 2025-06-27 | Remove <algorithm> include from string.hh | Maxime Coste | |
| This was only used for std::min and std::equal, which can be replaced with custom code and memcmp, this removes a costly header from the often used string.hh and may improve compilation speed slightly | |||
| 2025-05-11 | Fix compiler warning on space in string-literal suffix def | Johannes Altmanninger | |
| GCC complains: src/string.hh:376:39: warning: space between quotes and suffix is deprecated in C++23 [-Wdeprecated-literal-operator] 376 | inline constexpr StringView operator"" _sv(const char* str, size_t) | ^~ | |||
| 2025-05-11 | Update GDB pretty printer following SSO layout change | Johannes Altmanninger | |
| Commit 2754e27cf (Increase SSO from 22 to 23 chars., 2024-06-07) changed they layout of SSO-strings. Specifically, is_long() no longer takes a bit away from the size field. Update the GDB pretty printer accordingly, making it work with small strings again. | |||
| 2024-08-14 | Add missing include for non libstdc++ builds | Maxime Coste | |
| 2024-06-23 | Fix trailing whitespaces | Maxime Coste | |
| 2024-06-12 | Add some static_asserts in SSO code | Maxime Coste | |
| 2024-06-11 | Switch to bitfield. | Ben Judd | |
| 2024-06-07 | Fix build by moving include. | Ben Judd | |
| 2024-06-07 | Increase SSO from 22 to 23 chars. | Ben Judd | |
| 2024-02-06 | Use different hash algorithms for strings and file hashing | Maxime Coste | |
| For hash map, using fnv1a is faster as it is a much simpler algorithm we can afford to inline. For files murmur3 should win as it processes bytes 4 by 4. | |||
| 2023-11-03 | Replace std::lexicographical_compare_three_way with custom code | Maxime Coste | |
| On latest MacOS this function is still not implemented | |||
| 2023-10-25 | Remove redundant comparison operators | Maxime Coste | |
| Since C++20 (a != b) get automatically rewritten as !(a == b) if the != operator does not exist. | |||
| 2022-12-15 | Support adding ByteCount to void/char pointers without casting | Maxime Coste | |
| 2022-12-03 | Rework StringOps::substr implementation | Maxime Coste | |
| Avoid iterating over the whole string when the length is not provided just use the end iterator directly. | |||
| 2022-03-06 | Add a complete-command command to configure command completion | Maxime Coste | |
| This makes it possible to change command completion in hooks and paves the way to more flexibility in how custom commands can be completed | |||
| 2021-08-30 | Take a function SelectionList::insert to get string to insert | Maxime Coste | |
| This makes it unnecessary to allocate Vector<String> to insert and allows to remove the insert_pos pointer hack by passing it to the callback. | |||
| 2021-07-20 | Improve code-generation for Strings | Maxime Coste | |
| Make String::Data use trivial copy of the short/long union to avoid unnecessary branching there, inline release() as it can be elided by the compiler on moved-from Strings. | |||
| 2021-07-09 | Inline String::Data no-copy constructor | Maxime Coste | |
| 2020-03-29 | Fix empty strings not being zero terminated | Maxime Coste | |
| 2019-03-19 | Make String able to reference external data without copying | Maxime Coste | |
| Sometimes we really need to have a String instead of a StringView, but some of those strings might not need to own their data. Make it possible to explicitely construct a String that does not own the underlying buffer. Use it when parsing balanced strings. | |||
| 2018-04-05 | Fix some trailing spaces and a tab that sneaked into the code base | Maxime Coste | |
| 2017-10-20 | Constexprify various hash functions | Maxime Coste | |
| 2017-10-10 | Move all non-core string code to string_utils.{hh,cc} | Maxime Coste | |
| 2017-08-18 | Revert "Change HashCompatible trait to a variable template" | Maxime Coste | |
| This reverts commit b58f72315cbf7ee8921659dd129fd2f6a221bcfc. Unfortunately gcc-5.1 handling of variable template partial specializations is bugged. | |||
| 2017-08-14 | Change HashCompatible trait to a variable template | Maxime Coste | |
| 2017-08-14 | Use decltype(auto) return type for some to_string functions | Maxime Coste | |
| Remove explicit return type thats just duplicating the return expression. | |||
| 2017-07-19 | Migrate code to c++14 | Maxime Coste | |
| 2017-07-09 | Remove assert in String::String(Codepoint, ColumnCount) | Maxime Coste | |
| codepoint_width is locale dependent, and we could end up with it returning a different value depending on the locale. It is better to return a string of the wrong column length than fail on assert in this case as we cannot fix it anyway. Fixes #1489 | |||
| 2017-06-26 | Formatting fix | Maxime Coste | |
| 2017-06-23 | Use an HashMap to store options in option manager | Maxime 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-06-16 | Trim whitespaces surrounding docstrings | Maxime Coste | |
| Closes #1439 | |||
| 2017-06-06 | Fix spurious copies being made when using the format function | Maxime Coste | |
| We were not correctly forwarding the arguments, leading to copies of 'const String&' parameters. | |||
| 2017-05-26 | Small code style tweak | Maxime Coste | |
| 2017-03-06 | Introduce a custom HashMap implementation along with a quick benchmark | Maxime Coste | |
| 2017-01-29 | Make StringView and unit types trivial types | Maxime Coste | |
| 2017-01-08 | Apply clang-tidy modernize to the codebase | Maxime Coste | |
| 2016-12-17 | Fix join, we dont have a StringView from char array constructor | Maxime Coste | |
| 2016-12-17 | Escape the backslash chars as well when joining strings | Maxime Coste | |
| Fixes #1014 | |||
| 2016-12-14 | Handle correctly cases where codepoint_width returns -1 | Maxime Coste | |
| Fixes #972 | |||
| 2016-11-28 | Cleanup include dependencies a bit | Maxime Coste | |
| 2016-10-31 | Add to_string(long long int) overload to fix OSX compilation | Maxime Coste | |
| 2016-10-01 | Rename get_width to codepoint_width | Maxime Coste | |
| 2016-10-01 | Support codepoints of variable width | Maxime Coste | |
| Add a ColumnCount type and use it in place of CharCount whenever more appropriate, take column size of codepoints into account for vertical movements and docstring wrapping. Fixes #811 | |||
| 2016-09-28 | Fix String::Data::reserve on big endian platforms, and document String::Data | Maxime Coste | |
| reserve was not ensuring the capacity would be pair, which is needed on big endian machines, as we use its least significant bit to flag short string optimizations. On little endian the bit we use is the 8th most significant (the least significant bit of the last byte), so we were not hitting any problems. Fixes #828 | |||
| 2016-09-26 | Assert substr from parameter is within the string | Maxime Coste | |
| Should catch #756 earlier if it happens again. | |||
| 2016-08-31 | Remove the to_string(unsigned) (it conflicts with to_string(size_t) on x86) | Maxime Coste | |
| Just cast to int when we pass an unsigned. | |||
| 2016-08-27 | Add a to_string overload for unsigned int | Maxime Coste | |
| 2016-08-06 | Add information of types of options | Maxime Coste | |
| 2016-07-27 | Ensure we cannot call StringView::StringView{Codepoint} | Maxime Coste | |
