[txmt-dev] Re: Implementing inline marks

Jacob Carlborg doob at me.com
Sat Aug 30 19:51:03 UTC 2014


On 2014-08-30 13:33, Allan Odgaard wrote:

> Splitting a string on a delimiter is a fraction of the cost of actually
> drawing the strings, so there is no efficiency degradation to speak of
> here.

If that's the case, then that's fine by me.

> The tax I was talking about was about code complexity. The marks are
> dealt with in at least four places: the buffer that tracks how they move
> around, the document when we set marks for a document that isn’t open,
> extended attributes, from where we read/write bookmarks (but could also
> read other marks, for example when writing a backup file we probably
> should include all marks), and finally mate + rmate (of which there are
> 3 ports) which should send marks to TextMate via a socket.
>
> I would prefer not having to introduce the composite data type to all of
> the above code; using a string you can still put in multi-record data
> via a delimiter, and none of the code involved in the above would care.

None of that code has changed, so far. I kept the API completely 
backwards compatible. I added a new function that returns the vector. 
The old ones just return the first element in the vector.

> The marks_t (from buffer framework) associate marks with a buffer index.
> So yes, you can store for position 1:1 and 1:2.
>
> The document_t::add_mark actually takes a range and uses a multimap to
> store it (so multiple marks can be stored for same range). Though that
> API should be updated to how the buffer actually deals with marks.

I'll take closer look at that.

-- 
/Jacob Carlborg



More information about the textmate-dev mailing list