summaryrefslogtreecommitdiff
path: root/src/buffer.hh
AgeCommit message (Collapse)Author
2013-05-30BufferIterator are Random Access iteratorsMaxime Coste
2013-05-30remove BufferIterator::clampMaxime Coste
2013-05-30remove BufferIterator::offsetMaxime Coste
2013-05-30Add Buffer::{next,prev,at}(BufferCoord) methods and use them in iteratorsMaxime Coste
2013-05-30Buffer insert and erase takes coord rather than iteratorsMaxime Coste
2013-05-30BufferIterator convert implicitly to const BufferCoord&Maxime Coste
2013-05-30DisplayBuffer: use coords rather than iteratorsMaxime Coste
2013-05-29Buffer::do_{erase,insert} takes coord parameters rather than iteratorsMaxime Coste
BufferChangeListeners do as well use coord rather than iterators
2013-05-29Buffer: add some method to work directly with coord instead of iteratorsMaxime Coste
2013-04-26When committing an undo group, run an optimization pass on itMaxime Coste
With incremntal insertion, undo groups tends to be a lot of single character insertion/deletions at the same point, but the end result is most of the time a single string insertion. Buffer now tries to optimize the undo group.
2013-04-24Buffer: rename character_count method to byte_countMaxime Coste
2013-04-23Buffer: add is_valid(BufferCoord) methodMaxime Coste
2013-04-22support renaming buffersMaxime Coste
Changing buffer name allows to save a *make* or *grep* buffer when launching another one for exemple.
2013-04-09sort includes directivesMaxime Coste
2013-04-04do not check buffer invariant in do_{erase,insert} as this cause O(n²) ↵Maxime Coste
behaviour
2013-04-02Extract AutoRegister logic to a helper classMaxime Coste
2013-03-31Move change listener registration to BufferChangeListener_AutoRegisterMaxime Coste
DynamicSelectionList now just inherit from this class, so that the registration logic can be shared.
2013-03-25move absolute path logic to Buffer classMaxime Coste
2013-03-15move BufferIterator on_{insert,erase} as DynamicSelectionList implementation ↵Maxime Coste
detail
2013-02-20Buffer: replace {begin,end}_undo_group with a single commit_undo_group methodMaxime Coste
2013-01-31Remove Set and use unordered_setMaxime Coste
2013-01-23Buffer: small style fixesMaxime Coste
2013-01-11Add and use a Set template class for recuring small setsMaxime Coste
2012-11-23Buffer takes a vector of lines as initial contentMaxime Coste
2012-11-22Cleanups and minor refactoring on BufferMaxime Coste
2012-11-22move Window ownership to the ClientManager instead of the BufferMaxime Coste
2012-11-22rename (hook|option)_manager to (hook|option)s.Maxime Coste
And Global(Hook|Option)Manager to Global(Hook|Option)s
2012-11-21Buffer: replace reset_undo_data with a NoUndo flagMaxime Coste
2012-11-20Buffer: replace Buffer::Type with Buffer::FlagsMaxime Coste
2012-11-12make Buffer::{add,remove}_change_listener const and the listener list mutableMaxime Coste
2012-11-12BufferIterator holds a safe_ptr to their buffer instead of a raw pointerMaxime Coste
2012-11-05Rework Window creation, avoid using the same window in multiple clientsMaxime Coste
2012-10-11use ByteCount instead of CharCount when we are really counting bytesMaxime Coste
(that is most of the time when we are not concerned with displaying)
2012-10-08Buffer: add some utf8 sanity checksMaxime Coste
2012-10-08selections should always point to an utf8 character sequence start byteMaxime Coste
2012-10-02add postfix operator++ to BufferIteratorMaxime Coste
2012-10-01String and BufferIterator value_type goes back to plain charMaxime Coste
2012-09-10Buffer: Allow inserting at the end when the inserted text ends with an end ↵Maxime Coste
of line Adapted other code in consequence and added unit tests so that this behavior is maintained.
2012-09-04use more constexprMaxime Coste
2012-08-23use a strongly typed int CharCount for character countsMaxime Coste
2012-08-22use a strongly typed int LineCount for line countsMaxime Coste
2012-08-21Add Buffer::iterator_at_line{begin,end}(size_t line) overloadsMaxime Coste
2012-08-15Add BufferIterator::clamp(bool avoid_eol) methodMaxime Coste
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-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: add reset_undo_data methodMaxime Coste
2012-08-10Window,Buffer: add const overload for {option,hook}_managerMaxime Coste
2012-08-08BufferIterator: use default operator=Maxime Coste