we are amused

main
Daniel Barlow 2022-12-23 19:45:58 +00:00
parent e639e4c73d
commit bdd4507692
1 changed files with 22 additions and 41 deletions

View File

@ -1,41 +1,10 @@
what if ... a web browser, but tabs were more like emacs buffers?
# Braindump
buffer attributes:
- url
- viewport (this is a departure from the emacs buffer)
This is a combination of a thinking-out-loud document and a TODO list.
It is not a document of record. You should not expect to derive value
from reading it
## commands
A command is a description of a function that may be invoked
interactively, and the parameters it expects.
```fennel
(define-command "visit-location"
visit-location
{:url Type.Url input-from-minibuffer})
;; hit "g" and then enter the location in the minibuffer
(bind-key "g" (command "visit-location"))
;; hit "h" to go straight to your home page
(bind-key "h" (command "visit-location")
{:url (Type.Url "https://home.example.com")})
;; left mouse click on minibuffer hit "h" to go straight to your home page
(bind-event Dunlin.minibuffer :button-1-click (command "visit-location"))
```
when it is run from the command prompt, each parameter is
prompted, with appropriate defaults.
when it is bound to a key chord/sequence, the binding may specify
where it gets its parameters from - otherise
visit-location
visit-location-in-new-buffer
run-command
back
switch-to-buffer
save-file
save-link
tl;dr what if ... a web browser, but tabs were more like emacs buffers?
## objects/data types
@ -47,6 +16,8 @@ buffer
add some kind of webview reuse so that invisible and old buffers
don't need to have a webview until needed.
I seem to be using "buffer" and "tab" mostly synonymously
frame
Frame.the-frame
frame.set-buffer (buffer)
@ -54,15 +25,25 @@ frame
frame.commander - text entry widget
frame.actions - container of toolbar buttons
in future we may be able to split a frame into multiple windows
which show different buffers
location (url)
document
document element(?)
webview
lua's standard types
## next steps
# getting started
gtk stuffz for frame/commander/initial buffer
command parser hooked to commander
visit-location command
* change define-command so that the parameters are ordered
* display unbound key error
* ESC to cancel interactive command
* autocomplete command name
* parameters with non-string values (e.g. buffer)
* show current url when command inactive
* show prompts for parameter
* multiple buffers
- create buffer
- list buffers (where does the output go?)
- find and switch to buffer