aboutsummaryrefslogtreecommitdiff
path: root/spec/novim_mode_spec.rb
diff options
context:
space:
mode:
authorThomas Buckley-Houston2017-07-25 09:48:43 +0000
committerThomas Buckley-Houston2017-07-25 09:48:43 +0000
commite00abb7772d53f118ca8662a0fcca03e2423c25d (patch)
tree37451b6dffb4fb88ab9aed82cf1e9ad04e365004 /spec/novim_mode_spec.rb
parent70939c41f37173873096ec7cd5ad45e32f84b0cb (diff)
Better non-wrapped HOME/END. Use system clipboard.
Diffstat (limited to 'spec/novim_mode_spec.rb')
-rw-r--r--spec/novim_mode_spec.rb82
1 files changed, 73 insertions, 9 deletions
diff --git a/spec/novim_mode_spec.rb b/spec/novim_mode_spec.rb
index a3d603c..965fbb0 100644
--- a/spec/novim_mode_spec.rb
+++ b/spec/novim_mode_spec.rb
@@ -2,15 +2,6 @@
# of testing Vim.
require 'spec_helper'
-def initial(string)
- @vim_options.each { |x| vim.command(x) } if @vim_options
- write_file_content(string)
-end
-
-def final(string)
- expect(load_file_content).to eq normalize_string_indent(string)
-end
-
describe 'Basic editing' do
specify 'writing simple text' do
initial <<-EOF
@@ -48,6 +39,18 @@ describe 'Basic editing' do
copy me copy me
EOF
end
+
+ specify 'CTRL+ARROW jumps by word' do
+ initial <<-EOF
+ one two three four
+ EOF
+
+ type '<C-Right>X<C-Right>Y<C-Left>Z'
+
+ final <<-EOF
+ one Xtwo ZYthree four
+ EOF
+ end
end
describe 'Selecting' do
@@ -106,6 +109,66 @@ describe 'Selecting' do
!of text
EOF
end
+
+ specify 'CTRL+D selects the word under the cursor' do
+ initial <<-EOF
+ a line of text
+ EOF
+
+ 4.times { type '<Right>' }
+ type '<C-D>X'
+
+ final <<-EOF
+ a X of text
+ EOF
+ end
+end
+
+describe 'Home/End behaviour for long, non-wrapped code lines' do
+ before(:each) do
+ # We need a small screen so that lines go off the edge of it.
+ @vim_options = [
+ # A single buffer can't be resized, so create a split of the buffer
+ 'vsplit',
+ 'vertical resize 6'
+ ]
+ end
+
+ specify 'HOME/END move to start/end of line off-screen' do
+ initial <<-EOF
+ line line line line
+ EOF
+
+ type '<End>X<Home>Y'
+
+ final <<-EOF
+ Yline line line lineX
+ EOF
+ end
+
+ specify 'SHIFT+END selects line, even if off-screen' do
+ initial <<-EOF
+ line line line line!
+ EOF
+
+ type '<S-End><S-Left>x'
+
+ final <<-EOF
+ x!
+ EOF
+ end
+
+ specify 'SHIFT+HOME selects line, even if off-screen' do
+ initial <<-EOF
+ !line line line line
+ EOF
+
+ type '<End><S-Home><S-Right>x'
+
+ final <<-EOF
+ !x
+ EOF
+ end
end
describe 'Wrapped text' do
@@ -115,6 +178,7 @@ describe 'Wrapped text' do
'vsplit',
'vertical resize 6'
]
+ use_extension 'txt'
end
specify 'move up/down one wrapped line' do