about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2024-11-23 23:25:19 +0100
committerbptato <nincsnevem662@gmail.com>2024-11-24 00:01:44 +0100
commit65505fa55a6e199e89ab033aeb0cf293defa03cf (patch)
treecadbff6c027fd3313b220350971ae148abba9292 /src
parent2138e8eb0f57bc78bfc336f8c5cd8092f61f0700 (diff)
downloadchawan-65505fa55a6e199e89ab033aeb0cf293defa03cf.tar.gz
pager, select: implement more functions
not quite happy with this design but for now let's just try to make
it work well
Diffstat (limited to 'src')
-rw-r--r--src/local/pager.nim3
-rw-r--r--src/local/select.nim20
2 files changed, 18 insertions, 5 deletions
diff --git a/src/local/pager.nim b/src/local/pager.nim
index eec61715..e9927b4f 100644
--- a/src/local/pager.nim
+++ b/src/local/pager.nim
@@ -2258,7 +2258,8 @@ const MenuMap = [
   ("Save source (sS)", "buffer.saveSource"),
   ("Reload (U)", "pager.reloadBuffer"),
   ("Save link (s<Enter>)", "buffer.saveLink"),
-  ("View image (I)", "buffer.viewImage")
+  ("View image (I)", "buffer.viewImage"),
+  ("Linkify URLs (:)", "buffer.markURL")
 ]
 
 proc menuFinish(opaque: RootRef; select: Select; sr: SubmitResult) =
diff --git a/src/local/select.nim b/src/local/select.nim
index bf4d5500..9a1c550d 100644
--- a/src/local/select.nim
+++ b/src/local/select.nim
@@ -94,11 +94,23 @@ proc scrollUp(select: Select; n = 1) {.jsfunc.} =
     select.cursorUp(select.fromy - tfy)
   select.queueDraw()
 
-proc cursorPrevLink(select: Select) {.jsfunc.} =
-  select.cursorUp()
+proc cursorPrevLink(select: Select; n = 1) {.jsfunc.} =
+  select.cursorUp(n)
 
-proc cursorNextLink(select: Select) {.jsfunc.} =
-  select.cursorDown()
+proc cursorNextLink(select: Select; n = 1) {.jsfunc.} =
+  select.cursorDown(n)
+
+proc cursorLinkNavUp(select: Select; n = 1) {.jsfunc.} =
+  select.cursorUp(n)
+
+proc cursorLinkNavDown(select: Select; n = 1) {.jsfunc.} =
+  select.cursorDown(n)
+
+proc cursorNthLink(select: Select; n = 1) {.jsfunc.} =
+  select.setCursorY(n - 1)
+
+proc cursorRevNthLink(select: Select; n = 1) {.jsfunc.} =
+  select.setCursorY(select.options.len - n)
 
 proc gotoLine(select: Select; n: int) {.jsfunc.} =
   select.setCursorY(n + 1)