-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Chat messages #84
base: master
Are you sure you want to change the base?
Chat messages #84
Conversation
@camdez |
Hey @kans, I suspect that might be a private repo because it 404s for me. Any chance you could adjust permissions or share in another way? Thanks. |
@camdez |
I wouldn't worry too much about getting colors consistent. We should update that code to let people choose their own colors anyway. |
The room_info response (first event sent back by the server) should contain the username. It looks like |
@ggreer Thanks. I'll definitely hit you up if I run into any roadblocks. Your comment above was enough to get me going on this one. |
Very nice. BTW, your first TODO (use message timestamps instead of system time) might be more important than you think. When a user joins a workspace, we replay messages they haven't received. If you use the system time, users might be confused. I don't consider that a blocker, but it's worth taking into account. Oh and just FYI: All times sent from the server are UTC. It's up to the client to figure out the time zone and localize them. |
@ggreer Aha. Thanks for pointing that out. Are the messages guaranteed to be delivered in (chronological) order? |
They are. The order is |
I had a chance to use this in anger yesterday and it was a pretty cool experience, though I did get burned by the permissions issue (added to the checklist above). I think I'll solve that, work on nailing down the user experience (particularly around input), cover the system messaging thing (i.e. notify when switching workspaces, etc.), and then look towards merging. Adding a mode line indicator and the ability to customize how messages are formatted are niceties that I can return to later. |
From the Elisp manual: > If you need Common Lisp extensions, use the cl-lib library rather than > the old cl library. The latter does not use a clean namespace (i.e., > its definitions do not start with a ‘cl-’ prefix). If your package > loads cl at run time, that could cause name clashes for users who > don't use that package.
Wow, very nice. I don't know what Emacs users prefer, but typically we make one pane for all messages (chat and informational). In that way, it's like IRC: You see joins, kicks, +o, and other info interspersed with chat messages. If you need any help that requires back-and-forth, feel free to ping me on IRC. |
@ggreer Great. That's what I was thinking as well and I have most of it implemented locally. |
Partially stolen from Floobits#84, this uses username highlight colors for the cursor as well.
Work in progress.
Adds inbound (#76) + outbound message handling.
Outbound messages can be sent using the
floobits-send-message
command. Inbound messages will be displayed in the minibuffer as well as in the*Floobits Chat*
buffer, which contains a timestamped log of all messages sent / received, including clickable URLs and email addresses. TheRET
key can be used from the*Floobits Chat*
buffer to invokefloobits-send-message
.Everything mentioned works well but I'm playing with different ideas about what the final interface should be (should all types of notifications be included in one buffer rather than just chat messages? Something akin to #36?). Sharing for feedback / collaboration.
TODO
me
).comint-mode
).