aboutsummaryrefslogtreecommitdiff
path: root/TODO.org
blob: a53b7ad5a06ecc059631fb0e5ffff8e0de5e13a6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
** Usable
- [X] Decorations api (just for statusline)
- [X] web.schedule
- [X] Create view with html (web.view.set_html())
- [X] Expose JS <-> lua in page (web.view.expose())
- [X] Tests for api
- [X] Run JS in page (web.view.run_js())
- [X] KeyPressed event
- [X] f-key navigation
- [X] web.view.reload
- [X] Load assets directory into build
- [X] Show number of tabs in statusline
- [X] On finder stop, exit find mode
- [X] Callback for result of run_js
- [X] Generate docs for api
- [X] Any hint action/generic (currently only url open)
- [X] Embed docs in app (`null:/docs`)
- [X] web.decorations.*.set_size()
- [X] Vertical tabline ui
- [X] vendor web.inspect with build
- [X] Install docs/ and assets/ in build
- [X] Make the asset/config/lua paths readable via lua
- [X] json encode/decode
- [X] Fix path to symbols.json in web.help.get_items (use docs path)
- [X] Document events and event opts
- [X] Set search text as the user is typing (dmenu -r)
- [X] Update all api to use opts table options/filters pattern
- [ ] Element focus (input focus)
- [ ] Prevent scroll when hints is active
- [ ] Add win options for web.view.list / web.view.current / web.view.current_index /etc
- [ ] web.keymap.configure_mode(modename, { passthrough = false })
- [ ] Fullscreen
- [ ] Api for enabling rpc api in view
- [ ] Hide/show decoration api
- [ ] Review all options and make sure they're passed correctly
- [ ] Delay in tabline module updating (shows outdated titles)
- [ ] Look into removing unwanted "async"-ness in lua calls
- [ ] Zoom in/out/reset
- [ ] Clearing event handlers (auto groups?)

** Bugs
- [X] Closing webview should close devtools window
- [ ] INVESTIGATE: Segfault on close sometimes
- [ ] Glitchy find/hints mode (async problem)
- [ ] Statusline mode doesnt update when a different window updates mode
- [ ] web.view apis in `-e` flag from "clients" (non-servers calls) don't work
- [ ] API's don't validate types. (invalid type conversion segfaults)
- [ ] INVESTIGATE: Check why urlchanged doesnt fire for first url open sometimes

** Next
- [ ] Log stdout, errors and results from lua somewhere
- [ ] User stylesheets (per site and global?)
- [ ] View focus event (between decorations/views)
- [ ] Use table for all internals api options?
- [ ] User scripts (greasemonkey?)
- [ ] web.win.* apis (list, current_id)
- [ ] Move view to a different window (`web.view.move_to_window(view, win)`)
- [ ] Permission management (list/allow/block) lua api
- [ ] Granular updates in statusline plugin instead of set_html multiple times
- [ ] Tests for window
- [ ] More tests for stack
- [ ] More tests for router
- [ ] User data/profiles management
- [ ] Create window with new profile
- [ ] Configuration validation
- [ ] Allow toggling devtools
- [ ] Conflict in keymap (keymap already exists)
- [ ] Allow pattern filtering for event listeners
- [ ] Allow view_id, win_id filtering for event listeners
- [ ] Handle resource cleanup + signal disconnecting
- [ ] Private window (in-memory profile)

** Later
- [ ] Bookmarking
- [ ] Support multiple modes for keymap.set: `web.keymap.set({'n','i'}, ...)`
- [ ] static linking for qt
- [ ] Right click context menu items
- [ ] Listen to renderprocesstermination signal
- [ ] Change instance manager command format

** Later later
- [ ] Custom file picker
- [ ] remote debugging with cdp (spider-repl)

** Maybe
- [ ] Floating webviews?
- [ ] Move modal keymap management into lua?

** Notes
- view = 0, nil, none: Current view
- Win = 0: Current window
- Win = nil, none: All windows or current window based on operation
- Keep track of last focused window (current window is last focused)