mirror of
https://github.com/vale981/tridactyl
synced 2025-03-05 09:31:41 -05:00
Implement different scroll excmds
In addition to scrollByLine and scrollByPage, an excmd to scroll by half pages is included to mimic default <C-u> and <C-d> behavior. In a future revision, it may be preferred to have some variable V for scroll values that pulls current window height when called.
This commit is contained in:
parent
dcdef5f812
commit
687aaf9209
4 changed files with 44 additions and 18 deletions
|
@ -6,9 +6,10 @@ namespace content {
|
|||
window.history.go(message.number)
|
||||
}
|
||||
|
||||
|
||||
function scrollHandler(message: Message) {
|
||||
window.scrollBy(0, message.number)
|
||||
function scrollHandler(message: Message, scope?: string) {
|
||||
if (!scope) window.scrollBy(0, message.number)
|
||||
else if (scope === "lines") window.scrollByLines(message.number)
|
||||
else if (scope === "pages") window.scrollByPages(message.number)
|
||||
}
|
||||
|
||||
function evalHandler(message: Message) {
|
||||
|
@ -23,6 +24,12 @@ namespace content {
|
|||
case "scroll":
|
||||
scrollHandler(message)
|
||||
break
|
||||
case "scroll_lines":
|
||||
scrollHandler(message, "lines")
|
||||
break
|
||||
case "scroll_pages":
|
||||
scrollHandler(message, "pages")
|
||||
break
|
||||
case "eval":
|
||||
evalHandler(message)
|
||||
break
|
||||
|
|
|
@ -20,14 +20,23 @@ namespace ExCmds {
|
|||
}
|
||||
}
|
||||
|
||||
let scroll = messageHelper("scroll")
|
||||
const scroll = messageHelper("scroll")
|
||||
const scroll_lines = messageHelper("scroll_lines")
|
||||
const scroll_pages = messageHelper("scroll_pages")
|
||||
|
||||
export function scrolldown(n = 1) {
|
||||
scroll(n)
|
||||
export function scrolldown(n = 1) { scroll(n) }
|
||||
export function scrolldownline(n = 1) { scroll_lines(n) }
|
||||
export function scrolldownpage(n = 1) { scroll_pages(n) }
|
||||
|
||||
export const scrollup = function (n = 1) { scrolldown(n*-1) }
|
||||
export const scrollupline = function (n = 1) { scrolldownline(n*-1) }
|
||||
export const scrolluppage = funciton (n = 1) { scrolluppage(n*-1) }
|
||||
|
||||
export const scrolldownhalfpage = async function (n = 1) {
|
||||
const current_window = await browser.windows.getCurrent()
|
||||
scrolldown(n*0.5*current_window.height)
|
||||
}
|
||||
|
||||
export let scrollup = function (n = 1) { scrolldown(n*-1) }
|
||||
|
||||
export const scrolluphalfpage = async function (n = 1) { scrolldownhalfpage(n*-1) }
|
||||
}
|
||||
|
||||
// From main.ts
|
||||
|
|
|
@ -99,15 +99,21 @@ namespace Parsing {
|
|||
// ex_str function names
|
||||
// TODO: These should be automatically discovered with introspection of the ExCmd object.
|
||||
const ex_str_to_func = {
|
||||
tabopen: console.log,
|
||||
scrolldown: ExCmds.scrolldown,
|
||||
scrollup: ExCmds.scrollup,
|
||||
nextab: console.log,
|
||||
prevtab: console.log,
|
||||
reader: console.log,
|
||||
exmode: console.log,
|
||||
open: console.log,
|
||||
//something: console.log,
|
||||
tabopen: console.log,
|
||||
scrolldown: ExCmds.scrolldown,
|
||||
scrollup: ExCmds.scrollup,
|
||||
scrolldownline: ExCmds.scrolldownline,
|
||||
scrollupline: ExCmds.scrollupline,
|
||||
scrolldownpage: ExCmds.scrolldownpage,
|
||||
scrolluppage: ExCmds.scrolluppage,
|
||||
scrolldownhalfpage: ExCmds.scrolldownhalfpage,
|
||||
scrolluphalfpage: ExCmds.scrolluphalfpage,
|
||||
nextab: console.log,
|
||||
prevtab: console.log,
|
||||
reader: console.log,
|
||||
exmode: console.log,
|
||||
open: console.log,
|
||||
//something: console.log,
|
||||
}
|
||||
|
||||
// Simplistic Ex command line parser.
|
||||
|
|
4
src/tridactyl.d.ts
vendored
4
src/tridactyl.d.ts
vendored
|
@ -13,4 +13,8 @@ interface Message {
|
|||
number?: number
|
||||
}
|
||||
|
||||
interface Window {
|
||||
scrollByLines(n: number): void
|
||||
scrollByPages(n: number): void
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue