summaryrefslogtreecommitdiff
path: root/TODO
blob: e65f0a957eed6f2b0125adce20d33a4ddbe58790 (plain)
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
WeeChat - Wee Enhanced Environment for Chat
===========================================

TODO - 2003-09-27

Legend:
  #  done
  +  currently in development
  -  pending
  ?  is this really necessary?


v0.0.1:

 * IRC protocol:
    # "/quote" command: send a raw string to the server without parsing it
    # "/me" command (for user actions description)
    # "/away" command (to toggle the away status)
    # "/op", "/deop", "/voice", "/devoice" commands
    # "/invite" command
    # "/kick", "/ban", "/unban" commands
    # "/kill" command
    # "/list" command: list of channels
    # "/names" command: view who is on a given channel without being
      on it (for example /names #weechat gives all the nicks present on
      #weechat, except those who have the +i flag (server side))
    # "/oper" command: become operator on the irc network
    # "/topic" command: change the topic of a channel
    # "/version" command: give the irc client version (CTCP VERSION)
      of a given nick/channel (without parameter: gives WeeChat version)
    # "/whois" command

 * WeeChat commands:
    # "/clear": to clear window content
 
 * Interface:
    # "demi-highlight" when joins/quits etc
    # log messages/warning/errors to ~/.weechat/log file
    # improve editing zone (left arrow <> backspace)
    # sort nick list
    # choose nick list position (top, left, right (default), bottom)
    # auto-resize nicklist (when nick too long)
    # do pretty cutting of long lines (align on the nick or after hour for server)
    # keep history of commands and call them again with up/down arrow
    # text GUI
    # ncurses GUI:
       # one window for each channel
       # color display
       # private windows
       # redraw window when term size is modified
       # chat history (pgup/pgdn for displaying history)
       # switch to other channel window

 * TCP/IP communication:
    # IPv4 protocol implementation

 * Configuration:
    # write default config file


Future versions:

 * IRC protocol:
    - implement RFC 2812
    + "/mode" command: change the user/channels modes
    - "/dcc" command (for chat and sending/receiving files)
    - manage "halfop" status
    - complete "/list" command: add regexp search, display only channels that
      match regexp
    - "/connect" and "/disconnect" commands (for multiservers use)
    - "/ignore" and "/unignore" commands: hide all that is write by a given
      nick/host
    - when we're away, WeeChat should log all the lines begenning by our nick.
      When we come back from our away it should print it to the current window
    - "/rehash" command: tell the server to reload its config file
    - "/restart" command: tell the server to restart itself
    - "/notify" and "/unnotify" command to be warn by WeeChat when a given
      nick/host connect to the given irc network
    - "/wallops" command: write the same string to all the
      persons with the flag +w enable

 * WeeChat commands:
    - "/completion" command: do shortcuts (for example when we type "u"
      in the text bar it send it to the server as "you")
    - "/exec" command: execute a command as if we was in shell
      and show us the output on the current window. An option to exec
      like -o could send the output to the server, on the current
      channel/private
    - "/reload" command: reload the WeeChat's config file
    - "/set" command: allow the user to set the WeeChat variables
      under WeeChat without editing the config file (colours, time
      format, etc)
    - "/highlight" command: highlight a given word when it appears on
      channels/privates

 * Interface:
    - display current channel modes (example : #weechat(+nt))
    - interpret ^B in messages (this means bold text)
    - internationalization (traduce WeeChat in many languages)
    - many channel windows in one window/term (window split)
    - add lag indicator
    - log chats to file
    - forget some old lines that were displayed long time ago (now all is saved,
      if WeeChat is running for long time, a lot of memory is used!)
    - improve completion (for example complete command parameters when possible)
    - understand incomplete commands if unambigous (for example: /he for /help is ok)
    - add clock (in status bar?)
    - Gtk GUI
    ? Qt GUI

 * TCP/IP communication:
    - IPv6 protocol implementation
 
 * Configuration:
    - add key bindings to config file
    - add missing options for config file
    - write config file
    - add an option for each server in order to run commands on join
      (example: /msg nickserv identify password)
    - channel list for auto-join (for each server)
    - do not stop program if problem with options in config file
    - load config file after GUI (so init values by default (colors, ...) before
      loading config)

 * Plugins:
    - add Perl plugin
    - add Python plugin
    - add Ruby plugin
    - "/load" and "/unload" commands to (un)load extension scripts
      (perl, python, ruby, ...)