This post is intended to primarily benefit people coming from other, so called “modern” editors to Emacs. Emacs veterans are likely to find most of the tips here very elementary.
I have observed that many programmers habituated to newer editors have many implicit assumptions about editing workflows which simply don’t hold true within Emacs environment and this prevents them from being productive to the fullest extent.
This post primarily focusses on how getting familiar with the concept of
regions in Emacs can result in productive workflows. These concepts, coupled with a few extensions can enable much more pleasurable code-editing workflows not easily achievable in more prevalent “modern” editors.
Continue reading Getting productive with selection and navigation in Emacs
This post outlines a container based development workflow using Vagrant and Docker.
Many common docker tutorials (eg. the official node tutorial) suggest a workflow where projects source is copied onto the image, which is then built and run through docker. This approach is not really practical for clojure development as normal clojure programming leans heavily on rapid prototyping and REPL driven development.
The setup below utilizes Vagrant and docker volumes to setup a development environment which ensures reproducibility and container isolation while retaining the short feedback cycle which clojure developers take pride in.
Continue reading A Vagrant+Docker based workflow for clojure web development
Tide (TypeScript Interactive Development Environment for Emacs) uses a custom hydra-derived popup menu for prompting the user to select candidates when there are many completion options available.
However, this is jarring when the rest of your emacs environment is configured to use helm as the completion engine.
Fortunately, this is easy to fix by overriding the
tide-popup-select-item implementation to use a custom helm source derived from the completion list.
Continue reading Using helm to select tide completion candidates
While Emacs is a fairly productive editor on its own, for navigating through the files in a large project a few community contributed extensions can make things a lot easier