diff --git a/plugins/by-name/mkdnflow/default.nix b/plugins/by-name/mkdnflow/default.nix index 78b1e6ed..a7a12f80 100644 --- a/plugins/by-name/mkdnflow/default.nix +++ b/plugins/by-name/mkdnflow/default.nix @@ -8,6 +8,42 @@ lib.nixvim.plugins.mkNeovimPlugin { maintainers = [ lib.maintainers.khaneliman ]; + settingsOptions = { + mappings = lib.nixvim.mkNullOrOption' { + type = with lib.types; attrsOf anything; + description = '' + Key mappings for mkdnflow commands. + + Use the generated positional format for mapping entries: + - `false` to disable a command mapping. + - `[modes key]`, where `modes` is a string or list of mode strings. + ''; + apply = lib.mapNullable ( + mappings: + let + isLegacyMapping = mapping: lib.isAttrs mapping && mapping ? modes && mapping ? key; + + legacyMappings = lib.filterAttrs (_: isLegacyMapping) mappings; + + normalizedMappings = + mappings + // lib.mapAttrs (_: mapping: [ + mapping.modes + mapping.key + ]) legacyMappings; + in + # TODO: Added 2026-02-11, remove after 27.05 + lib.warnIf (legacyMappings != { }) '' + Nixvim (plugins.mkdnflow): Setting `plugins.mkdnflow.settings.mappings. = { modes = ...; key = ...; }` is deprecated. + Use `plugins.mkdnflow.settings.mappings. = [ ];` instead. + Example: + `MkdnEnter = [ [ "n" "i" ] "" ];` + Legacy mappings in this definition: ${lib.concatStringsSep ", " (lib.attrNames legacyMappings)} + '' normalizedMappings + ); + }; + }; + settingsExample = { modules = { bib = false; diff --git a/tests/test-sources/plugins/by-name/mkdnflow/default.nix b/tests/test-sources/plugins/by-name/mkdnflow/default.nix index d2b76039..0fefdca2 100644 --- a/tests/test-sources/plugins/by-name/mkdnflow/default.nix +++ b/tests/test-sources/plugins/by-name/mkdnflow/default.nix @@ -77,134 +77,154 @@ override = false; }; }; + mappings = { + MkdnEnter = [ + [ + "n" + "v" + "i" + ] + "" + ]; + MkdnTab = false; + MkdnSTab = false; + MkdnNextLink = [ + "n" + "" + ]; + MkdnPrevLink = [ + "n" + "" + ]; + MkdnNextHeading = [ + "n" + "]]" + ]; + MkdnPrevHeading = [ + "n" + "[[" + ]; + MkdnGoBack = [ + "n" + "" + ]; + MkdnGoForward = [ + "n" + "" + ]; + MkdnFollowLink = false; + MkdnCreateLink = false; + MkdnCreateLinkFromClipboard = [ + [ + "n" + "v" + ] + "p" + ]; + MkdnDestroyLink = [ + "n" + "" + ]; + MkdnMoveSource = [ + "n" + "" + ]; + MkdnYankAnchorLink = [ + "n" + "ya" + ]; + MkdnYankFileAnchorLink = [ + "n" + "yfa" + ]; + MkdnIncreaseHeading = [ + "n" + "+" + ]; + MkdnDecreaseHeading = [ + "n" + "-" + ]; + MkdnToggleToDo = [ + [ + "n" + "v" + ] + "" + ]; + MkdnNewListItem = false; + MkdnNewListItemBelowInsert = [ + "n" + "o" + ]; + MkdnNewListItemAboveInsert = [ + "n" + "O" + ]; + MkdnExtendList = false; + MkdnUpdateNumbering = [ + "n" + "nn" + ]; + MkdnTableNextCell = [ + "i" + "" + ]; + MkdnTablePrevCell = [ + "i" + "" + ]; + MkdnTableNextRow = false; + MkdnTablePrevRow = [ + "i" + "" + ]; + MkdnTableNewRowBelow = [ + "n" + "ir" + ]; + MkdnTableNewRowAbove = [ + "n" + "iR" + ]; + MkdnTableNewColAfter = [ + "n" + "ic" + ]; + MkdnTableNewColBefore = [ + "n" + "iC" + ]; + MkdnFoldSection = [ + "n" + "f" + ]; + MkdnUnfoldSection = [ + "n" + "F" + ]; + }; + }; + }; + + }; + + mappings-deprecated = { + plugins.mkdnflow = { + enable = true; + settings = { mappings = { MkdnEnter = { modes = [ "n" - "v" "i" ]; key = ""; }; - MkdnTab = false; - MkdnSTab = false; - MkdnNextLink = { - modes = "n"; - key = ""; - }; - MkdnPrevLink = { - modes = "n"; - key = ""; - }; - MkdnNextHeading = { - modes = "n"; - key = "]]"; - }; - MkdnPrevHeading = { - modes = "n"; - key = "[["; - }; - MkdnGoBack = { - modes = "n"; - key = ""; - }; - MkdnGoForward = { - modes = "n"; - key = ""; - }; - MkdnFollowLink = false; - MkdnCreateLink = false; - MkdnCreateLinkFromClipboard = { - modes = [ - "n" - "v" - ]; - key = "p"; - }; - MkdnDestroyLink = { - modes = "n"; - key = ""; - }; - MkdnMoveSource = { - modes = "n"; - key = ""; - }; - MkdnYankAnchorLink = { - modes = "n"; - key = "ya"; - }; - MkdnYankFileAnchorLink = { - modes = "n"; - key = "yfa"; - }; - MkdnIncreaseHeading = { - modes = "n"; - key = "+"; - }; - MkdnDecreaseHeading = { - modes = "n"; - key = "-"; - }; - MkdnToggleToDo = { - modes = [ - "n" - "v" - ]; - key = ""; - }; - MkdnNewListItem = false; - MkdnNewListItemBelowInsert = { - modes = "n"; - key = "o"; - }; - MkdnNewListItemAboveInsert = { - modes = "n"; - key = "O"; - }; - MkdnExtendList = false; - MkdnUpdateNumbering = { - modes = "n"; - key = "nn"; - }; - MkdnTableNextCell = { - modes = "i"; - key = ""; - }; - MkdnTablePrevCell = { - modes = "i"; - key = ""; - }; - MkdnTableNextRow = false; - MkdnTablePrevRow = { - modes = "i"; - key = ""; - }; - MkdnTableNewRowBelow = { - modes = "n"; - key = "ir"; - }; - MkdnTableNewRowAbove = { - modes = "n"; - key = "iR"; - }; - MkdnTableNewColAfter = { - modes = "n"; - key = "ic"; - }; - MkdnTableNewColBefore = { - modes = "n"; - key = "iC"; - }; - MkdnFoldSection = { - modes = "n"; - key = "f"; - }; - MkdnUnfoldSection = { - modes = "n"; - key = "F"; - }; }; }; }; + + test.runNvim = false; }; }