Danmacom
Features
Danmacom is an extension for livecoding in VSCode. It turns chat messages into
comments. Whenever a message like /README:5 Test
appears, it finds a file with
a name that contains README
, and puts a comment on the line 5
:
It also gathers messages into a terminal, and puts a status bar icon which shows
the terminal on click, and also shows a 'notification count'. Click the icon or
press space or enter in terminal to clear the count.
Backend
Danmacom has a built-in backend for Bilibili, and can also use an external
program to receive messages. The protocol is considered internal, but it is
currently as follows:
stderr
is logged but otherwise ignored
- Each line in
stdout
is parsed as JSON and should contain
author
: Name of the author
face
: URL to avatar icon
content
: Text of message
To use the built-in Bilibili backend, use these settings, and use your room id
for liveId
:
"danmacom.backend": "bilibili",
"danmacom.backendConfig": {
"liveId": 123456,
}
To use the example external backend, use these settings, and use your room id
for the argument. -u
is important to avoid buffering.
"danmacom.backend": "external",
"danmacom.backendConfig": {
"cmd": "python3 -u /path/to/danmaku.py 123456"
}
Chatroom usage
Starting a thread: /keyword[:line] comment
keyword
is any substring of file name, matched case-insensitively, and it
works as long as it uniquely identifies a file
line
is a line number, starting from 1
- If you specify a line number, the comment will be attached to that line.
Otherwise it's attached to the file.
Example:
/README:5 This is a test
will put This is a test
at line number 5
of the
file whose name has README
in it
/README This is a test
will put the comment in the same file, but at the top
/README:1 This is a test
is also at the top of the file, but is considered a
separate thread.
Threads: Each file/line comment or just file comment is assigned a thread, and a
thread is identified by a number. Threads are automatically created with its
first comment. You can see the thread number at the code lens of that line, or
in the opened comments view.
To append to a thread, use /num comment
, where num
is all digits. (This
takes precedence over /file comment
. If you really want to use an all-digits
keyword, use /123:
.) Using an identical /file
or /file:line
has the same
effect as using the thread number.
Examples
/1 This is a test
will append This is a test
to thread 1
.