summaryrefslogtreecommitdiff
path: root/src/buffer.cc
AgeCommit message (Collapse)Author
2012-08-15Buffer::{iterator_at,clamp} takes an optional avoid_eol parameterMaxime Coste
when avoid_eol is true, clamping does avoid end-of-line if possible
2012-08-15misc cleanupsMaxime Coste
2012-08-15Buffer: add a timestampMaxime Coste
2012-08-14Buffer: stronger invariant, a buffer is never empty and all lines finish by '\n'Maxime Coste
2012-08-10Buffer: move back Modification as an implementation detailMaxime Coste
* Filters now only works on insertion and take directly the iterator and content * use Buffer::insert and Buffer::erase to modify a buffer
2012-08-10Buffer: fix corner case in insertMaxime Coste
2012-08-10Buffer: add reset_undo_data methodMaxime Coste
2012-08-08Refactor BufferManagerMaxime Coste
2012-08-05Context: only buffer context are not allowed, an editor is always neededMaxime Coste
2012-08-02Buffer: fix insert at end of bufferMaxime Coste
2012-07-18Fix end_it computation in Buffer::insert, avoid clamping in iterator_atMaxime Coste
2012-07-16Go back to a generic BufferChangeListener interface for selection updateMaxime Coste
2012-06-29Buffer: pass by value instead of by reference when object will be copied anywayMaxime Coste
Let copy elision and move semantics kick in
2012-06-28Fix BufferIterator::on_erase and tweak BufferMaxime Coste
2012-06-25code cleanups in bufferMaxime Coste
2012-06-14execute BufClose hook in Buffer destructorMaxime Coste
2012-06-05fix some warnings detected with clangMaxime Coste
2012-06-12BufCreate hook is always called for every buffer, BufNew is called when ↵Maxime Coste
creating a new file
2012-06-07HookManager are now hierarchical from window to buffer to globalMaxime Coste
window hooks also executes buffer hook which also execute global hooks
2012-06-04check if no modification were made in Buffer::end_undo_groupMaxime Coste
2012-04-14replace std::string references with StringMaxime Coste
2012-04-04remove ModificationListener and use a list of iterators to update insteadMaxime Coste
This permits to fix a bug in BufferIterator::upgrade, replaced by BufferIterator::on_insert and BufferIterator::on_erase. ModificationListener was only used to updating iterators anyway.
2012-04-04fix some corner cases in Buffer modificationMaxime Coste
2012-04-03add an OptionManager class and use it to manage tabstopsMaxime Coste
OptionManager map names to options, and may delegate option resolution to it's parent if it does not contains the asked for option. That way Buffers can override global options, and Windows can override Buffer options.
2012-04-03rename HooksManager to HookManagerMaxime Coste
2012-03-30add a Line::length methodMaxime Coste
2012-03-30Store buffer content in a list of linesMaxime Coste
Instead of a big std::string, buffer now store it's content in a list of lines. In order to achieve O(log(n)) random access, lines contains both their content and their offset since the start of the file, making binary search usable. BufferIterator now have a LineAndColumn coordinate into the buffer instead of an offset so that access is still O(1).
2012-03-26BufferManager no longer owns buffers, only register themMaxime Coste
2012-03-19get rid of Buffer::atMaxime Coste
2012-03-12buffer style fixMaxime Coste
2012-03-12get rid of Buffer::compute_linesMaxime Coste
2012-03-12fix update_lines on empty bufferMaxime Coste
2012-03-08rename BufferString to StringMaxime Coste
2012-03-08fix some unitialized variable use (thanks valgrind)Maxime Coste
2012-03-06simplify and optimize buffer line handlingMaxime Coste
2012-02-28call compute_lines before hooks at Buffer constructionMaxime Coste
2012-02-27fix Buffer::line_length for last lineMaxime Coste
2012-02-22Fix last line handling in bufferMaxime Coste
2012-02-22Buffer: optimize line updating when applying a modificationMaxime Coste
2012-02-22fix Buffer::line_length for last lineMaxime Coste
2012-02-02Use an Editor instead of a Window as much as possibleMaxime Coste
2012-01-31Buffer: support creation of temporary windows to apply commands when no ↵Maxime Coste
windows are in context
2012-01-31Buffer: add NewFile buffer type for buffer with an non existing yet fileMaxime Coste
2012-01-23HooksManager: forward declare Context instead of including context.hhMaxime Coste
2012-01-23HooksManager: extract the Singleton version as GlobalHooksManagerMaxime Coste
2011-12-28Buffer: fix compute_lines on empty_bufferMaxime Coste
2011-12-07Filters: move from buffer to windowMaxime Coste
2011-12-07Buffer: replace insert and erase methods with modifyMaxime Coste
modify directly takes a Modification as parameter
2011-12-06Buffer: rename BufferModification to ModificationMaxime Coste
2011-12-02Buffer: call BufCreate hook on constructionMaxime Coste