(selectIfNull = true)
| 780 | } |
| 781 | |
| 782 | async format(selectIfNull = true) { |
| 783 | const file = editorManager.activeFile; |
| 784 | if (!file || file.type !== "editor") return false; |
| 785 | |
| 786 | let resolvedMode = file.currentMode; |
| 787 | if (!resolvedMode) { |
| 788 | try { |
| 789 | resolvedMode = getModeForPath(file.filename)?.name; |
| 790 | } catch (_) { |
| 791 | resolvedMode = null; |
| 792 | } |
| 793 | } |
| 794 | const modeName = resolvedMode || "text"; |
| 795 | const formatterMap = appSettings.value.formatter || {}; |
| 796 | const formatterId = formatterMap[modeName]; |
| 797 | const formatter = this.#formatter.find(({ id }) => id === formatterId); |
| 798 | |
| 799 | if (!formatter) { |
| 800 | if (formatterId) { |
| 801 | delete formatterMap[modeName]; |
| 802 | await appSettings.update(false); |
| 803 | } |
| 804 | |
| 805 | if (selectIfNull) { |
| 806 | const { default: formatterSettings } = await import( |
| 807 | /* webpackChunkName: "formatterSettings" */ "settings/formatterSettings" |
| 808 | ); |
| 809 | formatterSettings(modeName); |
| 810 | this.#afterSelectFormatter(modeName); |
| 811 | } else { |
| 812 | toast(strings["please select a formatter"]); |
| 813 | } |
| 814 | return false; |
| 815 | } |
| 816 | |
| 817 | try { |
| 818 | await formatter.format(); |
| 819 | return true; |
| 820 | } catch (error) { |
| 821 | helpers.error(error); |
| 822 | return false; |
| 823 | } |
| 824 | } |
| 825 | |
| 826 | #afterSelectFormatter(name) { |
| 827 | appSettings.on("update:formatter", format); |
no test coverage detected