Hung-Yi’s Journal

Front-end Developer, Emacs Adventurer, Home Cook

13 Oct 2020

Use Emacs-Tree-Sitter for Highlighting in Doom Emacs

Tree-sitter is a general programming language parser that efficiently builds and updates Abstract Syntax Trees (AST) for your code. Basically, it can read programming languages and understand the structure and meaning of code without having to execute it. Among many amazing things, one of its best and simplest features to take advantage of is richer syntax highlighting, which is what I use it for in Emacs. Today I'll show you how to set up emacs-tree-sitter in Doom Emacs1 so you can quickly get prettier code with next to no effort.

11 Oct 2020

A Function to Get Org-Mode Contents Under a Heading

Today I'm sharing an interactive function I wrote as an exercise to extract just the inner text content of an Org-mode subtree, excluding the heading itself and any subheadings or their contents. The function adds it to the kill-ring (a.k.a. copies it to the clipboard) and returns it, but can easily be modified to do anything to the contents.

06 Oct 2020

Tearing Off Windows in Emacs

Do you often yourself referring to something in Emacs over and over again, but actually doing work somewhere else? For instance: referring to API code while writing front-end code, or referring to a file while entering commands into a shell? Let's go through the ways I would normally handle this and why I think the tear-off-window command can help.

04 Oct 2020

A More Ergonomic Keybinding for Flycheck in Doom Emacs

I rely on flycheck a lot for giving me hints on type errors when I'm writing TypeScript, but in Doom Emacs the flycheck commands are still bound to C-c !. Since I don't have flycheck configured to run 'live' on every code change (for performance reasons) I found myself pressing C-c ! c manually all the time, which became physically painful. But I think I've found a good rebinding that stays in line with the Doom way of doing things.

28 Sep 2020

JavaScript's Reduce: A Swiss Army Knife for Arrays

There's a little Array method in JavaScript that I've seen a lot of developers overlook. I suspect it's because of its abstract nature that doesn't exactly lead developers to any obvious use cases. But that's why I think it's a great programming Swiss Army knife: you can do a lot more with it than you might realise1. Let me introduce you to my friend, Array.prototype.reduce(). Today, I'll show you some creative ways to use it that may just inspire you.