summaryrefslogtreecommitdiff
path: root/docs/fs.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/fs.md')
-rw-r--r--docs/fs.md20
1 files changed, 15 insertions, 5 deletions
diff --git a/docs/fs.md b/docs/fs.md
index 5c952403..5e1c3ffb 100644
--- a/docs/fs.md
+++ b/docs/fs.md
@@ -214,7 +214,10 @@ go. An `exec` line's blanks at either end are trimmed.
is the home directory ($HOME, else the passwd entry's; `~user` that
user's) here and wherever a path is typed (`name`, `Save`, `ThemeFile`,
`DumpDir`, `Restore`, `pardes '~/x'`), even beside a file named `~`: write
- `./~` for that.
+ `./~` for that. A path to no file is a miss, as a search that finds
+ nothing is: said on the message row and logged as an `err`, the write
+ still answered. A file that is there but will not open (no permission to
+ read it, say) fails the write, with why.
- `@p<serial>:<addr>` addresses a pane by serial, a terminal's logical lines
too.
- a directory types `ls` into a terminal idle there, else opens one there.
@@ -241,7 +244,10 @@ A line written to `exec` is a middle click:
nothing, silently, here and in every ctl.
- the language server's words ask about a file pane's text at its cursor
(set it with `addr` and `dot=addr` first): `Hover` fills `+Hover`,
- `Rename new` renames the symbol everywhere and lists the places,
+ `Rename new` renames the symbol in the file and says how many ranges it
+ changed (on the message row, and so in /log) without listing them; one
+ that finds nothing to rename fails; a rename the server spreads over
+ other files lists them in `+Search`,
`Diagnostics` and `Symbols` list the file's in `+Search`, `Lspinfo` says
which server serves the file and its state, and `Lspwhy` narrates the
last query step by step (in `+Lsp`), to tell why it found nothing. The
@@ -313,7 +319,7 @@ Writes take settings and session builtins (`scope = .session` in
write is answered, then **every connection is hung up**: dial again, and
restart a 9ns mount. The new log has a `new` per pane, `restore <path>`,
then `restored <old> <new>` per pane and `restoredcol <old> <new>` per
- column. Undo history and REPL bindings are not restored; a command pane
+ column. Undo history, the jump list and REPL bindings are not restored; a command pane
comes back showing how it ended (`exit ?` if it was running) and does not
run again.
- `Kill [word...]` (above), `Mount name dial`, `Unmount name`, `Theme x`,
@@ -405,7 +411,9 @@ A terminal's body is its history as plain text in logical lines (wrapped
rows joined), frozen per open; writing it sends input to the child as typed
keys, never a paste: no bracketed-paste marks around it, even when the
program asked for them, so a newline in it is Enter. A PDF's
-body is the text layer of the page shown; images and PDFs take no write
+body is the text layer of the page shown, read-only: it is no text of the
+pane's, so `addr`, `data`, `dot` and a `file:<addr>` look do not address
+it (a PDF's `:<n>` is its page); images and PDFs take no write
(`this pane has no text`).
**`sel`** reads the selected text; a write replaces it. **`errors`** is
@@ -555,7 +563,9 @@ flag is `dirty`; a `+New` scratch reads 1 but holds up nothing under 100
bytes.
The writes of one open of `data`, `xdata` or `body` are one undo step (so a
-multi-line `printf` is one). To make a loop of opens one step: `echo 1 >
+multi-line `printf` is one), as long as no other client or keystroke edits
+the pane between them: such an edit ends the step, and the open's next
+write starts another. To make a loop of opens one step: `echo 1 >
mark` (a point now), `echo 0 > mark`, the writes, `echo 1 > mark`.
### event