summaryrefslogtreecommitdiff
path: root/src/buffer.hh
AgeCommit message (Collapse)Author
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
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