Geany a Very Lite Cross-Platform IDE

Posted by JD 07/09/2012 at 16:00

There are lots and lots of IDEs out there. An IDE or Integrated Development Environment has been around for 30+ yrs. Many programmers my age remember Borland’s Turbo C IDE or Turbo Pascal. These had an editor, compiler and debugger built into 1 tool. They were small and fast AND very capable. Along the way, IDEs became more complicated and difficult to learn. They added connections to version control systems like

A modern IDE like Eclipse or Visual Studio needs a college level class just to understand how to use it. With all the added complexity, we’ve lost something. Issues with the IDE prevent programmers from coding all the time. I know this first hand – by trying to get Eclipse setup to work for shared Android development with a friend running it on MS-Windows. It was too complex. When I was a development lead, my guys were always having slightly different IDE configurations that caused issues for the other members of the team. This problem is common in team environments.

There are lots of options for lighter IDEs, geany is one. Geany isn’t exactly lite at 139M of RAM, but compared to most other IDEs, it is a feather. There’s a joke about Eclipse needing a Core i7 and 32GB of RAM to run well. I suspect even THAT will not help.

Geany is based on Scintilla like a few other very popular editors.

Installing Geany

sudo apt-get install geany geany-plugins

That will install the editor and about 35 of the most commonly wanted plugins like GDB and XML viewers. It does not enable any plugins, however. Syntax highlighting for many popular languages does not require a plugin, I should be clear about that.

Plugin Design

Having plugins for an editor is nothing new, it is smart. Instead of getting the kitchen sink when you want just 1 more little feature, loading a plugin for that single feature keeps the program relatively light.

I prefer to author blog articles in an editor, but I also want a spell checker. For a while, I’d use vim to edit the articles in textile markup language, then open them inside Libre/Open Office to spell check the doc. LibreOffice understands Textile, so it would convert any changes into the desired format codes and alter the display. That’s great if I wanted to publish an Office-document, but the blog engine wants pure text including the textile codes. BTW, I create presentations using Textile formatting too. It really is a nice, simple, text format markdown language, but I digress.

So I wanted a spell checker and that is not built into Geany. Because I’ve loaded the geany-plugins, about 35 popular plugins are available. There are more than just those 35, but those others need to be specifically installed. To enable the spell check plugin, I open Tools—>Plugin Manager and enable the Spell Check plugin. There are a few options, like check while typing and provide correct spellings in the status bar. Some plugins can use a bunch of CPU, so enabling them only when desired is probably a good idea. I found the spell check as I type did that, so it was disabled. Now to force a spell check, just select the text and right click to see the Spelling Suggestions menu with Perform Spell Check option.

Plugin installed and enabled. I’m happily editing my blog articles with Geany.

Cross-Platform?

Many people use Notepad++ on Windows but wish it worked on OSX or Linux too. Sure, you can load the WINE subsystem and install Notepad++ into that, but WINE programs don’t really integrate as nicely into Linux. Geany works the same on Windows, OSX and Linux platforms. That is a bonus to me, but sides just being a nice code editor.

Syntax Highlighting

Syntax highlighting for most commonly used languages is built-in.

Symbols and Easy File/Directory Access

The left panel in Geany shows either the symbols for the programming language/classes or it shows the directory/file structure. This is very handy when we are coding in RoR, Ruby on Rails or for Perl Dancer or for Django or web2py or any other MVC web framework.

BTW, creating a DB table CRUD GUI is about 2 lines of code in Perl Dancer using the SimpleCRUD module. Anyone interested in an article about this?

Other Lite-IDE Options

  • gedit
  • jedit
  • kate
  • notepad++
  • scite
  • TextMate (*commercial)

Open Source

If you don’t like something about Geany, chances are that you can change it through a plugin or setting. If that isn’t possible, you have the source code and can change that, if you like. No need to wait for a commercial vendor to think about a feature change. For example, we could change all the key bindings for geany to be emacs or vi. Any tool that you use 6+ hours a day should be nearly infinitely customizable in my book.

Geany is Not Perfect

There is a bug impacting me currently.

I have attempted 3 different work arounds, but none has worked.

Scenario:

  • Running Geany inside a VirtualBox VM.
  • VM is Ubuntu 12.04, but this issue happened with 10.04 too.
  • Open a text file that is stored on a virtualbox hostOS share. In my case, the hostOS is Windows7 x64.
  • Any attempt to save the file results in an error.

The only work-around that I’ve found is to move the files to be edited onto the VM disk storage. Since these are text files and not large, this isn’t a big deal.

An extra set of small files like these is left:


.goutputstream-5V1SGW .goutputstream-EUGWGW .goutputstream-QEGSGW
.goutputstream-7KC8GW .goutputstream-J0I1GW .goutputstream-V3S7GW
.goutputstream-ECN7GW .goutputstream-KWJTGW

I am not the only person with this error- . It appears to be a complex failure either in GTK or Microsoft or VirtualBox and not core to Geany. For many years, this failure was not seen on my systems, but with a newer Geany that performs more file save error checking, it is seen lots here. That probably simply meant that I was lucky, not that the file-save code was working 100% perfect.