File tree Expand file tree Collapse file tree 2 files changed +27
-24
lines changed Expand file tree Collapse file tree 2 files changed +27
-24
lines changed Original file line number Diff line number Diff line change 2
2
3
3
require 'spec_helper'
4
4
5
- RSpec ::Matchers . define :fold_lines do |lines |
6
- file = ".fixture.ex"
7
-
8
-
9
- match do |code |
10
- File . write ( file , code )
11
- VIM . edit file
12
- VIM . command ( "set foldmethod=syntax" )
13
-
14
- VIM . normal ( "zO" )
15
- VIM . normal ( "zM" )
16
- VIM . normal ( "dd" )
17
- VIM . write
18
-
19
- written = IO . read ( file )
20
- code . lines . count - written . lines . count == lines
21
- end
22
- end
23
-
24
5
describe 'Basic folding' do
25
- it 'blah' do
26
- content = <<~EOF
27
- defmodule M do
6
+ def self . it_folds_lines ( content , lines , tags = nil )
7
+ it ( "folds #{ lines } lines on \n #{ content } " , tags ) do
8
+ expect ( content ) . to fold_lines ( lines , tags )
28
9
end
29
- EOF
10
+ end
30
11
31
- expect ( content ) . to fold_lines ( 2 )
12
+ it_folds_lines ( <<~EOF , 2 )
13
+ defmodule M do
32
14
end
15
+ EOF
33
16
end
34
17
Original file line number Diff line number Diff line change @@ -61,6 +61,16 @@ def syntax(content, pattern)
61
61
syngroups . gsub! ( /["'\[ \] ]/ , '' ) . split ( ', ' )
62
62
end
63
63
64
+ def fold_and_delete ( content )
65
+ with_file content do
66
+ @vim . command ( "set foldmethod=syntax" )
67
+
68
+ @vim . normal ( "zO" )
69
+ @vim . normal ( "zM" )
70
+ @vim . normal ( "dd" )
71
+ end
72
+ end
73
+
64
74
private
65
75
66
76
def with_file ( content = nil )
@@ -193,6 +203,16 @@ def self.new
193
203
end
194
204
end
195
205
206
+ RSpec ::Matchers . define :fold_lines do |lines |
207
+ buffer = Buffer . new ( VIM , :ex )
208
+
209
+ match do |code |
210
+ after = buffer . fold_and_delete ( code )
211
+
212
+ code . lines . count - after . lines . count == lines
213
+ end
214
+ end
215
+
196
216
Vimrunner ::RSpec . configure do |config |
197
217
config . reuse_server = true
198
218
You can’t perform that action at this time.
0 commit comments