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.
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 containauthor
: Name of the authorface
: URL to avatar iconcontent
: 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"
}
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 fileline
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 putThis is a test
at line number5
of the file whose name hasREADME
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 appendThis is a test
to thread1
.