From cf041e18f46d95de44ae61dac4785fea68a6a21b Mon Sep 17 00:00:00 2001 From: Thomas Buckley-Houston Date: Wed, 11 May 2022 12:01:35 -0300 Subject: Allow indentation to be repeated --- autoload/novim_mode.vim | 11 +++++++---- spec/novim_mode_spec.rb | 25 +++++++++++++++++++++++++ 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 >gv + snoremap >gv inoremap - snoremap >gv + snoremap >gv " Unindenting - snoremap inoremap - snoremap endif if g:novim_mode_use_finding == 1 @@ -205,13 +205,16 @@ function! g:SetNoVimModeShortcuts() " the last *text* activity. inoremap u snoremap u + vnoremap u " Map CTRL+u as well for now just because by default it deletes the line above " the cursor. inoremap u snoremap u + vnoremap u " Redo inoremap snoremap + vnoremap 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 '' + type '' + type '' + + 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 '' + type '' + type '' + type '' + + 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 -- cgit v1.2.3-70-g09d2