sponsor Vim development Vim logo Vim Book Ad

Vim joins the Google Summer of Code!

This page lists tasks that you can work on. You can also get ideas from the todo list and the voting page.

Fix bugs and review bug fixes

Vim has many, many features. We don't really need more, we do need the existing features to work reliably!

The todo list has many issues that Vim users reported. See ":help todo". There is also an issue tracker. These issues need to be sorted out and when it's a real bug it must be fixed. Or perhaps the help text need to be adjusted. Some changes may require discussing the solutions with Vim developers and users on the vim-dev maillist.

Other Vim developers also create patches and several of these appear in the todo list. Unfortunately, Bram is running out of time to review and include them. For this SoC the plan is that the students review each others patches, so that Bram has less work to do.

This task can be worked on by two or more students.

Improve regexp performance

Two students have previously worked on a new regexp engine, which should improve search performance and especially speed up syntax highlighting. An article with the basic idea can be found here. Previous work on this is here.

We now have a new version of the regexp engine, but not sufficient tests. The new engine must be 100% compatible with the existing Vim regexp engine, otherwise searches fail and highlighting is wrong. We know the new engine cannot do everything, therefore the new engine will only be enabled for patterns where it works. For other patterns we fall back to the old engine.

Writing tests is the main work of this task. A possible approach is to look through all the syntax definitions, gather patterns from there and find text to execute them on. Once we know for what patterns the new version works perfectly, we can enable it for these.

The tests should also reveal what patterns are faster with the new engine and which ones slower. This can also be used to pick the old or the new engine.

Notes for applications

Please keep the following items in mind when you apply for a Summer Of Code holiday job:

  • Clearly state your level of study and experience. Especially with C programming.
  • You are expected to work full-time. It is a 40 hour per week job. So don't expect to do this next to studies or another job. You can take a few days off, but you can't go on a long holiday or take a couple of weeks off for an exam (you can do an exam in your spare time, of course).
  • There are fixed start and end dates. These are related to the evaluations. Check the SoC FAQ. This means that in countries where the holidays are in a different month you will not be able to join. Sorry about that.
  • You are expected to provide a weekly status report.
  • We don't provide a computer for you; make sure you can arrange one for your work. Preferably a Linux system, since it has the best developer tools. You will need to use Mercurial.
If you have questions or remarks about this site, visit the vimonline development pages. Please use this site responsibly.
Questions about Vim should go to the maillist. Help Bram help Uganda.
Vim at Github