From 3398ebe467c43ccfd91916c5b81ff3c68f598556 Mon Sep 17 00:00:00 2001 From: daxpedda Date: Fri, 26 Jul 2024 17:07:20 +0200 Subject: [PATCH] Use Taplo for TOML formatting --- .cargo/config.toml | 2 +- .github/workflows/ci.yml | 13 +++ Cargo.toml | 209 +++++++++++++++++++-------------------- clippy.toml | 20 ++-- deny.toml | 27 +++-- dpi/Cargo.toml | 20 ++-- rustfmt.toml | 24 ++--- taplo.toml | 5 + typos.toml | 4 +- 9 files changed, 164 insertions(+), 160 deletions(-) create mode 100644 taplo.toml diff --git a/.cargo/config.toml b/.cargo/config.toml index e66776ac9e..c7b71c6075 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -2,8 +2,8 @@ # # Note that these flags are (intentionally) not included when building from the downloaded crate. [build] -rustflags = ["--cfg=unreleased_changelogs"] rustdocflags = ["--cfg=unreleased_changelogs"] +rustflags = ["--cfg=unreleased_changelogs"] [target.wasm32-unknown-unknown] runner = "wasm-bindgen-test-runner" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 77fae18d99..582d2f882b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,19 @@ jobs: - name: Check Formatting run: cargo fmt -- --check + taplo: + name: Taplo + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: taiki-e/checkout-action@v1 + - name: Install Taplo + uses: taiki-e/install-action@v2 + with: + tool: taplo-cli + - name: Run Taplo + run: taplo fmt --check + typos: name: Check for typos runs-on: ubuntu-latest diff --git a/Cargo.toml b/Cargo.toml index b4c5d74ec6..86fd8a75e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,20 +1,17 @@ [package] -name = "winit" -version = "0.30.4" -authors = [ - "The winit contributors", - "Pierre Krieger ", -] +authors = ["The winit contributors", "Pierre Krieger "] +categories = ["gui"] description = "Cross-platform window creation library." -keywords = ["windowing"] -readme = "README.md" documentation = "https://docs.rs/winit" -categories = ["gui"] -rust-version.workspace = true -repository.workspace = true -license.workspace = true edition.workspace = true exclude = ["/.cargo"] +keywords = ["windowing"] +license.workspace = true +name = "winit" +readme = "README.md" +repository.workspace = true +rust-version.workspace = true +version = "0.30.4" [package.metadata.docs.rs] features = [ @@ -27,6 +24,7 @@ features = [ "android-native-activity", ] # These are all tested in CI +rustdoc-args = ["--cfg", "docsrs"] targets = [ # Windows "i686-pc-windows-msvc", @@ -43,12 +41,17 @@ targets = [ # Web "wasm32-unknown-unknown", ] -rustdoc-args = ["--cfg", "docsrs"] # Features are documented in either `lib.rs` or under `winit::platform`. [features] +android-game-activity = ["android-activity/game-activity"] +android-native-activity = ["android-activity/native-activity"] default = ["rwh_06", "x11", "wayland", "wayland-dlopen", "wayland-csd-adwaita"] -x11 = ["x11-dl", "bytemuck", "percent-encoding", "xkbcommon-dl/x11", "x11rb"] +mint = ["dpi/mint"] +rwh_04 = ["dep:rwh_04", "ndk/rwh_04"] +rwh_05 = ["dep:rwh_05", "ndk/rwh_05"] +rwh_06 = ["dep:rwh_06", "ndk/rwh_06"] +serde = ["dep:serde", "cursor-icon/serde", "smol_str/serde", "dpi/serde"] wayland = [ "wayland-client", "wayland-backend", @@ -58,17 +61,11 @@ wayland = [ "ahash", "memmap2", ] -wayland-dlopen = ["wayland-backend/dlopen"] wayland-csd-adwaita = ["sctk-adwaita", "sctk-adwaita/ab_glyph"] wayland-csd-adwaita-crossfont = ["sctk-adwaita", "sctk-adwaita/crossfont"] wayland-csd-adwaita-notitle = ["sctk-adwaita"] -android-native-activity = ["android-activity/native-activity"] -android-game-activity = ["android-activity/game-activity"] -serde = ["dep:serde", "cursor-icon/serde", "smol_str/serde", "dpi/serde"] -mint = ["dpi/mint"] -rwh_04 = ["dep:rwh_04", "ndk/rwh_04"] -rwh_05 = ["dep:rwh_05", "ndk/rwh_05"] -rwh_06 = ["dep:rwh_06", "ndk/rwh_06"] +wayland-dlopen = ["wayland-backend/dlopen"] +x11 = ["x11-dl", "bytemuck", "percent-encoding", "xkbcommon-dl/x11", "x11rb"] [build-dependencies] cfg_aliases = "0.2.1" @@ -78,12 +75,8 @@ bitflags = "2" cursor-icon = "1.1.0" dpi = { version = "0.1.1", path = "dpi" } rwh_04 = { package = "raw-window-handle", version = "0.4", optional = true } -rwh_05 = { package = "raw-window-handle", version = "0.5.2", features = [ - "std", -], optional = true } -rwh_06 = { package = "raw-window-handle", version = "0.6", features = [ - "std", -], optional = true } +rwh_05 = { package = "raw-window-handle", version = "0.5.2", features = ["std"], optional = true } +rwh_06 = { package = "raw-window-handle", version = "0.6", features = ["std"], optional = true } serde = { workspace = true, optional = true } smol_str = "0.2.0" tracing = { version = "0.1.40", default-features = false } @@ -114,27 +107,8 @@ objc2 = "0.5.2" # AppKit [target.'cfg(target_os = "macos")'.dependencies] -core-graphics = "0.23.1" block2 = "0.5.1" -objc2-foundation = { version = "0.2.2", features = [ - "block2", - "dispatch", - "NSArray", - "NSAttributedString", - "NSData", - "NSDictionary", - "NSDistributedNotificationCenter", - "NSEnumerator", - "NSKeyValueObserving", - "NSNotification", - "NSObjCRuntime", - "NSPathUtilities", - "NSProcessInfo", - "NSRunLoop", - "NSString", - "NSThread", - "NSValue", -] } +core-graphics = "0.23.1" objc2-app-kit = { version = "0.2.2", features = [ "NSAppearance", "NSApplication", @@ -163,6 +137,25 @@ objc2-app-kit = { version = "0.2.2", features = [ "NSWindowScripting", "NSWindowTabGroup", ] } +objc2-foundation = { version = "0.2.2", features = [ + "block2", + "dispatch", + "NSArray", + "NSAttributedString", + "NSData", + "NSDictionary", + "NSDistributedNotificationCenter", + "NSEnumerator", + "NSKeyValueObserving", + "NSNotification", + "NSObjCRuntime", + "NSPathUtilities", + "NSProcessInfo", + "NSRunLoop", + "NSString", + "NSThread", + "NSValue", +] } # UIKit [target.'cfg(all(target_vendor = "apple", not(target_os = "macos")))'.dependencies] @@ -250,12 +243,8 @@ wayland-backend = { version = "0.3.5", default-features = false, features = [ "client_system", ], optional = true } wayland-client = { version = "0.31.4", optional = true } -wayland-protocols = { version = "0.32.2", features = [ - "staging", -], optional = true } -wayland-protocols-plasma = { version = "0.3.2", features = [ - "client", -], optional = true } +wayland-protocols = { version = "0.32.2", features = ["staging"], optional = true } +wayland-protocols-plasma = { version = "0.3.2", features = ["client"], optional = true } x11-dl = { version = "2.19.1", optional = true } x11rb = { version = "0.13.0", default-features = false, features = [ "allow-unsafe-code", @@ -275,62 +264,62 @@ redox_syscall = "0.4.1" # Web [target.'cfg(target_family = "wasm")'.dependencies] -web_sys = { package = "web-sys", version = "0.3.64", features = [ - 'AbortController', - 'AbortSignal', - 'Blob', - 'BlobPropertyBag', - 'console', - 'CssStyleDeclaration', - 'Document', - 'DomException', - 'DomRect', - 'DomRectReadOnly', - 'Element', - 'Event', - 'EventTarget', - 'FocusEvent', - 'HtmlCanvasElement', - 'HtmlElement', - 'HtmlImageElement', - 'ImageBitmap', - 'ImageBitmapOptions', - 'ImageBitmapRenderingContext', - 'ImageData', - 'IntersectionObserver', - 'IntersectionObserverEntry', - 'KeyboardEvent', - 'MediaQueryList', - 'MessageChannel', - 'MessagePort', - 'Navigator', - 'Node', - 'OrientationType', - 'OrientationLockType', - 'PageTransitionEvent', - 'Permissions', - 'PermissionState', - 'PermissionStatus', - 'PointerEvent', - 'PremultiplyAlpha', - 'ResizeObserver', - 'ResizeObserverBoxOptions', - 'ResizeObserverEntry', - 'ResizeObserverOptions', - 'ResizeObserverSize', - 'Screen', - 'ScreenOrientation', - 'VisibilityState', - 'Window', - 'WheelEvent', - 'Worker', - 'Url', -] } js-sys = "0.3.64" pin-project = "1" wasm-bindgen = "0.2" wasm-bindgen-futures = "0.4" web-time = "1" +web_sys = { package = "web-sys", version = "0.3.64", features = [ + "AbortController", + "AbortSignal", + "Blob", + "BlobPropertyBag", + "console", + "CssStyleDeclaration", + "Document", + "DomException", + "DomRect", + "DomRectReadOnly", + "Element", + "Event", + "EventTarget", + "FocusEvent", + "HtmlCanvasElement", + "HtmlElement", + "HtmlImageElement", + "ImageBitmap", + "ImageBitmapOptions", + "ImageBitmapRenderingContext", + "ImageData", + "IntersectionObserver", + "IntersectionObserverEntry", + "KeyboardEvent", + "MediaQueryList", + "MessageChannel", + "MessagePort", + "Navigator", + "Node", + "OrientationLockType", + "OrientationType", + "PageTransitionEvent", + "Permissions", + "PermissionState", + "PermissionStatus", + "PointerEvent", + "PremultiplyAlpha", + "ResizeObserver", + "ResizeObserverBoxOptions", + "ResizeObserverEntry", + "ResizeObserverOptions", + "ResizeObserverSize", + "Screen", + "ScreenOrientation", + "Url", + "VisibilityState", + "WheelEvent", + "Window", + "Worker", +] } [target.'cfg(all(target_family = "wasm", target_feature = "atomics"))'.dependencies] atomic-waker = "1" @@ -346,15 +335,15 @@ doc-scrape-examples = true name = "window" [workspace] -resolver = "2" members = ["dpi"] +resolver = "2" [workspace.package] -rust-version = "1.73" -repository = "https://github.com/rust-windowing/winit" -license = "Apache-2.0" edition = "2021" +license = "Apache-2.0" +repository = "https://github.com/rust-windowing/winit" +rust-version = "1.73" [workspace.dependencies] -serde = { version = "1", features = ["serde_derive"] } mint = "0.5.6" +serde = { version = "1", features = ["serde_derive"] } diff --git a/clippy.toml b/clippy.toml index c822ee4c3e..018bc33750 100644 --- a/clippy.toml +++ b/clippy.toml @@ -1,16 +1,16 @@ disallowed-methods = [ - { path = "web_sys::window", reason = "is not available in every context" }, - { path = "web_sys::HtmlCanvasElement::width", reason = "Winit shouldn't touch the internal canvas size" }, + { path = "objc2_app_kit::NSView::visibleRect", reason = "We expose a render target to the user, and visibility is not really relevant to that (and can break if you don't use the rectangle position as well). Use `frame` instead." }, + { path = "objc2_app_kit::NSWindow::setFrameTopLeftPoint", reason = "Not sufficient when working with Winit's coordinate system, use `flip_window_screen_coordinates` instead" }, + { path = "web_sys::Document::exit_fullscreen", reason = "Doesn't account for compatibility with Safari" }, + { path = "web_sys::Document::fullscreen_element", reason = "Doesn't account for compatibility with Safari" }, + { path = "web_sys::Element::request_fullscreen", reason = "Doesn't account for compatibility with Safari" }, { path = "web_sys::HtmlCanvasElement::height", reason = "Winit shouldn't touch the internal canvas size" }, - { path = "web_sys::HtmlCanvasElement::set_width", reason = "Winit shouldn't touch the internal canvas size" }, { path = "web_sys::HtmlCanvasElement::set_height", reason = "Winit shouldn't touch the internal canvas size" }, - { path = "web_sys::Window::navigator", reason = "cache this to reduce calls to JS" }, + { path = "web_sys::HtmlCanvasElement::set_width", reason = "Winit shouldn't touch the internal canvas size" }, + { path = "web_sys::HtmlCanvasElement::width", reason = "Winit shouldn't touch the internal canvas size" }, + { path = "web_sys::HtmlElement::style", reason = "cache this to reduce calls to JS" }, { path = "web_sys::Window::document", reason = "cache this to reduce calls to JS" }, { path = "web_sys::Window::get_computed_style", reason = "cache this to reduce calls to JS" }, - { path = "web_sys::HtmlElement::style", reason = "cache this to reduce calls to JS" }, - { path = "web_sys::Element::request_fullscreen", reason = "Doesn't account for compatibility with Safari" }, - { path = "web_sys::Document::exit_fullscreen", reason = "Doesn't account for compatibility with Safari" }, - { path = "web_sys::Document::fullscreen_element", reason = "Doesn't account for compatibility with Safari" }, - { path = "objc2_app_kit::NSView::visibleRect", reason = "We expose a render target to the user, and visibility is not really relevant to that (and can break if you don't use the rectangle position as well). Use `frame` instead." }, - { path = "objc2_app_kit::NSWindow::setFrameTopLeftPoint", reason = "Not sufficient when working with Winit's coordinate system, use `flip_window_screen_coordinates` instead" }, + { path = "web_sys::Window::navigator", reason = "cache this to reduce calls to JS" }, + { path = "web_sys::window", reason = "is not available in every context" }, ] diff --git a/deny.toml b/deny.toml index 27fe32cd01..5b4aac497d 100644 --- a/deny.toml +++ b/deny.toml @@ -18,31 +18,23 @@ targets = [ { triple = "x86_64-unknown-redox" }, ] - [advisories] -vulnerability = "deny" +ignore = [] unmaintained = "warn" +vulnerability = "deny" yanked = "deny" -ignore = [] - [bans] -multiple-versions = "deny" -wildcards = "allow" # at least until https://github.com/EmbarkStudios/cargo-deny/issues/241 is fixed deny = [] +multiple-versions = "deny" skip = [ - { name = "raw-window-handle" }, # we intentionally have multiple versions of this - { name = "bitflags" }, # the ecosystem is in the process of migrating. + { name = "bitflags" }, # the ecosystem is in the process of migrating. + { name = "raw-window-handle" }, # we intentionally have multiple versions of this ] skip-tree = [] - +wildcards = "allow" # at least until https://github.com/EmbarkStudios/cargo-deny/issues/241 is fixed [licenses] -private = { ignore = true } -unlicensed = "deny" -allow-osi-fsf-free = "neither" -confidence-threshold = 0.92 # We want really high confidence when inferring licenses from text -copyleft = "deny" allow = [ "Apache-2.0 WITH LLVM-exception", # https://spdx.org/licenses/LLVM-exception.html "Apache-2.0", # https://tldrlegal.com/license/apache-license-2.0-(apache-2.0) @@ -52,11 +44,16 @@ allow = [ "CC0-1.0", # https://creativecommons.org/publicdomain/zero/1.0/ "ISC", # https://tldrlegal.com/license/-isc-license "LicenseRef-UFL-1.0", # https://tldrlegal.com/license/ubuntu-font-license,-1.0 - no official SPDX, see https://github.com/emilk/egui/issues/2321 - "MIT-0", # https://choosealicense.com/licenses/mit-0/ "MIT", # https://tldrlegal.com/license/mit-license + "MIT-0", # https://choosealicense.com/licenses/mit-0/ "MPL-2.0", # https://www.mozilla.org/en-US/MPL/2.0/FAQ/ - see Q11. Used by webpki-roots on Linux. "OFL-1.1", # https://spdx.org/licenses/OFL-1.1.html "OpenSSL", # https://www.openssl.org/source/license.html - used on Linux "Unicode-DFS-2016", # https://spdx.org/licenses/Unicode-DFS-2016.html "Zlib", # https://tldrlegal.com/license/zlib-libpng-license-(zlib) ] +allow-osi-fsf-free = "neither" +confidence-threshold = 0.92 # We want really high confidence when inferring licenses from text +copyleft = "deny" +private = { ignore = true } +unlicensed = "deny" diff --git a/dpi/Cargo.toml b/dpi/Cargo.toml index 940105504e..0c1453f1be 100644 --- a/dpi/Cargo.toml +++ b/dpi/Cargo.toml @@ -1,25 +1,26 @@ [package] -name = "dpi" -version = "0.1.1" +categories = ["gui"] description = "Types for handling UI scaling" +edition.workspace = true keywords = ["DPI", "HiDPI", "scale-factor"] -categories = ["gui"] -rust-version.workspace = true -repository.workspace = true license.workspace = true -edition.workspace = true +name = "dpi" +repository.workspace = true +rust-version.workspace = true +version = "0.1.1" [features] -serde = ["dep:serde"] mint = ["dep:mint"] +serde = ["dep:serde"] [dependencies] -serde = { workspace = true, optional = true } mint = { workspace = true, optional = true } +serde = { workspace = true, optional = true } [package.metadata.docs.rs] -features = ["serde", "mint"] +features = ["mint", "serde"] # These are all tested in CI +rustdoc-args = ["--cfg", "docsrs"] targets = [ # Windows "i686-pc-windows-msvc", @@ -36,4 +37,3 @@ targets = [ # Web "wasm32-unknown-unknown", ] -rustdoc-args = ["--cfg", "docsrs"] diff --git a/rustfmt.toml b/rustfmt.toml index 722943bb56..6e2aea9ddb 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1,20 +1,20 @@ -format_code_in_doc_comments = true -match_block_trailing_comma = true +comment_width = 100 condense_wildcard_suffixes = true -use_field_init_shorthand = true -normalize_doc_attributes = true -overflow_delimited_expr = true -imports_granularity = "Module" -use_small_heuristics = "Max" -format_macro_matchers = true error_on_unformatted = true +format_code_in_doc_comments = true format_macro_bodies = true +format_macro_matchers = true +format_strings = true +group_imports = "StdExternalCrate" hex_literal_case = "Lower" +imports_granularity = "Module" +match_block_trailing_comma = true +newline_style = "Unix" normalize_comments = true -group_imports = "StdExternalCrate" +normalize_doc_attributes = true +overflow_delimited_expr = true # Some macros break with this. reorder_impl_items = false -newline_style = "Unix" -format_strings = true +use_field_init_shorthand = true +use_small_heuristics = "Max" wrap_comments = true -comment_width = 100 diff --git a/taplo.toml b/taplo.toml new file mode 100644 index 0000000000..0126b8a7e0 --- /dev/null +++ b/taplo.toml @@ -0,0 +1,5 @@ +[formatting] +allowed_blank_lines = 1 +column_width = 100 +indent_string = ' ' +reorder_keys = true diff --git a/typos.toml b/typos.toml index 0dea884df5..c0527730e9 100644 --- a/typos.toml +++ b/typos.toml @@ -1,7 +1,7 @@ # documentation: https://github.com/crate-ci/typos/blob/master/docs/reference.md [default.extend-identifiers] -ptd = "ptd" # From windows_sys::Win32::System::Com::FORMATETC { ptd, ..} TME_LEAVE = "TME_LEAVE" # From windows_sys::Win32::UI::Input::KeyboardAndMouse::TME_LEAVE -requestor = "requestor" # From x11_dl::xlib::XSelectionEvent { requestor ..} XF86_Calculater = "XF86_Calculater" # From xkbcommon_dl::keysyms::XF86_Calculater +ptd = "ptd" # From windows_sys::Win32::System::Com::FORMATETC { ptd, ..} +requestor = "requestor" # From x11_dl::xlib::XSelectionEvent { requestor ..}