From 221cfc34da87e706b8891345936d7f0b5ff9d40e Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 26 Oct 2022 13:41:42 +0300 Subject: [PATCH] IndentWise is replaced with navindent --- .../start/navindent/autoload/navindent.vim | 22 +++++++++++++++++++ .../start/navindent/plugin/navindent.vim | 7 ++++++ 2 files changed, 29 insertions(+) create mode 100644 vim/.vim/pack/stargrave/start/navindent/autoload/navindent.vim create mode 100644 vim/.vim/pack/stargrave/start/navindent/plugin/navindent.vim diff --git a/vim/.vim/pack/stargrave/start/navindent/autoload/navindent.vim b/vim/.vim/pack/stargrave/start/navindent/autoload/navindent.vim new file mode 100644 index 0000000..961cfa6 --- /dev/null +++ b/vim/.vim/pack/stargrave/start/navindent/autoload/navindent.vim @@ -0,0 +1,22 @@ +vim9script + +# Based on https://vim.fandom.com/wiki/Move_to_next/previous_line_with_same_indentation + +export def Do(step: number, diff: number) + var l = line(".") + var cin = indent(l) + var last = line("$") + var lin: number + while (l > 0 && l <= last) + l += step + if (strlen(getline(l)) == 0) | continue | endif + lin = indent(l) + if !( + ((diff == 0) && (lin == cin)) || + ((diff == 1) && (lin > cin)) || + ((diff == -1) && (lin < cin)) + ) | continue | endif + cursor(l, lin + 1) + return + endwhile +enddef diff --git a/vim/.vim/pack/stargrave/start/navindent/plugin/navindent.vim b/vim/.vim/pack/stargrave/start/navindent/plugin/navindent.vim new file mode 100644 index 0000000..138a26b --- /dev/null +++ b/vim/.vim/pack/stargrave/start/navindent/plugin/navindent.vim @@ -0,0 +1,7 @@ +if exists("*navindent#Do") | finish | endif +nmap [- :call navindent#Do(-1, -1) +nmap ]- :call navindent#Do(+1, -1) +nmap [= :call navindent#Do(-1, 0) +nmap ]= :call navindent#Do(+1, 0) +nmap [+ :call navindent#Do(-1, +1) +nmap ]+ :call navindent#Do(+1, +1) -- 2.44.0