user76: The basic Arduino IDE lacks a lot of the sophistication present in other IDEs such as code completion, code collapsing, folder organisation, etc. Are there other IDEs that allow programming in C or C++ and improve on these aspects?

user19796: Fritzing

This is the new “Code View”! It lets you write your code directly inside Fritzing, and even upload it from there to your microcontroller. It even has a serial monitor. :)

Normally known as a schematic builder, Fritzing has a built in IDE.
See here for more.

user19892: Haven't seen anyone mention it yet, but I use VisualMicro for Microsoft Visual Studio (not Atmel), and I like it just fine. It gives you everything you'd normally have in Visual Studio, like intellisense typing. The trial version is the full program, and the license is pretty cheap- like 30 bucks or something. I got my work to pay for a commercial license key. Do recommend! 

user22868: Notepad++ 

set Notepad++: view->folder as work space
and Language->C->C++ sets syntax highlighting
set arduino Ide file->preferences "Use external editor"

and everything runs smoothly, without the bulk of eclipse.

user313: My go-to choice (pun, that's only a pun, folks!) is Sloeber - Eclipse with Jantje's EclipseArduino plugin. Having decades of emacs muscle-memory-training, I use MulgaSoft's Emacs+ plugin with it, switching to real GNU emacs for the heavy lifting - as developing a project and new libraries for it in parallel, f/ex, and use Sloeber to catch my typos & brain-f*ts.

user29283: A good alternative to the Arduino IDE is Visual Studio Code in combination with the Microsoft extension for Arduino https://github.com/Microsoft/vscode-arduino
It gives all the features of the Arduino IDE such as 
Verify and upload your sketches in Visual Studio Code

Built-in board and library manager 
Built-in example list 
Built-in serial monitor

but additionally to offers some attractive features:

IntelliSense and syntax highlighting for Arduino sketches
Snippets for sketches
Automatic Arduino project scaffolding


user7727: I use Eclipse and Sublime Text for editing Arduino code, and I build in the Arduino IDE with it set to "external editor" mode, or using the Arduino Command Line tools. Eclipse has a fantastic indexer and makes understanding the Arduino core much easier. I've written a detailed PDF about using and setting up Eclipse for professional software development, incl for Arduino, here: https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/eclipse/Eclipse%20setup%20instructions%20on%20a%20new%20Linux%20(or%20other%20OS)%20computer.pdf.
Note that I'm using regular Eclipse for C/C++, with no Arduino plugins. I don't find them that useful since they can never seem to keep up with the latest Arduino build tools anyway. 
See my document for full setup information in general.
Related:

C++ vs. The Arduino Language?


user4202: I use Xcode, set up as an external editor. I write everything in libraries, and the sketch simply call the libraries.

user32487: Clion + PlatformIO
I personally use Clion which is a cross-platform IDE along with PlatformIO which is a cross platform build system for arduino and alike.
Clion because I love the jet brains IDEs. As a student or teacher you can get a free licence. And I have been told by suspicious people on the internet that there are other ways of obtaining a license (not that I would advice on doing anything like that).
PlatformIO is quite powerful and integrates well into almost any IDE. It's easy to declare dependencies to other libraries which are automatically downloaded.
I am also using the Clion serial port monitor plugin to communicate over Serial.print().
With this setup you can completely ditch the old Arduino IDE which I found to be quite satisfying!

user881: I have always wanted to use Eclipse, since that is our standard (for Java) at work. But I never managed to get the debugger working with my AVR Dragon board - just too many layers between the source code and the chip.
So I am back to using Atmel Studio. You can set the keyboard mapping to emulate various other IDEs (including Eclipse and Netbeans). I can accept the Microsft quirkiness in return for a stable debugging environment, multi-file support and professional source control features.

user23991: PlatformIO
I use GitHub's Atom text editor with the PlatformIO package.
I like both of them:

Atom has various useful built-in features and over 6,000 packages (which can be easily downloaded and installed from the settings pane) allowing the user to add essentially any feature he needs.
PlatformIO is a powerful IDE for microcontroller programming. It has all the features of the Arduino IDE (like the ability to upload code to an Arduino board with one single click, a serial monitor, ...) plus many others (like all those listed by the OP) and perfectly supports Arduino. Besides "it supports more than 200 development boards along with more than 15 development platforms and 10 frameworks". It can be natively installed either on GitHub's Atom either on Microsoft's VSCode code editors.


Edit
I still use PlatformIO on Atom on a regular basis, but I just saw on their website and forum that they are discouraging users from using their Atom package while proposing PlatformIO in VSCode as a better alternative.
The Atom version still works well, but if you are changing your editor and want to try PlatformIO I would suggest to follow their advice and install it in VSCode.

user201: In addition to the mentioned IDEs you can use Xcode with embedXcode if you use a mac. The IDE has a great file structure and support for a lot of boards. For big and complex projects it is really good. I like to use vim or the arduino IDE for simpler and less complex sketches/projects. 

user296: There is one from Brazil called MariaMole: http://dalpix.com/mariamole
According to the author, like the original Arduino environment, the MariaMole facilitates the creation of software for the Arduino. However, while the original Arduino IDE has limitations to make life easier for beginners, MariaMole brings features that more advanced users are accustomed to find in professional IDEs, such as:

Runs over Arduino install
Workspace support multiple projects at the same time
Multiple serial port consoles at the same time
Files use open-formats
Building process configurable
Imports Arduino examples and sketches
Easily import Arduino libraries
Color-themes


user79: Majenko created and maintains UECIDE. His contributions are pretty epic; I've seen first hand his coding prowess as we worked together to get the Adafruit 1.8" TFT Joystick shield working on the chipKIT platform.

user310: UPDATE->  Codebender is being shut down. 
There is a brilliant open source, web based IDE called Codebender
It is like Github for Arduino and has a great community working from it with thousands of examples and the dev team are exceptional.
With codebender, you can:

program an existing sketch to your device 
clone an existing sketch
modfy it to your needs 
share your work with the world 
embed code in your website, blog, or tutorials

Cross-platform
Works on Windows, Mac & Linux, Firefox & Chrome
Codebender supports Windows (from Windows XP up to Windows 8.1, yes, even Vista :P), Mac OS X 10.6-10.9, and Linux and works within all major browsers

user65: One rather good IDE extension is the Arduino Mode for Emacs. It allows using a highly versatile and extensible IDE such as Emacs for writing, compiling and uploading code to the Arduino.
The documentation and instructions can be found here.

user790: There is a half way solution as well since the Arduino IDE has support for external a editor, then the Arduio IDE just compiles and uploads.

Now you can use whatever IDE/editor you like to edit the code, 
and then you switch back to the Arduino IDE to press the compile and upload button when you are done.

user86: You can use AVR Studio to write programs for Arduinos.
There is a plugin that lets you link against and use the arduino libraries from within Atmel Studio.
If you've used Microsoft Visual Studio, Atmel Studio is basically a reskin of Visual studio with different compiler backends that target the ATmega series of devices, so you'll feel right at home.

user4: vim can be used for Arduino development, but it will take some configuration (as is the way of vim). You'll need the syntax file and this plugin that enables you to compile and deploy from vim.
Grant Lucas produced a great write-up on getting your environment situation squared away:

Using Vim for Arduino development
Here's a quick post on setting up Vim for Arduino development instead
  of using the Arduino IDE. If you're a heavy Vim user, it can be a bit
  of a shock to go into a different editor. Thankfully the setup is
  pretty easy to get this all working with Vim. This post is assuming
  you are comfortable with how Vim is setup and ideally already have an
  environment that works for you.
Install the Arduino IDE
Wait. What?!? I hear you say. I know, I know. We're not actually using the Arduino IDE but we need it for some configuration and the
  files it installs. The Vim plugin we'll be using ties into what the
  IDE installs and configures so it's needed. You can download the IDE
  from the Arduino site.
Install vim-arduino plugin
To get the main goodness of compiling, monitoring and deploying to an
  Arduino, grab the latest version of vim-arduino. Install it in
  your .vim folder using what ever method you use to manage your Vim
  plugins. Hint: I'd recommend Pathogen as it makes installing
  as simple as dropping the plugin folder into a bundle folder.
Vim syntax file
Next up is to get the syntax file so we can have nice colour coding
  for .pde and .ino files. Download the latest arduino.vim and
  install it in your Vim syntax folder. To get the syntax to apply to
  the correct file types add the following to your vimrc file
au BufRead,BufNewFile *.pde set filetype=arduino
au BufRead,BufNewFile *.ino set filetype=arduino

Configuring the Arduino IDE
Before trying to compile and deploy with Vim, get it all working with
  the Arduino IDE first as the Vim plugin just calls from the settings
  saved by the IDE. If it's working in the IDE, it should work in Vim.
  Make sure you select the right tty.usbmodem* serial port from Tools >
  Serial Port in the IDE. Note: This will only show when the Arduino
  is plugged in.
Working from Vim
Once you can communicate with your Arduino from the IDE you should be
  fully good to go with Vim. You shouldn't have to open the IDE unless
  you want some example code. Open up your sketch file in Vim and use
  <Leader>ac to compile a sketch, <Leader>ad to compile and then
  deploy to the connected Arduino and <Leader>as to open a new window
  with screen to monitor the serial output from the Arduino.


user102: Expanding on Fake Name's answer, there is also Visual Micro's Arduino plugin for Atmel Studio (built off Visual Studio). It shares the tools, sources and libraries with the Arduino IDE but provides all the code completion and other features of Visual Studio.
The Visual Micro plugin also works in all versions of Visual Studio. Provides 
Arduino usb debugging and an Arduino IDE compatible Board Manager.

user77: There is an Arduino Eclipse plugin named sloeber! And Eclipse is an awesome cross-platform open-source IDE!
Stino is good. It requires Sublime Text 2 which has an indefinite free trial.
Visual Micro provides a full build system with debugger for Arduino in Microsoft Visual Studio. For advanced users it also allows the underlying Arduino source code to be viewed or modified, enabled projects and/or libraries to be edited from any location and shared in multiple projects alongside true cross-platform intellisense.
For more go to The Official Arduino Site 
For development on Windows, there is a special edition from Arduino official IDE called arduino-erw, This edition much better the last one because it fixed a lot of lagging and stability issues!

76: <p>The basic Arduino IDE lacks a lot of the sophistication present in other IDEs such as code completion, code collapsing, folder organisation, etc. Are there other IDEs that allow programming in C or C++ and improve on these aspects?</p>
 19796: <h1>Fritzing</h1>
<blockquote>
<p>This is the new “Code View”! It lets you write your code directly inside Fritzing, and even upload it from there to your microcontroller. It even has a serial monitor. :)</p>
</blockquote>
<p>Normally known as a schematic builder, Fritzing has a built in IDE.<br />
<a href="http://blog.fritzing.org/2014/12/02/its-fritzmas-new-fritzing-code-view-release-and-a-little-present/" rel="nofollow noreferrer">See here for more.</a></p>
 19892: <p>Haven't seen anyone mention it yet, but I use VisualMicro for Microsoft Visual Studio (not Atmel), and I like it just fine. It gives you everything you'd normally have in Visual Studio, like intellisense typing. The trial version is the full program, and the license is pretty cheap- like 30 bucks or something. I got my work to pay for a commercial license key. Do recommend! </p>
 22868: <p>Notepad++ </p>

<ul>
<li>set Notepad++: view->folder as work space</li>
<li>and Language->C->C++ sets syntax highlighting</li>
<li>set arduino Ide file->preferences "Use external editor"</li>
</ul>

<p>and everything runs smoothly, without the bulk of eclipse.</p>
 313: <p>My go-to choice (pun, that's only a pun, folks!) is Sloeber - Eclipse with Jantje's EclipseArduino plugin. Having decades of emacs muscle-memory-training, I use MulgaSoft's Emacs+ plugin with it, switching to real GNU emacs for the heavy lifting - as developing a project and new libraries for it in parallel, f/ex, and use Sloeber to catch my typos &amp; brain-f*ts.</p>
 29283: <p>A good alternative to the Arduino IDE is Visual Studio Code in combination with the Microsoft extension for Arduino <a href="https://github.com/Microsoft/vscode-arduino" rel="nofollow noreferrer">https://github.com/Microsoft/vscode-arduino</a></p>

<p>It gives all the features of the Arduino IDE such as </p>

<p>Verify and upload your sketches in Visual Studio Code</p>

<ul>
<li>Built-in board and library manager </li>
<li>Built-in example list </li>
<li>Built-in serial monitor</li>
</ul>

<p>but additionally to offers some attractive features:</p>

<ul>
<li>IntelliSense and syntax highlighting for Arduino sketches</li>
<li>Snippets for sketches</li>
<li>Automatic Arduino project scaffolding</li>
</ul>
 7727: <p>I use Eclipse and Sublime Text for editing Arduino code, and I build in the Arduino IDE with it set to "external editor" mode, or using the Arduino Command Line tools. Eclipse has a fantastic indexer and makes understanding the Arduino core much easier. I've written a detailed PDF about using and setting up Eclipse for professional software development, incl for Arduino, here: <a href="https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/eclipse/Eclipse%20setup%20instructions%20on%20a%20new%20Linux%20(or%20other%20OS)%20computer.pdf" rel="nofollow noreferrer">https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/eclipse/Eclipse%20setup%20instructions%20on%20a%20new%20Linux%20(or%20other%20OS)%20computer.pdf</a>.</p>

<p>Note that I'm using regular Eclipse for C/C++, with no Arduino plugins. I don't find them that useful since they can never seem to keep up with the latest Arduino build tools anyway. </p>

<p>See my document for full setup information in general.</p>

<h1>Related:</h1>

<ol>
<li><a href="https://arduino.stackexchange.com/questions/816/c-vs-the-arduino-language/50839#50839">C++ vs. The Arduino Language?</a></li>
</ol>
 4202: <p>I use Xcode, set up as an external editor. I write everything in libraries, and the sketch simply call the libraries.</p>
 32487: <h2>Clion + PlatformIO</h2>

<p>I personally use <strong><a href="https://www.jetbrains.com/clion/" rel="nofollow noreferrer">Clion</a></strong> which is a cross-platform IDE along with <strong><a href="http://docs.platformio.org/en/latest/ide/clion.html" rel="nofollow noreferrer">PlatformIO</a></strong> which is a cross platform build system for arduino and alike.</p>

<p>Clion because I love the jet brains IDEs. As a student or teacher you can get a free licence. And I have been told by suspicious people on the internet that there are other ways of obtaining a license (not that I would advice on doing anything like that).</p>

<p>PlatformIO is quite powerful and integrates well into almost any IDE. It's easy to declare dependencies to other libraries which are automatically downloaded.</p>

<p>I am also using the <a href="https://plugins.jetbrains.com/plugin/8031-serial-port-monitor" rel="nofollow noreferrer">Clion serial port monitor plugin</a> to communicate over <code>Serial.print()</code>.</p>

<p>With this setup you can completely ditch the old Arduino IDE which I found to be quite satisfying!</p>
 881: <p>I have always wanted to use Eclipse, since that is our standard (for Java) at work. But I never managed to get the debugger working with my AVR Dragon board - just too many layers between the source code and the chip.
So I am back to using Atmel Studio. You can set the keyboard mapping to emulate various other IDEs (including Eclipse and Netbeans). I can accept the Microsft quirkiness in return for a stable debugging environment, multi-file support and professional source control features.</p>
 23991: <h2>PlatformIO</h2>
<p>I use GitHub's <a href="https://atom.io/" rel="nofollow noreferrer">Atom</a> text editor with the <a href="http://platformio.org/platformio-ide" rel="nofollow noreferrer">PlatformIO</a> package.</p>
<p>I like both of them:</p>
<ul>
<li><a href="https://atom.io/" rel="nofollow noreferrer">Atom</a> has various useful built-in features and over 6,000 packages (which can be easily downloaded and installed from the settings pane) allowing the user to add essentially any feature he needs.</li>
<li><a href="http://platformio.org/platformio-ide" rel="nofollow noreferrer">PlatformIO</a> is a powerful IDE for microcontroller programming. It has all the features of the Arduino IDE (like the ability to upload code to an Arduino board with one single click, a serial monitor, ...) plus many others (like all those listed by the OP) and perfectly supports Arduino. Besides &quot;it supports more than 200 development boards along with more than 15 development platforms and 10 frameworks&quot;. It can be natively installed either on GitHub's Atom either on Microsoft's <a href="https://code.visualstudio.com/" rel="nofollow noreferrer">VSCode</a> code editors.</li>
</ul>
<hr />
<p><strong>Edit</strong></p>
<p>I still use PlatformIO on Atom on a regular basis, but I just saw on their <a href="http://docs.platformio.org/en/latest/what-is-platformio.html" rel="nofollow noreferrer">website</a> and forum that they are discouraging users from using their Atom package while proposing PlatformIO in VSCode as a better alternative.
The Atom version still works well, but if you are changing your editor and want to try PlatformIO I would suggest to follow their advice and install it in VSCode.</p>
 201: <p>In addition to the mentioned IDEs you can use Xcode with <a href="http://embedxcode.weebly.com/">embedXcode</a> if you use a mac. The IDE has a great file structure and support for a lot of boards. For big and complex projects it is really good. I like to use vim or the arduino IDE for simpler and less complex sketches/projects. </p>
 296: <p>There is one from Brazil called <strong>MariaMole</strong>: <a href="http://dalpix.com/mariamole">http://dalpix.com/mariamole</a></p>

<p>According to the author, like the original Arduino environment, the MariaMole facilitates the creation of software for the Arduino. However, while the original Arduino IDE has limitations to make life easier for beginners, MariaMole brings features that more advanced users are accustomed to find in professional IDEs, such as:</p>

<ul>
<li>Runs over Arduino install</li>
<li>Workspace support multiple projects at the same time</li>
<li>Multiple serial port consoles at the same time</li>
<li>Files use open-formats</li>
<li>Building process configurable</li>
<li>Imports Arduino examples and sketches</li>
<li>Easily import Arduino libraries</li>
<li>Color-themes</li>
</ul>
 79: <p>Majenko created and maintains <a href="http://uecide.org/">UECIDE</a>. His contributions are pretty epic; I've seen first hand his coding prowess as we <a href="http://www.chipkit.net/forum/viewtopic.php?f=18&amp;t=2530">worked together</a> to get the <a href="http://www.adafruit.com/products/802">Adafruit 1.8" TFT Joystick shield</a> working on the chipKIT platform.</p>
 310: <p>UPDATE->  <a href="https://codebender.cc/next-chapter" rel="nofollow">Codebender is being shut down.</a> </p>

<p>There is a brilliant open source, web based IDE called <a href="http://codebender.cc" rel="nofollow">Codebender</a></p>

<p>It is like Github for Arduino and has a great community working from it with thousands of examples and the dev team are exceptional.</p>

<p>With codebender, you can:</p>

<ul>
<li>program an existing sketch to your device </li>
<li>clone an existing sketch</li>
<li>modfy it to your needs </li>
<li>share your work with the world </li>
<li>embed code in your website, blog, or tutorials</li>
</ul>

<p>Cross-platform
Works on Windows, Mac &amp; Linux, Firefox &amp; Chrome</p>

<p>Codebender supports Windows (from Windows XP up to Windows 8.1, yes, even Vista :P), Mac OS X 10.6-10.9, and Linux and works within all major browsers</p>
 65: <p>One rather good IDE extension is the Arduino Mode for Emacs. It allows using a highly versatile and extensible IDE such as Emacs for writing, compiling and uploading code to the Arduino.</p>

<p>The documentation and instructions can be found <a href="http://www.emacswiki.org/emacs/ArduinoSupport">here</a>.</p>
 790: <p>There is a half way solution as well since the Arduino IDE has support for external a editor, then the Arduio IDE just compiles and uploads.</p>

<p><img src="https://i.stack.imgur.com/Tu78x.png" alt="enter image description here"></p>

<p>Now you can use whatever IDE/editor you like to edit the code, 
and then you switch back to the Arduino IDE to press the compile and upload button when you are done.</p>
 86: <p>You can use <a href="http://www.atmel.com/microsite/atmel_studio6/">AVR Studio</a> to write programs for Arduinos.</p>

<p>There is a plugin that lets you link against and use the arduino libraries from <a href="https://arduinotemplateexpress.codeplex.com/">within Atmel Studio</a>.</p>

<p>If you've used Microsoft Visual Studio, Atmel Studio is basically a reskin of Visual studio with different compiler backends that target the ATmega series of devices, so you'll feel right at home.</p>
 4: <p><a href="http://en.wikipedia.org/wiki/Vim_%28text_editor%29">vim</a> can be used for Arduino development, but it will take some configuration (as is the way of vim). You'll need the <a href="http://www.vim.org/scripts/script.php?script_id=2654">syntax file</a> and <a href="https://github.com/tclem/vim-arduino">this plugin</a> that enables you to compile and deploy from vim.</p>

<p><a href="https://twitter.com/grantlucas">Grant Lucas</a> produced a great write-up on getting your environment situation squared away:</p>

<blockquote>
  <h2><a href="http://grantlucas.com/posts/2012/09/using-vim-arduino-development">Using Vim for Arduino development</a></h2>
  
  <p>Here's a quick post on setting up Vim for Arduino development instead
  of using the Arduino IDE. If you're a heavy Vim user, it can be a bit
  of a shock to go into a different editor. Thankfully the setup is
  pretty easy to get this all working with Vim. This post is assuming
  you are comfortable with how Vim is setup and ideally already have an
  environment that works for you.</p>
  
  <h3>Install the Arduino IDE</h3>
  
  <p><em>Wait. What?!?</em> I hear you say. I know, I know. We're not actually using the Arduino IDE but we need it for some configuration and the
  files it installs. The Vim plugin we'll be using ties into what the
  IDE installs and configures so it's needed. You can download the IDE
  from the <a href="http://arduino.cc/en/Main/Software">Arduino site</a>.</p>
  
  <h3>Install vim-arduino plugin</h3>
  
  <p>To get the main goodness of compiling, monitoring and deploying to an
  Arduino, grab the latest version of <a href="https://github.com/tclem/vim-arduino">vim-arduino</a>. Install it in
  your .vim folder using what ever method you use to manage your Vim
  plugins. <strong>Hint:</strong> I'd recommend <a href="https://github.com/tpope/vim-pathogen">Pathogen</a> as it makes installing
  as simple as dropping the plugin folder into a bundle folder.</p>
  
  <h3>Vim syntax file</h3>
  
  <p>Next up is to get the syntax file so we can have nice colour coding
  for .pde and .ino files. Download the latest <a href="http://www.vim.org/scripts/script.php?script_id=2654">arduino.vim</a> and
  install it in your Vim syntax folder. To get the syntax to apply to
  the correct file types add the following to your vimrc file</p>

<pre><code>au BufRead,BufNewFile *.pde set filetype=arduino
au BufRead,BufNewFile *.ino set filetype=arduino
</code></pre>
  
  <h3>Configuring the Arduino IDE</h3>
  
  <p>Before trying to compile and deploy with Vim, get it all working with
  the Arduino IDE first as the Vim plugin just calls from the settings
  saved by the IDE. If it's working in the IDE, it should work in Vim.
  Make sure you select the right tty.usbmodem* serial port from Tools >
  Serial Port in the IDE. <strong>Note:</strong> This will only show when the Arduino
  is plugged in.</p>
  
  <h3>Working from Vim</h3>
  
  <p>Once you can communicate with your Arduino from the IDE you should be
  fully good to go with Vim. You shouldn't have to open the IDE unless
  you want some example code. Open up your sketch file in Vim and use
  <code>&lt;Leader&gt;ac</code> to compile a sketch, <code>&lt;Leader&gt;ad</code> to compile and then
  deploy to the connected Arduino and <code>&lt;Leader&gt;as</code> to open a new window
  with <code>screen</code> to monitor the serial output from the Arduino.</p>
</blockquote>
 102: <p>Expanding on <a href="https://arduino.stackexchange.com/a/43/220">Fake Name's answer</a>, there is also <a href="http://www.visualmicro.com/" rel="nofollow noreferrer">Visual Micro's Arduino plugin</a> for Atmel Studio (built off Visual Studio). It shares the tools, sources and libraries with the Arduino IDE but provides all the code completion and other features of Visual Studio.</p>

<p>The Visual Micro plugin also works in all versions of Visual Studio. Provides 
Arduino usb debugging and an Arduino IDE compatible Board Manager.</p>
 77: <p>There is an <a href="http://sloeber.io" rel="noreferrer">Arduino Eclipse plugin named sloeber</a>! And Eclipse is an awesome cross-platform open-source IDE!</p>

<p><a href="https://github.com/Robot-Will/Stino" rel="noreferrer">Stino</a> is good. It requires <a href="http://www.sublimetext.com/2" rel="noreferrer">Sublime Text 2</a> which has an indefinite free trial.</p>

<p><a href="http://www.visualmicro.com/" rel="noreferrer">Visual Micro</a> provides a full build system with debugger for Arduino in <a href="https://www.visualstudio.com/vs/whatsnew/" rel="noreferrer">Microsoft Visual Studio</a>. For advanced users it also allows the underlying Arduino source code to be viewed or modified, enabled projects and/or libraries to be edited from any location and shared in multiple projects alongside true <a href="http://www.visualmicro.com/post/2017/01/16/Arduino-Cross-Platform-Library-Development.aspx" rel="noreferrer">cross-platform intellisense</a>.</p>

<p>For more go to <a href="http://playground.arduino.cc/Main/DevelopmentTools" rel="noreferrer">The Official Arduino Site</a> </p>

<p>For development on Windows, there is a special edition from Arduino official IDE called <a href="https://code.google.com/p/arduino-erw/" rel="noreferrer">arduino-erw</a>, This edition much better the last one because it fixed a lot of lagging and stability issues!</p>
