summaryrefslogtreecommitdiff
path: root/src/buffer.hh
AgeCommit message (Collapse)Author
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-28BufferManager use safe_ptr to reference the BuffersMaxime Coste
2012-06-25code cleanups in bufferMaxime Coste
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-05-29DisplayBuffer optimization, suppressed some paranoid checksMaxime 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-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-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-19get rid of Buffer::atMaxime Coste
2012-03-12get rid of Buffer::compute_linesMaxime Coste
2012-03-08rename BufferString to StringMaxime Coste
2012-02-22Buffer: optimize line updating when applying a modificationMaxime 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-11Document some Kakoune concepts, as Window, Buffer, DisplayAtom...Maxime 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-05Buffer: add comment for clampMaxime Coste
2011-12-02Buffer: add filter supportMaxime Coste
filters are functions called prior to applying a modification to a buffer. They can manipulate the modification to change the editor behaviour.
2011-11-28Buffer: add iterator_at_line_{begin,end} methodsMaxime Coste
2011-11-28DynamicBufferIterator: use const_cast instead of having a mutable field in ↵Maxime Coste
Buffer
2011-11-27Buffer: refactor to remove do_{insert,erase} methodsMaxime Coste
2011-11-04Buffer: tweak default contentMaxime Coste
2011-11-03Buffer: fix modified handlingMaxime Coste
2011-10-27rename buffer_iterator.inl.h to buffer_iterator.inl.hhMaxime Coste
2011-10-24DynamicBufferIterator: add and use in SelectionsMaxime Coste
DynamicBufferIterator are a new type of BufferIterators that automatically update themselves when their buffer is modified. Selections now uses this type of iterators instead of plain ones
2011-10-24Buffer: not copyable, add destructorMaxime Coste
2011-10-18Buffer: add support for modification listenersMaxime Coste
2011-10-17BufferIterator: move methods implementation to buffer_iterator.inl.hMaxime Coste
2011-10-17Buffer: move struct Modification out of class, as BufferModificationMaxime Coste
2011-10-15DisplayBuffer: refactoring, correct support of replacementsMaxime Coste
DisplayAtoms now know where they are on the screen and have line_and_column_at and iterator_at methods.
2011-10-14BufferCoord: allow explicit construction from all LineAndColumnsMaxime Coste
2011-10-07Buffer: add a type propertyMaxime Coste
2011-10-05Buffer: modification trackingMaxime Coste
2011-09-28BufferIterator: add operator>{,=}Maxime Coste
2011-09-22Buffer: add line_count methodMaxime Coste
2011-09-17LineAndColumn: move to it's own header and add operator[+-]=?Maxime Coste
LineAndColumn is now a template so that WindowCoords and BufferCoords cannot be added together.
2011-09-08Buffer is now responsible for window creationMaxime Coste
2011-09-08Window lifetime is now handled by it's buffer.Maxime Coste
A window cannot outlive it's buffer, so it makes sense to keep only a reference on it hand have the buffer manage the window lifetime.
2011-09-06Buffer: Undo/Redo implementationMaxime Coste
Currently only a linear undo, i.e. if you undo and then make some new changes, previous undoed changes are lost. Final undo system should support an undo tree, with timestamped modifications.
2011-09-06Buffer: accept initial content in constructorMaxime Coste
2011-09-05LineAndColumn: segregate into WindowCoord and BufferCoordMaxime Coste
Having the same type to specify coordinates in window space or buffer space is error prone, now the compiler will tell if we use one for another.
2011-09-02add const BufferIterator::Buffer& buffer() methodMaxime Coste
2011-09-02Initial commitMaxime Coste