-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtodo.txt
More file actions
68 lines (68 loc) · 3.41 KB
/
todo.txt
File metadata and controls
68 lines (68 loc) · 3.41 KB
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
bugs:
- pressing tab in edit mode messes up the border
- unicode characters like ✅ still cause a crash if they're c h o n k
- also ✅ causes the border to get eaten away because its width is incorrectly calculated (maybe a terminal issue?)
- scrolling doesn't actually scroll all the way to the top
- with some widths, the server list click detection is off by one and it doesn't display the top border
- gracefully handle when connection is shut down (currently it keeps redrawing the screen endlessly)
- I think it doesn't handle the sync server being offline very well (just allows you to connect anyway??
- quitting forcably (ctrl+c) before the name or other info has loaded can cause the config file to have null in it that causes it to crash (basically, use cached data *before* fetching new data)
- adding two of the same server causes problems
- selected message changes when someone sends a message
- moving channels with a message selected changes the selected message to one in the new channel
features:
- make edit buffers persistent per-channel and saved to disk/sync
- store last loaded channel of each server to load on startup
- show "edited" tag by edited messages
- passwords
- actually set & use sync data
- changing pfp, nickname, username (across all servers)
- try to reconnect to offline servers periodically
- ping online servers periodically
- load more messages when you scroll to the top
- images
- markdown
- clickable links
- cache things like nick changes on offline servers to send when they're back online
- try to reconnect to offline servers periodically
- ping online servers periodically
- server folders
- future: when editing/deleting, use arrows to navigate and select the message, then a command to edit/delete
- current alt key combos are kinda bad (show what is currently selected?)
- servers & channels scroll
- current alt key combos are kinda bad
- store "last modified at" tags with settings (both locally and on the server) to choose the newest one
- make it easier to switch accounts on servers if you logged in with a different one previously
- set per-server nicknames
- ctrl+arrows for faster navigation, plus ctrl+backspace
- better keybinds/system for navigating around different menus
- suggestions + tab completion for builtin commands like /join
- support multi line editing with shift+enter
- server folders
- windows support maybe...
- put on crates.io
code:
- put the edit buffer in the server(channel??) structure
- put edit mode in server(channel??) structure
- figure out what to do when write causes an error
- clean up the theme system
- rewrite the message rendering code to be better
- prompt: max_width
- migrate away from using raw json as much as possible
in progress:
- figure out a more elegant way to represent servers
tentatively done:
- config file
- sync server support
- editing messages (done: receive edit notifs, todo: select & edit messages)
done:
- multi line messages don't get rebuilt upon resizing the window
- mouse support (servers, channels)
- notifications
- multi line editing
- ask for & save username
- pressing backspace in the prompt buffer does not remove the character from the screen
- fix crash on unicode characters being typed in an edit buffer
- support multiple line messages rendering
- probably best to store messages as a list of ready-formatted lines instead of calculating them each time
- servers don't get highlighted