diff options
| author | binarycat <binarycat@envs.net> | 2025-04-02 12:39:58 -0500 |
|---|---|---|
| committer | binarycat <binarycat@envs.net> | 2025-04-02 12:39:58 -0500 |
| commit | 53ef53aed9cb43e6719f6f31aec82e05f236cd57 (patch) | |
| tree | 5996cc0dcf7a6201a5b2d32258b3ffcf42c68fce | |
| parent | ae9173d7dd4a31806c950c90dcc331f1508b4d17 (diff) | |
| download | rust-53ef53aed9cb43e6719f6f31aec82e05f236cd57.tar.gz rust-53ef53aed9cb43e6719f6f31aec82e05f236cd57.zip | |
settings.js: begin typechecking migration
this also makes `changeSetting` more robust in case it somehow gets called before `main.js` has finished loading.
| -rw-r--r-- | src/librustdoc/html/static/js/main.js | 3 | ||||
| -rw-r--r-- | src/librustdoc/html/static/js/rustdoc.d.ts | 2 | ||||
| -rw-r--r-- | src/librustdoc/html/static/js/settings.js | 21 |
3 files changed, 19 insertions, 7 deletions
diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js index 4150c5609a9..d6f4c2e0fa8 100644 --- a/src/librustdoc/html/static/js/main.js +++ b/src/librustdoc/html/static/js/main.js @@ -1101,7 +1101,6 @@ function preLoadCss(cssUrl) { }); }()); - // @ts-expect-error window.rustdoc_add_line_numbers_to_examples = () => { // @ts-expect-error function generateLine(nb) { @@ -1123,7 +1122,6 @@ function preLoadCss(cssUrl) { }); }; - // @ts-expect-error window.rustdoc_remove_line_numbers_from_examples = () => { onEachLazy( document.querySelectorAll(".rustdoc:not(.src) :not(.scraped-example) > .example-wrap"), @@ -1132,7 +1130,6 @@ function preLoadCss(cssUrl) { }; if (getSettingValue("line-numbers") === "true") { - // @ts-expect-error window.rustdoc_add_line_numbers_to_examples(); } diff --git a/src/librustdoc/html/static/js/rustdoc.d.ts b/src/librustdoc/html/static/js/rustdoc.d.ts index 91a58fab86e..0465866e367 100644 --- a/src/librustdoc/html/static/js/rustdoc.d.ts +++ b/src/librustdoc/html/static/js/rustdoc.d.ts @@ -78,6 +78,8 @@ declare global { pending_implementors?: rustdoc.Implementors, register_type_impls?: function(rustdoc.TypeImpls): void, pending_type_impls?: rustdoc.TypeImpls, + rustdoc_add_line_numbers_to_examples?: function(), + rustdoc_remove_line_numbers_from_examples?: function(), } interface HTMLElement { /** Used by the popover tooltip code. */ diff --git a/src/librustdoc/html/static/js/settings.js b/src/librustdoc/html/static/js/settings.js index 5f1bbd27328..ff21c828611 100644 --- a/src/librustdoc/html/static/js/settings.js +++ b/src/librustdoc/html/static/js/settings.js @@ -4,19 +4,26 @@ /* global MAIN_ID, getVar, getSettingsButton, getHelpButton */ // Eventually fix this. -// @ts-nocheck "use strict"; (function() { const isSettingsPage = window.location.pathname.endsWith("/settings.html"); + /** + * @overload {"theme"|"preferred-dark-theme"|"preferred-light-theme"} + * @param {string} settingName + * @param {string} value + * @returns + * @param {string} settingName + * @param {string|boolean} value + */ function changeSetting(settingName, value) { if (settingName === "theme") { const useSystem = value === "system preference" ? "true" : "false"; updateLocalStorage("use-system-theme", useSystem); } - updateLocalStorage(settingName, value); + updateLocalStorage(settingName, "" + value); switch (settingName) { case "theme": @@ -27,9 +34,15 @@ break; case "line-numbers": if (value === true) { - window.rustdoc_add_line_numbers_to_examples(); + const f = window.rustdoc_add_line_numbers_to_examples; + if (f !== undefined) { + f(); + } } else { - window.rustdoc_remove_line_numbers_from_examples(); + const f = window.rustdoc_remove_line_numbers_from_examples; + if (f !== undefined) { + f(); + } } break; case "hide-sidebar": |
