summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2022-07-08LibGUI: Unindent selected text on shift+tab presshuttongrabiel
Selected text is unindented when Shift+Tab is pressed. Select text, indent it with Tab, then unindent with Shift+Tab.
2022-07-08LibGUI: Indent selected text on tab presshuttongrabiel
If selected text is less than a whole line, usual delete/replace takes place. Otherwise, if the selected text is a whole line or spans multiple lines, the selection will be indented.
2022-07-08mount: Allow extending `fstab` via drop-in files in `fstab.d`Tim Schumacher
2022-07-08mount: Separate mounting by line into a new functionTim Schumacher
2022-07-08LibGUI: Support typing to search for ComboBoxzzLinus
LibGUI: Fixup missing one charactor issue
2022-07-08LibWeb: Add URLSearchParams as part of union type for XHR::send()Kenneth Myhra
This patch adds support for URLSearchParams to XHR::send() and introduces the union type XMLHttpRequestBodyInit. XHR::send() now has support for String and URLSearchParams.
2022-07-08HackStudio: Add the "Copy Full Path" TreeView context menu optionYuval
This commit adds support for the option described above. The option can be seen after a right click on a TreeView item, and it puts the item's full path in the clipboard.
2022-07-08HackStudio: Add the "Copy Relative Path" TreeView context menu optionYuval
This commit adds support for the option described above. The option can be seen after a right click on a TreeView item, and it puts the item's relative path in the clipboard (relative to the project's root directory).
2022-07-08Userland: Add `/usr/local/sbin` to `PATH` by defaultTim Schumacher
`e2fsprogs` adds its tools there.
2022-07-08LibJS: Use Intl.PluralRules within Intl.RelativeFormatTimothy Flynn
The Polish test cases added here cover previous failures from test262, due to the way that 0 is specified to be "many" in Polish.
2022-07-08LibJS: Implement Intl.PluralRules.prototype.selectTimothy Flynn
2022-07-08LibJS: Populate pluralCategories in Intl.PluralRules.resolvedOptionsTimothy Flynn
2022-07-08LibJS: Replace JS::Intl::PluralRules::Type with Unicode::PluralFormTimothy Flynn
The JS::Intl enum was added when implementing the PluralRules constructor. Now that LibUnicode has a plural rules implementation, replace the JS::Intl enum with the analagous Unicode enum.
2022-07-08LibJS: Mark the NumberFormat parameter of FormatNumericToString as constTimothy Flynn
Not critical, but in subsequent commits this will be invoked from a constant context.
2022-07-08LibUnicode: Generate a list of available plural categories per localeTimothy Flynn
Separate lists are generated for cardinal and ordinal form.
2022-07-08LibUnicode: Parse and generate per-locale plural rules from the CLDRTimothy Flynn
Plural rules in the CLDR are of the form: "cs": { "pluralRule-count-one": "i = 1 and v = 0 @integer 1", "pluralRule-count-few": "i = 2..4 and v = 0 @integer 2~4", "pluralRule-count-many": "v != 0 @decimal 0.0~1.5, 10.0, 100.0 ...", "pluralRule-count-other": "@integer 0, 5~19, 100, 1000, 10000 ..." } The syntax is described here: https://unicode.org/reports/tr35/tr35-numbers.html#Plural_rules_syntax There are up to 2 sets of rules for each locale, a cardinal set and an ordinal set. The approach here is to generate a C++ function for each set of rules. Each condition in the rules (e.g. "i = 1 and v = 0") is transpiled to a C++ if-statement within its function. Then lookup tables are generated to match locales to their generated functions. NOTE: -Wno-parentheses-equality is added to the LibUnicodeData compile flags because the generated plural rules have lots of extra parentheses (because e.g. we need to selectively negate and combine rules). The code to generate only exactly the right number of parentheses is quite hairy, so this just tells the compiler to ignore the extras.
2022-07-07WebSocket: Change target name to deconflict with LibWebSocket on LagomAndrew Kaster
When compiling with Lagom, we give both LibWebSocket and the WebSocket IPC service the Lagom:: prefix as an alias, but strip the Lib from all library target names before applying the prefix. This creates a conflict when external projects used the aliased name between the server and the library. Give WebSocket a name that deconflicts it, but keep the binary name the same, /bin/WebSocket.
2022-07-06LibWeb: Use correct margin & padding values in anonymous wrapper boxesAndreas Kling
Anonymous wrappers get their non-inherited properties from the initial state of a new CSS::ComputedValues object. Before this patch, all the values in their margin and padding LengthBox would be "auto".
2022-07-06LibWeb: Cache a pointer to the IFC root in InlineLevelIteratorAndreas Kling
2022-07-06LibWeb: Keep the "remaining free space" across flexbox algo stepsAndreas Kling
Instead of recomputing the "remaining free space" per flex line, remember it after calculating it during the "resolve flexible lengths" step so we can reuse it later.
2022-07-06LibWeb: Add a 1-entry lookup cache to FormattingStateAndreas Kling
This makes repeated lookups of the state for the same box much faster by bypassing the HashMap.
2022-07-06LibWeb: Make non-finite CSS lengths resolve to "auto"Andreas Kling
When we're performing max-content layout (a separate throwaway layout pass that only exists to discover the intrinsic max-content size of a specific box), we act as if the containing block has infinite width. This allows an infinite length to propagate into the layout system, which is fine, but at some point it needs to be turned into a finite number or some loop conditions will not make sense and we can hang indefinitely (e.g in the flexible lengths resolution algorithm.) We fix this by making Length::resolved() turn non-finite values into an "auto" length.
2022-07-06LibJS: Implement Intl.Locale.prototype.weekInfo propertyTimothy Flynn
2022-07-06LibUnicode: Generate per-region week dataTimothy Flynn
This includes: * The minimum number of days in a week for that week to count as the first week of a new year. * The day to be shown as the first day of the week in a calendar. * The start/end days of the weekend. Like the existing hour cycle data, week data is presented per-region in the CLDR, rather than per-locale. The method to add likely subtags to a locale to perform region lookups is the same. The list of regions in the CLDR for hour cycle, minimum days, first day, and weekend days are quite different. So rather than changing the existing HourCycleRegion enum to a generic Region enum, we generate separate enums for each of the week data fields. This allows each lookup into these fields to remain simple array-based index access, without any "jumps" for regions that don't have CLDR data for a field.
2022-07-06LibJS: Implement Intl.Locale.prototype.textInfo propertyTimothy Flynn
2022-07-06LibUnicode: Generate per-locale text layout informationTimothy Flynn
Currently contains just each locale's character order, but is set up to easily add other text layout fields from the CLDR if ECMA-402 eventually requires them.
2022-07-06LibJS: Implement Intl.Locale.prototype.timeZones propertyTimothy Flynn
2022-07-06LibTimeZone: Parse and generate a list of time zones used by regionTimothy Flynn
The zone1970.tab file in the TZDB contains regional time zone data, some of which we already parse for the system time zone settings map. This parses the region names from that file and generates a list of time zones which are used in each of those regions.
2022-07-06LibJS: Implement Intl.Locale.prototype.numberingSystems propertyTimothy Flynn
2022-07-06LibJS: Implement Intl.Locale.prototype.hourCycles propertyTimothy Flynn
2022-07-06LibJS: Partially implement Intl.Locale.prototype.collations propertyTimothy Flynn
We do not yet parse collation data from the CLDR. This stubs out the collations property, analogous to Intl.supportedValuesOf.
2022-07-06LibJS: Implement Intl.Locale.prototype.calendars propertyTimothy Flynn
2022-07-06LibJS: Revert partial resizable ArrayBuffer implementationLinus Groh
This is a manual but clean revert of all commits from #12595. Adding a partial implementation of the resizable ArrayBuffer proposal without implementing all the updates to TypedArray infrastructure that is also covered by the spec introduced a bunch of crashes, so we decided to revert it for now until a full implementation is completed.
2022-07-06FontEditor: Rename FontEditorWidget => FontEditor::MainWidgetthankyouverycool
2022-07-06FontEditor: Hide Widget::set_font() in GlyphEditorWidgetthankyouverycool
We were already doing the same for its getters, and this makes its API more consistent with GlyphMapWidget.
2022-07-06FontEditor: Remove unused headers and member variablesthankyouverycool
2022-07-06FontEditor: Simplify GlyphMapWidget context menu constructionthankyouverycool
2022-07-06FontEditor: Update GML for new layout systemthankyouverycool
This patch removes deprecated GML properties and manual sizing calculations in favor of the new UIDimensions, and registers more widgets in the FontEditor namespace to simplify widget setup.
2022-07-06FontEditor: Convert preview window to GML and propagate its errorsthankyouverycool
2022-07-06FontEditor: Propagate errors when pushing undo commandsthankyouverycool
2022-07-06LibGUI: Add fallible try_push() variant to UndoStackthankyouverycool
2022-07-06FontEditor: Normalize GlyphMap selection before creating UndoSelectionthankyouverycool
Fixes bogus indexing crashes when creating new restore states.
2022-07-06FontEditor: Improve error propagation during constructionthankyouverycool
FontEditor now builds its actions, toolbars, models and menus with fallible methods. Widget assignment from GML is now organized in order of use.
2022-07-06Meta: Build select Services in LagomAndrew Kaster
Add overrides for serenity_bin and serenity_lib to allow the actual CMakeLists.txt from Userland to be used to build as many services as possible without adding more clutter to Meta/Lagom/CMakeLists.txt
2022-07-06LookupServer: Use _POSIX_HOST_NAME_MAX instead of HOST_NAME_MAXTimon Kruiper
HOST_NAME_MAX is not defined on the BSDs, including macOS. Use _POSIX_HOST_NAME_MAX instead, which is defined on all the platforms.
2022-07-06LookupServer: Use designated initializers for sockaddr_inAndrew Kaster
At least macOS has a non-standard sin_len field at the front of the struct that Linux and Serenity do not. On BSDs, the sin_len field must be initialized to the size of the structure. Co-Authored-By: Timon Kruiper <timonkruiper@gmail.com>
2022-07-06RequestServer: Only attach SIGINFO signal handler if SIGINFO is definedAndrew Kaster
2022-07-06LibCore: Stub out pledge and unveil for non-serenity systemsAndrew Kaster
2022-07-06LibCore: Stub out FileWatcher for Lagom platformsAndrew Kaster
Stub out the FileWatcher class with ENOTSUP stubs to let Services that require it to compile for Lagom. Later we should add real code for this using techniques like Linux's inotify(7).
2022-07-06LibJS: Make AST.cpp compile with -O0Linus Groh