# Implementation Tweaks and Bug Fixes
+* add tag for toggling expand tabs
+* add tag for toggling auto indent
+* Expand tabs setting should be disabled if opened file contains tabs
+* Add tag for ctags lookup and line number jump
* add a shortcut to autocomplete ctag
+* off by one error on scrolling up with wrapped lines
+* block selection should handle brace-balancing
* Use select to check for error strings in exec.c
* Should not be able to undo initial tag line text insertion
* track down double click bug for selecting whole line
-* Add tag for ctags lookup
* Implement minimal regex search (per Kernighan article)
* Implement fuzzy file/buffer/tag picker
-* Implement omnicomplete pop-up
-* off by one error on scrolling up with wrapped lines
-* block selection should handle brace-balancing
-
-# Internals and Miscellaneous
-
-* Calculate line numbers and keep up to date while editing
# Auxillary Programs
return buf_getcol(buf, off) / TabWidth;
}
-unsigned buf_ins(Buf* buf, bool indent, unsigned off, Rune rune) {
+unsigned buf_ins(Buf* buf, bool fmt, unsigned off, Rune rune) {
buf->modified = true;
- if (buf->expand_tabs && rune == '\t') {
+ if (fmt && buf->expand_tabs && rune == '\t') {
size_t n = (TabWidth - ((off - buf_bol(buf, off)) % TabWidth));
log_insert(&(buf->undo), off, off+n);
for(; n > 0; n--) insert(buf, off++, ' ');
log_insert(&(buf->undo), off, off+1);
insert(buf, off++, rune);
}
- if (indent && buf->copy_indent && (rune == '\n' || rune == RUNE_CRLF)) {
+ if (fmt && buf->copy_indent && (rune == '\n' || rune == RUNE_CRLF)) {
unsigned indent = getindent(buf, off-1);
for (; indent > 0; indent--)
off = buf_ins(buf, indent, off, '\t');
/* Standard Unix Shortcuts */
{ ModCtrl, 'u', del_to_bol },
+ //{ ModCtrl, 'k', del_to_eol },
{ ModCtrl, 'w', del_to_bow },
{ ModCtrl, 'h', backspace },
{ ModCtrl, 'a', cursor_home },