about summary refs log tree commit diff stats
path: root/src/display/lineedit.nim
Commit message (Collapse)AuthorAgeFilesLines
* Re-design word handling, add e, E, W, B, etc.bptato2024-01-191-9/+9
| | | | | | | | | | | | * Add functions for moving to the beginning/end of words (vi `b', `e'). * As it turns out, there are many possible interpretations of what a word is. Now we have a function for each reasonable interpretation, and the default settings match those of vi (and w3m in w3m.toml). (Exception: it's still broken on line boundaries... TODO) * Remove `bounds` from lineedit, it was horrible API design and mostly useless. In the future, an API similar to what pager now has could be added. * Update docs, and fix some spacing issues with symbols in the tables.
* Use std/* imports everywherebptato2024-01-071-3/+3
|
* break up twtstr somewhatbptato2023-12-131-0/+1
| | | | | Avoid computing e.g. charwidth data for http which does not need it at all.
* WindowAttributes: refactorbptato2023-10-191-1/+1
| | | | | | * rename module (window -> winattrs, to avoid conflict with env/window) * do not use result * remove unused cell_ratio
* pager/lineedit: notify lineedit of windowChangebptato2023-10-181-0/+4
| | | | this was causing crashes
* lineedit: fix backspace bugbptato2023-09-301-1/+1
| | | | | We must decrease cursori by `len`, because exactly `len` bytes have been deleted from before the cursor.
* lineedit: add missing begin() calls in prevHist/nextHistbptato2023-09-201-0/+5
|
* lineedit: fix off by one error in killbptato2023-09-201-2/+2
|
* lineedit: fix a display bugbptato2023-09-181-1/+2
| | | | | The editor box never uses the last cell. However, it should still overwrite it.
* lineedit: rewritebptato2023-09-181-250/+200
| | | | | | | | | | | | | | | | The old lineedit system worked quite well in the original synchronous model. However, because it needs access to the terminal, it has been subtly broken ever since buffer updates are allowed while the user is in line edit mode. This is best observed in incremental search, where searching for a bgcolor'ed text would result in the bgcolor bleeding into the line editor box. The new version is much simpler, and therefore less optimized. But it can still take advantage of output optimization in the terminal controller, and it is free of races (because we simply query the current state from the pager and feed it into the main output grid).
* move around more modulesbptato2023-09-141-0/+369
* ips -> io/ * loader related stuff -> loader/ * tempfile -> extern/ * buffer, forkserver -> server/ * lineedit, window -> display/ * cell -> types/ * opt -> types/