File: TODO

package info (click to toggle)
libtk-pod-perl 0.9939-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny, squeeze
  • size: 332 kB
  • ctags: 254
  • sloc: perl: 4,416; makefile: 43
file content (409 lines) | stat: -rw-r--r-- 8,192 bytes parent folder | download
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
=head1 TODO

Scratch pad of bugs, missing features, and misbehaviors collected
while using tkpod.

=head2 BUGS

=head3 Tk::Pod

=over

=item *

SE<lt>E<gt> seems often to be ignored. May be a core Tk::Text bug (i.e.
C<< -wrap => "none" >> in tags being sometimes ignored)

=item *

For Windows: check whether Tk::More/Tk::Tree match the system
background colors. Also check if the "Help" menu item is on the
correct place.

=item *

Title is not displayed if function or FAQ pod in displayed in a new
window or when navigating in the history back or forward to a
function/FAQ pod.

=item *

C<< $podtext->configure(-file => ...) >> does not work always as
expected. When set from a command line argument, then one expects to
use the name of a module in perl's pod path (specified without .pm or
.pod extension) or a (relative) path to a file (with extension). Example:

    cd ~/src/bbbike
    tkpod ESRI/esri2bbd.pl
    * now click on bbbike link => bbbike itself will be loaded, not bbbike.pod
      because of a -f test in findpod

=item *

Do not move focus if already in PodText's search entry.

=item *

The perlfunc subentries do not show up in the history.

=item *

Paragraphs after bullet and number items do not align correctly.
Tweaking the _indent functionality in Tk::Pod::SimpleBridge seems to
be necessary.

=item *

If .pod and .pm are located in separated directories, then the wrong
file (the .pm) might be chosen. Seen on Debian with IO::Handle.

=item *

There is never a horizontal scrollbar, even if a verbatim block
exceeds the window width. An workaround would be to have the vertical
scrollbar non-optional and the horizontal scrollbar optional
(unfortunately both cannot be optional because of a bug in the
Scrolled code).

=back

=head3 Tk::Pod::FindPods

=over

=item *

The location of the cache file is predictable and on /tmp which is
bad. Either choose a unpredictable but unique filename, or use
techniques like O_EXCL (is this supported everywhere?).

=back

=head3 Tk::Pod::Search

=over

=item *

Reorder modules in the fulltext search results to reflect @INC
order.

=back

=head3 Tk::Pod::Tree

=over

=item *

Make tree busy while building first time.

=item *

Show a progress bar or an indicator when refreshing the pod index.

=item *

It would be nice if building the tree would happen in background, e.g.
by using standard perl ipc (pipe+fork).

=back

=head3 Tk::More

=over

=item *

Highlight matches in link text.

=item *

A menu item for switching between popular encodings. Default probably
to iso-8859-1 or maybe user's locale.

=item *

A menu item (and maybe also the keyboard equivalent -x) for changing
the indentation level.

=item *

If there are more configuration parameters resembling less, then maybe
an environment variable like LESS could be useful for common
configuration parameters. Question: should this only be valid if it's
called as tkmore or also if embedded in Tk::Pod?

=back

=head3 tkpod

=over

=item *

In server mode, no commandline options are accepted. Probably at least
-h/-? should be supported and errors for other options dropped.

=item *

Get rid of the numerous warnings in server/client mode.

=item *

If the client sends a file which cannot be opened, then the server
crashes!

=item *

The tkpod client should send cwd, so relative filenames work in server
mode, too.

=back

=head2 WISHLIST

=head3 Tk::Pod

=over

=item *

History: prefer short pod names over filenames. Do not record
temporary file names (as in perldoc -f / -q) in history view.

=item *

If "perlindex -index" is not run yet: ask user to run it? Problematic
on Unix, because perlindex should be run as superuser.

=item *

On Windows: show printer selection dialog first, maybe also on
KDE/GNOME, if available.

=item *

Optionally save settings on exit, e.g. current base font size.

=item *

Marek Rouchal writes:

Subject: tkpod - other font

Fine, there is a central
place where I can do adaptations easily - but how can
I easily override? The only solution I can imagine
right now is to place a Tk::Pod::Styles in some
$PERL5LIB directory and shadow the installation's
Tk::Pod::Styles; there could be e.g. a 
  -usestyle Tk::Pod::Styles::Mine
option, where I can provide my own package, which inherits
from Tk::Pod::Styles and overrides one or more subs.

But I would appreciate a general solution with either a
~/.tkpodrc or the X resources, as already mentioned.

-> There's now a solution with X resources, which are also settable
with -xrm. But maybe a .tkpodrc solution would also be nice, especially
for non-X11 people.

=item *

Maybe patch Ulrichs TPJ example code for nroff pages to allow both POD
and MAN in fulltext search dialog.

=item *

add meaningful regression tests

=item *

use some kind of access control for the -s option

=item *

new menu entry with a link list (e.g. all LE<lt>...E<gt> and everything
looking like a module /\w+::\w+/)

=item *

make ManViewer into a standalone widget, link entries in "SEE ALSO" 

=item *

option for interleaving POD and code

=item *

show "No documentation found for "..."" if there's no pod in the file
(just like perldoc)

=item *

maybe you something selectable and copyable (e.g. Tk::ROText) in the
About dialog

=item *

support for the new Pod::Index module (similar to the fulltext search)

=item *

some kind of stylesheet support

=item *

It should probably be possible to create the menus Section and History
independently of the main Tk::Pod frame, so the user may add these
menus to the context menu of the PodText window.

=item *

Have a new popup menu entry "Copy Pod location", and maybe a new menu
entry View -> Pod info which shows path and basic Pod information.

=item *

If a Pod could not be found: add a button "Look at search.cpan.org" to
the error dialog.

=item *

"Open Pod by name" dialog could be done nicer, e.g. by using a rich
Tk::Text instead of the label/message and use "sans serif"+"monospace"
fonts.

=back

=head3 Tk::More

=over

=item *

Tk/More status bar:  filename  %   line x

=item *

more 'more' like key bindings to Tk::More.

=item *

More.pm: search should scroll per page

=item *

search policies: regexp, glob, incremental (as in xmore)
and 'normalized' as in perlindex.  Should go into it's own
Tk::Text::Util.pm module

=item *

after switching between case sensitive/insensitive highlightning
should be updated immediately

=item *

scrolling is not as exact as it shoule be (i.e. scroll forw, then
scroll back will not get to the same position as before)

=item *

use Tk::HistEntry for search entry

=item *

implement isearch

=item *

<Return> over a link opens the link (but this needs some kind of
"current link" feature, probably by using <Tab> or similar to select
the next link).

=back

=head3 Tk::Pod::Cache

=over

=item *

use a LRU cache with $MAX_CACHE documents

=item *

maybe do not cache small documents at all

=item *

store modtime of POD files and flush cache automatically if the file
changed

=back

=head3 Tk::Pod::Tree

=over

=item *

Some zoom functionality, maybe depending on the zoom factor of the
main window, and/or an additional menu entry.

=item *

Should I include something similar to perlfunc for perlfaq (perldoc
-q)? Maybe a new menu item "Search FAQ"?

=item *

Implement C<-rememberopen> in C<Fill> method.

=item *

Mark modules which appear multiple times in the @INC tree, e.g. with
an exclamation mark, and maybe show the paths and versions(?) of
both/all versions.

=back

=head3 tkpod

=over

=item *

Instead of listening to a tcp socket, maybe one should use a unix
domain socket (security, a unix domain socket may be chown'ed and
chmod'ed!)

=back

=head2 Expired

These bugs are probably fixed or not reproducable or apparent on old
systems only:

=over

=item *

Ctrl-O Exporter does not work?!

=item *

What about the reported error on Suse Linux (see Tk-Pod entry on
rt.cpan.org)? I can't reproduce this bug...

=item *

Dump does not always work on a RedHat 8.0 system, so I had to use a
workaround. Also, Tk::Pod very often dumps core on this system in
conjuction with perl5.8.0 and Tk800.025, but this might be a
RedHat-related issue.

=back