From 699d0ea4e0f5a2d48a5e41c647cbbfa793983b48 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Tue, 25 Feb 2020 20:46:24 +0200 Subject: Update readme and /help --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++------------- ui/commands.go | 56 +++++++++++++++++++++++++++---------------------- 2 files changed, 82 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 0163523..d1ae854 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,9 @@ precompiled executables. For now, you can either download a CI build from Simply pull changes (`git pull`) and run `go build` again to update. +## Debugging +If something doesn't work but it doesn't crash, check the `/tmp/gomuks/debug.log` file for any errors. + ## Developing Set `DEBUG=1` to enable partial deadlock detection and to write panics to stdout instead of a file. @@ -33,8 +36,9 @@ use `go install -race` and set `GORACE='history_size=7 log_path=/tmp/gomuks/race when starting gomuks, then check `/tmp/gomuks/race.log.`. Note that race detection will use a lot of extra resources. -For debugging, use `tail -f /tmp/gomuks/debug.log` and write to it using the -methods in the `maunium.net/go/gomuks/debug` package: +Proper debuggers are too fancy, but normal prints won't work in a TUI application. To write to the +debug log mentioned previously, use the `maunium.net/go/gomuks/debug` package: + ```go package foo @@ -55,16 +59,48 @@ func Foo() { - jump to room - `Alt + Enter`, then `Tab` and `Enter` to navigate and select room ### Commands -* `/help` - View command list -* `/me ` - Send an emote -* `/quit` - Close gomuks -* `/clearcache` - Clear room state and close gomuks -* `/leave` - Leave the current room -* `/create ` - Create a new Matrix room. -* `/join ` - Join the room with the given room ID or alias -* `/toggle ` - Change user preferences -* `/logout` - Log out, clear caches and go back to the login view -* `/send ` - Send a custom event -* `/setstate ` - Change room state -* `/msend ` - Send a custom event to the current room -* `/msetstate ` - Change room state in the current room +#### General +* `/help` - View command list. +* `/quit` - Close gomuks. +* `/clearcache` - Clear room state and close gomuks. +* `/logout` - Log out, clear caches and go back to the login view. +* `/toggle ` - Change user preferences. + +#### Sending special messages +* `/me ` - Send an emote. +* `/notice ` - Send a notice (generally used for bot messages). +* `/rainbow ` - Send rainbow text (markdown not supported). +* `/rainbowme ` - Send rainbow text in an emote. + +#### Rooms +##### Creating +* `/pm [...]` - Start a private chat with the given user(s). +* `/create [room name]` - Create a new room. +##### Joining +* `/join [server]` - Join the room with the given room ID or alias, optionally through the given server. +* `/accept` (in a room you're invited to) - Accept the invite. +* `/reject` (in a room you're invited to) - Reject the invite. +##### Existing +* `/invite ` - Invite the given user ID to the room. +* `/roomnick ` - Change your per-room displayname. +* `/tag ` - Add the room to ``. `` should start with `u.` and `` + should be a float between 0 and 1. Rooms are sorted in ascending priority order. +* `/untag ` - Remove the room from ``. +* `/tags` - List the tags the room is in. +##### Leaving +* `/leave` - Leave the current room. +* `/kick [reason]` - Kick a user. +* `/ban [reason]` - Ban a user. +* `/unban ` - Unban a user. + +#### Raw events +* `/send ` - Send a custom event. +* `/setstate ` - Change room state. +* `/msend ` - Send a custom event to the current room. +* `/msetstate ` - Change room state in the current room. +* `/id` - Get the current room ID. + +#### Debugging +* `/hprof` - Create a heap profile and write it to `gomuks.heap.prof` in the current directory. +* `/pprof ` - Profile the CPU usage for the given number of seconds and write it to `gomuks.cpu.prof`. +* `/trace ` - Trace calls for the given number of seconds and write traces to `gomuks.trace`. diff --git a/ui/commands.go b/ui/commands.go index 0adbb61..0f07e94 100644 --- a/ui/commands.go +++ b/ui/commands.go @@ -284,31 +284,39 @@ func cmdUnknownCommand(cmd *Command) { } func cmdHelp(cmd *Command) { - cmd.Reply(`/help - Show the temporary help message. - -/quit - Quit gomuks. -/clearcache - Clear cache and quit gomuks. -/logout - Log out of Matrix. - -/me - Send an emote message. -/rainbow - Send a rainbow message (markdown not supported). - -/create [room name] - Create a room. -/pm <...> - Create a private chat with the given user(s). -/join - Join a room. -/leave - Leave the current room. - -/invite - Invite a user. + cmd.Reply(`# General +/help - Show this "temporary" help message. +/quit - Quit gomuks. +/clearcache - Clear cache and quit gomuks. +/logout - Log out of Matrix. +/toggle - Temporary command to toggle various UI features. + +Things: rooms, users, baremessages, images, typingnotif + +# Sending special messages +/me - Send an emote message. +/notice - Send a notice (generally used for bot messages). +/rainbow - Send rainbow text (markdown not supported). +/rainbowme - Send rainbow text in an emote. + +# Rooms +/pm <...> - Create a private chat with the given user(s). +/create [room name] - Create a room. + +/join [server] - Join a room. +/accept - Accept the invite. +/reject - Reject the invite. + +/invite - Invite the given user to the room. +/roomnick - Change your per-room displayname. +/tag - Add the room to . +/untag - Remove the room from . +/tags - List the tags the room is in. + +/leave - Leave the current room. /kick [reason] - Kick a user. /ban [reason] - Ban a user. -/unban - Unban a user. - -/send - Send a custom event to the given room. -/msend - Send a custom event to the current room. -/setstate - Send a custom event to the given room. -/msetstate - Send a custom event to the current room. - -/toggle - Temporary command to toggle various UI features.`) +/unban - Unban a user.`) } func cmdLeave(cmd *Command) { @@ -432,7 +440,6 @@ func cmdMSendEvent(cmd *Command) { } func cmdSendEvent(cmd *Command) { - debug.Print(cmd.Command, cmd.Args, len(cmd.Args)) if len(cmd.Args) < 3 { cmd.Reply("Usage: /send ") return @@ -440,7 +447,6 @@ func cmdSendEvent(cmd *Command) { roomID := cmd.Args[0] eventType := mautrix.NewEventType(cmd.Args[1]) rawContent := strings.Join(cmd.Args[2:], " ") - debug.Print(roomID, eventType, rawContent) var content interface{} err := json.Unmarshal([]byte(rawContent), &content) -- cgit v1.2.3