TODO list for Perl module Text::Editor::Vip
===========================================

* make Undo/Redo more memory effective

* what do we do with the redo stack when adding something to the do stack?
	=> erase? keep in synch with the previous do?

* View base class and its pluggins
	keyboard handlers

* Application and setup
	Adding tools to application

* lexers and folding

* find the align equal sign written in Simrishamn

* Get The copy and comment script from work.

* Ex and other emulators
	http://www.sandia.gov/ASCI/Red/usage/paragon/man/man1/ex.1.html
	http://resin.csoft.net/cgi-bin/man.cgi?section=1&topic=ex
	
* document plugins

* Should we have a mecanism to always save the buffer in case of an exception?
	
* Backspace with argument > 1 not handled efficiently (at all!)

* use Log4Perl to log stuff

* I haven't decided yet how to handle erroneous arguments. Croak, Call a user 
	defined function, ignore and log, return error codes !!!
	=> log the call stack when dying

* oops, what about override mode?

#* Test setting attributed into lines

#* Add a Set command, in a plugin, that handles the undo stack properly

#* Should SetSelection handle the do/undo stack?

#* Shouldn't we "inherit" in the opposit order? 

#* Find doesn't set selection anymore, add example somewhere
	#~ $buffer->SetModificationPosition($match_line, $match_position + length($match_word)) ;
	#~ $buffer->{SELECTION}->Set($match_line, $match_position,$match_line, $match_position + length($match_word)) ;

# more tests, some are listed as comments
	#test plugins

# Put the different types of indenters in a module
	=> Text::Editor::Vip::Plugins::Indenters

# Change all so script to OO style

#ClearLine doesn't handle modificaton position properly
	=> well it did
	
#GetText() should return an array when called in array context

# should it be possible to handle the selection directly
	Yes
	
# When an error occures, PrintError is called. That sub doesn't exist and must 
	be set by the buffer creator.

# return an object in a unique package

# move tab related functinos in a plugin

# Remove reset sub ?
	=> Keep
	
# Should we undo if Do dies?
	=> No, let view writter decide
	
