<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rayedit.git/line.h, branch master</title>
<subtitle>Text editor for large files
</subtitle>
<id>http://git.dilluti0n.com/rayedit.git/atom?h=master</id>
<link rel='self' href='http://git.dilluti0n.com/rayedit.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/'/>
<updated>2025-05-01T15:24:36Z</updated>
<entry>
<title>refactor: deprecate line-&gt;cursor; simplify vertical cursor movement</title>
<updated>2025-05-01T15:24:36Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-05-01T14:29:19Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=59bda4a797bcf7cc06f4e3990db8d91448d7604a'/>
<id>urn:sha1:59bda4a797bcf7cc06f4e3990db8d91448d7604a</id>
<content type='text'>
This patch removes the per-line cursor cache (`line-&gt;cursor`),
reducing implementation complexity. Vertical cursor movement (up/down)
now uniformly places the cursor at the beginning of the line, instead
of trying to restore the previous horizontal position. UX
considerations such as column preservation will be revisited after
core stabilization.
</content>
</entry>
<entry>
<title>feat: add slice-based accessors for line and editor buffer</title>
<updated>2025-04-29T12:56:40Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-29T12:53:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=5e4cb3121fd3eaf9ed6b6887e8010f6a80ed0f3d'/>
<id>urn:sha1:5e4cb3121fd3eaf9ed6b6887e8010f6a80ed0f3d</id>
<content type='text'>
This adds `line_get_slice` and `eb_get_line_slice`, enabling
slice-style (pointer + length) access to line contents without
requiring materialization into a null-terminated string.

- `line_get_slice` returns either the original mmap'd buffer (if the
- line is lazy) or the materialized vector contents (if edited).
- `eb_get_line_slice` wraps `line_get_slice` to provide safe access at
- the editor buffer level.  Update `line.h` and `editor.h` headers to
- declare the new functions.  Minor documentation improvements to
- clarify "init", "modify", and "get" function categories.

This prepares the codebase for transitioning away from C-string
dependency where possible, improving efficiency and avoiding
unnecessary memory copies.
</content>
</entry>
<entry>
<title>fix: `line_free` to handle lazy-loaded line appropriately.</title>
<updated>2025-04-29T07:37:24Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-29T07:37:24Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=c9273c50f42e2df8aa7a3a754e649e55c1d31445'/>
<id>urn:sha1:c9273c50f42e2df8aa7a3a754e649e55c1d31445</id>
<content type='text'>
fix `line_cat` to handle lazy-loaded `src` line too

[minor]
add const keyword for line_get_last since it is.
</content>
</entry>
<entry>
<title>remove: line-&gt;last to reduce ambiguity.</title>
<updated>2025-04-29T06:17:23Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-29T06:14:10Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=fd24eefca89d7e0534ea4ef77aa302bc439da5eb'/>
<id>urn:sha1:fd24eefca89d7e0534ea4ef77aa302bc439da5eb</id>
<content type='text'>
vec_len is O(1) and it would be fast enough to use it.

introduce line_lazy_init for lazy load (allocate each line when
actually edit it!) per line.

[minor]
remove obsolate line_delete_trailing.
</content>
</entry>
<entry>
<title>perf: make line from buf directly instead of append each characters</title>
<updated>2025-04-28T15:40:20Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-28T15:39:20Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=95e17552cd806f29680727f504571a5ffdfb2ff8'/>
<id>urn:sha1:95e17552cd806f29680727f504571a5ffdfb2ff8</id>
<content type='text'>
implement line_init_from_buf for this.
</content>
</entry>
<entry>
<title>implement: eb_set_cur_back and eb_set_cur_prev</title>
<updated>2025-04-26T19:46:10Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-26T19:46:10Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=c699400bf07ee97f3ad05cc59e1c8a6b0fafaa9e'/>
<id>urn:sha1:c699400bf07ee97f3ad05cc59e1c8a6b0fafaa9e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>implement: eb_backspace; line_cat still TODO</title>
<updated>2025-04-26T16:58:25Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-26T16:58:25Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=c7f0a281f58ac12cf339e3de2f9ba44997638d09'/>
<id>urn:sha1:c7f0a281f58ac12cf339e3de2f9ba44997638d09</id>
<content type='text'>
line_cat should be implemented; markd it TODO
</content>
</entry>
<entry>
<title>refactor: move debugs to config.h and handle build gracefully</title>
<updated>2025-04-26T16:46:27Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-26T16:46:27Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=12443123cb0b6607b4360a96d8bf6880b4a1499f'/>
<id>urn:sha1:12443123cb0b6607b4360a96d8bf6880b4a1499f</id>
<content type='text'>
makefile now handle each object and sources seperately to handle
header change gracefully.

and from now on, #DEBUG should declared inside of config.h
</content>
</entry>
<entry>
<title>implement: eb_newline</title>
<updated>2025-04-26T16:34:05Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-26T16:34:05Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=5354050048037031d092343119b6297230b6b7c8'/>
<id>urn:sha1:5354050048037031d092343119b6297230b6b7c8</id>
<content type='text'>
I move around most of because it did not update eb-&gt;cur_col correctly.

implement line_split which use vec_split for it

[minor]
implement eb_get_line and eb_line_num
refactor main routine to use them
add DEBUG symbol to makefile and remove lines.o for OBJS

move declaration struct line to line.c from line.h for enhanced OOP
</content>
</entry>
<entry>
<title>implement: eb_backspace</title>
<updated>2025-04-24T08:06:58Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-04-24T08:06:58Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/rayedit.git/commit/?id=ba4e3157884a6a2d8a27926eb97e04d0e980105b'/>
<id>urn:sha1:ba4e3157884a6a2d8a27926eb97e04d0e980105b</id>
<content type='text'>
</content>
</entry>
</feed>
