ladybird/AK
asynts 2030084746 AK: Borrow exact format syntax form std::format.
Instead of just implementing format specifiers ad-hog this commit
implements the exact syntax std::format uses.

There are still a ton of features that are not supported by this
implementation, however, the format specifiers should be parsed
correctly.

In some cases however, the format specifiers aren't quite parsed
correctly, for example:

    String::formatted("{:{}}", 42, 4)

should produce the string "  42" however an (unrelated) assertion fails.
This is because vformat doesn't consider nested parentheses. I have to
spend some time coming up with a simple way of doing this, I don't feel
like doing that right now.

The fundamental code for this already exists, by limiting the number of
format arguments (arbitrarily) to 256 large widths are used to encode
that these should be taken from other format parameters.
2020-09-26 00:00:50 +02:00
..
Tests Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Array.h AK: Add template deduction guides for Array. 2020-09-21 20:17:36 +02:00
Assertions.h AK+LibC: Add TODO() as an alternative to ASSERT_NOT_REACHED() 2020-05-30 11:31:49 +02:00
Atomic.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Badge.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Base64.cpp AK: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
Base64.h AK: Change the signature of AK::encode_base64() to use Span. 2020-07-27 19:58:09 +02:00
BinarySearch.h AK: Fix the signature of binary_search. 2020-08-26 21:07:53 +02:00
Bitmap.h AK: Add Bitmap::find_one_anywhere and optimize Bitmap::find_first 2020-09-09 13:02:14 +02:00
BitStream.h AK: Lower the requirements for InputStream::eof and rename it. 2020-09-14 20:58:12 +02:00
Buffered.h AK: Lower the requirements for InputStream::eof and rename it. 2020-09-14 20:58:12 +02:00
ByteBuffer.cpp AK: Prevent confusing silent misuse of ByteBuffer 2020-08-22 17:18:14 +02:00
ByteBuffer.h AK: Fix ByteBuffer zero bytes allocations 2020-08-30 17:30:48 +02:00
Checked.h AK: Demonstrate and fix Checked 2020-08-26 00:55:13 +02:00
CircularDeque.h AK: Add enqueue_begin() for the CircularDeque class (#1320) 2020-03-02 09:50:43 +01:00
CircularDuplexStream.h AK: Lower the requirements for InputStream::eof and rename it. 2020-09-14 20:58:12 +02:00
CircularQueue.h AK: Add CircularDuplexStream class. 2020-08-26 21:07:53 +02:00
CMakeLists.txt Meta: Install source files at /usr/src/serenity 2020-08-15 15:06:35 +02:00
Concepts.h AK: Add SFINAE fallback for AK C++ concepts use, for Coverity compiler 2020-08-17 09:17:57 +02:00
Demangle.h Revert "AK: Don't demangle in serenity :(" 2020-05-20 16:24:26 +02:00
DistinctNumeric.h AK: Fix description of DistinctNumeric around operator bool 2020-08-22 17:18:14 +02:00
DoublyLinkedList.h AK: Make all DoublyLinkedList search methods use Traits<T>::equals (#3404) 2020-09-05 14:17:14 +02:00
Endian.h AK: Don't swap endianness when writing endian wrappers to stream. 2020-08-29 17:44:34 +02:00
FlyString.cpp Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
FlyString.h AK: Tweak String::is_one_of() and FlyString::is_one_of() 2020-07-28 18:55:47 +02:00
Format.cpp AK: Borrow exact format syntax form std::format. 2020-09-26 00:00:50 +02:00
Format.h AK: Borrow exact format syntax form std::format. 2020-09-26 00:00:50 +02:00
Forward.h AK: Remove BufferStream class. 2020-09-21 09:37:49 +02:00
Function.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
GenericLexer.cpp Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
GenericLexer.h AK: Add GenericLexer::remaining. 2020-09-26 00:00:50 +02:00
HashFunctions.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
HashMap.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
HashTable.h AK: HashTable add a constructor that allows preallocation of capacity + Use in CppLexer. (#3147) 2020-08-16 11:04:00 +02:00
IDAllocator.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
InlineLinkedList.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
IntrusiveList.h LibCore: Add a forward declaration header 2020-02-14 23:31:18 +01:00
IPv4Address.h AK: Add Endian.h header to replace NetworkOrdered.h. 2020-08-25 16:22:14 +02:00
IterationDecision.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Iterator.h AK: Add generic SimpleIterator class to replace VectorIterator. 2020-09-08 14:01:21 +02:00
JsonArray.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
JsonArraySerializer.h Meta: Claim copyright for files created by me 2020-01-24 15:15:16 +01:00
JsonObject.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
JsonObjectSerializer.h AK: Make JsonValue and JsonObjectSerializer speak int/long/long long 2020-05-22 13:57:23 +02:00
JsonParser.cpp AK: Add a GenericLexer and extend the JsonParser with it (#2696) 2020-08-09 11:34:26 +02:00
JsonParser.h AK: Remove empty destructor from JsonParser. 2020-09-08 14:01:21 +02:00
JsonPath.cpp Inspector: Expand and show properties in a TreeView 2020-07-01 11:18:19 +02:00
JsonPath.h Inspector: Expand and show properties in a TreeView 2020-07-01 11:18:19 +02:00
JsonValue.cpp AK: Fix JsonValue copy constructor behavior for 64-bit values 2020-07-06 18:38:08 +02:00
JsonValue.h AK: JsonParser improvements 2020-06-13 12:43:22 +02:00
kmalloc.h Revert "AK: Let the compiler provide the default new and delete operators" 2020-08-04 21:16:07 +02:00
kstdio.h AK+Kernel: Support snprintf 2020-08-22 20:55:10 +02:00
LexicalPath.cpp Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
LexicalPath.h AK: Rename FileSystemPath -> LexicalPath 2020-05-26 14:35:10 +02:00
LogStream.cpp AK: Resolve format related circular dependencies properly. 2020-09-23 21:45:28 +02:00
LogStream.h AK: Add outf, warnf and dbgf. 2020-09-23 21:45:28 +02:00
MACAddress.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
MappedFile.cpp AK: Unbreak building with extra debug macros 2020-08-30 09:43:49 +02:00
MappedFile.h AK: Make MappedFile store why it is invalid 2020-08-01 08:39:26 +02:00
MemMem.h AK+LibC+Kernel: Move the implementation of memmem to AK 2020-08-21 16:00:42 +02:00
Memory.h AK+LibC: Always use REP MOVSB/STOSB for memcpy()/memset() 2020-07-27 15:54:39 +02:00
MemoryStream.h LibAudio: Use InputMemoryStream instead of BufferStream. 2020-09-21 09:37:49 +02:00
NeverDestroyed.h AK: Consider long and unsigned long as integral types. 2020-09-22 15:06:40 +02:00
Noncopyable.h Meta: Force semi-colon after MAKE_AK_NONXXXABLE() 2020-08-27 10:12:04 +02:00
NonnullOwnPtr.h AK: Decorate AK::NonnullOwnPtr::leak_ptr() with [[nodiscard]] 2020-08-05 16:12:00 +02:00
NonnullOwnPtrVector.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
NonnullPtrVector.h AK: Add generic SimpleIterator class to replace VectorIterator. 2020-09-08 14:01:21 +02:00
NonnullRefPtr.h AK+Kernel: Help the compiler inline a bunch of trivial methods 2020-05-20 14:11:13 +02:00
NonnullRefPtrVector.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
NumberFormat.h AK: Fix human_readable_size corner cases 2020-08-23 11:24:55 +02:00
NumericLimits.h AK: Use "signed char" as the opposite of "unsigned char" 2020-07-18 17:57:40 +02:00
Optional.h AK: Add Optional::emplace method. 2020-08-30 09:56:10 +02:00
OwnPtr.h AK: Decorate AK::OwnPtr::leak_ptr() with [[nodiscard]] 2020-08-05 16:12:00 +02:00
Platform.h AK: Add Endian.h header to replace NetworkOrdered.h. 2020-08-25 16:22:14 +02:00
PrintfImplementation.h AK: Add format function like std::format or fmt::format. 2020-09-21 20:17:36 +02:00
Queue.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
QuickSort.h AK: Dual pivot quicksort implementation (#1838) 2020-04-18 13:58:49 +02:00
Random.h Lagom: Adjust AK, LibCore and LibTLS to build on MacOS 2020-05-30 00:36:13 +02:00
RefCounted.h Meta: Force semi-colon after MAKE_AK_NONXXXABLE() 2020-08-27 10:12:04 +02:00
RefPtr.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Result.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
ScopedValueRollback.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
ScopeGuard.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
SharedBuffer.cpp Lagom: Add LibGemini, LibGfx 2020-07-23 23:02:28 +02:00
SharedBuffer.h Lagom: Add LibGemini, LibGfx 2020-07-23 23:02:28 +02:00
Singleton.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
SinglyLinkedList.h AK: SinglyLinkedList use Traits<T>::equals in find 2020-09-06 21:56:32 +02:00
SinglyLinkedListWithCount.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Span.h AK: Add missing const in Span::operator==. 2020-09-21 09:37:49 +02:00
StdLibExtras.h AK: Consider long and unsigned long as integral types. 2020-09-22 15:06:40 +02:00
Stream.h AK: Lower the requirements for InputStream::eof and rename it. 2020-09-14 20:58:12 +02:00
String.cpp AK: Resolve format related circular dependencies properly. 2020-09-23 21:45:28 +02:00
String.h AK: Resolve format related circular dependencies properly. 2020-09-23 21:45:28 +02:00
StringBuilder.cpp Unicode: Try s/codepoint/code_point/g again 2020-08-05 22:33:42 +02:00
StringBuilder.h AK: Resolve format related circular dependencies properly. 2020-09-23 21:45:28 +02:00
StringImpl.cpp AK: Add missing declaration in StringImpl.cpp 2020-08-30 10:48:08 +02:00
StringImpl.h AK: Document that String{,Impl} contains NUL-terminator 2020-08-24 00:45:03 +02:00
StringUtils.cpp AK: Add case insensitive version of starts_with 2020-07-21 01:08:32 +02:00
StringUtils.h AK: Add case insensitive version of starts_with 2020-07-21 01:08:32 +02:00
StringView.cpp AK: Add StringView::substring_view(size_t) overload. 2020-09-21 20:17:36 +02:00
StringView.h AK: Add StringView::substring_view(size_t) overload. 2020-09-21 20:17:36 +02:00
TemporaryChange.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
TestSuite.h AK: TestSuite: Define assert macros with do { } while(0). (#3292) 2020-08-25 16:20:52 +02:00
Time.cpp AK+LibC+LibCore: Have fewer implementations of day_of_week 2020-08-26 08:52:07 +02:00
Time.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Traits.h AK: Add HashMap, HashTable and Traits to Forward.h 2020-02-16 02:01:18 +01:00
TypeCasts.h AK: Add global is<T>() and downcast<T>() 2020-07-26 17:51:00 +02:00
TypedTransfer.h AK: Moved TypedTransfer into it's own header. 2020-09-09 20:15:50 +02:00
Types.h AK: Rename KB, MB, GB to KiB, MiB, GiB 2020-08-16 16:33:28 +02:00
URL.cpp AK: Add URL::create_with_data() to create data URLs 2020-08-24 18:21:33 +02:00
URL.h AK: Add URL::create_with_data() to create data URLs 2020-08-24 18:21:33 +02:00
URLParser.cpp AK: Make string-to-number conversion helpers return Optional 2020-06-12 21:28:55 +02:00
URLParser.h AK: Add basic percent encoder/decoder (urlencode and urldecode) 2020-06-07 21:05:05 +02:00
Userspace.h AK: Prevent confusing silent misuse of Userspace<T> 2020-08-22 17:18:14 +02:00
Utf8View.cpp Unicode: Try s/codepoint/code_point/g again 2020-08-05 22:33:42 +02:00
Utf8View.h Unicode: Try s/codepoint/code_point/g again 2020-08-05 22:33:42 +02:00
Utf32View.h Unicode: Try s/codepoint/code_point/g again 2020-08-05 22:33:42 +02:00
Vector.h AK: Moved TypedTransfer into it's own header. 2020-09-09 20:15:50 +02:00
Weakable.h AK: Unbreak building with extra debug macros 2020-08-30 09:43:49 +02:00
WeakPtr.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00