aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTulir Asokan <tulir@maunium.net>2020-02-25 20:46:24 +0200
committerTulir Asokan <tulir@maunium.net>2020-02-25 20:46:24 +0200
commit699d0ea4e0f5a2d48a5e41c647cbbfa793983b48 (patch)
tree814df8ffce62bbb8f26b0f71a38a4a7eb925324f
parenta79de7ba76757931559af9a6639255a03eddbf18 (diff)
Update readme and /help
-rw-r--r--README.md66
-rw-r--r--ui/commands.go56
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.<pid>`. 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 <text>` - Send an emote
-* `/quit` - Close gomuks
-* `/clearcache` - Clear room state and close gomuks
-* `/leave` - Leave the current room
-* `/create <room name>` - Create a new Matrix room.
-* `/join <room>` - Join the room with the given room ID or alias
-* `/toggle <rooms/users/baremessages/images/typingnotif>` - Change user preferences
-* `/logout` - Log out, clear caches and go back to the login view
-* `/send <room id> <event type> <content>` - Send a custom event
-* `/setstate <room id> <event type> <state key/-> <content>` - Change room state
-* `/msend <event type> <content>` - Send a custom event to the current room
-* `/msetstate <event type> <state key/-> <content>` - 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 <rooms/users/baremessages/images/typingnotif>` - Change user preferences.
+
+#### Sending special messages
+* `/me <text>` - Send an emote.
+* `/notice <text>` - Send a notice (generally used for bot messages).
+* `/rainbow <text>` - Send rainbow text (markdown not supported).
+* `/rainbowme <text>` - Send rainbow text in an emote.
+
+#### Rooms
+##### Creating
+* `/pm <user id> [...]` - Start a private chat with the given user(s).
+* `/create [room name]` - Create a new room.
+##### Joining
+* `/join <room> [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 <user id>` - Invite the given user ID to the room.
+* `/roomnick <name>` - Change your per-room displayname.
+* `/tag <tag> <priority>` - Add the room to `<tag>`. `<tag>` should start with `u.` and `<priority>`
+ should be a float between 0 and 1. Rooms are sorted in ascending priority order.
+* `/untag <tag>` - Remove the room from `<tag>`.
+* `/tags` - List the tags the room is in.
+##### Leaving
+* `/leave` - Leave the current room.
+* `/kick <user id> [reason]` - Kick a user.
+* `/ban <user id> [reason]` - Ban a user.
+* `/unban <user id>` - Unban a user.
+
+#### Raw events
+* `/send <room id> <event type> <content>` - Send a custom event.
+* `/setstate <room id> <event type> <state key/-> <content>` - Change room state.
+* `/msend <event type> <content>` - Send a custom event to the current room.
+* `/msetstate <event type> <state key/-> <content>` - 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 <seconds>` - Profile the CPU usage for the given number of seconds and write it to `gomuks.cpu.prof`.
+* `/trace <seconds>` - 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 <message> - Send an emote message.
-/rainbow <message> - Send a rainbow message (markdown not supported).
-
-/create [room name] - Create a room.
-/pm <user id> <...> - Create a private chat with the given user(s).
-/join <room address> - Join a room.
-/leave - Leave the current room.
-
-/invite <user id> - 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 <thing> - Temporary command to toggle various UI features.
+
+Things: rooms, users, baremessages, images, typingnotif
+
+# Sending special messages
+/me <message> - Send an emote message.
+/notice <message> - Send a notice (generally used for bot messages).
+/rainbow <message> - Send rainbow text (markdown not supported).
+/rainbowme <message> - Send rainbow text in an emote.
+
+# Rooms
+/pm <user id> <...> - Create a private chat with the given user(s).
+/create [room name] - Create a room.
+
+/join <room> [server] - Join a room.
+/accept - Accept the invite.
+/reject - Reject the invite.
+
+/invite <user id> - Invite the given user to the room.
+/roomnick <name> - Change your per-room displayname.
+/tag <tag> <priority> - Add the room to <tag>.
+/untag <tag> - Remove the room from <tag>.
+/tags - List the tags the room is in.
+
+/leave - Leave the current room.
/kick <user id> [reason] - Kick a user.
/ban <user id> [reason] - Ban a user.
-/unban <user id> - Unban a user.
-
-/send <room id> <type> <json> - Send a custom event to the given room.
-/msend <type> <json> - Send a custom event to the current room.
-/setstate <room id> <type> <key/-> <json> - Send a custom event to the given room.
-/msetstate <type> <key/-> <json> - Send a custom event to the current room.
-
-/toggle <thing> - Temporary command to toggle various UI features.`)
+/unban <user id> - 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 <room id> <event type> <content>")
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)