summaryrefslogtreecommitdiff
path: root/core/string
AgeCommit message (Collapse)Author
2022-10-11Merge pull request #64268 from timothyqiu/is-finiteRémi Verschelde
Add `is_finite` method for checking built-in types
2022-10-09Fix simplify_path() breaking uid://kobewi
2022-10-08Add `is_finite` method for checking built-in typesHaoyu Qiu
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-10-03Merge pull request #64833 from MarcusElg/naninfprintingRémi Verschelde
Improve string formatting (%f and %v) for inf and nan
2022-09-28Fix MSVC warning C4706: assignment within conditional expressionRémi Verschelde
Part of #66537.
2022-09-26Style: Cleanup header guards for consistencyRémi Verschelde
Fix file names for {Static,Lightmap}RaycasterEmbree.
2022-09-17HarfBuzz: Update to version 5.2.0, add new Unicode 15 blocks and scripts.bruvzg
2022-09-01Merge pull request #64714 from Chaosus/string_remove_eraseRémi Verschelde
2022-08-30Add `String.to_{camel,pascal,snake}_case` methodsDanil Alexeev
2022-08-29Rename String `plus_file` to `path_join`Aaron Franke
2022-08-25Improve string formatting for %f and %v for inf and nanMarcus Elg
2022-08-24Replace Array return types with TypedArray 3kobewi
2022-08-24Merge pull request #63728 from MarcusElg/%vRémi Verschelde
Add %v for formatting vectors
2022-08-23Add %v for formatting vectorsMarcus Elg
2022-08-22Improved performance of String repeat methodVolTer
2022-08-22Remove `String::erase` method declarationYuri Rubinsky
2022-08-18Fix undefined behavior in `String::operator+=(const String &)`kleonc
2022-08-08Add tests for empty/unnamed arguments to ClassDB, Variant, GDScriptYuri Sizov
2022-08-02Merge pull request #61315 from lawnjelly/variant_bucket_poolsRémi Verschelde
Variant memory pools
2022-08-02[TextServer] Implement ICU/UAX 31 based `is_valid_identifier` function.bruvzg
2022-08-01File: Re-add support to skip CR (`\r`) in `File::get_as_text`Rémi Verschelde
This was removed in #63481, and we confirmed that it's better like this, but we add back the possibility to strip CR as an option, to optionally restore the previous behavior. For performance this is done directly in `String::parse_utf8`. Also fixes Android `FileAccess::get_line()` as this one _should_ strip CR. Supersedes #63717.
2022-07-25Code quality: Fix header guards consistencyRémi Verschelde
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
2022-07-07Allows parsing of invalid UTF-16 surrogates (can be encountered in Windows ↵bruvzg
filenames) and some non-standard UTF-8 variants, makes Unicode parse errors more verbose.
2022-07-04Variant memory poolslawnjelly
Memory pools via PagedAllocator for Transform2D, Transform3D, Basis and AABB.
2022-07-01implement bone renamer in importerSilc Renew
2022-06-29Adding print_rich for printing with BBCodeVoylin
2022-06-12Fix parameter name for String.left and String.rightHaoyu Qiu
2022-06-03Fix `String.uri_encode` on WindowsHaoyu Qiu
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-20Tweak 64-bit integer overflow message to mention that it's a signed typeHugo Locurcio
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-19Add dedicated macros for property name extractionHaoyu Qiu
* Replace case-by-case extraction with PNAME & GNAME * Fix group handling when group hint begins with property name * Exclude properties that are PROPERTY_USAGE_NO_EDITOR * Extract missing ADD_ARRAY*, ADD_SUBGROUP* macros
2022-05-17Create onready variables when dropping nodes and holding CtrlHaoyu Qiu
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-12Add documentation comments for internationalization C++ macrosHugo Locurcio
2022-05-12Add a new HashMap implementationreduz
Adds a new, cleaned up, HashMap implementation. * Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing). * Keeps elements in a double linked list for simpler, ordered, iteration. * Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much for performance vs keeping the key, but helps replace old code). * Uses a more modern C++ iterator API, deprecates the old one. * Supports custom allocator (in case there is a wish to use a paged one). This class aims to unify all the associative template usage and replace it by this one: * Map<> (whereas key order does not matter, which is 99% of cases) * HashMap<> * OrderedHashMap<> * OAHashMap<>
2022-05-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
2022-05-01Fix left aligned integer sign in string formattingHaoyu Qiu
2022-04-27Merge pull request #59979 from bruvzg/cpp_check2Rémi Verschelde
2022-04-25Implement Scene Unique Nodesreduz
Implements https://github.com/godotengine/godot-proposals/issues/4096 * Nodes can be marked unique to the scene in the editor (or via code). * Unique nodes can be accessed via the **%** prefix at any point in the path. From that point in the path (depending on whether the scene of the path is), the unique node will be fetched. * Implementation is very optimal, as these nodes are cached.
2022-04-20Fix more issues found by cppcheck.bruvzg
2022-04-11Merge pull request #60046 from Zylann/print_line_functionRémi Verschelde
2022-04-11Make FileAccess and DirAccess classes reference counted.bruvzg
2022-04-09Changed print_line macro to a functionMarc Gilleron
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-04-04Zero initialize all pointer class and struct membersRémi Verschelde
This prevents the pitfall of UB when checking if they have been assigned something valid by comparing to nullptr.
2022-03-28String: Remove TTR and DTR defines in non-tools buildRémi Verschelde
This ensures we don't use TTR in runtime code, as it's specifically meant to source translations for the editor.
2022-03-17Unify TextServer built-in module and GDExtension code.bruvzg
2022-03-15Improve `--debug-stringnames` to be more usefulHugo Locurcio
- Print all StringNames, not just the top 100. - Print statistics at the end of the list of StringNames, with unreferenced and rarely referenced StringNames. - List the CLI argument in `--help` and shell completion.