misc/vim: inform the user when no results are found
[nit.git] / lib / for_abuse.nit
index 2ee4d28..812fb02 100644 (file)
@@ -38,20 +38,21 @@ end
 
 # Abuser to read a file, see `file_open`
 private class ReadFileForAbuser
-       super ForAbuser[IFStream]
+       super ForAbuser[FileReader]
        var path: String
        redef fun iterator do return new ReadFileForAbuserIterator(path)
 end
 
 # Abuser iterator to read a file, see `file_open`
 private class ReadFileForAbuserIterator
-       super Iterator[IFStream]
-       redef var item: IFStream
+       super Iterator[FileReader]
+       var path: String
+       redef var item: FileReader is noinit
        redef var is_ok = true
-       init(path: String)
+       init
        do
                # start of service is to open the file, and return in
-               item = new IFStream.open(path)
+               item = new FileReader.open(path)
        end
        redef fun next
        do
@@ -94,21 +95,18 @@ end
 private class SortAbuserIterator[E]
        super Iterator[CompareQuery[E]]
        # The index of the big loop
-       var i: Int
+       var i: Int = 0
        # The index of the small loop
-       var j: Int
+       var j: Int = 0
        # The array to sort
        var array: Array[E]
        # The query used to communicate with the user.
        # For ecological concerns, a unique CompareQuery is instatiated.
-       var query: nullable CompareQuery[E]
+       var query: nullable CompareQuery[E] = null
        redef fun item do return query.as(not null)
-       init(array: Array[E])
+       init
        do
-               self.array = array
                # Initialize the algorithm, see `next` for the rest
-               i = 0
-               j = 0
                if not is_ok then return
                query = new CompareQuery[E](array[i], array[j])
        end
@@ -161,7 +159,7 @@ end
 #         print l
 #         assert not l.is_empty
 #     end # f is automatically closed here
-fun file_open(path: String): ForAbuser[IFStream]
+fun file_open(path: String): ForAbuser[FileReader]
 do
        return new ReadFileForAbuser(path)
 end