summaryrefslogtreecommitdiff
path: root/core/string
AgeCommit message (Collapse)Author
2021-11-30Don't return reference on copy assignment operatorsRémi Verschelde
We prefer to prevent using chained assignment (`T a = b = c = T();`) as this can lead to confusing code and subtle bugs. According to https://en.wikipedia.org/wiki/Assignment_operator_(C%2B%2B), C++ allows any arbitrary return type, so this is standard compliant. This could be re-assessed if/when we have an actual need for a behavior more akin to that of the C++ STL, for now this PR simply changes a handful of cases which were inconsistent with the rest of the codebase (`void` return type was already the most common case prior to this commit).
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-15Allow dehardcoding documentation branch and URL in docs linksRémi Verschelde
This makes it possible to change the branch of the documentation that URLs are pointing to without having to modify all class reference files. In the XML class reference, the `$DOCS_URL` placeholder should be used, and will be replaced automatically in the editor and when generating the RST class reference. The documentation branch string is set in `version.py`. Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-11-11String: Remove `erase` method, bindings can't mutate StringRémi Verschelde
2021-11-11Add missing characters for property name quotingHaoyu Qiu
2021-11-03Rename `PROPERTY_USAGE_NOEDITOR` to `PROPERTY_USAGE_NO_EDITOR`Hugo Locurcio
This is consistent with other constants that include `NO`, such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-10-28Merge pull request #54350 from akien-mga/clang-format-dont-align-operandsRémi Verschelde
2021-10-28Merge pull request #53526 from KoBeWi/super_printRémi Verschelde
2021-10-28clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
2021-10-22Merge pull request #54081 from Rubonnek/add_bin_messages_masterRémi Verschelde
2021-10-21Accept capital B in String::bin_to_int prefixWilson E. Alvarez
2021-10-21Add error messages to String::hex_to_int, and accept capital X in prefixWilson E. Alvarez
2021-10-14Fix specific warnings issues by ClangK. S. Ernest (iFire) Lee
Found by `scons dev=yes` on llvm-mingw.
2021-10-07Change print_line() to use any number of Variantskobewi
2021-10-05Merge pull request #53225 from aaronfranke/c-localeRémi Verschelde
2021-10-04GDScript completion: Handle quote style ad-hoc to remove editor dependencyRémi Verschelde
`core` and `scene` shouldn't depend on `editor`, so they can't query this style setting in `get_argument_options`. But we can handle it after the fact in GDScript's completion code. Also cleans up a couple extra unused invalid includes in `core`.
2021-10-04Merge pull request #53270 from akien-mga/charproxy-add-copy-constructorRémi Verschelde
2021-09-30Use range iterators for `Map`Lightning_A
2021-09-30CharProxy: Add copy constructorRémi Verschelde
Adding the copy constructor is needed to solve a `-Wdeprecated-copy` warning from GCC and Clang, which is raised when upgrading doctest from 2.4.4 to 2.4.6.
2021-09-29Add locale rename for the "C" localeAaron Franke
2021-09-29Implement override of get_message and get_plural_messageO01eg
2021-09-15Fix String::num_real and String test cases when compiling with doublesAaron Franke
2021-09-13Merge pull request #52049 from theraot/masterRémi Verschelde
2021-09-08Merge pull request #52408 from GiantBlargg/fix-string-castFabio Alessandrelli
Fix invalid string cast
2021-09-04fix invalid string castDaniel Doran
2021-08-31Remove `#ifdefs` for handling compilation with Visual Studio < 2015Hugo Locurcio
Godot 3.3 and later require Visual Studio 2017 to be compiled.
2021-08-29Rename String::is_rel_path to String::is_relative_pathWilson E. Alvarez
2021-08-24Fix get_base_dir windows top level directory logicTheraot
This is a fix for https://github.com/godotengine/godot/issues/52048
2021-08-18String: Remove old NO_USE_STDLIB code pathRémi Verschelde
We're using the standard library in many core classes by now so this code path no longer makes sense.
2021-08-18String: Fix default decimals truncation in num and num_realRémi Verschelde
Fixes undefined behavior, and fixes the logic for negative powers of ten. Fixes #51764. Adds tests to validate the changes and prevent regressions. Adds docs for `String.num`.
2021-08-13Convert ustring macros to inline functions and use them wherever possible.Anilforextra
Add new inline functions to check if a character is lowercase or uppercase. Remove unused upper case macro.
2021-08-08Merge pull request #51395 from angad-k/pseudolocalization-squashedRémi Verschelde
Add pseudolocalization to Godot. (GSoC'21)
2021-08-08add pseudolocalization to GodotAngad Kambli
2021-07-25Use const references where possible for List range iteratorsRémi Verschelde
2021-07-23Use C++ iterators for Lists in many situationsAaron Franke
2021-07-22Merge pull request #50319 from nekomatata/optimize-node-path-checkRémi Verschelde
Optimize NodePath update when renaming or deleting nodes in the editor
2021-07-20Adds ability to debug stringnamesreduz
* References (which include hash tables) can be profiled with --debug-stringnames
2021-07-20Merge pull request #50655 from JFonS/sname_optRémi Verschelde
Editor StringName and Viewport optimizations
2021-07-20Editor StringName and Viewport optimizationsJoan Fons
* Added explicit return type to the SNAME macro. * Add some extra SNAME usages. * Change some ClassDB methods to use const StringName & arguments. * Cache the Window parent in Control because it's used in is_layout_rtl(), which is called often. * Only enable internal processing for viewports that need it. * Change CanvasItem::group to be a StringName because it's only used as that.
2021-07-20Merge pull request #50518 from timothyqiu/locale-azRémi Verschelde
Fix missing locale names
2021-07-18Optimize StringName usagereduz
* Added a new macro SNAME() that constructs and caches a local stringname. * Subsequent usages use the cached version. * Since these use a global static variable, a second refcounter of static usages need to be kept for cleanup time. * Replaced all theme usages by this new macro. * Replace all signal emission usages by this new macro. * Replace all call_deferred usages by this new macro. This is part of ongoing work to optimize GUI and the editor.
2021-07-16Fix missing locale namesHaoyu Qiu
2021-07-13Merge pull request #49291 from NoFr1ends/fix-49262Rémi Verschelde
String::format leave passed values untouched
2021-07-09Optimize NodePath update when renaming or deleting nodes in the editorPouleyKetchoupp
Now the process uses a Map to lookup node pointers instead of iterating over all modified node paths in a list and comparing them for each property to check. The process also avoids checking properties with empty node paths and does an early exit on deleted nodes to avoid checking the node and its descendants. Also made a minor change in NodePath::rel_path_to() to avoid resizing a Vector many times for long paths (with copy-on-write each time). Now it's down to 2 resize calls in any case.
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-16Rename `is_valid_integer()` to `is_valid_int()`Lightning_A
Method from `String`
2021-06-16Merge pull request #49505 from underdoeg/patch-2Rémi Verschelde
fix url parsing with port numbers
2021-06-13Merge pull request #34668 from aaronfranke/to-stringRémi Verschelde
[Core] Reformat structure string operators
2021-06-11Reformat structure string operatorsAaron Franke
The order of numbers is not changed except for Transform2D. All logic is done inside of their structures (and not in Variant). For the number of decimals printed, they now use String::num_real which works best with real_t, except for Color which is fixed at 4 decimals (this is a reliable number of float digits when converting from 16-bpc so it seems like a good choice)