summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorToon Nolten <toonn@toonn.io>2018-07-07 22:00:33 +0200
committerGitHub <noreply@github.com>2018-07-07 22:00:33 +0200
commita523b1deaf1add8d105082720bf0ed9324eb69da (patch)
tree13a331d48fe89d8e045501cc35eb22b3d3e5890f
parent392f3a45530eb49dd35340999165c4c743050fab (diff)
parent901b69a38e5d0c90b138be5947870c1da5ba9e4f (diff)
downloadranger-a523b1deaf1add8d105082720bf0ed9324eb69da.tar.gz
Merge pull request #1227 from parmort/master
Revamped context section of the colorscheme doc
-rw-r--r--doc/colorschemes.md69
1 files changed, 63 insertions, 6 deletions
diff --git a/doc/colorschemes.md b/doc/colorschemes.md
index c7600700..458cfc53 100644
--- a/doc/colorschemes.md
+++ b/doc/colorschemes.md
@@ -6,14 +6,71 @@ This text explains colorschemes and how they work.
 Context Tags
 ------------
 
-Context tags provide information about the context. If the tag `in_titlebar` is
-set, you probably want to know about the color of a part of the titlebar now.
+Context tags provide information about the context and are Boolean values (`True`
+or `False`). For example, if the tag `in_titlebar` is set, you probably want to
+know about the color of a part of the titlebar now.
 
-There are a number of context tags, specified in `/ranger/gui/context.py` in the
-constant `CONTEXT_KEYS`.
+The default context tags are specified in `/ranger/gui/context.py` in the
+constant `CONTEXT_KEYS`. Custom tags can be specified in a custom plugin file in
+`~/.config/ranger/plugins/`. The code to use follows.
 
-A Context object, defined in the same file, contains attributes with the names
-of all tags, whose values are either `True` or `False`.
+```python
+# Import the class
+import ranger.gui.context
+
+# Add your key names
+ranger.gui.context.CONTEXT_KEYS.append('my_key')
+
+# Set it to False (the default value)
+ranger.gui.context.Context.my_key = False
+
+# Or use an array for multiple names
+my_keys = ['key_one', 'key_two']
+ranger.gui.context.CONTEXT_KEYS.append(my_keys)
+
+# Set them to False
+for key in my_keys:
+    code = 'ranger.gui.context.Context.' + key + ' = False'
+    exec(code)
+```
+
+As you may or may not have guessed, this only tells ranger that they exist, not
+what they mean. To do this, you'll have to dig around in the source code. As an
+example, let's walk through adding a key that highlights `README.md` files
+differently. All the following code will be written in a standalone plugin file.
+
+First, from above, we'll add the key `readme` and set it to `False`.
+
+```python
+import ranger.gui.context
+
+ranger.gui.context.CONTEXT_KEYS.append('readme')
+ranger.gui.context.Context.readme = False
+```
+
+Then we'll use the hook `hook_before_drawing` to tell ranger that our key is
+talking about `README.md` files.
+
+```python
+import ranger.gui.widgets.browsercolumn
+
+OLD_HOOK_BEFORE_DRAWING = ranger.gui.widgets.browsercolumn.hook_before_drawing
+
+def new_hook_before_drawing(fsobject, color_list):
+    if fsobject.basename === 'README.md':
+        color_list.append('readme')
+
+    return OLD_HOOK_BEFORE_DRAWING(fsobject, color_list)
+
+ranger.gui.widgets.browsercolumn.hook_before_drawing = new_hook_before_drawing
+```
+
+Notice we call the old `hook_before_drawing`. This makes sure that we don't
+overwrite another plugin's code, we just append our own to it.
+
+To highlight it a different color, just [add it to your colorscheme][1]
+
+[1]:#adapt-a-colorscheme
 
 Implementation in the GUI Classes
 ---------------------------------
tle='author hut <hut@lavabit.com> 2009-12-11 17:13:59 +0100 committer hut <hut@lavabit.com> 2009-12-11 17:13:59 +0100 restructurations' href='/akspecs/ranger/commit/ranger.py?h=v1.1.1&id=3de15ddd7fb0151e5f43f0b8e7d06bd76568e235'>3de15ddd ^
a66c4a26 ^


f027adc0 ^
5c210a96 ^

3de15ddd ^

5c210a96 ^
fb275079 ^

5c210a96 ^
3d566884 ^
a1d7ed6e ^
3d566884 ^
f8e96a97 ^
465bff73 ^





f027adc0 ^
f8e96a97 ^

0b5c4cbe ^
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
                 
              
















                                                                              




                                                                         

               
                        
             
 
                   
                                                                      
 
                                                    
                           
 
                 
                  

                           
    
                                                                


        
 

                                                                

                                                           
 

                                                              
                              
    
                               
 
                                   





                                                               
 

              
 
. Agaram <vc@akkartik.com>  2017-12-07 16:22:23 -0800
committer  Kartik K. Agaram <vc@akkartik.com>  2017-12-07 16:22:23 -0800

4155' href='/akkartik/mu/commit/html/same-fringe.mu.html?h=main&id=c0f84b1ffa18eaf6f399aafe462f2a0f705dd009'>c0f84b1f ^


b301e0c0 ^



c0f84b1f ^



5fe060d5 ^
c0f84b1f ^



b301e0c0 ^
c0f84b1f ^





b301e0c0 ^
c0f84b1f ^









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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152