Redcar Internals
By DBL | February 6, 2010
Here is a series of posts I’ve made discussing various aspects of Redcar internals that you might find interesting.
- Redcar’s REPL and the DocumentMirror interface
- The Plugin Manager gem that Redcar uses
- How to Write a Tree Provider in Redcar
Topics: hacking | No Comments »
Redcar 0.3.2dev released
By DBL | January 23, 2010
I just pushed 0.3.2dev, please update to it and send me your comments or bugs.
This release ports to JRuby about half the remaining features. Redcar is getting fun to use again, with autocompletion, more text commands, block typing mode and simple search.
Internally I made a ton of changes as well, particularly by completely replacing the plugin manager with a new library that’s going to make things much easier. Also we now support plugins written in HTML and JavaScript, so you can use your web development skills to extend Redcar how you want.
There are still some important things missing, the most obvious of which is configurable tab widths, which I’m going to be working on for the next release.
Remember, Redcar is open source. You should feel totally able to open up the source code and have a hack around. We try to accept patches quickly and you can ask on IRC or the mailing list if you have any trouble.
Thanks!
Dan
Installation
$ sudo gem install redcar --pre
$ sudo redcar install
New features
- Dialog API for plugins and commands to use.
- Speedbar API for plugins and commands to use (e.g. Goto Line command).
- Remembers last directory when opening a file/directory. (thanks Roger Pack)
- Word movement (alt-left, alt-right) now works as it should in an editor for programmers.
- Very simple forward search command.
- Somewhat faster startup time.
- Nicer error message when jruby jar is missing.
- Goto Line command
- Select All and Select Line commands.
- Cut and Copy will take the line if there is no selection
- Block typing mode
- Auto completion
- HTML View, with Ruby/JavaScript interface, to write plugins in HTML+CSS+JS.
- PluginManagerUI plugin, running on the HTML View.
- MyPlugin plugin to help newbies get started on writing plugins
- Includes a lot more TextMate syntaxes
Internal changes
- Ported plugins to plugin_manager gem
- Pure Ruby clipboard and Copy/Cut/Paste commands.
Fixes
- The show more tabs menu in a notebook is handled properly.
- Deleting a lot of lines no longer causes the last few to lose highlighting.
- Clojure highlighting works.
- HTML colours no longer ‘bleed’ past the tags
Topics: jruby port, releases | 16 Comments »
Redcar 0.3.1dev Released
By DBL | January 9, 2010
I just pushed 0.3.1dev to Gemcutter.
This release changes the install process slightly. You now have to do:
$ sudo gem install redcar --pre
$ sudo redcar install
This removes the ugly hack that downloads the jars as part of the gem
install, because it made rubygems think ‘make’ was required when it
wasn’t really.
Enhancements:
- Directory tree refreshes on window focus.
- Fuzzy file finder (it’s a bit slow though!)
- Keybindings to switch tabs and notebooks.
- Undo/redo.
- Home/end keys.
- Modified tabs have little stars before their names.
- Increase indent and decrease indent commands (need further work).
- Themes support bold, italic and underline again.
- All commands are greyed out when inapplicable.
- Files can not be opened twice.
- Added Java, Perl and Ruby on Rails bundles.
- New simpler way for bundles to add commands to menus (used in
repl.rb)
Fixes:
- Change to multiple key algorithms in JavaMateView - should fix a bunch of subtle highlighting bugs.
- Runs on Java 5.
- Open Directory doesn’t log an error if you cancel.
Please kick the tires and let me know how you get on.
best,
Dan
Topics: jruby port, releases | 8 Comments »
Christmas Gem: Redcar 0.3.0dev
By DBL | December 25, 2009
Here’s 0.3.0dev of Redcar. This is a developer preview, to let interested parties investigate the Redcar internals as we port to JRuby. You would have to be a little bit mad to want to use Redcar right now if you are not interested in hacking on it.
To install:
sudo gem install redcar --pre
Those of you who remember the old installation instructions can imagine how happy it makes me that Redcar is now packaged as a gem. (It will take a minute or so to install as it downloads all the jar files Redcar needs).
This should work out of the box on Linux, OS X and Windows, and you do not need JRuby installed, the gem install will work fine installed under regular MRI Ruby.
Things that work in this release are:
- Open, edit and save files.
- Syntax highlighting (only ships with Ruby, HTML, C and a couple of others, but there’s no reason we can’t add more).
- Multiple editor panes.
- Multiple windows and projects open at the same time.
- Auto-indenter that just keeps the indentation level the same.
- Directory view.
Now, we obviously still have a lot of things left to port. This first release is supposed to be the absolute minimum required for me to use Redcar to edit itself. You should only use Redcar if you are interested in hacking on the internals or extending it with plugins.
It was important to get the base application framework working well before we tried to add more fancy features. This has also meant we could add things like the multiple window support that the old Redcar didn’t have, because the core of Redcar is now a lot simpler and more comprehensible.
Look at the roadmap if you are interested in the plan for porting the rest.
Topics: jruby port, releases, screenshot | 14 Comments »
JavaMateView Port Complete
By DBL | September 6, 2009
As of yesterday evening, the JavaMateView port of GtkMateView is essentially complete. Thanks go to Silvio Heuberger, Aokai, Mat Schaffer and Alex Lourie for contributing to this project.
This is terrific progress for our JRuby/SWT port. JavaMateView is the syntax highlighting editor component, which is the core of Redcar. We can now proceed with porting the rest of Redcar onto JRuby. And for free, we have complete cross platform compatibility:
Windows 7
Ubuntu,
and Mac OS X
I have now started making Redcar itself work on JRuby, which is going to take considerably longer. I want to do this right, so I’ve got a reading list on GUI architecture as long as my arm. If anyone has any good suggestions for further reading, please speak up!
As of now, Redcar HEAD will boot on JRuby, but all the plugins are turned off except for a very small core. There’s a long way to go yet, but I’m very happy with our progress so far.
Topics: development, jruby port, screenshot | 17 Comments »
JRuby Port Progress and Plans
By DBL | August 24, 2009
I’ve spent the evening on the port and it’s progressing well. There are two projects that need porting:
GtkMateView
GtkMateView is the syntax highlighter component of Redcar. At the moment it is written in Vala, a fine C#-style language for the GObject system. In order to run Redcar on JRuby, this GUI widget needs to be ported to Java.
Silvio, myself and Aokai have begun this and our work is on Github here. Porting from Vala to Java (like porting from C# to Java) is a fairly efficient process. Tedious - but efficient. We have already got several large classes, in particular the syntax Patterns and the Scope matcher, working in Java. This project will be 100% Java.
Redcar
Redcar is written in Ruby with GTK+. We need to port over Redcar from using GTK to using SWT, and make sure that everything still works on JRuby. Almost every class in Redcar will be touched by this change.
I would like to separate the plugins into two groups, the core models and the gui interfaces. So the core plugin will be split into core and core-swt, the project plugin into project and project-swt. Almost all the features can be moved over without change, although the step definitions will need to be rewritten.
We can turn off most plugins at the start and turn them back on one-by-one as we port them. So we should have a basic application frame up and running fairly soon. We also need to make sure that Cucumber and RSpec are working. Once that is done, porting of the plugins can happen in parallel, so people who want to help out can grab one and start.
We also need to get packaging sorted out from the start to avoid difficulty later. Silvio has been looking into this and it seems that we will be able to wrap up all of Redcar into a single .jar file before we are done (though we will still need Debian packages on top of that).
So Milestone 1 for the Redcar port is:
- Working application frame.
- Cucumber hooked up.
- RSpec hooked up.
- Single jar file packaging.
With a bit of luck, we can reach this sometime next week, which will give us a secure base for the rest of the work.
Good night!
Topics: development, jruby port, milestones | 5 Comments »
Redcar is moving to JRuby
By DBL | August 23, 2009
After a long struggle with our current platform, we have decided that it is best for the future of Redcar if we port it to JRuby. This will mean switching to another GUI toolkit, which we have identified as SWT. There are a lot of reasons for this (anyone who is interested can check the mailing list for details), but we expect the move to result in
- improved stability,
- more accessible source code,
- easier packaging,
- better cross-platform support.
We’re going to try and get this over with as quickly as possible, I’ll be pulling double shifts and Silvio and Henrik and a few others are jumping in too.
If you’d like to be involved in Redcar, this is a great opportunity to get started and help out, so please drop by the mailing list or IRC channel.
See you on the other side!
Topics: development, jruby port | 14 Comments »
News 26th May 2009
By DBL | May 26, 2009
Remembering that it is important to release soon and frequently, I have tagged version 0.2 of Redcar. There are numerous improvements and fixes, thanks to some new contributers. The installation process is slightly different, see below. Please report any bugs to the bug tracker.
I might have waited a bit longer before tagging this release, but I’m going to be very busy with work for a few weeks and I wanted to get what fixes there were out there for people to use.
This is still alpha-quality software! Use at your own risk and if there is something missing you need, add it! We will commit patches promptly.
New contributers
- Mark Wilkinson
- Pat Ciambrone
- poweradapter
- Henrik Hodne
New features, enhancements
- Fuzzy file finder notices new files and runs MUCH faster.
- Undo close tab (Ctrl+Shift+T)
- Type ” or ( or [ etc to wrap selection in pair.
- Warm startup 3 times faster.
- Added Incremental Search menu item.
- Now prompts to save if file is modified when closed.
- HtmlTab now uses Webkit instead of Mozilla
- Convert case commands
- Keybindings match up with Gnome better (Ctrl+C/V)
- Added Scala and Haskell bundles to the default bundle set.
- Included Railscasts theme - thanks Ryan Bates!
I am a little disappointed that neither the bundle support nor the performance of the syntax highlighter have significantly improved in this release, and they will be the priorities for 0.3.
Installing
The installation instructions are slightly changed. In particular there are no longer any release tarballs. You have to clone the source from git. Sorry, there are still no Debian packages, but we are working on getting some ready.
Plans for 0.3
Some things 0.3 will have:
- Improved highlighter performance - I am aware of the various issues around this. There is plenty of low-hanging fruit in this area.
- Autocompletion - Silvio Heuberger is working on this.
- A new smart indenter. In particular, it should handle indentation correctly in erb files.
- RSpec, Rails and Cucumber bundles should all work
- An embedded project pane (so the project view will no longer be in a tab).
That Railscasts theme in action:
Best wishes, and thanks to everyone who has expressed support for Redcar!
DBL
Topics: development, news, releases, screenshot | 11 Comments »
News 5th April 2009
By DBL | April 5, 2009
- I have pushed out release 0.1 of Redcar. Get it here.
- Redcar has some new developers. Mark Wilkinson is responsible for the SaveAll command that is now in the File menu and Cairo Noleto has made some useful changes. Thank you to Daniel Gaiottino for filing loads of bugs too. It’s nice not to be doing this on my own anymore!
- There is now a place for documentation and API documentation.
- Keybindings are still all over the place, so expect more changes in the near future, particularly with regard to Ctrl and Super.
- All Source, Text and Ruby bundle commands now work. Bundles next on the hitlist are Rails, RSpec and Cucumber.
- There are now viewable regression tests for the GtkMateView highlighter that compare HTML generated by Redcar with HTML generated by Textmate. Not amazingly useful but fun to look at.
Here is a screenshot of the fuzzy file finder:

Topics: news, releases | 25 Comments »
News 18th Mar 2009
By DBL | March 18, 2009
- There is a new mailing list. Please join us and help make Redcar better.
- Redcar got reddited! This is instantly the most popular software and website I have ever written. Thanks kib2 for submitting Redcar, hope you got some good reddit points, or whatever.
- The domain name is now redcareditor.com to reflect that the goal for Redcar is for it to become an excellent text editor before an IDE.
Progress:
- I really am using Redcar full time, at work and at home now, and Redcar has become much more stable in recent weeks.
- However there remain a number of serious bugs related to the editing component. Users should be careful to save regularly.
- The Text bundle commands are completely supported, and the Source and Ruby bundles are close behind.
- I am aware that installation is beyond difficult. However the nature of Redcar’s dependencies makes packaging a challenge. I am considering a Shoes model for distribution (Shoes has an amazing installation experience), and if anyone has any experience with packaging software for Linux, please get on the mailing list and share.

Topics: news, screenshot | 7 Comments »





