diff options
author | Thomas Buckley-Houston | 2022-05-11 15:01:35 +0000 |
---|---|---|
committer | Thomas Buckley-Houston | 2022-05-11 15:01:35 +0000 |
commit | cf041e18f46d95de44ae61dac4785fea68a6a21b (patch) | |
tree | 13d83f1a4188a12a5c926ba8a0e25fba98c46f5c | |
parent | e3f89438582c12b4d058dd7752c294ad6bb33fac (diff) |
Allow indentation to be repeated
-rw-r--r-- | autoload/novim_mode.vim | 11 | ||||
-rw-r--r-- | spec/novim_mode_spec.rb | 25 | ||||
-rw-r--r-- | spec/spec_helper.rb | 10 |
3 files changed, 42 insertions, 4 deletions
diff --git a/autoload/novim_mode.vim b/autoload/novim_mode.vim index 9d57c15..169d39a 100644 --- a/autoload/novim_mode.vim +++ b/autoload/novim_mode.vim @@ -175,13 +175,13 @@ function! g:SetNoVimModeShortcuts() " Indenting if g:novim_mode_use_indenting == 1 " TODO: In Neovim TAB doesn't work in mswin selection mode, but SHIFT+TAB does?? - snoremap <Tab> <C-O>>gv + snoremap <Tab> <C-O>>gv<C-G> inoremap <M-]> <C-T> - snoremap <M-]> <C-O>>gv + snoremap <M-]> <C-O>>gv<C-G> " Unindenting - snoremap <S-Tab> <C-O><gv + snoremap <S-Tab> <C-O><gv<C-G> inoremap <M-[> <C-D> - snoremap <M-[> <C-O><gv + snoremap <M-[> <C-O><gv<C-G> endif if g:novim_mode_use_finding == 1 @@ -205,13 +205,16 @@ function! g:SetNoVimModeShortcuts() " the last *text* activity. inoremap <silent> <C-Z> <C-O>u snoremap <silent> <C-Z> <Esc><C-O>u + vnoremap <silent> <C-Z> <Esc><C-O>u " Map CTRL+u as well for now just because by default it deletes the line above " the cursor. inoremap <silent> <C-U> <C-O>u snoremap <silent> <C-U> <Esc><C-O>u + vnoremap <silent> <C-U> <Esc><C-O>u " Redo inoremap <silent> <C-Y> <C-O><C-R> snoremap <silent> <C-Y> <Esc><C-O><C-R> + vnoremap <silent> <C-Y> <Esc><C-O><C-R> endif " Useful, but not necessarily core or conventional, shortcuts for manipulating diff --git a/spec/novim_mode_spec.rb b/spec/novim_mode_spec.rb index c784772..d513d13 100644 --- a/spec/novim_mode_spec.rb +++ b/spec/novim_mode_spec.rb @@ -111,6 +111,31 @@ describe 'Selecting' do EOF end + specify 'ALT+] indents' do + initial <<-EOF + a line of text + EOF + + type '<S-End>' + type '<M-]>' + type '<M-]>' + + final_with_indents "\t\ta line of text\n" + end + + specify 'Shift-Tab or ALT+[ indents' do + initial <<-EOF + a line of text + EOF + + type '<S-End>' + type '<M-]>' + type '<M-]>' + type '<S-Tab>' + + final_with_indents "\ta line of text\n" + end + specify 'CTRL+D selects the word under the cursor' do initial <<-EOF a line of text diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index cfe5a51..c09f394 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -40,6 +40,11 @@ def load_file_content IO.read(@file).strip end +def load_file_content_unstripped + vim.write + IO.read(@file) +end + def type(string) string.scan(/<.*?>|./).each do |key| if key =~ /<.*>/ @@ -60,6 +65,11 @@ def final(string) expect(load_file_content).to eq expected end +def final_with_indents(string) + expected = string + expect(load_file_content_unstripped).to eq expected +end + def use_extension(ext) @ext = ext end |