- Install the normal VS Code binary. I did this using the
visual-studio-code-bin
package on AUR for Arch Linux. - Access the Extensions pane in the left-hand sidebar.
- Search for
Live Share
in the extensions search. There are a couple extensions associated with Live Share, but the Live Share Extension Pack will include all of them. - There is now a Live Share affordance in the colored status bar at the bottom of the window. Clicking on it will prompt you to sign in and authenticate via OAuth.
- NOTE! I wasn't able to get Github auth to work. I had to create a Microsoft account and then do auth via Microsoft.
- After going through the OAuth flow, the
Live View
affordance at the bottom will be replaced by the email you used to auth into Microsoft. - Open the directory you want to collaborate on.
- In the menu provided by the Live View affordance, you can copy the invite link for your session to the clipboard.
- Send the link to whomever you want to collaborate with.
#include <janet.h> | |
// Function to be exported | |
// Returns a Janet; that's the static value that boxes a dynamic Janet type | |
// argc: number of arguments it was called with | |
// argv: arguments array | |
static Janet interp(int32_t argc, Janet *argv) { | |
// Assert that argc == 2 | |
janet_fixarity(argc, 2); |
require('lspconfig').efm.setup { | |
init_options = { | |
documentFormatting = true, | |
hover = true, | |
documentSymbol = true, | |
codeAction = true, completion = true | |
}, | |
settings = { | |
rootMarkers = {".git/"}, | |
languages = { |
Janet 1.12.2-5df8ac5 linux/x64 - '(doc)' for help | |
repl:1:> (import fugue) | |
nil | |
repl:2:> (fugue/defproto shape ()) | |
@[@{:_prototype_allocations {} :_object-id shape_000006 :_prototype? true :_object-name :shape :_fields () :new <function new-from-shape>} <function shape?>] | |
repl:4:> (fugue/defproto square shape (x {:init? true})) | |
@[<function x> @{:_prototype_allocations {} :_object-id square_00000a :_prototype? true :_object-name :square :_fields (:x) :new <function new-from-square>} <function square?>] |
(defmacro | |
defclass | |
` | |
Define a CLOS-style class. | |
` | |
[name parent & attributes] | |
(def forms @[]) | |
(let [init-args @[] | |
names-with-defaults (mapcat |[(keyword ($0 0)) (($0 1) :default)] | |
attributes)] |
Hello, Joe! |
# Detection | |
# --------- | |
hook global BufCreate .*\.(erl|hrl) %{ | |
set-option buffer filetype erlang | |
} | |
# Highlighters | |
# ------------ |
In every game, all the players receive some given number of cards. To play one hand is to play a series of tricks, where each player chooses one of the cards in their hand and plays it to the middle, and one of the players ends up winning the trick. Usually, the hand is finished when all the cards have been played in tricks, and deal rotates to the left and a new hand starts.
A trick is a single rotation, where everybody playing plays one of the cards in their hand to the middle. One person leads, or plays first, and then play proceeds to that player's left, until everyone in the game has played one card. A single person then wins the trick, and takes the cards that were played to signify they've won.
The rules that determine what a person may lead, what others may play after, and who wins are the meat of most games.
import TypeClass | |
defmodule Minotaur do | |
defstruct name: "" | |
end | |
defimpl TypeClass.Property.Generator, for: Minotaur do | |
def generate(_), do: %Minotaur{name: "#{:crypto.strong_rand_bytes(2)}"} | |
end |
[i] zax/SERV-1499/invoice-email ~/frame-src/massdriver & http OPTIONS https://demo.wp-api.org/wp-json/ | |
HTTP/1.1 200 OK | |
Access-Control-Allow-Headers: Authorization, Content-Type | |
Access-Control-Expose-Headers: X-WP-Total, X-WP-TotalPages | |
Allow: GET | |
Connection: keep-alive | |
Content-Encoding: gzip | |
Content-Type: application/json; charset=UTF-8 | |
Date: Wed, 10 Apr 2019 14:33:23 GMT |