Programmers: My Productivity Tools of Choice

Most people have their preferred list of tools to get things done on a day-to-day basis. Here’s my list for the software development work I do, primarily in .NET and PHP.

Of course, you need an IDE or text editor of some kind. For .NET, I use the standard — Visual Studio. It’s still impressive all that you can do with Visual Studio. I won’t get into it more here, but being able to debug and refactor with as much ease as the tool provides, is a big help.

For PHP development, my preferred tool for coding is Adobe Brackets. This is a relatively new tool, and it’s the plugins that truly make it as powerful as it is. I have other extensions enabled too, but the one’s in this list are the most helpful to me (if you have any other great one’s, let me know!):

  • Autosave Files on Window Blur – I don’t like it when a change I made didn’t work, and I come to find out that it’s because I didn’t save the file!
  • Brackets Editor Bookmarks – bookmark and jump between source code lines.
  • Brackets Outline List – shows functions and methods in the current PHP file. I like this because it shows an icon whether the method is public, protected, or private.
  • Documents Toolbar – shows all open documents as tabs on the top – Notepad++ style. By default Brackets only shows a list of the open files in a sidebar, which takes up space.
  • File Tree Exclude – Brackets lets you search the entire folder you have open (current folder) for a keyword. Sometimes I don’t want to search a given subfolder because it has a large amount of undesired hits. This lets me specify subfolders that I don’t want to have searched when I search the currently open folder/project.
  • FuncDocr – At least for PHP, put your cursor over the function/method you just created, press Ctrl-Alt-D, and you’ll get an auto generated doc block just before the method signature. This will put a line for each parameter and the return value, allowing you to write a description, as well as provide a drop down menu to select the return type.
  • Paste and Indent – adds Visual Studio-like auto indenting. Why waste brain CPU cycles on formatting your code properly when you can have something do it for you (or help do it for you)? If you format accidently with tabs when I should use spaces (or vice versa), just select the new format in the lower right of the editor, select all, cut, and paste back in the same window, and this extension reformats it all in the new selection (tabs or spaces).
  • PHP Code Quality Tools – find out about syntax errors and other errors before leaving Brackets and running the file via the web server
  • PHP Smarthints – provides poor man’s Visual Studio “IntelliSense”. When you start typing, provides a list of not only built-in PHP functions, but also variables utilized in the same code file. The only “wish-list” item I would have for this, is that it also includes a list of methods/functions that are also declared in the same file, but it doesn’t do that. I haven’t been able to find an extension that does either. Maybe someone can beat me to the punch in writing one?
  • Quick Search – highlight all instances of a symbol in the current file. Really handy.
  • QuickDocsPHP – hit Ctrl+K to get a box that pops up with documentation for the function that the cursor is actively on. Provides link to PHP docs for the function.
  • Todo – provides quick list of all TODO, FIXME, and certain other annotations in comments. View either for the current file or the entire open project.

I use Ctrl+Shift+2 quite often in Brackets. “No Distractions” toggles the sidebar and search bar on and off, allowing for full screen mode in a snap. I don’t use it too often (maybe I should), but the ability to split the code editor in two (either vertically or horizontally) for two different code files has also been helpful in the past.

The other reason I like Brackets is because of its folder/project concept. You start by opening a folder in the file system, and you then open code files in that folder to edit. You can then open a different folder, with a different set of files. Brackets saves a list of the folders you’ve opened, and if you open the first folder again, then all of the files that were opened last (before you switched to the second folder), are opened again. You aren’t limited to *only* opening files within that selected folder, either. You can open other files, and Brackets still remembers the last set of files and it’s association with the folders you’ve opened, and reopens that set of files again. I think it’s analogous to a poor man’s Visual Studio “solution/project”, even though Brackets is just a lightweight IDE. It’s really cool.

I also use Notepad++ –  not so much for editing PHP files, but for it’s searching functionality. In Notepad++, I think it’s a pain that when you double click a variable to copy/paste, that the dollar sign ($) doesn’t get copied with the variable, which is one of the reasons I like Brackets better for code editing. I use Notepad++ primarily for searching code bases, though, which is really handy. Press Ctrl+Shift+F, give it a keyword (or regex) and a directory, and it will find all instances of that keyword. Brackets does this too, but it doesn’t remember a history of all your searches and allow you to expand/collapse each of the previous search keywords (at least not unless there’s a Brackets extension that I haven’t seen that can do that).  Notepad++ and Brackets each have their strengths, but I use Brackets more for actually writing code.

Anyways, here’s a list of other tools I really like (this is a Windows list):

  • Trello – for to-do lists, but also for notes (how did I do XYZ again?).
  • Greenshot – for capturing images of screen.
  • ClipX – this is great. Lightweight, and maintains a history of your last 25 (I think?) copy items (including pictures and text) to the clipboard. I have it set to display the menu history when I hit Ctrl+Shift+V, and then I can click a specific item I want to paste.
  • Desktops – Gives you up to 4 virtual desktops that you can switch between. Can’t remember if you can change the key combination that does the switching, but I just press Alt + 1 (or 2, 3, or 4) to switch between each desktop. Great for grouping apps on related tasks I’m working on.
  • Snippets Manager – organize code snippets by programming language.
  • Chrome Dev Tools – hit F12 in the Chrome browser. Inspect HTML elements, step through JavaScript, inspect AJAX requests — just a few of the bits of awesomeness.
  • QTTabBar – 7000 open Explorer windows gets kind of messy after a while. This provides the ability to have tabs for individual folders within the same window, like Mac’s Finder.

There are other good utilities out there, but the one’s listed above are the one’s I use most. Hopefully they’ll help you too!

Leave a Reply