A lot of my workflow tips focus on really cutting down time of navigation or dealing with things that don’t relate directly to productive work. It’s true, I probably spend more time thinking about these things than they actually save me. However, I think that important thing for me is the mindset – when I have these improvements to work with, it makes me feel a lot faster and more productive. I run into less barriers in my development workflow, meaning that I have to go through less context switching, meaning I can capitalize on my focus and get things done more effectively.

This is a quick rundown of some of the tools that I use in my development workflow. I’ve made it versatile and adaptable to many different projects and environments. It helps me speed up my workflow and focus on what’s really important.

Terminal

This is the same terminal set up I use as in this post. Here, I just talk about some of the different tools that I use within the command line.

Open and Code

I use o for open . and c for code .. These are super handy because I use these a lot, and I save like 5 keystrokes by setting these aliases! It just makes things feel a lot quicker, and I can move around a lot faster.

DS Store

One of the most annoying things ever when I’m working on a project and out of nowhere comes .DSStore. I have no idea what these things do, but I know that I put it in the .gitignore and yet somehow, they still appear everywhere. To deal with this, I found a recursive solution to delete all of them in a given directory, just by typing ds.

1
alias ds="find . -name '.DS_Store' -type f -delete"

This makes it easy – whenever I see one of them appear again, I just run ds and all of them should disappear.

Trash

Normally when trying to delete something in the terminal, the first thing I do is rm -rf. But for reasons that we all know, that’s a very unsafe way to delete things. trash is a great tool to move things to the Trash so that they’re recoverable in the future, should you need them. It’s a much less destructive way of deleting files and directories on your computer.

Removing Local Git Branches

Another annoying thing is that git doesn’t have an easy command so that you can delete all of your old local branches compared to origin. So, I created an alias prune that will automatically do this.

1
alias prune="git branch --merged master --no-color | grep -v master | grep -v stable | xargs git branch -d"

This will basically remove all of the old local branches and clean up your local git directory.

Resetting Git Project

I move in and out of a lot of different projects, and I like to work knowing that I’m on the latest version. I created a command, grp (git reset please), which is basically just git fetch, git checkout master, git pull origin master, prune. When I haven’t worked on a project in a while and other people have been pushing to it, this is a good way to just reset the entire project into the latest state so that I can being work on it.

1
alias grp="gcm && gf && ggl && prune"

Visual Studio Code

My text editor of choice is VSCode. Originally an Atom user (a really long time ago), I switched to VSCode after seeing how much robust it is. It offers many great keyboard shortcuts that I find really helpful when working in projects. In addition, its huge extension library makes it an extremely powerful tool.

GitLens

GitLens is one of my favorite extensions. It’s a super powerful tool to keep track of the repository such as edit history, collaborators, and current diff changes. It’s been an essential to my workflow and integrates really well without being obtrusive.

Peacock

A lot of the time I have many windows open for different projects, or even just different classes. One thing that I found annoying is that every time I was switching between projects, it would take me a while to find the right window of code. I’d have to read a bit and think before I matched it in my head. However, Peacock fixes this by coloring the window of VSCode so that it makes it really easy to differentiate projects. You can make it as bright and filling as you want or make it subtle and only color the left bar (which is what I’ve done).

Browser Extensions

Working on GitHub a lot, I’ve found some browser extensions that make it a lot more powerful.

Better Pull Request

One of the better extensions I’ve come across is Better Pull Request. GitHub provides an abysmal interface to deal with and navigate through pull requests that touch a lot of files. This extension puts in a file tree to the left of the diff and makes it super easy to see which files are being modified and where they are in the project. This has helped me a lot to identify what’s been changed.

Hovercard

One of the annoying things in GitHub is its lack of easy and quick navigation. I feel like it takes me a while to go through different pages, from one pull request to another, or viewing issues and commits. One extension that’s helped me immensely is GitHub Hovercard. It shows all the information in a popup above the link you’re looking at and makes it easy and faster to navigate to where you need to go.

Enhanced GitHub

Another good extension I’ve found is Enhanced Github, which has made it easy for me to quickly grab code from the web, either by downloading or copying the file, and quickly bring it into my project locally. Before, it was a difficult process because I would have to go into the raw file and copy and paste the entire thing. Now, I can do it in the press of a button!