Holding alt in vscode editors when you scroll makes you scroll faster.
Learned about the “Dreadful Diamond on Derivation” problem…
Full credit to this stack overflow
Basically, you have an inheritance hierarchy that looks like
A
/ \
B C
\ /
D
The issue is that if we do A.D(), we could be referring to A::B.D() or
A::C.D().
So you can do class A : public virtual B, public C{…) to only inherit the
actual methods from C to solve this problem.
I set up neotest and
nvim-dap and then removed them from
my config. Turns out I prefer vscode once I’m debugging/testing.
Some vscode shortcuts:
control+1 focus the text editor groupcontrol+shift+e toggle focus of the file tree and text editor groupIn information theory, linguistics, and computer science, the Levenshtein distance is a string metric for measuring the difference between two sequences. The Levenshtein distance between two words is the minimum number of single-character edits (insertions, deletions or substitutions) required to change one word into the other. It is named after Soviet mathematician Vladimir Levenshtein, who defined the metric in 1965.[1]
Learned sql, used <https://sqlbolt.com\>. Very helpful tutorial.
Neovim has built in spell checking! No plugins needed
https://neovim.io/doc/user/spell.html :setlocal spell spelllang=en_us enable
built in neovim spell checking z= - see spelling suggestions
You can use git mv <from> <to> and git rm [-r] <thing> to move and delete
things with git without consequences if you have things like submodules.
https://github.com/mikavilpas/yazi.nvim
Make dunst go to the top right origin = "top-right"; offset = "10x10";
Bash variable parameter extraction + glob stuff
${VARIABLE}%ff removes the first occurrence of ff from the back of
VARIABLE${VARIABLE}#ff removes the first occurrence of ff from the front of
VARIABLE${variable//pattern/replacement} is a form of parameter expansion that
replaces all occurrences of pattern with replacement in the value of variableOpen source alternative to zoom https://p2p.mirotalk.com/
In bash you can use ** to get a list of files in the current directory. You
can even pattern match with like **.nix
So, like
for file in **; do
echo $file
done
And file is the relative path of the file from where you run the command.
css has a not function to target things that are not the thing. So like,
p:not(.foobar #barbar) will target everything that is not of class foobar
and with id barbar.
Capital W and capital B take you forward and backward a word in vim without
regard for periods
Apparently python has a Windows specific error message
You can easily get example videos in various formats at <https://sample-videos.com/\>
gm goes to the center of the current line in vim
Powershell is open source. You can use Powershell as your default Linux shell. Who knew.
Also, Windows has a cool app called “Sandbox,” which you can create xml config
files to template, that are basically Windows virtual machines without bloat
(not even the microsoft store). They work really well, I think they should be a
distribution of Windows itself.
false the iteration ends. If you return ‘skip’ then it skips
the iteration right away (kinda like continue if it were a loop or walker
iterator).Used this to create this script to yoink a specific section from a markdown string (for example, I want to get the # Description section’s paragraphs only)
export function getContentOfSection(
markdown: string,
header: string,
depth: number = 1,
) {
const ast = unified().use(remarkParse).parse(markdown)
const output: string[] = []
let inHeadersSection = false
let nextIsWantedText = false
visit(ast, (node) => {
if (
node.type === 'heading' &&
node.depth === depth &&
node.children.length > 0 &&
node.children[0].type === 'text' &&
node.children[0].value === header
)
inHeadersSection = true
if (inHeadersSection) {
if (nextIsWantedText) {
if (node.type === 'text') output.push(node.value)
else if (node.type !== 'paragraph') return false
}
if (node.type === 'paragraph') nextIsWantedText = true
}
})
return output.join('\n')
}
Going to try to be more consistent with this again!
console.trace('How did we get here?')
Will do a console.log and also spit out a stack trace