OILS / doc / ref / chap-plugin.md View on Github | oilshell.org

149 lines, 85 significant
1---
2title: Plugins and Hooks (Oils Reference)
3all_docs_url: ..
4body_css_class: width40
5default_highlighter: oils-sh
6preserve_anchor_case: yes
7---
8
9<div class="doc-ref-header">
10
11[Oils Reference](index.html) &mdash;
12Chapter **Plugins and Hooks**
13
14</div>
15
16This chapter describes extension points for OSH and YSH.
17
18<span class="in-progress">(in progress)</span>
19
20<div id="dense-toc">
21</div>
22
23## Signals
24
25### SIGTERM
26
27SIGTERM is the default signal sent by `kill`. It asks a process to terminate.
28
29You can register a SIGTERM handler with the [trap][] builtin.
30
31[trap]: chap-builtin-cmd.html#trap
32
33### SIGINT
34
35SIGINT is usually generated by Ctrl-C. It interrupts what the shell is doing
36and returns to the prompt.
37
38You can register a SIGINT handler with the [trap][] builtin.
39
40### SIGQUIT
41
42SIGQUIT is usually generated by Ctrl-\.
43
44### SIGTTIN
45
46Used by the job control implementation.
47
48### SIGTTOU
49
50Used by the job control implementation.
51
52### SIGWINCH
53
54Oils receives this signal when the terminal window size changes.
55
56## Traps
57
58### DEBUG
59
60Runs code before "leaf" commands, like
61
62 echo hi
63 a=b
64 [[ x -eq y ]]
65 (( a = 42 ))
66
67But not before `{`:
68
69 { echo one; echo two; }
70
71---
72
73See the [Quirks doc](../quirks.html) for an interaction between the `DEBUG`
74trap, pipelines, and interactive shells.
75
76### ERR
77
78TODO
79
80### EXIT
81
82TODO
83
84### RETURN
85
86TODO
87
88## Words
89
90<!--
91<h3 id="PS1">PS1</h3>
92-->
93
94### PS1
95
96First line of the shell prompt.
97
98### PS2
99
100Second line of the shell prompt (unimplemented).
101
102### PS3
103
104For the `select` builtin (unimplemented).
105
106### PS4
107
108The prefix of each line of output in `set -x` aka `set -o xtrace`. The leading
109character is special.
110
111## Completion
112
113### complete
114
115The [complete][] builtin calls back into the shell evaluator to create
116candidate strings for autocompletion:
117
118- `-C` is an external command that's executed
119- `-F` is the name of a shell function name that's run
120- `-W` is a word list that's evalutaed
121
122[complete]: chap-builtin-cmd.html#complete
123
124## Other Plugin
125
126### PROMPT_COMMAND
127
128A command that's executed before each prompt.
129
130This feature is taken from [bash]($xref).
131
132## YSH
133
134### renderPrompt()
135
136Users may define this func to customize their prompt.
137
138The func should take the global `value.IO` instance, and return a prompt string
139(type `value.Str`).
140
141To construct the prompt, it can make calls like
142[`io->promptVal('$')`]($chap-type-method:promptVal).
143
144To render the prompt, YSH first checks if this function exists. Otherwise, it
145uses [`$PS1`]($chap-plugin:PS1) with a `ysh` prefix.
146
147<!-- note: doctools/cmark.py turns promptVal -> promptval -->
148
149